Problems with Fujitsu-M2382K on Xylogic 735 on a 3/280

Jeff Smith aat at mace.cc.purdue.edu
Fri Dec 2 02:42:13 AEST 1988


> We recently received a Fujitsu-M2382K on Xylogic 735 and I was trying to
> set it flying on a 3/280 when I ran into problems with insufficient inodes
> in the client root partition...
> 
> (1) how come the "-i" option in "newfs" didn't do what the manual says
> it should do (I know, I know, manauls lie all the time :-< )?

actually, it does.  If you use "newfs -vN" you can see what it passes to
mkfs without actually running mkfs (make sure you use 'N' and not 'n'!).
Newfs passes the -i parameter to mkfs, which then silently adjusts the
number of inodes to what it thinks is right.

The real problem is with the constant MAXIPG in ufs/fs.h.  This is set to
2048 and puts a ceiling on the number of inode blocks per cylinder group.
Mkfs actually uses 2048 if you tell it to, but that's the maximum.  There
are more sectors per cylinder in big drives than in older, smaller ones,
e.g., there are about 900 sectors per cylinder in a Fujitsu Eagle, and
2241 in a Fujitsu Swallow IV.  Since the maximum number of inode blocks
per cylinder group is constant but the number of data blocks varies, the
percentage of inode blocks per data blocks is smaller in the Swallow IV
than in an Eagle.  Using 8 cylinders per cylinder group doubles the
percentage of inode blocks by halving the number of data blocks per
cylinder group.  You have to use a 4k/1k file system to have 8
cylinders/cylinder group.

As you noted, this has the undesirable side effect of crashing the host
when you attempt any reference to that file system.  The stack backtrace
looks like this:

    _panic(0xf076d88) + 44
    _segmap_unlock() + 7a
    _segmap_fault(0xf0de000,0xfb3c000,0x2000,0x3,0x0) + 8e
    _as_fault(0xf07e6a8,0xfb3c000,0x400,0x3,0x0) + a0
    _fbrelse(0xf0e5d44,0x0)	+ 1e
    _dirlook(0xf09e5b8,0xffff95bc,0xffff9570) + 2fc
    _ufs_lookup(0xf09e5c0,0xffff95bc,0xffff96bc,0xf0e5140,0xffff96e0,0x0) +1a
    _au_lookuppn(0xffff96e0,0x1,0x0,0xffff976c,0x0)	+ 20e
    _au_lookupname() + 34
    _lookupname(0xefffc4e,0x0,0x1,0x0,0xffff976c) +	1a
    _stat1(0xffff9a18,0x1) + 1a
    _stat(0xffff9a18) + c
    _syscall(0x26) + 15a
    syscont() + 6
    data address not found

> (2) is there something peculiar with the geometry of the M2382K that
> restricts the choice of # of cyl/grp as mentioned above?

No, the cyl/grp choice is wired into mkfs because it's wired into the file
system.

> (3) does anyone has a possible work around for this problem?

Wish we did.  We've reported the bug to sun.

Jeff Smith, aat at cc.purdue.edu
Purdue University, 210 Math Science, W. Lafayette, IN 47907, 317/494-1787



More information about the Comp.sys.sun mailing list