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