[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <AE90C24D6B3A694183C094C60CF0A2F6026B6F61@saturn3.aculab.com>
Date: Mon, 25 Jun 2012 10:00:03 +0100
From: "David Laight" <David.Laight@...LAB.COM>
To: "David Miller" <davem@...emloft.net>, <yevgenyp@...lanox.co.il>
Cc: <netdev@...r.kernel.org>
Subject: RE: [PATCH 4/4] net/mlx4_en: Use atomic counter to decide when queue is full
> > The Transmit and transmit completion flows execute from different
contexts,
> > which are not synchronized. Hence naive reading the of consumer
index might
> > give wrong value by the time it is being used, That could lead to a
state of transmit timeout.
> > Fix that by using atomic variable to maintain that index.
> >
> > Signed-off-by: Yevgeny Petrilin <yevgenyp@...lanox.co.il>
>
> I'm not convinced. There is only one place that actually changes
> the counter.
>
> So it seems more like you have a missing memory barrier somewhere.
Or just keep the two ring indexes - instead of keeping the
number of 'active' entries as well.
Then you don't have a variable which the tx setup and
tx completion routines both update.
David
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists