Re: [PATCH net v5 3/5] net: macb: move ring size computation to functions
From: Théo Lebrun <theo.lebrun@bootlin.com>
Date: 2025-09-11 09:15:19
Also in:
linux-devicetree, lkml
Hello Vineeth, On Thu Sep 11, 2025 at 8:43 AM CEST, Karumanchi, Vineeth wrote:
On 9/10/2025 9:45 PM, Théo Lebrun wrote:quoted
#define DEFAULT_TX_RING_SIZE 512 /* must be power of 2 */ #define MIN_TX_RING_SIZE 64 #define MAX_TX_RING_SIZE 4096 -#define TX_RING_BYTES(bp) (macb_dma_desc_get_size(bp) \ - * (bp)->tx_ring_size) /* level of occupied TX descriptors under which we wake up TX process */ #define MACB_TX_WAKEUP_THRESH(bp) (3 * (bp)->tx_ring_size / 4)@@ -2470,11 +2466,20 @@ static void macb_free_rx_buffers(struct macb *bp) } } +static unsigned int macb_tx_ring_size_per_queue(struct macb *bp) +{ + return macb_dma_desc_get_size(bp) * bp->tx_ring_size + bp- >tx_bd_rd_prefetch; +} + +static unsigned int macb_rx_ring_size_per_queue(struct macb *bp) +{ + return macb_dma_desc_get_size(bp) * bp->rx_ring_size + bp- >rx_bd_rd_prefetch; +} +it would be good to have these functions as inline. May be as a separate patch.
I don't see why? Compilers are clever pieces, they'll know to inline it.
If we added inline to macb_{tx,rx}_ring_size_per_queue(), should we also
add it to macb_dma_desc_get_size()? I do not know, but my compiler
decided to inline it as well. It might make other decisions on other
platforms.
Last point I see: those two functions are not called in the hotpath,
only at alloc & free. If we talk about inline for the theoretical speed
gain, then it doesn't matter in that case. If it is a code size aspect,
then once again the compiler is more aware than myself.
I don't like the tone, but it is part of the kernel doc and is on topic:
https://www.kernel.org/doc/html/latest/process/coding-style.html#the-inline-disease
Thanks Vineeth!
--
Théo Lebrun, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com