[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <063D6719AE5E284EB5DD2968C1650D6DCFFB5483@AcuExch.aculab.com>
Date: Mon, 20 Mar 2017 14:10:24 +0000
From: David Laight <David.Laight@...LAB.COM>
To: 'Herbert Xu' <herbert@...dor.apana.org.au>,
Peter Zijlstra <peterz@...radead.org>
CC: David Miller <davem@...emloft.net>,
"eric.dumazet@...il.com" <eric.dumazet@...il.com>,
"elena.reshetova@...el.com" <elena.reshetova@...el.com>,
"keescook@...omium.org" <keescook@...omium.org>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"bridge@...ts.linux-foundation.org"
<bridge@...ts.linux-foundation.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"kuznet@....inr.ac.ru" <kuznet@....inr.ac.ru>,
"jmorris@...ei.org" <jmorris@...ei.org>,
"kaber@...sh.net" <kaber@...sh.net>,
"stephen@...workplumber.org" <stephen@...workplumber.org>,
"ishkamiel@...il.com" <ishkamiel@...il.com>,
"dwindsor@...il.com" <dwindsor@...il.com>,
"akpm@...ux-foundation.org" <akpm@...ux-foundation.org>
Subject: RE: [PATCH 07/17] net: convert sock.sk_refcnt from atomic_t to
refcount_t
From: Herbert Xu
> Sent: 20 March 2017 13:16
> On Mon, Mar 20, 2017 at 11:39:37AM +0100, Peter Zijlstra wrote:
> >
> > Can we at least give a benchmark and have someone run numbers? We should
> > be able to quantify these things.
>
> Do you realise how many times this thing gets hit at 10Gb/s or
> higher? Anyway, since you're proposing this change you should
> demonstrate that it does not cause a performance regression.
What checks does refcnt_t actually do?
An extra decrement is hard to detect since the item gets freed early.
I guess making the main 'allocate/free' code hold (say) 64k references
would give some leeway for extra decrements.
An extra increment will be detected when the count eventually wraps.
Unless the error is in a very common path that won't happen for a long time.
On x86 the cpu flags from the 'lock inc/dec' could be used to reasonably
cheaply detect errors - provided you actually generate a forwards branch.
Otherwise having a common, but not every packet, code path verify that the
reference count is 'sane' would give reasonable coverage.
David
Powered by blists - more mailing lists