<feed xmlns='http://www.w3.org/2005/Atom'>
<title>wireguard-openbsd/sys/nfs/nfsnode.h, branch jd/queueboosts</title>
<subtitle>WireGuard implementation for the OpenBSD kernel</subtitle>
<id>https://git.zx2c4.com/wireguard-openbsd/atom/sys/nfs/nfsnode.h?h=jd%2Fqueueboosts</id>
<link rel='self' href='https://git.zx2c4.com/wireguard-openbsd/atom/sys/nfs/nfsnode.h?h=jd%2Fqueueboosts'/>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/'/>
<updated>2019-01-21T18:09:21Z</updated>
<entry>
<title>Introduce a dedicated entry point data structure for file locks. This new data</title>
<updated>2019-01-21T18:09:21Z</updated>
<author>
<name>anton</name>
<email>anton@openbsd.org</email>
</author>
<published>2019-01-21T18:09:21Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=6bd4f7ca0ef936d4e355b60a534d1efc45dff893'/>
<id>urn:sha1:6bd4f7ca0ef936d4e355b60a534d1efc45dff893</id>
<content type='text'>
structure allows for better tracking of pending lock operations which is
essential in order to prevent a use-after-free once the underlying vnode is
gone.

Inspired by the lockf implementation in FreeBSD.

ok visa@

Reported-by: syzbot+d5540a236382f50f1dac@syzkaller.appspotmail.com
</content>
</entry>
<entry>
<title>Implement proper locking for NFS nodes.</title>
<updated>2018-05-05T11:54:11Z</updated>
<author>
<name>mpi</name>
<email>mpi@openbsd.org</email>
</author>
<published>2018-05-05T11:54:11Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=53ae78e5c8685444295de5425173d1e56b3eae35'/>
<id>urn:sha1:53ae78e5c8685444295de5425173d1e56b3eae35</id>
<content type='text'>
Tested in bulks by many. ok visa@, beck@
</content>
</entry>
<entry>
<title>Make sillyrename not so damn silly. The kindergarten algorithm here for</title>
<updated>2009-12-15T15:53:48Z</updated>
<author>
<name>beck</name>
<email>beck@openbsd.org</email>
</author>
<published>2009-12-15T15:53:48Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=482c7c115fdae33459bb8f2cb77f08dd95529322'/>
<id>urn:sha1:482c7c115fdae33459bb8f2cb77f08dd95529322</id>
<content type='text'>
picking a name meant that more than 58 sillys in a directory and we fail
with EINVAL, resulting in strange problems for nfs which in turn causes
pain and stress in building, and PTSD in nfs and vfs hackers. Has bit us
in the butt since the vienna f2k7 hackathon.

good suggestions from deraadt@ guenther@ and otto@

ok deraadt@,oga@,blambert@,krw@,guenther@, and a "very special ok" tedu@

Oh god, I'm an nfs hacker..
</content>
</entry>
<entry>
<title>Backout the asyncio/aiod change, as it causes buf's to get hung.</title>
<updated>2009-09-02T18:20:54Z</updated>
<author>
<name>thib</name>
<email>thib@openbsd.org</email>
</author>
<published>2009-09-02T18:20:54Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=9c9522aef4377907b3328bfb62e786a97ac04324'/>
<id>urn:sha1:9c9522aef4377907b3328bfb62e786a97ac04324</id>
<content type='text'>
problem noticed by deraadt@

ok beck@
</content>
</entry>
<entry>
<title>introduce a flag member to struct nfs_aiod, and use flags instead of the exit</title>
<updated>2009-08-27T23:26:56Z</updated>
<author>
<name>thib</name>
<email>thib@openbsd.org</email>
</author>
<published>2009-08-27T23:26:56Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=00cb47382d7b1975afa6a1c047964d09dbaf54c8'/>
<id>urn:sha1:00cb47382d7b1975afa6a1c047964d09dbaf54c8</id>
<content type='text'>
and worked members. nad_worked becomes NFSAIOD_WAKEUP, which is set after if
an aiod was removed from the idle list and woken up by nfs_asyncio().

