Age | Commit message (Collapse) | Author |
|
the previous asserts checked if the mutex was locked by any cpu or
not when they should have been checking if the current cpu has the
lock or not.
found by miod after i enabled pool_gc again.
ok miod@
|
|
"shared reference pointers".
srp allows concurrent access to a data structure by multiple cpus
while avoiding interlocking cpu opcodes. it manages its own reference
counts and the garbage collection of those data structure to avoid
use after frees.
internally srp is a twisted version of hazard pointers, which are
a relative of RCU.
jmatthew wrote the bulk of a hazard pointer implementation and
changed bpf to use it to allow mpsafe access to bpfilters. however,
at s2k15 we were trying to apply it to other data structures but
the memory overhead of every hazard pointer would have blown out
significantly in several uses cases. a bulk of our time at s2k15
was spent reworking hazard pointers into srp.
this diff adds the srp api and adds the necessary metadata to struct
cpuinfo on our MP architectures. srp on uniprocessor platforms has
alternate code that is optimised because it knows there'll be no
concurrent access to data by multiple cpus.
srp is made available to the system via param.h, so it should be
available everywhere in the kernel.
the docs likely need improvement cos im too close to the implementation.
ok mpi@
|
|
compatibility with 4.3BSD in September 1989.
*Pick your own definition for "temporary".
ok bluhm@, claudio@, dlg@
|
|
talking about (*ifp->if_output)().
ok claudio@, dlg@
|
|
after the Ethernet header in its own function and use it in bridge_input().
This should fix alignment issues kettenis@ is seeing.
ok bluhm@, claudio@
|
|
ok kettenis@
|
|
ok jmatthew
|
|
for now to get jumbo frames working. oce(4) will need the same
treatment as ix(4) when sparc64 support will be implemented.
Tested by Pedro Caetano <pedrocaetano at binaryflows ! com>, thanks!
|
|
Allow to re-plug USB3 devices on the root hub withtout going through a
suspend/resume cycle (or rebooting) with Intel ICH7 xHCI as found the
hardway by sobrado@.
Debugging help from M.A.R. Osorio, tested by sobrado@
|
|
into its own functions.
Needed for upcoming "port link state" change handling.
Tested by sobrado@
|
|
This prevents rtentry loops when rt->rt_gwroute points to rt leading
to an infamous "rtentry leak" panic, easily triggered by dhclient(8)
trying to remove a route after resuming a machine.
This bug is at least 20 years old! 4.4BSD-Lite2 had a fix for it in
its X.25 output routine but apparently it never made it into OpenBSD.
ok claudio@
|
|
a tool parsing device descriptors.
Use the same name as DragonFly/FreeBSD since they export it to userland.
From Ludovic Coues.
|
|
tweaks and ok mpi@
|
|
if_input.
from and ok mpi@
|
|
|
|
sys/sys/atomic.h default of __sync_synchronize() resulted in "dmb sy",
a full system barrier for all memory operations. With this change
membar_producer() switches to "dmb st" (StoreStore).
earlier version ok rapha@
|
|
ago and I forgot to commit this until now.
From Wei Liu <wei.liu2 at citrix.com>
ok mikeb@, guenther@, ratchov@
|
|
ok guenther@, millert@
|
|
registers. This lets us kill the special handling of pid 1 in fork and
merge {proc,child}_trampoline(). Do the same if ptrace(PT_SETREGS) is used
to modify registers.
ok mlarkin@ kettenis@
|
|
with some modes on machines with the 915GM chipset.
discussed with jsg@
|
|
|
|
so we can build dwc2 without extra stuff.
tested by several edgerouter lite owners, ok jasper@
|
|
|
|
Don't skip the AST check when returning from *fork() in the child.
Make sure to count interrupts even when they're deferred or stray.
testing by krw@, and then many via snapshots
|
|
testing by krw@, and then many via snapshots
|
|
|
|
there's an `sc' local variable. This allows us to no longer have to fake a
softc at match time.
|
|
|
|
too.
|
|
legit enabled ones
problem reported by Pedro Caetano (pedrocaetano (at) binaryflows.com)
ok kettenis@
|
|
ok jsg@
|
|
ok mpi@
|
|
deraadt@ thinks this isn't worth it, but reyk@ and mlarkin@ tested it anyway
|
|
|
|
this break some devices.
As found the hardway by Hugo Sastre via sobrado@
|
|
ok mpi@
|
|
hw_prod is not initialized.
While here simply use "PowerBook" as model name, there's no "iBook"
model in Apple device-trees.
ok miod@ (who's cleaning one of his forests after 3 years)
|
|
<sys/audioio.h>
|
|
don't attach the ad1848 driver. But the "malloc" method of gus_hw_if
is ad1848_malloc() which assumes a ad1848 is attached (and expect the
softc pointer to be a struct ad1848_softc, but get a gus_softc pointer
instead). Implement, the missing gus_{malloc,free,mappage,...}
routines. Add the missing mtx_{enter,leave} calls, as we're at it.
Found by mlarkin.
ok mlarkin
|
|
tested by reyk, mlarkin, others
|
|
it to unsigned, and we need to also check for negative values.
All users of OF_getprop() did this but that one.
ok mpi@
|
|
From Visa Hankala.
|
|
In bridge(4) speak, broadcast-like packets are Ethernet Multicast
frames or Unicast for which the destination is unknown.
It makes sense to not retransmit broadcast-like packets on the interface
they were received but they still must be delivered to the network stack.
Problem reported by and ok jasper@
|
|
|
|
This fix some weird bridge(4) configurations involving pseudo-drivers
stacked on top of interfaces in a bridge.
Also simplifies the loop prevention logic to match bridge's input path.
Instead of using a tag per port/bridge simply flag output mbufs to make
sure only one copy per bridge go through bridge_output().
ok bluhm@, claudio@
|
|
Not all drivers make use of ether_output() and there's no real reason to
call it when no ARP resolution is needed. But in this case we still want
to make sure we're sending packets in the correct rdomain.
ok bluhm@, claudio@ as part of a larger diff.
|
|
Even if this counter is subject to trashing it is a simple solution
and gives an proximation "good enough" of the number of IPIs on Quad
CPUs machine.
ok deraadt@
|
|
functionality. Same API and ABI except for the removed bits and no
behaviour change for programs using libsndio. With help from armani@
and mpi@, thanks.
|
|
inside MP_LOCKDEBUG.
|
|
|