All of lore.kernel.org
 help / color / mirror / Atom feed
From: Frederic Weisbecker <fweisbec@gmail.com>
To: Rik van Riel <riel@redhat.com>
Cc: paulmck@linux.vnet.ibm.com, luto@amacapital.net,
	will.deacon@arm.com, linux-kernel@vger.kernel.org,
	kvm@vger.kernel.org, mtosatti@redhat.com, borntraeger@de.ibm.com,
	lcapitulino@redhat.com, pbonzini@redhat.com
Subject: Re: [PATCH -v5 6/5] context_tracking: fix exception_enter when already in IN_KERNEL
Date: Thu, 12 Feb 2015 16:42:34 +0100	[thread overview]
Message-ID: <20150212154232.GE18363@lerouge> (raw)
In-Reply-To: <20150211144319.2a0c29d6@cuia.bos.redhat.com>

On Wed, Feb 11, 2015 at 02:43:19PM -0500, Rik van Riel wrote:
> If exception_enter happens when already in IN_KERNEL state, the
> code still calls context_tracking_exit, which ends up in
> rcu_eqs_exit_common, which explodes with a WARN_ON when it is
> called in a situation where dynticks are not enabled.

Fortunately context_tracking_exit() already has a current_state == IN_KERNEL
check so this shouldn't be a problem.

Meanwhile I'll still take the patch, it's better to handle that
from the caller.

Thanks.

> 
> This can be avoided by having exception_enter only switch to
> IN_KERNEL state if the current state is not already IN_KERNEL.
> 
> Signed-off-by: Rik van Riel <riel@redhat.com>
> Reported-by: Luiz Capitulino <lcapitulino@redhat.com>
> ---
> Frederic, you will want this "bonus" patch, too :)
> 
> Thanks to Luiz for finding this one. Whatever I was running did not
> trigger this issue...
> 
>  include/linux/context_tracking.h | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/include/linux/context_tracking.h b/include/linux/context_tracking.h
> index b65fd1420e53..9da230406e8c 100644
> --- a/include/linux/context_tracking.h
> +++ b/include/linux/context_tracking.h
> @@ -37,7 +37,8 @@ static inline enum ctx_state exception_enter(void)
>  		return 0;
>  
>  	prev_ctx = this_cpu_read(context_tracking.state);
> -	context_tracking_exit(prev_ctx);
> +	if (prev_ctx != IN_KERNEL)
> +		context_tracking_exit(prev_ctx);
>  
>  	return prev_ctx;
>  }
> 

  parent reply	other threads:[~2015-02-12 15:42 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-10 20:27 [PATCH -v5 0/5] rcu,nohz,kvm: use RCU extended quiescent state when running KVM guest riel
2015-02-10 20:27 ` [PATCH 1/5] context_tracking: generalize context tracking APIs to support user and guest riel
2015-02-10 21:28   ` Paul E. McKenney
2015-02-10 20:27 ` [PATCH 2/5] nohz: add stub context_tracking_is_enabled riel
2015-02-10 21:29   ` Paul E. McKenney
2015-02-10 20:27 ` [PATCH 3/5] rcu,nohz: run vtime_user_enter/exit only when state == IN_USER riel
2015-02-10 21:35   ` Paul E. McKenney
2015-02-10 20:27 ` [PATCH 4/5] nohz,kvm: export context_tracking_user_enter/exit riel
2015-02-10 21:36   ` Paul E. McKenney
2015-02-10 20:27 ` [PATCH 5/5] kvm,rcu,nohz: use RCU extended quiescent state when running KVM guest riel
2015-02-10 21:42   ` Paul E. McKenney
2015-02-11 19:43 ` [PATCH -v5 6/5] context_tracking: fix exception_enter when already in IN_KERNEL Rik van Riel
2015-02-11 21:27   ` Paul E. McKenney
2015-02-12 15:42   ` Frederic Weisbecker [this message]
2015-02-12 15:47     ` Rik van Riel
2015-02-12 17:00       ` Frederic Weisbecker
2015-02-12 17:48         ` Rik van Riel
2015-02-12 17:09 ` [PATCH -v5 0/5] rcu,nohz,kvm: use RCU extended quiescent state when running KVM guest 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=20150212154232.GE18363@lerouge \
    --to=fweisbec@gmail.com \
    --cc=borntraeger@de.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=lcapitulino@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@amacapital.net \
    --cc=mtosatti@redhat.com \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=riel@redhat.com \
    --cc=will.deacon@arm.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 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.