[dpdk-dev] [PATCH v3 17/29] net/bnx2x: use eal I/O device memory read/write API

Jerin Jacob jerin.jacob at caviumnetworks.com
Fri Jan 13 09:32:23 CET 2017


On Thu, Jan 12, 2017 at 07:11:18PM +0000, Ferruh Yigit wrote:
> On 1/12/2017 9:17 AM, Jerin Jacob wrote:
> <...>
> >  
> > @@ -1560,11 +1556,9 @@ bnx2x_reg_read32(struct bnx2x_softc *sc, size_t offset)
> >  #define DPM_TRIGGER_TYPE 0x40
> >  
> >  /* Doorbell macro */
> > -#define BNX2X_DB_WRITE(db_bar, val) \
> > -	*((volatile uint32_t *)(db_bar)) = (val)
> > +#define BNX2X_DB_WRITE(db_bar, val) rte_write32_relaxed((val), (db_bar))
> 
> What is the rule to use relaxed version or not?

Here is the logic followed across the driver change:

1) If the top level code is in the pattern like "explicit barrier" and
then io write. Then second the io write operation can be relaxed.
2) If the code runs in slow path, To make patch clean and scope limited,
use only nonrelaxed versions.
 
> I don't know about memory barrier requirements, if it is easy, would you
> mind explaining? Because I have same question for many different parts
> of this patchset.
> 
> Thanks,
> ferruh


More information about the dev mailing list