OpenBSD cvs log

created 2019-05-08T03:59:42Z
begin 2017-12-15T00:00:00Z
end 2017-12-16T00:00:00Z
path src/sys
commits 4

date 2017-12-15T01:37:30Z
author dlg
files src/sys/net/if.c log diff annotate
src/sys/net/if_loop.c log diff annotate
src/sys/net/if_var.h log diff annotate
src/sys/net/ifq.c log diff annotate
src/sys/net/ifq.h log diff annotate
message add ifiqueues for mp safety and nics with multiple rx rings.

currently there is a single mbuf_queue per interface, which all
rings on a nic shove packets onto. while the list inside this queue
is protected by a mutex, the counters around it (ie, ipackets,
ibytes, idrops) are not. this means updates can be lost, and reading
the statistics is also inconsistent. having a single queue means
that busy rx rings can dominate and then starve the others.

ifiqueue structs are like ifqueue structs. they provide per ring
queues, and independent counters for each ring. when ifdata is read
for userland, these counters are aggregated. having a queue per
ring now allows for per ring backpressure to be applied. MCLGETI
will have it's day again.

right now we assume every interface wants an input queue and
unconditionally provide one. individual interfaces can opt into

im not completely happy about the shape of this atm, but shuffling
it around more makes the diff bigger.

ok visa@

date 2017-12-15T01:40:39Z
author dlg
files src/sys/net/ifq.c log diff annotate
message ifq_barrier should be callable by any nic, not just MPSAFE ones.

if (when) tx mitigation goes in again, all nics will have deferred
work that will need a barrier to ensure isn't running anymore.

found by bluhm@ when tx mit was in.

date 2017-12-15T05:56:08Z
author dlg
files src/sys/dev/pci/if_ixl.c log diff annotate
message put where im up to into the tree so jmatthew@ can look at it.

date 2017-12-15T09:15:36Z
author kettenis
files src/sys/dev/fdt/sxiccmu.c log diff annotate
message Add a few more Allwinner A80 clocks.