All of lore.kernel.org
 help / color / mirror / Atom feed
From: Frederic Weisbecker <fweisbec@gmail.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Tim Chen <tim.c.chen@linux.intel.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Hugh Dickins <hughd@google.com>,
	KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	David Miller <davem@davemloft.net>,
	Martin Schwidefsky <schwidefsky@de.ibm.com>,
	Russell King <rmk@arm.linux.org.uk>,
	Paul Mundt <lethal@linux-sh.org>, Jeff Dike <jdike@addtoit.com>,
	Richard Weinberger <richard@nod.at>,
	Tony Luck <tony.luck@intel.com>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	Mel Gorman <mel@csn.ul.ie>, Nick Piggin <npiggin@kernel.dk>,
	Namhyung Kim <namhyung@gmail.com>,
	ak@linux.intel.com, shaohua.li@intel.com, alex.shi@intel.com,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	"Rafael J. Wysocki" <rjw@sisk.pl>
Subject: Re: [GIT PULL] Re: REGRESSION: Performance regressions from switching anon_vma->lock to mutex
Date: Fri, 17 Jun 2011 17:19:18 +0200	[thread overview]
Message-ID: <20110617151915.GH25197@somewhere.redhat.com> (raw)
In-Reply-To: <20110616230247.GB28557@elte.hu>

On Fri, Jun 17, 2011 at 01:02:47AM +0200, Ingo Molnar wrote:
> 
> * Frederic Weisbecker <fweisbec@gmail.com> wrote:
> 
> > On Thu, Jun 16, 2011 at 10:25:50PM +0200, Ingo Molnar wrote:
> > > 
> > > * Paul E. McKenney <paulmck@linux.vnet.ibm.com> wrote:
> > > 
> > > > > The funny thing about this workload is that context-switches are 
> > > > > really a fastpath here and we are using anonymous IRQ-triggered 
> > > > > softirqs embedded in random task contexts as a workaround for 
> > > > > that.
> > > > 
> > > > The other thing that the IRQ-triggered softirqs do is to get the 
> > > > callbacks invoked in cases where a CPU-bound user thread is never 
> > > > context switching.
> > > 
> > > Yeah - but this workload didnt have that.
> > > 
> > > > Of course, one alternative might be to set_need_resched() to force 
> > > > entry into the scheduler as needed.
> > > 
> > > No need for that: we can just do the callback not in softirq but in 
> > > regular syscall context in that case, in the return-to-userspace 
> > > notifier. (see TIF_USER_RETURN_NOTIFY and the USER_RETURN_NOTIFIER 
> > > facility)
> > > 
> > > Abusing a facility like setting need_resched artificially will 
> > > generally cause trouble.
> > 
> > If the task enqueued callbacks in the kernel, thus started a new 
> > grace period, it might return to userspace before every CPUs have 
> > completed that grace period, and you need that full completion to 
> > happen before invoking the callbacks.
> > 
> > I think you need to keep the tick in such case because you can't 
> > count on the other CPUs to handle that completion as they may be 
> > all idle.
> > 
> > So when you resume to userspace and you started a GP, either you 
> > find another CPU to handle the GP completion and callbacks 
> > executions, or you keep the tick until you are done.
> 
> We'll have a scheduler tick in any case, which will act as a 
> worst-case RCU tick.
> 
> My main point is that we need to check whether this solution improves 
> performance over the current softirq code. I think there's a real 
> chance that it improves things like VFS workloads, because it 
> provides (much!) lower grace period latencies hence provides 
> fundamentally better cache locality.
> 
> If a workload pays the cost of frequent scheduling then it might as 
> well use a beneficial side-effect of that scheduling: high-freq grace 
> periods ...
> 
> If it improves performance we can figure out all the loose ends. If 
> it doesnt then the loose ends are not worth worrying about.

Yeah I see your point, seems worth trying.

WARNING: multiple messages have this Message-ID (diff)
From: Frederic Weisbecker <fweisbec@gmail.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Tim Chen <tim.c.chen@linux.intel.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Hugh Dickins <hughd@google.com>,
	KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	David Miller <davem@davemloft.net>,
	Martin Schwidefsky <schwidefsky@de.ibm.com>,
	Russell King <rmk@arm.linux.org.uk>,
	Paul Mundt <lethal@linux-sh.org>, Jeff Dike <jdike@addtoit.com>,
	Richard Weinberger <richard@nod.at>,
	Tony Luck <tony.luck@intel.com>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	Mel Gorman <mel@csn.ul.ie>, Nick Piggin <npiggin@kernel.dk>,
	Namhyung Kim <namhyung@gmail.com>,
	ak@linux.intel.com, shaohua.li@intel.com, alex.shi@intel.com,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	"Rafael J. Wysocki" <rjw@sisk.pl>
