[Patch v2] net/mana: use rte_pktmbuf_alloc_bulk for allocating RX WQEs
Tyler Retzlaff
roretzla at linux.microsoft.com
Tue Jan 30 19:05:36 CET 2024
On Tue, Jan 30, 2024 at 08:43:52AM -0800, Stephen Hemminger wrote:
> On Tue, 30 Jan 2024 10:19:32 +0000
> Ferruh Yigit <ferruh.yigit at amd.com> wrote:
>
> > > -mana_alloc_and_post_rx_wqes(struct mana_rxq *rxq)
> > > +mana_alloc_and_post_rx_wqes(struct mana_rxq *rxq, uint32_t count)
> > > {
> > > int ret;
> > > uint32_t i;
> > > + struct rte_mbuf **mbufs;
> > > +
> > > + mbufs = rte_calloc_socket("mana_rx_mbufs", count, sizeof(struct rte_mbuf *),
> > > + 0, rxq->mp->socket_id);
> > > + if (!mbufs)
> > > + return -ENOMEM;
> > >
> >
> > 'mbufs' is temporarily storage for allocated mbuf pointers, why not
> > allocate if from stack instead, can be faster and easier to manage:
> > "struct rte_mbuf *mbufs[count]"
>
> That would introduce a variable length array.
> VLA's should be removed, they are not supported on Windows and many
> security tools flag them. The problem is that it makes the code brittle
> if count gets huge.
+1
>
> But certainly regular calloc() or alloca() would work here.
More information about the dev
mailing list