Try a short busy-wait in acpiec_wait before falling back to tsleep
This greatly speeds up SMBus reading in acpisbs making its periodic
acpisbs_read execution go from ~6 seconds to 125 milliseconds,
preventing backlog in the ACPI task queue.
ok kettenis
bump PTHREAD_KEYS_MAX to 512
the rust libstd emutls version is using one pthread_key per thread-variable. it
means the maximum number of thread-variable at a time is PTHREAD_KEYS_MAX.
with recent rustc 1.91.0, we start hiting the limit while compiling some
programs (like sysutils/rustic).
ok robert@
"Let's go 512 and hope someone eventually does proper TLS" deraadt@
Fix copyout(9) error path winthin ifconf().
Currently if copyout() of interface address failed we continue with the
next interface, override error value and finally we modify `ifc_len' of
passed request. Return error value just after fail.
Also stop processing if userland buffer is full. No reason for lists
iterations null-ops.
ok bluhm deraadt
Introduce global interface queue limit.
Limit all multiqueue network interfaces to common IF_MAX_VECTORS.
Currently it is set to 8. One global limit helps to find an optimal
value, stops wasting interrupt vectors, and clarifies what are
actual hardware or driver limitations.
input jmatthew@; OK jan@ phessler@ kettenis@
First draft of a PRUNING subsection in the manual page which people
will read when sysupgrade prevents a dangerously-failing upgrade
because /usr is too full.
This explains some of the history and reasons why /usr is too full,
and also explains that sysupgrade / installer cannot delete any
detritus because it cannot identify it. More imporatntly, users also
will have a hard time identifying the detritus -- most of it is older
lib*.so.* libraries but there's no reasonable mechanism to traverse all
possible filesystems and ensure no binaries remain which use those
libraries.
rather than telling people hacky choices that might get them through this
sysupgrade, and fail next time, we choose to provide no hacky advice.
A bigger /usr is their best choice, which implies that it is time for a reinstall.
ok florian, sthen
If "df /usr" says the filesystem is over 90% full, rather than
potentially completely breaking the system, fail the sysupgrade. This
comes with a message pointing people to read a new Sub-Section PRUNING
in the manual page which will softly lead them to understand all the
nuances involved and that their best choice is to reinstall with a bigger
/usr.
script diff from florian
Remove struct router_info from global header file.
Do not expose struct router_info globally as is only used in igmp.c.
Remove it from netinet/in_var.h header to avoid visibility. Also
sort pointer before integer fields within struct.
OK tb@ mvs@
sndiod: Turn the watchdog timer into a simple debug warning
After an underrun (ex. during high system load), the audio device is
reset to a known working state. Then, once the system load allows it,
audio will make progress again. Consequently, closing the device and
disconnecting clients is not necessary anymore.
ok kirill
libsndio: Restart the audio(4) device upon underrun.
At the expense of slightly more audible underruns (restarting inserts
extra silence), this fixes the main cause of audio disconnects on high
system load and/or after a resume.
Attemting to compensate for the inserted silence without stopping DMA
is unreliable and too complex to get right.
ok kirill, tested by many
introduce source and state limiters in pf.
both source and state limiters can provide constraints on the number
of states that a set of rules can create, and optionally the rate
at which they are created. state limiters have a single limit, but
source limiters apply limits against a source address (or network).
the source address entries are dynamically created and destroyed,
and are also limited.
this started out because i was struggling to understand the source and
state tracking options in pf.conf, and looking at the code made it
worse. it looked like some functionality was missing, and the code also
did some things that surprised me. taking a step back from it, even it
if did work, what is described doesn't work well outside very simple
environments.
the functionality i'm talking about is most of the stuff in the
Stateful Tracking Options section of pf.conf(4).
[69 lines not shown]
Add a makefile to link rpki-client against openssl
If openssl and libretls are installed, this provides an easy way of
building an rpki-client binary using OpenSSL. On the one hand this
will ensure that we can build against -current OpenSSL and provides
an easy way to creating such a binary for testing purposes without
needing to deal with autoconf. I also plan to revamp our tests to
use file mode instead of the nasty reacharounds, so that we can use
the same set of tests against both libressl and openssl.
discussed with bluhm and job who both encouraged me to commit this.
Now I need a shower.
wire up cpu_xcall on amd64.
my original plan to have xcalls dispatch work to execute at softclock
wasnt going to work because the MI softintr code runs at IPL_HIGH,
not IPL_IPI. so i've redrawn the line between what MI and MD xcall
code.
the arch is now responsible for calling cpu_xcall_dispatch at
IPL_SOFTCLOCK, which means the arch has to turn an IPI into a
SOFTCLOCK call itself. it can be a lot more efficient at it than
the softintr code was though.
ok kettenis@
hshoexer@ wants to use this for psp(4).
don't try calling mtx_init_parking without ifdef __USE_MI_MUTEX
hppa (and m88k) have their own mutex code, so they don't have the
MI parking mutex.
found by deraadt@
hppa hardware help from jmatthew@
ok jca@ jmatthew@
Copy only `sa_len' bytes from sockaddr and fill the rest with nulls while
doing fill `ifr' within ifconf(). We have no one sockaddr* with size less
than sockaddr structure and always do addresses allocation with M_ZERO,
so there is no leak, but don't be careless.
ok bluhm deraadt