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 :> > > otherwise the whole series is very good for me, thank you very much! > Thanks, Olek