linux-next.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Gleb Natapov <gleb@redhat.com>
To: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Li Zhong <zhong@linux.vnet.ibm.com>,
	linux-next list <linux-next@vger.kernel.org>,
	LKML <linux-kernel@vger.kernel.org>,
	paulmck@linux.vnet.ibm.com, sasha.levin@oracle.com,
	avi@redhat.com
Subject: Re: [RFC PATCH v2] Add rcu user eqs exception hooks for async page fault
Date: Thu, 29 Nov 2012 13:07:17 +0200	[thread overview]
Message-ID: <20121129110717.GA9711@redhat.com> (raw)
In-Reply-To: <CAFTL4hxoFBLNQCABBpJRBgV-r-Mg5GSq7HbPfWJRraSvtviz4A@mail.gmail.com>

On Wed, Nov 28, 2012 at 03:25:07PM +0100, Frederic Weisbecker wrote:
> 2012/11/28 Gleb Natapov <gleb@redhat.com>:
> > On Wed, Nov 28, 2012 at 01:55:42PM +0100, Frederic Weisbecker wrote:
> >> Yes but if rcu_irq_*() calls are fine to be called there, and I
> >> believe they are because exception_enter() exits the user mode, we
> >> should start to protect there right now instead of waiting for a
> >> potential future warning of illegal RCU use.
> >>
> > Async page not present is not much different from regular page fault
> > exception when it happens not on idle task (regular #PF cannot happen
> > on idle task), but code have a special handling for idle task. So why
> > do you think rcu_irq_*() is required here, but not in page fault
> > handler?
> 
> Because we are not supposed to fault in idle, at least I hope there
> are no case around. Except on cases like here with KVM I guess but we
> have that special async handler for that.
> 
As far as I understand rcu_irq_enter() should be called before entering
the mode in which read-side critical sections can occur, but async page
fault does not uses RCU in case of faulting in idle. Actually, looking
closer, it may call kfree() if page ready notification arrives ahead
of not present notification (with todays KVM it cannot happen) and we
have to assume that kfree() uses rcu read even if it currently does not.
So may be it is possible to move rcu_irq_*() calls to be around unlikely
kfree() call only.

--
			Gleb.

  reply	other threads:[~2012-11-29 11:07 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-27  5:15 [RFC PATCH] Fix abnormal rcu dynticks_nesting values related to async page fault Li Zhong
2012-11-27  5:58 ` [PATCH rcu] use new nesting value for rcu_dyntick trace in rcu_eqs_enter_common Li Zhong
2012-11-27 15:18   ` Paul E. McKenney
2012-11-27 13:07 ` [RFC PATCH] Fix abnormal rcu dynticks_nesting values related to async page fault Gleb Natapov
2012-11-27 14:01   ` Sasha Levin
2012-11-27 15:25     ` Paul E. McKenney
2012-11-27 15:34   ` Frederic Weisbecker
2012-11-27 14:38 ` Frederic Weisbecker
2012-11-27 15:44   ` Gleb Natapov
2012-11-27 15:56     ` Frederic Weisbecker
2012-11-27 16:19       ` Paul E. McKenney
2012-11-27 16:48         ` Frederic Weisbecker
2012-11-27 16:59           ` Paul E. McKenney
2012-11-27 16:39       ` Gleb Natapov
2012-11-27 16:51         ` Frederic Weisbecker
2012-11-27 17:00           ` Gleb Natapov
2012-11-27 17:30             ` Frederic Weisbecker
2012-11-27 17:47               ` Gleb Natapov
2012-11-27 18:12                 ` Frederic Weisbecker
2012-11-27 19:27                   ` Gleb Natapov
2012-11-27 22:53                     ` Frederic Weisbecker
2012-11-27 22:54                       ` Frederic Weisbecker
2012-11-27 15:39 ` Frederic Weisbecker
2012-11-27 16:16   ` Paul E. McKenney
2012-11-27 16:31     ` Frederic Weisbecker
2012-11-27 16:29 ` Frederic Weisbecker
2012-11-28  8:18   ` [RFC PATCH v2] Add rcu user eqs exception hooks for " Li Zhong
2012-11-28 12:55     ` Frederic Weisbecker
2012-11-28 13:53       ` Gleb Natapov
2012-11-28 14:25         ` Frederic Weisbecker
2012-11-29 11:07           ` Gleb Natapov [this message]
2012-11-29 14:47             ` Frederic Weisbecker
2012-11-30  9:18               ` [RFC PATCH v3] " Li Zhong
2012-11-30 10:26                 ` Gleb Natapov
2012-12-03  2:08                   ` Li Zhong
2012-12-03  8:30                     ` Gleb Natapov
2012-12-03  9:57                 ` Gleb Natapov
2012-12-04  2:35                   ` [ PATCH] " Li Zhong
2012-12-18 13:25                     ` Gleb Natapov
2012-12-04  2:36                   ` [RFC PATCH v3] " Li Zhong
2012-12-04  5:11                     ` Gleb Natapov
2012-12-04  5:40                       ` Li Zhong
2012-12-04 13:02                     ` Gleb Natapov
2012-12-04 14:28                       ` Paul E. McKenney
2012-11-29  1:49       ` [RFC PATCH v2] " Li Zhong
2012-11-29 14:40         ` Frederic Weisbecker
2012-11-29 17:25           ` Gleb Natapov
2012-11-30  8:36             ` Li Zhong
2012-11-30 10:08               ` Gleb Natapov
2012-11-27 16:43 ` [RFC PATCH] Fix abnormal rcu dynticks_nesting values related to " Frederic Weisbecker

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=20121129110717.GA9711@redhat.com \
    --to=gleb@redhat.com \
    --cc=avi@redhat.com \
    --cc=fweisbec@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-next@vger.kernel.org \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=sasha.levin@oracle.com \
    --cc=zhong@linux.vnet.ibm.com \
    /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).