diff options
author | Jakub Kicinski <kuba@kernel.org> | 2024-12-19 18:52:38 -0800 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2024-12-23 10:35:55 -0800 |
commit | 3a856ab347261870d2bb6f3cab95325f27eee104 (patch) | |
tree | 09c9daa0b984e4d8317ddac096df8e585bcdabca /net | |
parent | db7159c400ffbbf3e0df1f3ef6b847b7b62186a3 (diff) |
eth: fbnic: add IRQ reuse support
Change our method of swapping NAPIs without disturbing existing config.
This is primarily needed for "live reconfiguration" such as changing
the channel count when interface is already up.
Previously we were planning to use a trick of using shared interrupts.
We would install a second IRQ handler for the new NAPI, and make it
return IRQ_NONE until we were ready for it to take over. This works fine
functionally but breaks IRQ naming. The IRQ subsystem uses the IRQ name
to create the procfs entry, since both handlers used the same name
the second handler wouldn't get a proc directory registered.
When first one gets removed on success full ring count change
it would remove its directory and we would be left with none.
New approach uses a double pointer to the NAPI. The IRQ handler needs
to know how to locate the NAPI to schedule. We register a single IRQ handler
and give it a pointer to a pointer. We can then change what it points to
without re-registering. This may have a tiny perf impact, but really
really negligible.
Link: https://patch.msgid.link/20241220025241.1522781-8-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net')
0 files changed, 0 insertions, 0 deletions