Message ID | 20231124154732.1623518-1-aleksander.lobakin@intel.com |
---|---|
Headers | show |
Series | net: intel: start The Great Code Dedup + Page Pool for iavf | expand |
Fri, Nov 24, 2023 at 04:47:18PM CET, aleksander.lobakin@intel.com wrote: >Here's a two-shot: introduce Intel Ethernet common library (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 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. The world would not be the same without intel driver duplicates :/ Out of curiosity, what changed? I always thought this is done for sake of easier out of tree driver development and old device support dropping.
On 11/27/23 10:04, Jiri Pirko wrote: > Fri, Nov 24, 2023 at 04:47:18PM CET, aleksander.lobakin@intel.com wrote: >> Here's a two-shot: introduce Intel Ethernet common library (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 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. > > The world would not be the same without intel driver duplicates :/ :D > > Out of curiosity, what changed? I always thought this is > done for sake of easier out of tree driver development and old device > support dropping. > Some of Intel folks, with Olek as one of leading examples, really care about our upstream drivers. Recently (on HW-company timescale) Intel recognizes high costs of current duplicated-SW model, and I believe we will follow more modern-SW model where you apply such novel methodologies as code reuse via lib. (Disclaimer: it's not an official statement). OTOH our OOT drivers would benefit from libie too, but that was not a driving force.