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? Thanks, Olek