Hi Bruce, Kevin

This patch seems to have uncovered a bug in the driver.
On applying, the idxd_burst_capacity API seems to return 0 for cases even when 
there are batch descriptors and ring space available.
Seems like there is a wraparound missing when calculating the descriptor ring 
space, causing this behavior.  

Below change seems to fix the issue.

@@ -483,7 +496,7 @@ idxd_burst_capacity(const void *dev_private, uint16_t vchan 
__rte_unused)
        /* For descriptors, check for wrap-around on write but not read */      
             
        if (idxd->ids_returned > write_idx)                                     
             
                write_idx += idxd->desc_ring_mask + 1;                          
             
-       used_space = write_idx - idxd->ids_returned;                            
             
+       used_space = (write_idx - idxd->ids_returned)&idxd->desc_ring_mask;     
             

<snipped>

Could we include this fix in the current patch ?

Thanks and regards,
Sunil

Reply via email to