Message ID | 20240424203559.3420468-1-anthony.l.nguyen@intel.com (mailing list archive) |
---|---|
Headers | show |
Series | net: intel: start The Great Code Dedup + Page Pool for iavf | expand |
Hello: This series was applied to netdev/net-next.git (main) by Tony Nguyen <anthony.l.nguyen@intel.com>: On Wed, 24 Apr 2024 13:35:47 -0700 you wrote: > Alexander Lobakin says: > > Here's a two-shot: introduce {,Intel} Ethernet common library (libeth and > libie) and switch iavf to Page Pool. Details are in the commit messages; > here's a summary: > > Not a secret there's a ton of code duplication between two and more Intel > ethernet modules. Before introducing new changes, which would need to be > copied over again, start decoupling the already existing duplicate > functionality into a new module, which will be shared between several > Intel Ethernet drivers. The first name that came to my mind was > "libie" -- "Intel Ethernet common library". Also this sounds like > "lovelie" (-> one word, no "lib I E" pls) and can be expanded as > "lib Internet Explorer" :P > The "generic", pure-software part is placed separately, so that it can be > easily reused in any driver by any vendor without linking to the Intel > pre-200G guts. In a few words, it's something any modern driver does the > same way, but nobody moved it level up (yet). > The series is only the beginning. From now on, adding every new feature > or doing any good driver refactoring will remove much more lines than add > for quite some time. There's a basic roadmap with some deduplications > planned already, not speaking of that touching every line now asks: > "can I share this?". The final destination is very ambitious: have only > one unified driver for at least i40e, ice, iavf, and idpf with a struct > ops for each generation. That's never gonna happen, right? But you still > can at least try. > PP conversion for iavf lands within the same series as these two are tied > closely. libie will support Page Pool model only, so that a driver can't > use much of the lib until it's converted. iavf is only the example, the > rest will eventually be converted soon on a per-driver basis. That is > when it gets really interesting. Stay tech. > > [...] Here is the summary with links: - [net-next,v11,01/10] net: intel: introduce {, Intel} Ethernet common library https://git.kernel.org/netdev/net-next/c/306ec721d043 - [net-next,v11,02/10] iavf: kill "legacy-rx" for good https://git.kernel.org/netdev/net-next/c/53844673d555 - [net-next,v11,03/10] iavf: drop page splitting and recycling https://git.kernel.org/netdev/net-next/c/920d86f3c552 - [net-next,v11,04/10] slab: introduce kvmalloc_array_node() and kvcalloc_node() https://git.kernel.org/netdev/net-next/c/a1d6063d9f2f - [net-next,v11,05/10] page_pool: constify some read-only function arguments https://git.kernel.org/netdev/net-next/c/ef9226cd56b7 - [net-next,v11,06/10] page_pool: add DMA-sync-for-CPU inline helper https://git.kernel.org/netdev/net-next/c/ce230f4f8981 - [net-next,v11,07/10] libeth: add Rx buffer management https://git.kernel.org/netdev/net-next/c/e6c91556b97f - [net-next,v11,08/10] iavf: pack iavf_ring more efficiently https://git.kernel.org/netdev/net-next/c/97cadd3d3ce3 - [net-next,v11,09/10] iavf: switch to Page Pool https://git.kernel.org/netdev/net-next/c/5fa4caff59f2 - [net-next,v11,10/10] MAINTAINERS: add entry for libeth and libie https://git.kernel.org/netdev/net-next/c/87a927efa7d9 You are awesome, thank you!