net: low latency Ethernet device polling
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v10 Latest6 patches 18 repliesIn review
- v97 patches 23 repliesSuperseded
- v87 patches 11 repliesSuperseded
Earlier versions · 6
| Version | Posted | Patches | Replies | Status |
|---|---|---|---|---|
| v7 | 5 patches | 5 replies | Superseded | |
| v6 | 5 patches | 21 replies | Superseded | |
| v5 | 5 patches | 12 replies | Superseded | |
| v4 | 4 patches | 7 replies | Superseded | |
| v3 | 4 patches | 40 replies | Superseded | |
| v2 | 4 patches | 15 replies | Superseded |
Change log from the cover letter
v10
- removed select/poll support. (we will work on this some more and try again) v9
- correct sysctl proc_handler, reported by Eric Dumazet and Amir Vadai.
- more int -> bool changes, reported by Eric Dumazet.
- better mask testing in sock_poll(), reported by Eric Dumazet.
Patches in v10 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/6 | net: add napi_id and hashinclude/ net/ | +88 | 2 replies | |
| 2/6 | net: add low latency socket pollDocumentation/ include/ include/ +9 more | +208 | 2 replies | |
| 3/6 | udp: add low latency socket poll supportnet/ net/ net/ | +14 | 2 replies | |
| 4/6 | tcp: add low latency socket poll support.net/ net/ net/ | +9 | 2 replies | |
| 5/6 | ixgbe: add support for ndo_ll_polldrivers/ drivers/ drivers/ | +177 | 2 replies | |
| 6/6 | ixgbe: add extra stats for ndo_ll_polldrivers/ drivers/ drivers/ | +60 | 0 replies |
Reviews trailers per patch
4 of 6 patches have a Reviewed-by or Acked-by.
| Patch | Eric Dumazet | Willem de Bruijn | Jacob Keller |
|---|---|---|---|
| 1/6 | T-b | ||
| 2/6 | A-b | T-b | |
| 3/6 | A-b | T-b | |
| 4/6 | A-b | T-b | |
| 5/6 | R-b | A-b | |
| 6/6 |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 3 reviewers.
Cover letter [PATCH v10 net-next 0/6] net: low latency Ethernet device polling
David,
I removed the select/poll patch (was 5/7 in v9) from the set. The rest are the same patches that were in v9.
Please consider applying.
Thanks to everyone for their input.
-Eliezer
Change log:
v10
- removed select/poll support. (we will work on this some more and try again) v9
- correct sysctl proc_handler, reported by Eric Dumazet and Amir Vadai.
- more int -> bool changes, reported by Eric Dumazet.
- better mask testing in sock_poll(), reported by Eric Dumazet.
v8
- split out udp and select/poll into separate patches. what used to be patch 2/5 is now three patches.
- type corrections from Amir Vadai and Cong Wang:
one unsigned long that was left when changing to cycles_t int -> bool
- more detailed patch descriptions.
v7
- suggested by Ben Hutchings and Eric Dumazet:
type fixes, static for globals in net/core.c,
avoid napi_id collisions in napi_hash_add()
v6
- many small fixes suggested by Eric Dumazet:
data locality, typos, documentation
protect napi_hash insert/delete with a spinlock (napi_gen_id is no longer atomic_t since it's only accessed with the spinlock held.)
- added IPv6 TCP and UDP support (only minimally tested)
v5
- corrections suggested by Ben Hutchings:
fixed typos, moved the config option and sysctl value from IPv4 to net
- moved sk_mark_ll() to the protocol handlers
- removed global id mechanism, replaced with a hashed napi_id. based on code sample from Eric Dumazet
Note that ixgbe_free_q_vector() already waits an rcu grace period before freeing the q_vector, so nothing additional needs to be done when adding a call to napi_hash_del().
- simple poll/select support
v4
- removed separate config option for TCP as suggested Eric Dumazet.
- added linux mib counter for packets received through the low latency path, as suggested by Andi Kleen.
- re-allow module unloading, remove module param, use a global generation id instead to prevent the use of a stale napi pointer, as suggested by Eric Dumazet
- updated Documentation/networking/ip-sysctl.txt text
v3
- coding style changes suggested by Dave Miller
v2
- the sysctl knob is now in microseconds. The default value is now 0 (off).
- for now the code depends at configure time on CONFIG_I86_TSC
- the napi reference in struct skb is now a union with the dma cookie since the former is only used on RX and the latter on TX,
as suggested by Eric Dumazet.
- we do a better job at honoring non-blocking operations.
- removed busy-polling support for tcp_read_sock()
- remove dynamic disabling of GRO
- coding style fixes
- disallow unloading the device module after the feature has been used
Credit:
Jesse Brandeburg, Arun Chekhov Ilango, Julie Cummings, Alexander Duyck, Eric Geisler, Jason Neighbors, Yadong Li, Mike Polehn, Anil Vasudevan, Don Wood
Special thanks for finding bugs in earlier versions:
Willem de Bruijn and Andi Kleen