> -----Original Message-----
> From: David Marchand <david.march...@redhat.com>
> Sent: Monday, September 20, 2021 15:25
> To: Yunjian Wang <wangyunj...@huawei.com>; Wang, Haiyue 
> <haiyue.w...@intel.com>; Yigit, Ferruh
> <ferruh.yi...@intel.com>
> Cc: dev <dev@dpdk.org>; Xing, Beilei <beilei.x...@intel.com>; Yang, Qiming 
> <qiming.y...@intel.com>;
> Zhang, Qi Z <qi.z.zh...@intel.com>; dingxiaoxi...@huawei.com; Renata Saiakhova
> <renata.saiakh...@ekinops.com>
> Subject: Re: [dpdk-dev] [PATCH v2 0/4] delete HW rings when releasing queues 
> for some drivers
> 
> On Sat, Sep 18, 2021 at 10:34 AM Yunjian Wang <wangyunj...@huawei.com> wrote:
> >
> > This series for deleting HW rings when releasing queues for
> > igb, ixgbe, i40e, ice & em drivers.
> >
> > ---
> > v2:
> >    * Update commit log
> >
> > Yunjian Wang (4):
> >   net/e1000: delete HW rings when releasing queues
> >   net/ice: delete HW rings when releasing queues
> >   net/i40e: delete HW rings when releasing queues
> >   net/ixgbe: delete HW rings when releasing queues
> >
> >  drivers/net/e1000/em_rxtx.c    | 8 ++++++--
> >  drivers/net/e1000/igb_rxtx.c   | 9 +++++++--
> >  drivers/net/i40e/i40e_fdir.c   | 3 ---
> >  drivers/net/i40e/i40e_rxtx.c   | 8 ++++++--
> >  drivers/net/i40e/i40e_rxtx.h   | 2 ++
> >  drivers/net/ice/ice_rxtx.c     | 6 ++++--
> >  drivers/net/ice/ice_rxtx.h     | 2 ++
> >  drivers/net/ixgbe/ixgbe_rxtx.c | 6 ++++--
> >  drivers/net/ixgbe/ixgbe_rxtx.h | 2 ++
> >  9 files changed, 33 insertions(+), 13 deletions(-)
> >
> 
> - In net/ice (at least), the fdir rxq/txq memzones can be aligned on
> the same scheme.
> Looking at the remaining drivers (net/cnxk, net/cxgbe and
> net/octeontx2), we could apply the same principle of keeping a
> reference to mz in internal driver structures.
> Afterwards, I see no need to keep rte_eth_dma_zone_free() (it's
> internal, so we can remove and it's easy to re-add if a need arises).
> 
> Wdyt?

Yes, this makes dma_zone management clean. And good for hotplug design.

Then the function 'rte_eth_dma_zone_reserve' can also be simplified, no
need to lookup and check, just call 'rte_memzone_reserve_aligned' directly ?

        mz = rte_memzone_lookup(z_name);
        if (mz) {
                if ((socket_id != SOCKET_ID_ANY && socket_id != mz->socket_id) 
||
                                size > mz->len ||
                                ((uintptr_t)mz->addr & (align - 1)) != 0) {
                        RTE_ETHDEV_LOG(ERR,
                                "memzone %s does not justify the requested 
attributes\n",
                                mz->name);
                        return NULL;
                }

                return mz;
        }

> 
> 
> - Is this worth backporting to stable branches?
> 

+1

> 
> --
> David Marchand

Reply via email to