Subject: Re: [GIT PULL] Re: REGRESSION: Performance regressions from switching anon_vma->lock to mutex
Date: Fri, 17 Jun 2011 17:19:18 +0200	[thread overview]
Message-ID: <20110617151915.GH25197@somewhere.redhat.com> (raw)
In-Reply-To: <20110616230247.GB28557@elte.hu>

On Fri, Jun 17, 2011 at 01:02:47AM +0200, Ingo Molnar wrote:
> 
> * Frederic Weisbecker <fweisbec@gmail.com> wrote:
> 
> > On Thu, Jun 16, 2011 at 10:25:50PM +0200, Ingo Molnar wrote:
> > > 
> > > * Paul E. McKenney <paulmck@linux.vnet.ibm.com> wrote:
> > > 
> > > > > The funny thing about this workload is that context-switches are 
> > > > > really a fastpath here and we are using anonymous IRQ-triggered 
> > > > > softirqs embedded in random task contexts as a workaround for 
> > > > > that.
> > > > 
> > > > The other thing that the IRQ-triggered softirqs do is to get the 
> > > > callbacks invoked in cases where a CPU-bound user thread is never 
> > > > context switching.
> > > 
> > > Yeah - but this workload didnt have that.
> > > 
> > > > Of course, one alternative might be to set_need_resched() to force 
> > > > entry into the scheduler as needed.
> > > 
> > > No need for that: we can just do the callback not in softirq but in 
> > > regular syscall context in that case, in the return-to-userspace 
> > > notifier. (see TIF_USER_RETURN_NOTIFY and the USER_RETURN_NOTIFIER 
> > > facility)
> > > 
> > > Abusing a facility like setting need_resched artificially will 
> > > generally cause trouble.
> > 
> > If the task enqueued callbacks in the kernel, thus started a new 
> > grace period, it might return to userspace before every CPUs have 
> > completed that grace period, and you need that full completion to 
> > happen before invoking the callbacks.
> > 
> > I think you need to keep the tick in such case because you can't 
> > count on the other CPUs to handle that completion as they may be 
> > all idle.
> > 
> > So when you resume to userspace and you started a GP, either you 
> > find another CPU to handle the GP completion and callbacks 
> > executions, or you keep the tick until you are done.
> 
> We'll have a scheduler tick in any case, which will act as a 
> worst-case RCU tick.
> 
> My main point is that we need to check whether this solution improves 
> performance over the current softirq code. I think there's a real 
> chance that it improves things like VFS workloads, because it 
> provides (much!) lower grace period latencies hence provides 
> fundamentally better cache locality.
> 
> If a workload pays the cost of frequent scheduling then it might as 
> well use a beneficial side-effect of that scheduling: high-freq grace 
> periods ...
> 
> If it improves performance we can figure out all the loose ends. If 
> it doesnt then the loose ends are not worth worrying about.

Yeah I see your point, seems worth trying.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2011-06-17 15:19 UTC|newest]

