#
e22141d5 |
| 19-Nov-2018 |
visa <visa@openbsd.org> |
Utilize sigio with sockets.
OK mpi@
|
#
2bd648c0 |
| 20-Aug-2018 |
mpi <mpi@openbsd.org> |
Reorder checks in the read/write(2) family of syscalls to prepare making file operations mp-safe.
This change makes it clear that `f_offset' is only accessed in vn_read() and vn_write(), which will
Reorder checks in the read/write(2) family of syscalls to prepare making file operations mp-safe.
This change makes it clear that `f_offset' is only accessed in vn_read() and vn_write(), which will help taking it out of the KERNEL_LOCK().
This refactoring uncovered a race in vn_read() which is now documented and will be addressed in a later diff.
ok visa@
show more ...
|
#
4a4dc3ea |
| 30-Jul-2018 |
mpi <mpi@openbsd.org> |
Use FNONBLOCK instead of SS_NBIO to check/indicate that the I/O mode for sockets is non-blocking.
This allows us to G/C SS_NBIO. Having to keep the two flags in sync in a mp-safe way is complicated
Use FNONBLOCK instead of SS_NBIO to check/indicate that the I/O mode for sockets is non-blocking.
This allows us to G/C SS_NBIO. Having to keep the two flags in sync in a mp-safe way is complicated.
This change introduce a behavior change in sosplice(), it can now always block. However this should not matter much due to the socket lock being taken beforhand.
ok bluhm@, benno@, visa@
show more ...
|
#
30cae0e1 |
| 10-Jul-2018 |
mpi <mpi@openbsd.org> |
Move socket & pipe specific logic in their ioctl handler.
ok visa@, tb@
|
#
34bd5584 |
| 06-Jun-2018 |
mpi <mpi@openbsd.org> |
Pass the socket to sounlock(), this prepare the terrain for per-socket locking.
ok visa@, bluhm@
|
#
443bca73 |
| 26-Apr-2018 |
pirofti <pirofti@openbsd.org> |
Remove solock() surrounding PRU_CONTROL in soo_ioctl().
We do not need the lock there. Missed this in my former commit pushing NET_LOCK() down the stack.
Found the hard way by naddy@, sorry!
OK mp
Remove solock() surrounding PRU_CONTROL in soo_ioctl().
We do not need the lock there. Missed this in my former commit pushing NET_LOCK() down the stack.
Found the hard way by naddy@, sorry!
OK mpi@.
show more ...
|
#
e7e081a5 |
| 10-Apr-2018 |
mpi <mpi@openbsd.org> |
Convert 'struct fileops' definitions to C99.
ok millert@, deraadt@, florian@
|
#
3bf371cf |
| 10-Dec-2017 |
mpi <mpi@openbsd.org> |
Move SB_SPLICE, SB_WAIT and SB_SEL to `sb_flags', serialized by solock().
SB_KNOTE remains the only bit set on `sb_flagsintr' as it is set/unset in contexts related to kqueue(2) where we'd like to a
Move SB_SPLICE, SB_WAIT and SB_SEL to `sb_flags', serialized by solock().
SB_KNOTE remains the only bit set on `sb_flagsintr' as it is set/unset in contexts related to kqueue(2) where we'd like to avoid grabbing solock().
While here add some KERNEL_LOCK()/UNLOCK() dances around selwakeup() and csignal() to mark which remaining functions need to be addressed in the socket layer.
ok visa@, bluhm@
show more ...
|
#
b232ab76 |
| 14-Nov-2017 |
tb <tb@openbsd.org> |
Push the NET_LOCK into ifioctl() and use the NET_RLOCK in ifioctl_get(). In particular, this allows SIOCGIF* requests to run in parallel.
lots of help & ok mpi, ok visa, sashan
|
#
aa28b9a6 |
| 11-Aug-2017 |
mpi <mpi@openbsd.org> |
Remove NET_LOCK()'s argument.
Tested by Hrvoje Popovski, ok bluhm@
|
#
b7ae595a |
| 24-Jul-2017 |
mpi <mpi@openbsd.org> |
Grab the socket lock in soo_ioctl() where `so_state', `so_rcv' and `so_snd' are modified.
ok bluhm@, visa@
|
#
af41df57 |
| 20-Jul-2017 |
mpi <mpi@openbsd.org> |
Extend the scope of the socket lock in soo_stat() to protect `so_state' and `so_rcv'.
ok bluhm@, claudio@, visa@
|
#
45781617 |
| 22-Feb-2017 |
mpi <mpi@openbsd.org> |
Do not grab the NET_LOCK() when poll(2)ing on unix domain sockets.
Fix the 'X freeze' while scanning with wireless interfaces. Problem reported by pirofti@.
ok tb@, bluhm@
|
#
1f21cada |
| 14-Feb-2017 |
mpi <mpi@openbsd.org> |
Wrap the NET_LOCK() into a per-socket solock() that does nothing for unix domain sockets.
This should prevent the multiple deadlock related to unix domain sockets.
Inputs from millert@ and bluhm@,
Wrap the NET_LOCK() into a per-socket solock() that does nothing for unix domain sockets.
This should prevent the multiple deadlock related to unix domain sockets.
Inputs from millert@ and bluhm@, ok bluhm@
show more ...
|
#
872fc411 |
| 31-Jan-2017 |
mpi <mpi@openbsd.org> |
Remove the inifioctl hack, checking for an unheld NET_LOCK() in tsleep(9) & friends seem to only produce false positives and cannot be easily disabled.
|
#
2201f625 |
| 25-Jan-2017 |
mpi <mpi@openbsd.org> |
Introduce a hack to remove false-positives when looking for memory allocation that can sleep while holding the NET_LOCK().
To be removed once we're confident the remaining code paths are safe.
Disc
Introduce a hack to remove false-positives when looking for memory allocation that can sleep while holding the NET_LOCK().
To be removed once we're confident the remaining code paths are safe.
Discussed with deraadt@
show more ...
|
#
2b4720fc |
| 19-Dec-2016 |
mpi <mpi@openbsd.org> |
Introduce the NET_LOCK() a rwlock used to serialize accesses to the parts of the network stack that are not yet ready to be executed in parallel or where new sleeping points are not possible.
This f
Introduce the NET_LOCK() a rwlock used to serialize accesses to the parts of the network stack that are not yet ready to be executed in parallel or where new sleeping points are not possible.
This first pass replace all the entry points leading to ip_output(). This is done to not introduce new sleeping points when trying to acquire ART's write lock, needed when a new L2 entry is created via the RT_RESOLVE.
Inputs from and ok bluhm@, ok dlg@
show more ...
|
#
906cf29e |
| 22-Nov-2016 |
mpi <mpi@openbsd.org> |
Enforce that ifioctl() is called at IPL_SOFTNET.
This will allow us to keep locking simple as soon as we trade splsoftnet() for a rwlock.
ok bluhm@
|
#
a90c1397 |
| 21-Nov-2016 |
mpi <mpi@openbsd.org> |
Kill rtioctl() stub, returning EOPNOTSUPP since tree import.
ok jsg@
|
#
c0a948f7 |
| 21-Nov-2016 |
mpi <mpi@openbsd.org> |
Enforce that pr_usrreq functions are called at IPL_SOFTNET.
This will allow us to keep locking simple as soon as we trade splsoftnet() for a rwlock.
ok bluhm@, claudio@
|
#
7dc2a268 |
| 06-Oct-2016 |
bluhm <bluhm@openbsd.org> |
Separate splsoftnet() from variable initialization. From mpi@'s netlock diff; OK mikeb@
|
#
52dd740a |
| 05-Dec-2015 |
tedu <tedu@openbsd.org> |
remove stale lint annotations
|
#
64a3f76c |
| 13-May-2015 |
jsg <jsg@openbsd.org> |
test mbuf pointers against NULL not 0 ok krw@ miod@
|
#
b67858fa |
| 13-Jul-2014 |
tedu <tedu@openbsd.org> |
bzero -> memset. for the speeds.
|
#
d559b8cb |
| 30-Mar-2014 |
guenther <guenther@openbsd.org> |
Eliminates struct pcred by moving the real and saved ugids into struct ucred; struct process then directly links to the ucred
Based on a discussion at c2k10 or so before noting that FreeBSD and NetB
Eliminates struct pcred by moving the real and saved ugids into struct ucred; struct process then directly links to the ucred
Based on a discussion at c2k10 or so before noting that FreeBSD and NetBSD did this too.
ok matthew@
show more ...
|