From: Joe Damato <jdam...@fastly.com> Date: Mon, 30 Sep 2024 15:17:46 -0700
> On Mon, Sep 30, 2024 at 03:10:41PM +0200, Przemek Kitszel wrote: >> On 9/30/24 14:38, Alexander Lobakin wrote: >>> From: Alexander Lobakin <aleksander.loba...@intel.com> >>> Date: Mon, 30 Sep 2024 14:33:45 +0200 >>> >>>> From: Joe Damato <jdam...@fastly.com> >>>> Date: Wed, 25 Sep 2024 18:00:17 +0000 >> >>> struct napi_struct doesn't have any such fields and doesn't depend on >>> the kernel configuration, that's why it's hardcoded. >>> Please don't change that, just adjust the hardcoded values when needed. >> >> This is the crucial point, and I agree with Olek. >> >> If you will find it more readable/future proof, feel free to add >> comments like /* napi_struct */ near their "400" part in the hardcode. >> >> Side note: you could just run this as a part of your netdev series, >> given you will properly CC. > > I've already sent the official patch because I didn't hear back on > this RFC. > > Sorry, but I respectfully disagree with you both on this; I don't > think it makes sense to have code that will break if fields are > added to napi_struct thereby requiring anyone who works on the core > to update this code over and over again. > > I understand that the sizeofs are "meaningless" because of your > desire to optimize cachelines, but IMHO and, again, respectfully, it > seems strange that any adjustments to core should require a change > to this code. But if you change any core API, let's say rename a field used in several drivers, you anyway need to adjust the affected drivers. It's a common practice that some core changes require touching drivers. Moreover, sizeof(struct napi_struct) doesn't get changed often, so I don't see any issue in adjusting one line in idpf by just increasing one value there by sizeof(your_new_field). If you do that, then: + you get notified that you may affect the performance of different drivers (napi_struct is usually embedded into perf-critical structures in drivers); + I get notified (Cced) that someone's change will affect idpf, so I'll be aware of it and review the change; - you need to adjust one line in idpf. Is it just me or these '+'s easily outweight that sole '-'? > > I really do not want to include a patch to change the size of > napi_struct in idpf as part of my RFC which is totally unrelated to > idpf and will detract from the review of my core changes. One line won't distract anyone. The kernel tree contains let's say one patch from me where I needed to modify around 20 drivers within one commit due to core code structure change -- the number of locs I changed in the drivers was way bigger than the number of locs I changed in the core. And there's a ton of such commits in there. Again, it's a common practice. > > Perhaps my change is unacceptable, but there should be a way to deal > with this that doesn't require everyone working on core networking > code to update idpf, right? We can't isolate the core code from the drivers up to the point that you wouldn't require to touch the drivers at all when working on the core changes, we're not Windows. The drivers and the core are inside one tree, so that such changes can be made easily and no code inside the whole tree is ABI (excl uAPI). Thanks, Olek