All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marc Zyngier <marc.zyngier@arm.com>
To: Sudeep Holla <sudeep.holla@arm.com>,
	kvmarm@lists.cs.columbia.edu,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH] arm64: KVM: unregister notifiers in hyp mode teardown path
Date: Mon, 4 Apr 2016 14:55:57 +0100	[thread overview]
Message-ID: <5702726D.7000505@arm.com> (raw)
In-Reply-To: <1459777611-22592-1-git-send-email-sudeep.holla@arm.com>

Hi Sudeep,

On 04/04/16 14:46, Sudeep Holla wrote:
> Commit 1e947bad0b63 ("arm64: KVM: Skip HYP setup when already running
> in HYP") re-organized the hyp init code and ended up leaving the CPU
> hotplug and PM notifier even if hyp mode initialization fails.
> 
> Since KVM is not yet supported with ACPI, the above mentioned commit
> breaks CPU hotplug in ACPI boot.
> 
> This patch fixes teardown_hyp_mode to properly unregister both CPU
> hotplug and PM notifiers in the teardown path.
> 
> Fixes: 1e947bad0b63 ("arm64: KVM: Skip HYP setup when already running in HYP")
> Cc: Christoffer Dall <christoffer.dall@linaro.org>
> Cc: Marc Zyngier <marc.zyngier@arm.com>
> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>

This looks OK to me, with a question below though:

> ---
>  arch/arm/kvm/arm.c | 16 ++++++++++------
>  1 file changed, 10 insertions(+), 6 deletions(-)
> 
> diff --git a/arch/arm/kvm/arm.c b/arch/arm/kvm/arm.c
> index 6accd66d26f0..42b3a1f83271 100644
> --- a/arch/arm/kvm/arm.c
> +++ b/arch/arm/kvm/arm.c
> @@ -1101,10 +1101,17 @@ static void __init hyp_cpu_pm_init(void)
>  {
>  	cpu_pm_register_notifier(&hyp_init_cpu_pm_nb);
>  }
> +static void __init hyp_cpu_pm_exit(void)
> +{
> +	cpu_pm_unregister_notifier(&hyp_init_cpu_pm_nb);
> +}
>  #else
>  static inline void hyp_cpu_pm_init(void)
>  {
>  }
> +static inline void hyp_cpu_pm_exit(void)
> +{
> +}
>  #endif
>  
>  static void teardown_common_resources(void)
> @@ -1166,6 +1173,8 @@ static void teardown_hyp_mode(void)
>  	free_hyp_pgds();
>  	for_each_possible_cpu(cpu)
>  		free_page(per_cpu(kvm_arm_hyp_stack_page, cpu));
> +	unregister_cpu_notifier(&hyp_init_cpu_nb);
> +	hyp_cpu_pm_exit();
>  }
>  
>  static int init_vhe_mode(void)
> @@ -1270,12 +1279,7 @@ static int init_hyp_mode(void)
>  	free_boot_hyp_pgd();
>  #endif
>  
> -	cpu_notifier_register_begin();
> -
> -	err = __register_cpu_notifier(&hyp_init_cpu_nb);
> -
> -	cpu_notifier_register_done();
> -
> +	err = register_cpu_notifier(&hyp_init_cpu_nb);

We went from something like this to the cpu_notifier_register_begin/end
with 8146875de ("arm, kvm: Fix CPU hotplug callback registration").

What makes it more acceptable now?

Thanks,

	M.
-- 
Jazz is not dead. It just smells funny...

WARNING: multiple messages have this Message-ID (diff)
From: marc.zyngier@arm.com (Marc Zyngier)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] arm64: KVM: unregister notifiers in hyp mode teardown path
Date: Mon, 4 Apr 2016 14:55:57 +0100	[thread overview]
Message-ID: <5702726D.7000505@arm.com> (raw)
In-Reply-To: <1459777611-22592-1-git-send-email-sudeep.holla@arm.com>

Hi Sudeep,

