Re: [PATCH net-next v9 7/9] libeth: add Rx buffer management

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 4/10/24 15:01, Alexander Lobakin wrote:
From: Przemek Kitszel <przemyslaw.kitszel@xxxxxxxxx>
Date: Wed, 10 Apr 2024 15:01:32 +0200

On 4/10/24 13:49, Alexander Lobakin wrote:
From: Przemek Kitszel <przemyslaw.kitszel@xxxxxxxxx>
Date: Tue, 9 Apr 2024 12:58:33 +0200

On 4/8/24 11:09, Alexander Lobakin wrote:
From: Przemek Kitszel <przemyslaw.kitszel@xxxxxxxxx>
Date: Fri, 5 Apr 2024 12:32:55 +0200

On 4/4/24 17:44, Alexander Lobakin wrote:
Add a couple intuitive helpers to hide Rx buffer implementation
details

[...]

+struct libeth_fqe {
+    struct page        *page;
+    u32            offset;
+    u32            truesize;
+} __aligned_largest;
+
+/**
+ * struct libeth_fq - structure representing a buffer queue
+ * @fp: hotpath part of the structure
+ * @pp: &page_pool for buffer management
+ * @fqes: array of Rx buffers
+ * @truesize: size to allocate per buffer, w/overhead
+ * @count: number of descriptors/buffers the queue has
+ * @buf_len: HW-writeable length per each buffer
+ * @nid: ID of the closest NUMA node with memory
+ */
+struct libeth_fq {
+    struct_group_tagged(libeth_fq_fp, fp,
+        struct page_pool    *pp;
+        struct libeth_fqe    *fqes;
+
+        u32            truesize;
+        u32            count;
+    );
+
+    /* Cold fields */
+    u32            buf_len;
+    int            nid;
+};

[...]

Could you please unpack the meaning of `fq` and `fqe` acronyms here?

Rx:

RQ -- receive queue, on which you get Rx DMA complete descriptors
FQ -- fill queue, the one you fill with free buffers
     FQE -- fill queue element, i.e. smth like "iavf_rx_buffer" or
whatever

Tx:

SQ -- send queue, the one you fill with buffers to transmit
     SQE -- send queue element, i.e. "iavf_tx_buffer"
CQ -- completion queue, on which you get Tx DMA complete descriptors

XDPSQ, XSkRQ etc. -- same as above, but for XDP / XSk

I know that rxq, txq, bufq, complq is more common since it's been used
for years, but I like these "new" ones more :>


Thank you, that sounds right. If you happen to sent v10, a bit of code
comment with this info would be useful ;)

The current kdoc in front of each struct and function declaration is not
enough? :D

Thanks,
Olek

I've asked my initial question just after reading it thrice, without
your reply `FQE` was as meaningful as `ABC`

In the commit:

+ * struct libeth_fqe - structure representing an Rx buffer

:z

or you want me to expand FQ, FQE etc. abbrevs in the kdoc?

yes, please very much!

could be as an additional comment at the top of the file too,
with that you could reuse the naming convention later in the file


Thanks,
Olek





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux