On Tue, 4 Nov 2025 14:23:24 +0530 Meghana Malladi wrote:
> > I tried honoring Jakub's comment to avoid freeing the rx memory wherever 
> > necessary.
> > 
> > "In case of icssg driver, freeing the rx memory is necessary as the
> > rx descriptor memory is owned by the cppi dma controller and can be
> > mapped to a single memory model (pages/xdp buffers) at a given time.
> > In order to remap it, the memory needs to be freed and reallocated."
> 
> Just to make sure we are on the same page, does the above explanation 
> make sense to you or do you want me to make any changes in this series 
> for v5 ?

No. Based on your reply below you seem to understand what is being
asked, so you're expected to do it.

> >> I think you should:
> >> - stop the H/W from processing incoming packets,
> >> - spool all the pending packets
> >> - attach/detach the xsk_pool
> >> - refill the ring
> >> - re-enable the H/W
> > 
> > Current implementation follows the same sequence:
> > 1. Does a channel teardown -> stop incoming traffic
> > 2. free the rx descriptors from free queue and completion queue -> spool 
> > all pending packets/descriptors
> > 3. attach/detach the xsk pool
> > 4. allocate rx descriptors and fill the freeq after mapping them to the 
> > correct memory buffers -> refill the ring
> > 5. restart the NAPI - re-enable the H/W to recv the traffic
> > 
> > I am still working on skipping 2 and 4 steps but this will be a long 
> > shot. Need to make sure all corner cases are getting covered. If this 
> > approach looks doable without causing any regressions I might post it as 
> > a followup patch later in the future.

Reply via email to