OpenBSD cvs log

created 2021-01-30T23:04:14Z
begin 2021-01-25T00:00:00Z
end 2021-01-26T00:00:00Z
path src/sys
commits 12

date 2021-01-25T01:45:55Z
author dlg
files src/sys/dev/pci/if_mcx.c log diff annotate
message use an intrmap when establishing interrupts for queues.

mcx is still hardcoded/limited to 1 queue for now, but this lets
different mcx devices use different cpus for handling packets.

looks good jmatthew@

date 2021-01-25T03:40:46Z
author dlg
files src/sys/netinet/in_pcb.c log diff annotate
src/sys/netinet/in_pcb.h log diff annotate
src/sys/netinet/tcp_output.c log diff annotate
message if stoeplitz is enabled, use it to provide a flowid for tcp packets.

drivers that implement rss and multiple rings depend on the symmetric
toeplitz code, and use it to generate a key that decides with rx
ring a packet lands on. if the toeplitz code is enabled, this diff
has the pcb and tcp layer use the toeplitz code to generate a flowid
for packets they send, which in turn is used to pick a tx ring.
because the nic and the stack use the same key, the tx and rx sides
end up with the same hash/flowid. at the very least this means that
the same rx and tx queue pair on a particular nic are used for both
sides of the connection. as the stack becomes more parallel, it
will also help keep both sides of the tcp connection processing in
the one place.

date 2021-01-25T03:40:47Z
author dlg
files src/sys/netinet6/in6_pcb.c log diff annotate
message if stoeplitz is enabled, use it to provide a flowid for tcp packets.

drivers that implement rss and multiple rings depend on the symmetric
toeplitz code, and use it to generate a key that decides with rx
ring a packet lands on. if the toeplitz code is enabled, this diff
has the pcb and tcp layer use the toeplitz code to generate a flowid
for packets they send, which in turn is used to pick a tx ring.
because the nic and the stack use the same key, the tx and rx sides
end up with the same hash/flowid. at the very least this means that
the same rx and tx queue pair on a particular nic are used for both
sides of the connection. as the stack becomes more parallel, it
will also help keep both sides of the tcp connection processing in
the one place.

date 2021-01-25T09:11:36Z
author yasuoka
files src/sys/net/if_wg.c log diff annotate
message Fix wg(4) ioctl to be able to handle multiple wgpeers.
Diff from Yuichiro NAITO.

ok procter

date 2021-01-25T09:36:48Z
author dlg
files src/sys/dev/pci/if_mcx.c log diff annotate
message don't lose the M_FLOWID flag if the ipv4 cksum is ok.

found while poking around with hrvoje popovski
yes jmatthew@

date 2021-01-25T11:11:22Z
author dlg
files src/sys/dev/pci/if_ixl.c log diff annotate
message if the rx descriptor reports the rss hash, use it for the mbuf flowid.

ok jmatthew@

date 2021-01-25T12:27:42Z
author dlg
files src/sys/dev/pci/if_mcx.c log diff annotate
message raise the max number of queues/interrupts to 16, up from 1.

jmatthew@ has tried this before, but hrvoje popovski experienced
breakage so it wasn't enabled. we've tightened the code up since
then so it's time to try again.

this diff has been tested by hrvoje popovski and myself
ok jmatthew@

date 2021-01-25T14:05:57Z
author mglocker
files src/sys/dev/usb/usbdi_util.c log diff annotate
src/sys/dev/usb/usbdi_util.h log diff annotate
message Add the new function usbd_clear_endpoint_feature() which allows to issue
an UR_CLEAR_FEATURE request on a specific endpoint address without the
need to have a pipe open to that endpoint.

From NetBSD, ok mpi@

date 2021-01-25T14:14:42Z
author mglocker
files src/sys/dev/usb/ugen.c log diff annotate
src/sys/dev/usb/uhidev.c log diff annotate
message Resolve data toggle out of sync problem for ugen(4) and uhidev(4) devices
on xhci(4) controllers by clearing the interface endpoints before opening
the pipes.

Tested by Mikolaj Kucharski for ugen(4) and gnezdo@ for uhidev(4), plus
myself for both.

ok mpi@

date 2021-01-25T19:37:17Z
author kettenis
files src/sys/arch/arm64/arm64/machdep.c log diff annotate
src/sys/arch/arm64/arm64/pmap.c log diff annotate
message Give machdep.c a thorough cleanup that is long overdue.

ok patrick@

date 2021-01-25T19:37:18Z
author kettenis
files src/sys/arch/arm64/arm64/trap.c log diff annotate
message Give machdep.c a thorough cleanup that is long overdue.

ok patrick@

date 2021-01-25T19:47:16Z
author mvs
files src/sys/net/bridgectl.c log diff annotate
src/sys/net/bridgestp.c log diff annotate
src/sys/net/if_bridge.c log diff annotate
src/sys/net/if_bridge.h log diff annotate
message We have this sequence in bridge(4) ioctl(2) path:

ifs = ifunit(req->ifbr_ifsname);
if (ifs == NULL) {
error = ENOENT;
break;
}
if (ifs->if_bridgeidx != ifp->if_index) {
error = ESRCH;
break;
}
bif = bridge_getbif(ifs);

This sequence repeats 8 times. Also we don't check value returned by
bridge_getbig() before use. Newly introduced bridge_getbig() function
replaces this sequence. This not only reduces duplicated code but also
makes `bif' dereference safe.

ok bluhm@