Regression test for vn_io_fault

Konstantin Belousov kostikbel at gmail.com
Wed Jun 5 19:13:17 UTC 2019


On Wed, Jun 05, 2019 at 12:58:21PM -0600, alan somers wrote:
> Thanks for the link.  But I can't tell what the expected failure mode is.
> Is it supposed to run until it deadlocks?  My idea is to rely on witness.
> It would just run once, and then query witness to see if there was a LOR.
Yes, the failure is a deadlock.

I doubt that witness can catch it at all, with the current structure of
page fault handler. Try to turn use of vn_io_fault off and see witness
warnings with upsdl.


> -Alan
> 
> On Wed, Jun 5, 2019, 12:06 PM Konstantin Belousov <kostikbel at gmail.com>
> wrote:
> 
> > On Wed, Jun 05, 2019 at 10:29:35AM -0600, Alan Somers wrote:
> > > r236321 added vn_io_fault(), a mechanism for avoiding lock order
> > > reversals when a process reads from one file into a mmap()ed buffer
> > > backed by another file.  From the description in the comments of
> > > vn_io_fault() it seems like it would be possible to write a reliable
> > > test that would trigger the LOR.  But I can't find any evidence in
> > > svn, or bugzilla of such a test program.  None in Phabricator either,
> > > which probably wasn't even running when that commit was made.  Did
> > > anybody ever write a test program?  If so, I volunteer to ATFify it.
> > The test program is in tools/test/upsdl. I object against removing
> > non-atf version on principle, atf tests are not debuggable. Also this is
> > racing test, so it is not as simple as doing N runs where N is fixed.
> >
> > Anyway, test for the ups@ race is included into stress2, where it belongs.
> >


More information about the freebsd-fs mailing list