On Thursday, April 03, 2014 06:35:06 AM Hiroshi Shimamoto wrote: > From: Hiroshi Shimamoto <h-shimamoto at ct.jp.nec.com> > > There is a race condition, on transmit to host. > > Guest PMD Host > Thread-A Thread-B vSwitch > > |idx=0 |idx=0 |p[0] st!=2 > |cmpxchg | | > |p[0] st->1 | | > |idx=1 | | > |fill data | | > |p[0] st->2 | |p[0] st==2 > | > | | |receive data > | | |p[0] st->0 > | | > | |cmpxchg | > | |success |p[1] st!=2 > | |p[0] st->1 | > > This is BAD > > That causes traffic stop. > > We have to take care about that race condition with checking > whether current index is correct. > > Signed-off-by: Hiroshi Shimamoto <h-shimamoto at ct.jp.nec.com> > Reviewed-by: Hayato Momma <h-momma at ce.jp.nec.com> > --- > pmd/pmd_memnic.c | 9 +++++++++ > 1 file changed, 9 insertions(+)
Reviewed-by: Olivier Matz <olivier.matz at 6wind.com>