<feed xmlns='http://www.w3.org/2005/Atom'>
<title>wireguard-openbsd/sys/kern/sys_pipe.c, branch jd/queueboosts</title>
<subtitle>WireGuard implementation for the OpenBSD kernel</subtitle>
<id>https://git.zx2c4.com/wireguard-openbsd/atom/sys/kern/sys_pipe.c?h=jd%2Fqueueboosts</id>
<link rel='self' href='https://git.zx2c4.com/wireguard-openbsd/atom/sys/kern/sys_pipe.c?h=jd%2Fqueueboosts'/>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/'/>
<updated>2020-06-19T02:08:48Z</updated>
<entry>
<title>backout pipe change, it crashes some arch</title>
<updated>2020-06-19T02:08:48Z</updated>
<author>
<name>deraadt</name>
<email>deraadt@openbsd.org</email>
</author>
<published>2020-06-19T02:08:48Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=8631d7d972792c6c7fa7099b8e25765d2df2a208'/>
<id>urn:sha1:8631d7d972792c6c7fa7099b8e25765d2df2a208</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Instead of performing three distinct allocations per created pipe,</title>
<updated>2020-06-17T18:29:28Z</updated>
<author>
<name>anton</name>
<email>anton@openbsd.org</email>
</author>
<published>2020-06-17T18:29:28Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=15ad1813789d0ac9ab1cb6bcd5eabf14996ca0d9'/>
<id>urn:sha1:15ad1813789d0ac9ab1cb6bcd5eabf14996ca0d9</id>
<content type='text'>
reduce it to a single one. Not only should this be more performant, it
also solves a kqueue related issue found by visa@ who also requested
this change: if you attach an EVFILT_WRITE filter to a pipe fd, the
knote gets added to the peer's klist. This is a problem for kqueue
because if you close the peer's fd, the knote is left in the list whose
head is about to be freed. knote_fdclose() is not able to clear the
knote because it is not registered with the peer's fd.
FreeBSD also takes a similar approach to pipe allocations.

ok mpi@ visa@
</content>
</entry>
<entry>
<title>Set __EV_HUP when the conditions matching poll(2)'s POLLUP are found.</title>
<updated>2020-06-15T15:29:40Z</updated>
<author>
<name>mpi</name>
<email>mpi@openbsd.org</email>
</author>
<published>2020-06-15T15:29:40Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=2b88cdafd374c425bef518b6071e7ccde4677902'/>
<id>urn:sha1:2b88cdafd374c425bef518b6071e7ccde4677902</id>
<content type='text'>
This is only done in poll-compatibility mode, when __EV_POLL is set.

ok visa@, millert@
</content>
</entry>
<entry>
<title>Abstract the head of knote lists. This allows extending the lists,</title>
<updated>2020-04-07T13:27:50Z</updated>
<author>
<name>visa</name>
<email>visa@openbsd.org</email>
</author>
<published>2020-04-07T13:27:50Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=9c969c9ab4dbfc69101f439c13329bb852e9fe18'/>
<id>urn:sha1:9c969c9ab4dbfc69101f439c13329bb852e9fe18</id>
<content type='text'>
for example, with locking assertions.

OK mpi@, anton@
</content>
</entry>
<entry>
<title>Replace field f_isfd with field f_flags in struct filterops to allow</title>
<updated>2020-02-20T16:56:51Z</updated>
<author>
<name>visa</name>
<email>visa@openbsd.org</email>
</author>
<published>2020-02-20T16:56:51Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=b821368957f060d7b1e9eeaa4fbc563e892edb32'/>
<id>urn:sha1:b821368957f060d7b1e9eeaa4fbc563e892edb32</id>
<content type='text'>
adding more filter properties without cluttering the struct.

OK mpi@, anton@
</content>
</entry>
<entry>
<title>Unconditionally acquiring a write lock in pipe_ioctl() is quite</title>
<updated>2020-02-16T07:59:08Z</updated>
<author>
<name>anton</name>
<email>anton@openbsd.org</email>
</author>
<published>2020-02-16T07:59:08Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=42e31c228413cc665b52f53adf7450715f9bcdcd'/>
<id>urn:sha1:42e31c228413cc665b52f53adf7450715f9bcdcd</id>
<content type='text'>
excessive as only one command actually modifies the pipe. The sigio
subsystem is already internally protected using its own lock. This is
similar to what soo_ioctl() already does.

ok mpi@ visa@
</content>
</entry>
<entry>
<title>Push the KERNEL_LOCK() insidge pgsigio() and selwakeup().</title>
<updated>2020-02-14T14:32:44Z</updated>
<author>
<name>mpi</name>
<email>mpi@openbsd.org</email>
</author>
<published>2020-02-14T14:32:44Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=112e0b7cd8c0810f5e6ec8c11d147cff217a606d'/>
<id>urn:sha1:112e0b7cd8c0810f5e6ec8c11d147cff217a606d</id>
<content type='text'>
The 3 subsystems: signal, poll/select and kqueue can now be addressed
separatly.

Note that bpf(4) and audio(4) currently delay the wakeups to a separate
context in order to respect the KERNEL_LOCK() requirement.  Sockets (UDP,
TCP) and pipes spin to grab the lock for the sames reasons.

ok anton@, visa@
</content>
</entry>
<entry>
<title>Back out previous. Nothing wrong with the diff per se but I should have</title>
<updated>2020-02-01T15:52:34Z</updated>
<author>
<name>anton</name>
<email>anton@openbsd.org</email>
</author>
<published>2020-02-01T15:52:34Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=52cbe52912ac7d75938196a4b47625f1d6d61bb3'/>
<id>urn:sha1:52cbe52912ac7d75938196a4b47625f1d6d61bb3</id>
<content type='text'>
asked for more oks; my bad!
</content>
</entry>
<entry>
<title>Grab the kernel lock in pgsigio() as it's strictly needed while</title>
<updated>2020-02-01T15:06:21Z</updated>
<author>
<name>anton</name>
<email>anton@openbsd.org</email>
</author>
<published>2020-02-01T15:06:21Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=fec696e8b19f2ebeba1c5bca5b14987979b47d40'/>
<id>urn:sha1:fec696e8b19f2ebeba1c5bca5b14987979b47d40</id>
<content type='text'>
operating on the process structure and issuing signals. This is similar
to what sigio_setown() already does.

With this in place, the pipe subsystem is no longer required to grab the
kernel lock before calling pgsigio().

ok visa@
</content>
</entry>
<entry>
<title>condense comment</title>
<updated>2020-01-12T09:18:39Z</updated>
<author>
<name>anton</name>
<email>anton@openbsd.org</email>
</author>
<published>2020-01-12T09:18:39Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=ea998dad1e2381e4e26aeb8c67ce1425a6411c43'/>
<id>urn:sha1:ea998dad1e2381e4e26aeb8c67ce1425a6411c43</id>
<content type='text'>
</content>
</entry>
</feed>
