Age | Commit message (Collapse) | Author |
|
Send buffer is scaled by not accounting unacknowledged on the wire
data against the buffer limit. Receive buffer scaling is done similar
to FreeBSD -- measure the delay * bandwith product and base the
buffer on that. The problem is that our RTT measurment is coarse
so it overshoots on low delay links. This does not matter that much
since the recvbuffer is almost always empty.
Add a back pressure mechanism to control the amount of memory
assigned to socketbuffers that kicks in when 80% of the cluster
pool is used.
Increases the download speed from 300kB/s to 4.4MB/s on ftp.eu.openbsd.org.
Based on work by markus@ and djm@.
OK dlg@, henning@, put it in deraadt@
|
|
|
|
|
|
reason to question himself by adding an XXX
|
|
hardcoding 0.
roughly almost a bit equivalent to what pf_test_rule does. changing the
rdomain for not reassembled fragments is not going to work ever, so the
full dance pf_test_rule does doesn't make sense here.
speaking of sense, I don't see anything remotely resembling sense in
pf filtering on fragments without reassembling them first.
with/ok claudio
|
|
pf_test_rule will have done it already, as correctly XXX-comment noted by
claudio almost a year ago.
pf_test6 (which is scarily different there) didn't have that at all.
|
|
/* XXX This does NOT affect pass rules! */
SLIST_FOREACH(ri, &s->match_rules, entry) {
...
delete that comment, entirely superfluous
|
|
pf_compare_state_keys will stay, we play safe.
|
|
|
|
ok deraadt@, miod@
|
|
geometry. it doesnt matter waht the value there is cos rigid will be NULL,
but this is clearer.
|
|
|
|
|
|
|
|
ok henning@
|
|
woken up by a wakeup, but only by the actual timeout expiry. On
architectures which share a kva upage area between processes, we would
not want an accidental wakeup (too short).
discussed with various
|
|
curproc. A bunch of callers were passing in 0 (not even NULL, 0) as this
pointer, which was fine until the called vnode function tried to do
something with it. Typically, this code was then copy/pasted to various
parts of the tree.
Accept the facts of life and switch all of these over to passing curproc
for now until the argument can be removed.
Discovered by stsp trying to create a softraid on top of a vnd, which
crashed with a NULL deref in vndioctl.
softraid bits tested by mikeb and jsing. raidframe bits tested by pea,
matthieu and naddy. The rest tested by at least thib, jsing and myself.
ok thib@, jsing@.
|
|
fail it is still good practise to either check the return value or to
provide a flag that won't (to avoid copy pasted code that gets it
wrong).
So change LK_EXCLUSIVE to LK_EXCLUSIVE | LK_RETRY, removing the one
caller of vn_lock in the tree that doesn't either pass LK_RETRY or check
the return value.
ok thib@, jsing@ as part of a larger diff.
|
|
/* something */
if (error) {
VOP_UNLOCK();
return;
}
VOP_UNLOCK();
to the clearer and shorter:
VOP_UNLOCK();
if (error)
return;
ok thib@, jsing@ as part of a larger diff.
|
|
the device driver which has DEACTIVATE processing seems to no need to
set dying flag in the detach() function because the flag will be set
in the DEACTIVATE process before detach().
ok jsg@, ok for experiment deraadt@
|
|
with an offset equal to the actual data length.
ok henning blambert
|
|
ok deraadt@
|
|
ok deraadt@
|
|
behaviour consistent between IPv4 and IPv6.
From martin.pelikan@gmail.com
|
|
Okay miod@.
|
|
ok deraadt@ krw@
|
|
providing the DKF_NOLABELREAD flag is not set. This provides the kernel
with the actual disklabel which includes the disklabel UID.
ok deraadt@ miod@ krw@
|
|
automatic reading of disklabel on attach.
ok deraadt@ miod@ krw@
|
|
|
|
|
|
ok claudio@
|
|
|
|
instead of letting hardware rings grow on every interrupt, restrict
it so it can only grow once per softclock tick. we can only punish
the rings on softclock ticks, so it make sense to only grow on
softclock tick boundaries too.
the rings are now punished after >1 lost softclock tick rather than
>2. mclgeti is now more aggressive at detecting livelock.
the rings get punished by an 8th, rather than by half.
we now allow the rings to be punished again even if the system is
already considered in livelock.
without this diff a livelocked system will have its rx ring sizes
scale up and down very rapidly, while holding the rings low for too
long. this affected throughput significantly.
discussed and tested heavily at j2k10. there are still some games
with softnet we can play, but this is a good first step.
"put it in" and ok deraadt@
ok claudio@ krw@ henning@ mcbride@
if we find out that it sucks we can pull it out again later. till then
we'll run with it and see how it goes.
|
|
netatalk enabled.
|
|
becaue it skips a wakeup() later on. this is the only error condition
that returns before the wakeup. not sure why this particular case is
handled differently, and not certain what the error code should be, but
this is better than breaking all of usb because of a problem on one port.
dicussed with deraadt
|
|
* usbd_device_handle dev - the device responsible for the task. use
this to not run the task if the device's hub is dying.
* int running - a flag to be set when the task is running.
add usb_rem_wait_task(), a wrapper for usb_rem_task() that waits for
the task to complete if the task is already running.
s/usb_rem_task/usb_rem_wait_task/ in usb_detach(). probably most
drivers using usb_tasks should do this as well. although device
attach/detach is serialized in normal cases, in the special case
where the usb bus is hotpluggable (like cardbus/pcmcia), devices
are not detached in the task thread.
|
|
is dying, instead of setting a flag in struct usb_softc. as
usbd_device_handle has a pointer to the usbd_bus it's attached to,
usb devices, and functions they run or functions run on their behalf,
can now easily check if their bus is dying. use this to stop
usbd_do_request* from running and the usb task thread from adding
new tasks when a device's bus is dying.
|
|
hubs before their first port explore, check how long it's actually
been since power up and only wait as necessary. saves a little time
on boot, especially now that explore tasks are serialized.
ok yuo@
|
|
OK dlg@
|
|
USB bus, make usb_explore() a usb_task. reduces races during normal
USB device detach, since now usb_tasks and detach happen in the same
process.
ok yuo@, matthew@ helped with the task thread loop
|
|
"yup" deraadt@
|
|
support by pipex.
OK henning@, "Carry on" blambert@
|
|
OK krw
|
|
suspend/resume support
|
|
|
|
ok jsg@
|
|
RFC 4106 and 4543.
Authentication hash key is set to be the same as an encryption key.
The length that is specified for the authentication hash descriptor
denotes the the length of Additional Authentication Data (AAD).
The encryption transformation descriptor length denotes the length
of the payload (to be encrypted and authenticated).
ENCR_NULL_AUTH_AES_GMAC treats all input as AAD, thus the encryption
length is set to zero.
This also fixes padding for stream ciphers, so that payload will
be 4-byte aligned.
|
|
and pipex. pppx(4) creates an interface whenever a session is created
so that altq and pf can work on these.
Started by dlg@ debugged and made usable by myself
OK dlg@ yasuoka@ deraadt@
|
|
RFC 4106 and 4543.
Please note that although IKEv1 and IKEv2 identifiers are
different for ESP_NULL_AUTH_AES-GMAC (SADB_X_EALG_AESGMAC),
we use the IKEv2 one only (which is 21). ipsecctl(8) will
be taught to handle exported SA correctly.
|
|
tc_intr_disestablish() prototype is changed to carry information whether the
counter needs to be detached or not.
This does not matter much since no driver ever calls tc_intr_disestablish().
|