Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 21 Apr 2003 23:44:40 +1000 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        David Schultz <das@freebsd.org>
Cc:        current@freebsd.org
Subject:   Re: HEADS UP: UFS2 now the default creation type on 5.0-CURRENT
Message-ID:  <20030421231756.H11214@gamplex.bde.org>
In-Reply-To: <20030421102341.GA3482@HAL9000.homeunix.com>
References:  <20030420192319.GB4963@HAL9000.homeunix.com> <Pine.NEB.3.96L.1030420174551.16891t-100000@fledge.watson.org> <20030421102341.GA3482@HAL9000.homeunix.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 21 Apr 2003, David Schultz wrote:

> The cgbase hack should only limit the size of the filesystem, not
> the disk location.  It occurs to me that with a little more
> hackery, we can avoid the limitation entirely.  If we revert to
> the 64-bit cgbase() and un-inline it, boot2 goes from 19 bytes
> available to -9 bytes.  Add a kludge to factor out a few 64-bit
> multiply-adds and we're back to 3 bytes available.  (I'm sure
> there are cleaner ways to save 9 bytes.)  An untested unpolished
> diff follows.

I played with similar changes, but didn't finish them.

> Index: ufsread.c
> ===================================================================
> RCS file: /cvs/src/sys/boot/common/ufsread.c,v
> retrieving revision 1.11
> diff -u -r1.11 ufsread.c
> --- ufsread.c	25 Feb 2003 00:10:20 -0000	1.11
> +++ ufsread.c	21 Apr 2003 10:10:01 -0000
> ...
> @@ -47,11 +59,11 @@
>  ...
> -#define FS_TO_VBA(fs, fsb, off) (fsbtodb(fs, fsb) + \
> -    ((off) / VBLKSIZE) * DBPERVBLK)
> +#define FS_TO_VBA(fs, fsb, off)	ma((off) / VBLKSIZE, DBPERVBLK, \
> +	fsbtodb((fs), (fsb)))

The division by VBLKSIZE should probably be a shift.  ufsread.c has
VBLKSHIFT and uses it for all multiplications and divisions by VBLKSIZE
except this one.  gcc can't optimize to just a shift since all the
types are signed and C99 specifies that division of negative integers
by positive ones has the usual hardware brokenness.

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030421231756.H11214>