created | 2023-08-05T16:55:11Z |
---|---|
begin | 2023-07-30T01:15:42Z |
end | 2023-07-30T01:41:05Z |
path | src/sys |
commits | 1 |
date | 2023-07-30T01:41:05Z | |||
---|---|---|---|---|
author | dlg | |||
files | src/sys/dev/pci/if_vmx.c | log | diff | annotate |
message |
tighten up the tx start/completion handling of the producer and consumer. the hypervisor obvious snoops the descriptor rings like crazy, and it can run and complete transmit of packets as soon as the ownership bit is set on the descriptor and before the txh register is updated with the producer index. txintr would only process tx completions if the producer and consumer indexes the driver maintains were different, but would then go and pop every packet the hardware said was done off the ring. this changes txintr so it will only iterate over packets between the driver consumer and producer indexes. also, have the start code update the producer before flipping the ownership bit in the ring. this keeps the start and intr code in sync. |