On 04/04/16 14:46, Sudeep Holla wrote:
> Commit 1e947bad0b63 ("arm64: KVM: Skip HYP setup when already running
> in HYP") re-organized the hyp init code and ended up leaving the CPU
> hotplug and PM notifier even if hyp mode initialization fails.
> 
> Since KVM is not yet supported with ACPI, the above mentioned commit
> breaks CPU hotplug in ACPI boot.
> 
> This patch fixes teardown_hyp_mode to properly unregister both CPU
> hotplug and PM notifiers in the teardown path.
> 
> Fixes: 1e947bad0b63 ("arm64: KVM: Skip HYP setup when already running in HYP")
> Cc: Christoffer Dall <christoffer.dall@linaro.org>
> Cc: Marc Zyngier <marc.zyngier@arm.com>
> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>

This looks OK to me, with a question below though:

> ---
>  arch/arm/kvm/arm.c | 16 ++++++++++------
>  1 file changed, 10 insertions(+), 6 deletions(-)
> 
> diff --git a/arch/arm/kvm/arm.c b/arch/arm/kvm/arm.c
> index 6accd66d26f0..42b3a1f83271 100644
> --- a/arch/arm/kvm/arm.c
> +++ b/arch/arm/kvm/arm.c
> @@ -1101,10 +1101,17 @@ static void __init hyp_cpu_pm_init(void)
>  {
>  	cpu_pm_register_notifier(&hyp_init_cpu_pm_nb);
>  }
> +static void __init hyp_cpu_pm_exit(void)
> +{
> +	cpu_pm_unregister_notifier(&hyp_init_cpu_pm_nb);
> +}
>  #else
>  static inline void hyp_cpu_pm_init(void)
>  {
>  }
> +static inline void hyp_cpu_pm_exit(void)
> +{
> +}
>  #endif
>  
>  static void teardown_common_resources(void)
> @@ -1166,6 +1173,8 @@ static void teardown_hyp_mode(void)
>  	free_hyp_pgds();
>  	for_each_possible_cpu(cpu)
>  		free_page(per_cpu(kvm_arm_hyp_stack_page, cpu));
> +	unregister_cpu_notifier(&hyp_init_cpu_nb);
> +	hyp_cpu_pm_exit();
>  }
>  
>  static int init_vhe_mode(void)
> @@ -1270,12 +1279,7 @@ static int init_hyp_mode(void)
>  	free_boot_hyp_pgd();
>  #endif
>  
> -	cpu_notifier_register_begin();
> -
> -	err = __register_cpu_notifier(&hyp_init_cpu_nb);
> -
> -	cpu_notifier_register_done();
> -
> +	err = register_cpu_notifier(&hyp_init_cpu_nb);

We went from something like this to the cpu_notifier_register_begin/end
with 8146875de ("arm, kvm: Fix CPU hotplug callback registration").

What makes it more acceptable now?

Thanks,

	M.
-- 
Jazz is not dead. It just smells funny...

  reply	other threads:[~2016-04-04 13:54 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-04 13:46 [PATCH] arm64: KVM: unregister notifiers in hyp mode teardown path Sudeep Holla
2016-04-04 13:46 ` Sudeep Holla
2016-04-04 13:55 ` Marc Zyngier [this message]
2016-04-04 13:55   ` Marc Zyngier
2016-04-04 14:22   ` Sudeep Holla
2016-04-04 14:22     ` Sudeep Holla
2016-04-04 14:33     ` Marc Zyngier
2016-04-04 14:33       ` Marc Zyngier
2016-04-06 11:52 ` Christoffer Dall
2016-04-06 11:52   ` Christoffer Dall
2016-04-06 13:09   ` Sudeep Holla
2016-04-06 13:09     ` Sudeep Holla
2016-04-06 13:15     ` Christoffer Dall
2016-04-06 13:15       ` Christoffer Dall

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=5702726D.7000505@arm.com \
    --to=marc.zyngier@arm.com \
    --cc=kvmarm@lists.cs.columbia.edu \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=sudeep.holla@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.