Thread overview: 166+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-15  0:29 REGRESSION: Performance regressions from switching anon_vma->lock to mutex Tim Chen
2011-06-15  0:29 ` Tim Chen
2011-06-15  0:36 ` Andi Kleen
2011-06-15  0:36   ` Andi Kleen
2011-06-17 19:07   ` Ingo Molnar
2011-06-17 19:07     ` Ingo Molnar
2011-06-15  1:21 ` Linus Torvalds
2011-06-15  1:21   ` Linus Torvalds
2011-06-15  3:42   ` Linus Torvalds
2011-06-15  1:26 ` Shaohua Li
2011-06-15  1:26   ` Shaohua Li
2011-06-15 11:52   ` Peter Zijlstra
2011-06-15 11:52     ` Peter Zijlstra
2011-06-15 12:49     ` Peter Zijlstra
2011-06-15 12:49       ` Peter Zijlstra
2011-06-15 16:18     ` Andi Kleen
2011-06-15 16:18       ` Andi Kleen
2011-06-15 16:45       ` Peter Zijlstra
2011-06-15 16:45         ` Peter Zijlstra
2011-06-15 16:47         ` Andi Kleen
2011-06-15 16:47           ` Andi Kleen
2011-06-15 18:43         ` Tim Chen
2011-06-15 18:43           ` Tim Chen
2011-06-15 20:32           ` Peter Zijlstra
2011-06-15 20:32             ` Peter Zijlstra
2011-06-15 20:57             ` Andi Kleen
2011-06-15 20:57               ` Andi Kleen
2011-06-15 21:12               ` Tim Chen
2011-06-15 21:12                 ` Tim Chen
2011-06-15 21:37                 ` Peter Zijlstra
2011-06-15 21:37                   ` Peter Zijlstra
2011-06-15 21:51                   ` Linus Torvalds
2011-06-15 21:51                     ` Linus Torvalds
2011-06-15 22:19                     ` Andi Kleen
2011-06-15 22:19                       ` Andi Kleen
2011-06-16  0:16                       ` Linus Torvalds
2011-06-16  0:16                         ` Linus Torvalds
2011-06-16 20:14                         ` Andi Kleen
2011-06-16 20:14                           ` Andi Kleen
2011-06-16 20:37                           ` Linus Torvalds
2011-06-16 20:37                             ` Linus Torvalds
2011-06-17  0:24                             ` Andi Kleen
2011-06-17  9:13                               ` Ingo Molnar
2011-06-17  9:13                                 ` Ingo Molnar
2011-06-15 22:15                   ` Andi Kleen
2011-06-15 22:15                     ` Andi Kleen
2011-06-16  1:08                   ` Tim Chen
2011-06-16  1:08                     ` Tim Chen
2011-06-16  1:50                   ` Linus Torvalds
2011-06-16  1:50                     ` Linus Torvalds
2011-06-16 20:26                     ` Tim Chen
2011-06-16 20:26                       ` Tim Chen
2011-06-16 20:47                       ` Linus Torvalds
2011-06-16 20:47                         ` Linus Torvalds
2011-06-16 21:05                         ` Linus Torvalds
2011-06-16 21:05                           ` Linus Torvalds
2011-06-16 21:06                           ` Linus Torvalds
2011-06-16 21:26                             ` Linus Torvalds
2011-06-16 21:26                               ` Linus Torvalds
2011-06-17  3:58                               ` Linus Torvalds
2011-06-17 11:28                                 ` Peter Zijlstra
2011-06-17 11:28                                   ` Peter Zijlstra
2011-06-17 11:54                                   ` Peter Zijlstra
2011-06-17 11:54                                     ` Peter Zijlstra
2011-06-17 16:36                                   ` Linus Torvalds
2011-06-17 16:36                                     ` Linus Torvalds
2011-06-17 17:41                                     ` Hugh Dickins
2011-06-17 17:41                                       ` Hugh Dickins
2011-06-17 17:55                                       ` Peter Zijlstra
2011-06-17 17:55                                         ` Peter Zijlstra
2011-06-17 18:01                                       ` Linus Torvalds
2011-06-17 18:01                                         ` Linus Torvalds
2011-06-17 18:18                                         ` Peter Zijlstra
2011-06-17 18:18                                           ` Peter Zijlstra
2011-06-17 18:32                                           ` Peter Zijlstra
2011-06-17 18:32                                             ` Peter Zijlstra
2011-06-17 18:39                                             ` Linus Torvalds
2011-06-17 18:41                                               ` Linus Torvalds
2011-06-17 18:41                                                 ` Linus Torvalds
2011-06-17 20:19                                               ` Tim Chen
2011-06-17 20:19                                                 ` Tim Chen
2011-06-17 22:20                                               ` Hugh Dickins
2011-06-17 22:20                                                 ` Hugh Dickins
2011-06-18  4:47                                                 ` Linus Torvalds
2011-06-18  4:47                                                   ` Linus Torvalds
2011-06-17 19:53                                             ` [PATCH] mm, memory-failure: Fix spinlock vs mutex order Peter Zijlstra
2011-06-17 19:53                                               ` Peter Zijlstra
2011-06-17 20:04                                               ` Andi Kleen
2011-06-17 20:04                                                 ` Andi Kleen
2011-06-17 16:46                                   ` REGRESSION: Performance regressions from switching anon_vma->lock to mutex Linus Torvalds
2011-06-17 16:46                                     ` Linus Torvalds
2011-06-17 17:28                                     ` Linus Torvalds
2011-06-17 19:40                                     ` Andi Kleen
2011-06-17 19:40                                       ` Andi Kleen
2011-06-18  8:08                                       ` Ingo Molnar
2011-06-18  8:08                                         ` Ingo Molnar
2011-06-17 18:22                                 ` Tim Chen
2011-06-17 18:22                                   ` Tim Chen
2011-06-17 19:05                                   ` Ray Lee
2011-06-17 19:05                                     ` Ray Lee
2011-06-16 22:00                           ` Andi Kleen
2011-06-16 22:00                             ` Andi Kleen
2011-06-15 10:36 ` Peter Zijlstra
2011-06-15 10:36   ` Peter Zijlstra
2011-06-15 10:58   ` Peter Zijlstra
2011-06-15 10:58     ` Peter Zijlstra
2011-06-15 11:41     ` Peter Zijlstra
2011-06-15 11:41       ` Peter Zijlstra
2011-06-15 19:11     ` Linus Torvalds
2011-06-15 19:11       ` Linus Torvalds
2011-06-15 19:24       ` Andrew Morton
2011-06-15 19:24         ` Andrew Morton
2011-06-15 20:16         ` Ingo Molnar
2011-06-15 20:16           ` Ingo Molnar
2011-06-15 20:55           ` Linus Torvalds
2011-06-15 20:55             ` Linus Torvalds
2011-06-15 20:12       ` [GIT PULL] " Ingo Molnar
2011-06-15 20:12         ` Ingo Molnar
2011-06-15 20:29         ` Paul E. McKenney
2011-06-15 20:29           ` Paul E. McKenney
2011-06-15 20:47           ` Linus Torvalds
2011-06-15 20:47             ` Linus Torvalds
2011-06-15 20:54             ` Paul E. McKenney
2011-06-15 20:54               ` Paul E. McKenney
2011-06-15 21:05         ` Linus Torvalds
2011-06-15 21:05           ` Linus Torvalds
2011-06-15 21:15           ` Paul E. McKenney
2011-06-15 21:15             ` Paul E. McKenney
2011-06-15 21:27             ` Linus Torvalds
2011-06-15 21:27               ` Linus Torvalds
2011-06-16  7:03           ` Ingo Molnar
2011-06-16  7:03             ` Ingo Molnar
2011-06-16 17:16             ` Paul E. McKenney
2011-06-16 17:16               ` Paul E. McKenney
2011-06-16 20:25               ` Ingo Molnar
2011-06-16 20:25                 ` Ingo Molnar
2011-06-16 21:01                 ` Frederic Weisbecker
2011-06-16 21:01                   ` Frederic Weisbecker
2011-06-16 23:02                   ` Ingo Molnar
2011-06-16 23:02                     ` Ingo Molnar
2011-06-17 15:19                     ` Frederic Weisbecker [this message]
2011-06-17 15:19                       ` Frederic Weisbecker
2011-06-16 21:02                 ` Andi Kleen
2011-06-16 21:02                   ` Andi Kleen
2011-06-16 22:21                 ` Benjamin Herrenschmidt
2011-06-16 22:21                   ` Benjamin Herrenschmidt
2011-06-16 22:38                   ` Ingo Molnar
2011-06-16 22:38                     ` Ingo Molnar
2011-06-16 22:47                     ` Andi Kleen
2011-06-16 22:47                       ` Andi Kleen
2011-06-16 22:58                       ` Ingo Molnar
2011-06-16 22:58                         ` Ingo Molnar
2011-06-17  0:45                         ` Paul E. McKenney
2011-06-17  0:45                           ` Paul E. McKenney
2011-06-17  9:43                           ` Ingo Molnar
2011-06-17  9:43                             ` Ingo Molnar
2011-06-17 16:48                             ` Paul E. McKenney
2011-06-17 16:48                               ` Paul E. McKenney
2011-06-16 23:37                 ` Paul E. McKenney
2011-06-16 23:37                   ` Paul E. McKenney
2011-06-15 20:13       ` Tim Chen
2011-06-15 20:13         ` Tim Chen
2011-06-15 20:17         ` Ingo Molnar
2011-06-15 20:17           ` Ingo Molnar
2011-06-15 20:21           ` Tim Chen
2011-06-15 20:21             ` Tim Chen

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=20110617151915.GH25197@somewhere.redhat.com \
    --to=fweisbec@gmail.com \
    --cc=ak@linux.intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=alex.shi@intel.com \
    --cc=benh@kernel.crashing.org \
    --cc=davem@davemloft.net \
    --cc=hughd@google.com \
    --cc=jdike@addtoit.com \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=kosaki.motohiro@jp.fujitsu.com \
    --cc=lethal@linux-sh.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mel@csn.ul.ie \
    --cc=mingo@elte.hu \
    --cc=namhyung@gmail.com \
    --cc=npiggin@kernel.dk \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=peterz@infradead.org \
    --cc=richard@nod.at \
    --cc=rjw@sisk.pl \
    --cc=rmk@arm.linux.org.uk \
    --cc=schwidefsky@de.ibm.com \
    --cc=shaohua.li@intel.com \
    --cc=tim.c.chen@linux.intel.com \
    --cc=tony.luck@intel.com \
    --cc=torvalds@linux-foundation.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.