Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 2 Apr 1995 12:33:03 +0000 ()
From:      "John S. Dyson" <toor@jsdinc.root.com>
To:        zeta.org.au!bde@implode.root.com (Bruce Evans)
Cc:        zeta.org.au!davidg@implode.root.com, terry@cs.weber.edu, bde@zeta.org.au, bugs@ns1.win.net, gary@palmer.demon.co.uk, hackers@FreeBSD.org, jkh@freefall.cdrom.com, tom@haven.uniserve.com
Subject:   Re: 4 gig st15150n disk setups
Message-ID:  <199504021233.MAA00147@jsdinc.root.com>
In-Reply-To: <199504012235.IAA21888@godzilla.zeta.org.au> from "Bruce Evans" at Apr 2, 95 08:35:46 am

next in thread | previous in thread | raw e-mail | index | archive | help
> 
> The clustering code converts block numbers to byte offsets for some reason,
> perhaps just because it wants to compare the byte offset with the file
> size and multiplying by the block size is sometimes much more efficient
> than dividing the file size by the block size and worrying about rounding.
> 
The problem is that all VREG file buffering occurs through VM objects, which
along with VM pages have 32Bit offsets with BYTE resolution.  DG and I are
looking into making the offsets into page offsets.  Note that this
is only true for VM clustering.  VFS layer clustering has no such limitation.
The limitation will be removed in V2.2.  Note that we don't use the
merged VM/Buffer cache for VBLK for this reason.  It would be very unfortunate
to limit the size of a device because of the size of a vm_offset_t wouldn't
it???  I have looked into making vm_page_t offset into an off_t and it appears
to be ugly because of the additional amount of space that it will need.
Since pages are on page boundaries, it appears that making the offset into
integral page offsets would not be a problem.

However, this brings up an interesting problem on shadow_offsets and
paging_offsets.  They will have to be off_t's.  In 2.2 I plan to add
the capability of allowing "bogus" binary formats that are not page
aligned.  This will allow successful demand paging of ibcs2(or is it Linux?)
binaries.  Currently we need to read them in.  In essence we will shadow the
ibcs2 object with the actual vnode backed object, with a non-integral paging
offset.  Minor mods will need to be made to the fault code to effect this
improvement.  This means that the binarys with the bogus offsets will not
be coherent with the buffer cache, but that is not that important as long
as proper invalidation takes place.

> seem to be many secondary problems.  I gave up on the problem for a
> while because it seemed that there were more fundamental problems in
> the vm system.
> 

Not really fundamental problems, but bugs. :-).  Many fundamental improvments
have been made, and the end result will be substantially better than the
previous (4.4Lite-Net/2) stuff.

John
dyson@root.com




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