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@ |