Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Sep 1995 19:21:09 -0700
From:      David Greenman <davidg@Root.COM>
To:        Terry Lambert <terry@lambert.org>
Cc:        current@freebsd.org
Subject:   Re: sig 10/11 problems 
Message-ID:  <199509220221.TAA00233@corbin.Root.COM>
In-Reply-To: Your message of "Thu, 21 Sep 95 18:19:46 PDT." <199509220119.SAA27331@phaeton.artisoft.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
>>    I just committed to CVS a work-around for the sig 10/11 problems that
>> people have been having for the past 3 weeks. It should be available to SUP
>> in about 4 hours (9pm PDT).
>
>What is the identity of the problem?
>
>How does the workaround operate?

   There is a problem in vfs_cluster.c that is messing up the paging I/O. The
exact problem isn't yet known (if it were, I would have committed a real fix
rather than the workaround). I think the problem has to do with the use of
"pbuf"s (these are struct buf's with pre-allocated kernel virtual address
space). They are used both by the (vfs) cluster code to do cluster file I/O
and by the VM system to do paging I/O. I think the 64K virtual space that is
allotted to each buffer is being overrun in some cases, clobbering the pbuf
VA space that follows. This could result in all sorts of interesting things,
like I/O getting done to wrong pages (or not at all to others). Of course,
this might not be the problem - but whatever it is, it is definately in
vfs_cluster.c.
   The workaround is to simply disable file read clustering. This escentially
causes the reads to degrade to the behavior that existed in FreeBSD 1.x as well
as other versions of "Unix". The other fix (the "long" version) is to replace
the cluster code with the code before John's recent rewrite of it - this also
gets rid of the sig 10/11 problems.
   The reason it took so long to find this is that the changes to vfs_cluster.c
have really nothing to do with the VM system changes that John made, and the
symptoms are clearly VM system related. vfs_cluster.c is not used to do page-
ins; clustering in the VM system happens using a different scheme that is
better tailored for that type of I/O.

>You are too cool.  8-).

   :-)

-DG



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