Re: [PATCH net-next v7 5/6] net: ngbe: add sriov function support
From: Jakub Kicinski <kuba@kernel.org>
Date: 2025-02-11 22:06:53
On Tue, 11 Feb 2025 19:14:54 +0800 mengyuanlou@net-swift.com wrote:
Due to hardware design, when 6 vfs are assigned. +------------------------------------------------------------+ | | pf | pf | vf5 | vf4 | vf3 | vf2 | vf1 | vf0 | pf | |--------|----|-----|-----|-----|-----|-----|-----|-----|----| | vector | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | +------------------------------------------------------------+ When 7 vfs are assigned. +------------------------------------------------------------+ | | pf | vf6 | vf5 | vf4 | vf3 | vf2 | vf1 | vf0 | pf | |--------|----|-----|-----|-----|-----|-----|-----|-----|----| | vector | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | +------------------------------------------------------------+ When num_vfs < 7, pf can use 0 for misc and 1 for queue. But when num_vfs == 7, vector 1 is assigned to vf6. 1. Alloc 9 irq vectors, but only request_irq for 0 and 8. 2. Reuse interrupt vector 0.
Do you have proper synchronization in place to make sure IRQs don't get mis-routed when SR-IOV is enabled? The goal should be to make sure the right handler is register for the IRQ, or at least do the muxing earlier in a safe fashion. Not decide that it was a packet IRQ half way thru a function called ngbe_msix_other