public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Zhang, Yanmin" <yanmin_zhang@linux.intel.com>
To: Christoph Lameter <cl@linux-foundation.org>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	"hugh.dickins@tiscali.co.uk" <hugh.dickins@tiscali.co.uk>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	akpm@linux-foundation.org, Tejun Heo <tj@kernel.org>,
	Andi Kleen <andi@firstfloor.org>
Subject: Re: [MM] Make mm counters per cpu instead of atomic
Date: Mon, 23 Nov 2009 16:51:10 +0800	[thread overview]
Message-ID: <1258966270.29789.45.camel@localhost> (raw)
In-Reply-To: <alpine.DEB.1.10.0911171223460.20360@V090114053VZO-1>

On Tue, 2009-11-17 at 12:25 -0500, Christoph Lameter wrote:
> On Tue, 17 Nov 2009, Zhang, Yanmin wrote:
> 
> > The right change above should be:
> >  struct mm_counter *m = per_cpu_ptr(mm->rss, cpu);
> 
> Right.
> 
> > With the change, command 'make oldconfig' and a boot command still
> > hangs.
> 
> Not sure if its worth spending more time on this but if you want I will
> consolidate the fixes so far and put out another patchset.
> 
> Where does it hang during boot?
Definitely faint.

1) In function exec_mmap: in the 2nd 'if (old_mm) {', mm_reader_unlock
should be used. Your patch uses mm_reader_lock. I found it when reviewing your
patch, but forgot to fix it when testing.
2) In function madvise: the last unlock should be mm_reader_unlock. Your
patch uses mm_writer_unlock.

It's easy to hit the issues with normal testing. I'm surprised you didn't
hit them.

Another theoretic issue is below scenario:
Process A get the read lock on cpu 0 and is scheduled to cpu 2 to unlock. Then
it's scheduled back to cpu 0 to repeat the step. eventually, the reader counter
will overflow. Considering multiple thread cases, it might be faster to
overflow than what we imagine. When it overflows, processes will hang there.



  parent reply	other threads:[~2009-11-23  8:48 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-04 19:14 [MM] Make mm counters per cpu instead of atomic Christoph Lameter
2009-11-04 19:17 ` [MM] Remove rss batching from copy_page_range() Christoph Lameter
2009-11-04 21:02   ` Andi Kleen
2009-11-04 22:02     ` Christoph Lameter
2009-11-05  8:27       ` Andi Kleen
2009-11-04 21:01 ` [MM] Make mm counters per cpu instead of atomic Andi Kleen
2009-11-04 23:49 ` Dave Jones
2009-11-05 15:04   ` Christoph Lameter
2009-11-05 15:36     ` [MM] Make mm counters per cpu instead of atomic V2 Christoph Lameter
2009-11-06  1:11       ` KAMEZAWA Hiroyuki
2009-11-06  3:23         ` KAMEZAWA Hiroyuki
2009-11-06 17:32           ` Christoph Lameter
2009-11-06 19:03             ` KAMEZAWA Hiroyuki
2009-11-06 19:13               ` Christoph Lameter
2009-11-06 19:20                 ` KAMEZAWA Hiroyuki
2009-11-06 19:47                   ` Christoph Lameter
2009-11-10 22:44         ` Andrew Morton
2009-11-10 23:20           ` Christoph Lameter
2009-11-06  4:08       ` KAMEZAWA Hiroyuki
2009-11-06  4:15       ` KAMEZAWA Hiroyuki
2009-11-05  1:16 ` [MM] Make mm counters per cpu instead of atomic KAMEZAWA Hiroyuki
2009-11-05 15:10   ` Christoph Lameter
2009-11-05 23:42     ` KAMEZAWA Hiroyuki
2009-11-17  6:48 ` Zhang, Yanmin
2009-11-17  7:31   ` Zhang, Yanmin
2009-11-17  9:34     ` Zhang, Yanmin
2009-11-17 17:25       ` Christoph Lameter
2009-11-19  0:48         ` Zhang, Yanmin
2009-11-23  8:51         ` Zhang, Yanmin [this message]
2009-11-23 14:31           ` Christoph Lameter
2009-11-24  8:02             ` Zhang, Yanmin
2009-11-24 15:17               ` Christoph Lameter
2009-11-25  1:23                 ` Zhang, Yanmin

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=1258966270.29789.45.camel@localhost \
    --to=yanmin_zhang@linux.intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=andi@firstfloor.org \
    --cc=cl@linux-foundation.org \
    --cc=hugh.dickins@tiscali.co.uk \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --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