don't rely on tsleep wchans being unique, that is keep going back to sleep if
woken up unless the NFSAIOD_WAKEUP flag is set.

fix a divide by zero crash if nfs.vfs.iothreads is set to 0, as that can happen
when we recalculate the maximum buf's to queue up for each aiod.

in nfs_asyncio() set the nad_mnt to NULL before returning the aiod back to the
idle list in the case where we have already queued up to many bufs, otherwise
we trip an assertion.

minimize the time we are holding the nfs_aiodl_mtx to only when we are inserting
or removing from the lists, with the exception of nfs_set_naiod() as it would
make the loops more complicated and its uncommon in any case.

tested by myself and deraadt@
"fine with me" deraadt@
</content>
</entry>
<entry>
<title>make sure that an aiod has been removed from the nfs_aiods_idle list</title>
<updated>2009-08-26T12:08:10Z</updated>
<author>
<name>thib</name>
<email>thib@openbsd.org</email>
</author>
<published>2009-08-26T12:08:10Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=7ae834763f3b211b20afc5742144def2ddb93829'/>
<id>urn:sha1:7ae834763f3b211b20afc5742144def2ddb93829</id>
<content type='text'>
before inserting it back into the list.

crashes debugged with help from deraadt@ who also tested this fix.
</content>
</entry>
<entry>
<title>Rework the way we do async I/O in nfs. Introduce separate buf queues for</title>
<updated>2009-08-20T15:04:24Z</updated>
<author>
<name>thib</name>
<email>thib@openbsd.org</email>
</author>
<published>2009-08-20T15:04:24Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=0324048376a3be805af0956efb4d721b44c78185'/>
<id>urn:sha1:0324048376a3be805af0956efb4d721b44c78185</id>
<content type='text'>
each mount, and when work is "found", peg an aiod to that mount todo the
I/O. Make nfs_asyncio() a bit smarter when deciding when to do asyncio
and when to force it sync, this is done by keeping the aiod's one two lists,
an "idle" and an "all" list, so asyncio is only done when there are aiods
hanging around todo it for us or are already pegged to the mount.

Idea liked by at least beck@ (and I think art@).
Extensive testing done by myself and jasper and a few others on various
arch's.

Ideas/Code from Net/Free.

OK blambert@.
</content>
</entry>
<entry>
<title>Use an RB tree instead of a hashtable for fh/node lookups.</title>
<updated>2009-08-10T10:59:11Z</updated>
<author>
<name>thib</name>
<email>thib@openbsd.org</email>
</author>
<published>2009-08-10T10:59:11Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=e54eb321b579286ca3146523210a3e9c42962ae1'/>
<id>urn:sha1:e54eb321b579286ca3146523210a3e9c42962ae1</id>
<content type='text'>
Idea from NetBSD.

OK blambert@
</content>
</entry>
<entry>
<title>Use a timespec instead of a time_t for the clients nfsnode</title>
<updated>2009-01-24T23:30:42Z</updated>
<author>
<name>thib</name>
<email>thib@openbsd.org</email>
</author>
<published>2009-01-24T23:30:42Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=c585412d3e2a158f3d8e11095e301311f1a49236'/>
<id>urn:sha1:c585412d3e2a158f3d8e11095e301311f1a49236</id>
<content type='text'>
mtime, gives us better granularity, helps with cache consistency.

Idea lifted from NetBSD.

OK blambert@
</content>
</entry>
<entry>
<title>Introduce a macro to invalidate the attribute</title>
<updated>2009-01-19T23:40:36Z</updated>
<author>
<name>thib</name>
<email>thib@openbsd.org</email>
</author>
<published>2009-01-19T23:40:36Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=fdc7e2e58d1bb00cdcc1be13de80732ae071c84a'/>
<id>urn:sha1:fdc7e2e58d1bb00cdcc1be13de80732ae071c84a</id>
<content type='text'>
cache instead of setting n_attrstamp to 0 directly.

Lift the macro name from NetBSD.
prompted by and OK blambert@
</content>
</entry>
</feed>
