linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Shaohua Li <shaohua.li@intel.com>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Tejun Heo <tj@kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
	"cl@linux.com" <cl@linux.com>,
	"npiggin@kernel.dk" <npiggin@kernel.dk>
Subject: Re: [patch V3] percpu_counter: scalability works
Date: Mon, 16 May 2011 15:15:43 +0800	[thread overview]
Message-ID: <1305530143.2375.42.camel@sli10-conroe> (raw)
In-Reply-To: <1305528912.3120.213.camel@edumazet-laptop>

On Mon, 2011-05-16 at 14:55 +0800, Eric Dumazet wrote:
> Le lundi 16 mai 2011 à 14:37 +0800, Shaohua Li a écrit :
> > On Mon, 2011-05-16 at 14:11 +0800, Eric Dumazet wrote:
> > > Le lundi 16 mai 2011 à 08:58 +0800, Shaohua Li a écrit :
> > > 
> > > > so if _sum starts and ends here, _sum can still get deviation.
> > > 
> > > This makes no sense at all. If you have so many cpus 'here' right before
> > > you increment fbc->sum_cnt, then no matter how precise and super
> > > cautious you are in your _sum() implementation, as soon as you exit from
> > > sum(), other cpus already changed the percpu counter global value.
> > I don't agree here. The original implementation also just has quite
> > small window we have deviation, the window only exists between the two
> > lines:
> > 		atomic64_add(count, &fbc->count);
> > 	        __this_cpu_write(*fbc->counters, 0);
> > if you think we should ignore it, we'd better not use any protection
> > here.
> > 
> 
> Not at all. Your version didnt forbid new cpu to come in _add() and
> hitting the deviation problem.
if everybody agrees the deviation isn't a problem, I will not bother to
argue here.
but your patch does have the deviation issue which Tejun dislike.


> There is a small difference, or else I wouldnt had bother.
in _sum, set a bit. in _add, we wait till the bit is unset. This can
easily solve the issue too, and much easier.

> > as I wrote in the email, the atomic and cacheline issue can be resolved
> > with a per_cpu data, I just didn't post the patch. I post it this time,
> > please see below. There is no cache line bounce anymore.
> > 
> 
> I am afraid we make no progress at all here, if you just try to push
> your patch and ignore my comments.
I did try to push my patch, but I didn't ignore your comments. I pointed
out your patch still has the deviation issue and you didn't think it's
an issue, so you are ignoring my comments actually. On the other hand, I
push my patch because I thought mine hasn't the deviation.

> percpu_counter is a compromise, dont make it too slow for normal
> operations. It works well if most _add() operations only go through
> percpu data.
> 
> Please just move vm_committed_as to a plain atomic_t, this will solve
> your problem.
I can, but you can't prevent me to optimize percpu_counter.

Thanks,
Shaohua


  reply	other threads:[~2011-05-16  7:15 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-11  8:10 [patch v2 0/5] percpu_counter: bug fix and enhancement Shaohua Li
2011-05-11  8:10 ` [patch v2 1/5] percpu_counter: fix code for 32bit systems for UP Shaohua Li
2011-05-11  8:10 ` [patch v2 2/5] lglock: convert it to work with dynamically allocated structure Shaohua Li
2011-05-11  8:10 ` [patch v2 3/5] percpu_counter: use lglock to protect percpu data Shaohua Li
2011-05-11  8:10 ` [patch v2 4/5] percpu_counter: use atomic64 for counter in SMP Shaohua Li
2011-05-11  9:34   ` Andrew Morton
2011-05-12  2:40     ` Shaohua Li
2011-05-11  8:10 ` [patch v2 5/5] percpu_counter: preemptless __per_cpu_counter_add Shaohua Li
2011-05-11  9:28 ` [patch v2 0/5] percpu_counter: bug fix and enhancement Tejun Heo
2011-05-12  2:48   ` Shaohua Li
2011-05-12  8:21     ` Tejun Heo
2011-05-12  8:55       ` Shaohua Li
2011-05-12  8:59         ` Tejun Heo
2011-05-12  9:02           ` Eric Dumazet
2011-05-12  9:03             ` Eric Dumazet
2011-05-12  9:05             ` Tejun Heo
2011-05-13  3:09               ` Shaohua Li
2011-05-13  4:37               ` Shaohua Li
2011-05-13  5:20                 ` Eric Dumazet
2011-05-13  5:28                   ` Shaohua Li
2011-05-13  6:34                     ` Eric Dumazet
2011-05-13  7:33                       ` Shaohua Li
2011-05-13 14:51                       ` [patch] percpu_counter: scalability works Eric Dumazet
2011-05-13 15:39                         ` Eric Dumazet
2011-05-13 16:35                           ` [patch V2] " Eric Dumazet
2011-05-13 16:46                             ` Eric Dumazet
2011-05-13 22:03                               ` [patch V3] " Eric Dumazet
2011-05-16  0:58                                 ` Shaohua Li
2011-05-16  6:11                                   ` Eric Dumazet
2011-05-16  6:37                                     ` Shaohua Li
2011-05-16  6:55                                       ` Eric Dumazet
2011-05-16  7:15                                         ` Shaohua Li [this message]
2011-05-16  7:44                                           ` Eric Dumazet
2011-05-16  8:34                                             ` Shaohua Li
2011-05-16  9:35                                               ` Eric Dumazet
2011-05-16 14:22                                                 ` Eric Dumazet
2011-05-17  0:55                                                   ` Shaohua Li
2011-05-17  4:56                                                     ` Eric Dumazet
2011-05-17  5:22                                                       ` Shaohua Li
2011-05-17  9:01                                                         ` Eric Dumazet
2011-05-17  9:11                                                           ` Tejun Heo
2011-05-17  9:45                                                             ` Eric Dumazet
2011-05-17  9:50                                                               ` Tejun Heo
2011-05-17 12:20                                                                 ` Eric Dumazet
2011-05-17 12:45                                                                   ` Tejun Heo
2011-05-17 13:00                                                                     ` Eric Dumazet
2011-05-17 13:04                                                                       ` Tejun Heo
2011-05-17 13:55                                                                         ` Christoph Lameter
2011-05-17 14:02                                                                           ` Tejun Heo
2011-05-17 14:38                                                                             ` Christoph Lameter
2011-05-18  1:00                                                                 ` Shaohua Li
2011-05-12 14:38   ` [patch v2 0/5] percpu_counter: bug fix and enhancement Christoph Lameter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1305530143.2375.42.camel@sli10-conroe \
    --to=shaohua.li@intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=cl@linux.com \
    --cc=eric.dumazet@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=npiggin@kernel.dk \
    --cc=tj@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).