Message ID | 20240717133744.1239356-1-kuba@kernel.org (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] eth: fbnic: don't build the driver when skb has more than 25 frags | expand |
On 7/17/24 15:37, Jakub Kicinski wrote: > Similarly to commit 0e03c643dc93 ("eth: fbnic: fix s390 build."), > the driver won't build if skb_shared_info has more than 25 frags. > > Fixes: 0cb4c0a13723 ("eth: fbnic: Implement Rx queue alloc/start/stop/free") > Signed-off-by: Jakub Kicinski <kuba@kernel.org> > --- > CC: alexanderduyck@fb.com > CC: kernel-team@meta.com > --- > drivers/net/ethernet/meta/Kconfig | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/net/ethernet/meta/Kconfig b/drivers/net/ethernet/meta/Kconfig > index a9f078212c78..b599c71a2d27 100644 > --- a/drivers/net/ethernet/meta/Kconfig > +++ b/drivers/net/ethernet/meta/Kconfig > @@ -21,6 +21,7 @@ config FBNIC > tristate "Meta Platforms Host Network Interface" > depends on X86_64 || COMPILE_TEST > depends on S390=n > + depends on MAX_SKB_FRAGS < 26 I think that with aarch MAX_SKB_FRAGS should be max 21. Aarch cacheline size is 128, right? The frag independent part of skb_shared_info takes 48 bytes, and sizeof(skb_frag_t) == 16: (512 - 128 - 48)/16 = 21 Cheers, Paolo
On Wed, 17 Jul 2024 15:44:09 +0200 Paolo Abeni wrote: > I think that with aarch MAX_SKB_FRAGS should be max 21. Aarch cacheline > size is 128, right? The frag independent part of skb_shared_info takes > 48 bytes, and sizeof(skb_frag_t) == 16: > > (512 - 128 - 48)/16 = 21 Hm, my grep foo must be low, I don't see aarch64 with 128B cache lines. But I do see powerpc, so we can stick to 21 to be safe.
On 7/17/24 16:12, Jakub Kicinski wrote: > On Wed, 17 Jul 2024 15:44:09 +0200 Paolo Abeni wrote: >> I think that with aarch MAX_SKB_FRAGS should be max 21. Aarch cacheline >> size is 128, right? The frag independent part of skb_shared_info takes >> 48 bytes, and sizeof(skb_frag_t) == 16: >> >> (512 - 128 - 48)/16 = 21 > > Hm, my grep foo must be low, I don't see aarch64 with 128B cache lines. > But I do see powerpc, so we can stick to 21 to be safe. Yup, it looks like I was wrong with aarch64, but there are indeed other 64bits arches with 128 bytes cache line size. Given this impact builds, I think we are better off with a fast repost (before the 24h grace period). Thanks, Paolo
diff --git a/drivers/net/ethernet/meta/Kconfig b/drivers/net/ethernet/meta/Kconfig index a9f078212c78..b599c71a2d27 100644 --- a/drivers/net/ethernet/meta/Kconfig +++ b/drivers/net/ethernet/meta/Kconfig @@ -21,6 +21,7 @@ config FBNIC tristate "Meta Platforms Host Network Interface" depends on X86_64 || COMPILE_TEST depends on S390=n + depends on MAX_SKB_FRAGS < 26 depends on PCI_MSI select PHYLINK help
Similarly to commit 0e03c643dc93 ("eth: fbnic: fix s390 build."), the driver won't build if skb_shared_info has more than 25 frags. Fixes: 0cb4c0a13723 ("eth: fbnic: Implement Rx queue alloc/start/stop/free") Signed-off-by: Jakub Kicinski <kuba@kernel.org> --- CC: alexanderduyck@fb.com CC: kernel-team@meta.com --- drivers/net/ethernet/meta/Kconfig | 1 + 1 file changed, 1 insertion(+)