OpenBSD cvs log

created 2022-11-26T11:36:06Z
begin 2022-11-22T00:00:00Z
end 2022-11-23T00:00:00Z
path src/sys
commits 6

date 2022-11-22T03:40:53Z
author dlg
files src/sys/net/ifq.c log diff annotate
src/sys/net/ifq.h log diff annotate
message count how many times ifiqs enqueue and dequeue packets.

network cards try to enqueue a list of packets on an ifiq once per
interrupt and ifiqs already count how many packets they're handling.
this let's us see how well interrupt mitigation is working on a
ring or interface. ifiqs are supposed to provide backpressure
signalling to a driver if it enqueues a lot more work than it's
able to process in softnet, so recording dequeues let's us see this
ratio.

date 2022-11-22T06:48:32Z
author jmatthew
files src/sys/dev/pci/if_mcx.c log diff annotate
message Allocate additional command queue slots and use command completion events
to run commands where we can sleep while waiting. Rather than actually
using it as a queue, just allocate the slots to particular uses.
The first slot is used for polled commands (anything run while cold),
then there's one for general ioctls, one for kstat reads, and one for
link operations. Since we can sleep while waiting now, we need to serialize
access to the command slots. This is done with rwlocks for the ioctl and
kstat slots, and link slot is only used from a single instance task.
This also means we don't need to hold the kernel lock while doing kstat
reads.

Using interrupt based command completion drops the time taken to read all
the kstats off mcx interfaces from tens of milliseconds to almost nothing,
which is a pretty big win when you're reading them every few seconds on
busy firewalls.

ok dlg@

date 2022-11-22T14:51:01Z
author kn
files src/sys/netinet6/in6.c log diff annotate
src/sys/netinet6/in6_var.h log diff annotate
src/sys/netinet6/nd6.h log diff annotate
message Remove useless struct in6_ifextra

in6_var.h r1.75 removed all other struct members.

Now It only contains a single struct nd_ifinfo pointer, so address family
specific data might as well be just that.

ND_IFINFO() is the only way nd6_nbr.c and nd6.c access this data, there is
no other usage of if_afdata[].

One allocation and unhelpful indirection less per interface.

All under _KERNEL.

OK claudio

date 2022-11-22T15:49:06Z
author kn
files src/sys/netinet6/in6.c log diff annotate
message Use local variable consistently

All prior lines in this function already use it, do so on the last one.

OK claudio

date 2022-11-22T19:28:29Z
author kn
files src/sys/netinet6/in6.c log diff annotate
src/sys/netinet6/in6_var.h log diff annotate
src/sys/netinet6/nd6.h log diff annotate
message Backout "Remove useless struct in6_ifextra" commit

I committed the wrong iteration of this diff, sorry for the noise.

date 2022-11-22T22:28:40Z
author sashan
files src/sys/net/pf_if.c log diff annotate
message Interface tables (a.k.a. kif) in pf(4) are currently protected
by NET_LOCK() only. This change makes them protected by PF_LOCK().
Having this change in tree will allow us to remove NET_LOCK()
protection from ioctl(2) code path in pf(4).

OK dlg@, kn@