From: Scott Wood <scottwood@freescale.com>
To: Bhushan Bharat-R65777 <R65777@freescale.com>
Cc: Alexander Graf <agraf@suse.de>,
"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
"kvm-ppc@vger.kernel.org" <kvm-ppc@vger.kernel.org>,
Wood Scott-B07421 <B07421@freescale.com>,
Yoder Stuart-B08248 <B08248@freescale.com>
Subject: Re: [PATCH 5/5] powerpc: using reset hcall when kvm,has-reset
Date: Mon, 15 Jul 2013 18:21:43 +0000 [thread overview]
Message-ID: <1373912503.8183.311@snotra> (raw)
In-Reply-To: <6A3DF150A5B70D4F9B66A25E3F7C888D070D2883@039-SN2MPN1-013.039d.mgd.msft.net> (from R65777@freescale.com on Mon Jul 15 10:16:41 2013)
On 07/15/2013 10:16:41 AM, Bhushan Bharat-R65777 wrote:
>
>
> > -----Original Message-----
> > From: Alexander Graf [mailto:agraf@suse.de]
> > Sent: Monday, July 15, 2013 8:40 PM
> > To: Bhushan Bharat-R65777
> > Cc: kvm@vger.kernel.org; kvm-ppc@vger.kernel.org; Wood
> Scott-B07421; Yoder
> > Stuart-B08248
> > Subject: Re: [PATCH 5/5] powerpc: using reset hcall when
> kvm,has-reset
> >
> >
> > On 15.07.2013, at 17:05, Bhushan Bharat-R65777 wrote:
> >
> > >
> > >
> > >> -----Original Message-----
> > >> From: Alexander Graf [mailto:agraf@suse.de]
> > >> Sent: Monday, July 15, 2013 5:20 PM
> > >> To: Bhushan Bharat-R65777
> > >> Cc: kvm@vger.kernel.org; kvm-ppc@vger.kernel.org; Wood
> Scott-B07421;
> > >> Yoder Stuart-B08248; Bhushan Bharat-R65777
> > >> Subject: Re: [PATCH 5/5] powerpc: using reset hcall when
> > >> kvm,has-reset
> > >>
> > >>
> > >> On 15.07.2013, at 13:11, Bharat Bhushan wrote:
> > >>
> > >>> Detect the availability of the reset hcalls by looking at
> > >>> kvm,has-reset property on the /hypervisor node in the device
> tree
> > >>> passed to the VM and patches the reset mechanism to use reset
> hcall.
> > >>>
> > >>> This patch uses the reser hcall when kvm,has-reset is there in
> > >>
> > >> Your patch description is pretty broken :).
> > >>
> > >>>
> > >>> Signed-off-by: Bharat Bhushan <bharat.bhushan@freescale.com>
> > >>> ---
> > >>> arch/powerpc/kernel/epapr_paravirt.c | 12 ++++++++++++
> > >>> 1 files changed, 12 insertions(+), 0 deletions(-)
> > >>>
> > >>> diff --git a/arch/powerpc/kernel/epapr_paravirt.c
> > >>> b/arch/powerpc/kernel/epapr_paravirt.c
> > >>> index d44a571..651d701 100644
> > >>> --- a/arch/powerpc/kernel/epapr_paravirt.c
> > >>> +++ b/arch/powerpc/kernel/epapr_paravirt.c
> > >>> @@ -22,6 +22,8 @@
> > >>> #include <asm/cacheflush.h>
> > >>> #include <asm/code-patching.h>
> > >>> #include <asm/machdep.h>
> > >>> +#include <asm/kvm_para.h>
> > >>> +#include <asm/kvm_host.h>
> > >>
> > >> Why would we need kvm_host.h? This is guest code.
> > >>
> > >>>
> > >>> #if !defined(CONFIG_64BIT) || defined(CONFIG_PPC_BOOK3E_64)
> extern
> > >>> void epapr_ev_idle(void); @@ -30,6 +32,14 @@ extern u32
> > >>> epapr_ev_idle_start[];
> > >>>
> > >>> bool epapr_paravirt_enabled;
> > >>>
> > >>> +void epapr_hypercall_reset(char *cmd) {
> > >>> + long ret;
> > >>> + ret = kvm_hypercall0(KVM_HC_VM_RESET);
> > >>
> > >> Is this available without CONFIG_KVM_GUEST? kvm_hypercall()
> simply
> > >> returns "unimplemented" for everything when that config option
> is not set.
> > >
> > > We are here because we patched the ppc_md.restart to point to new
> handler.
> > > So I think we should patch the ppc_md.restart only if
> CONFIG_KVM_GUEST is
> > true.
> >
> > We should only patch it if kvm_para_available(). That should guard
> us against
> > everything.
It also should depend on whether the reset hcall is advertised in the
device tree.
> > >>> + printk("error: system reset returned with error %ld\n",
> ret);
> > >>
> > >> So we should fall back to the normal reset handler here.
> > >
> > > Do you mean return normally from here, no BUG() etc?
> >
> > If we guard the patching against everything, we can treat a broken
> hcall as BUG.
> > However, if we don't we want to fall back to the normal guts based
> reset.
>
> Will let Scott comment on this?
>
> But ppc_md.restart can point to only one handler and during paravirt
> patching we changed this to new handler. So we cannot jump back to
> guts type handler
I don't think it's worth implementing a fall-back scheme -- if KVM
advertises that the reset hcall exists, then it had better exist.
BTW, this is not part of ePAPR so it should not be in
epapr_paravirt.c. It should go in kvm.c.
-Scott
WARNING: multiple messages have this Message-ID (diff)
From: Scott Wood <scottwood@freescale.com>
To: Bhushan Bharat-R65777 <R65777@freescale.com>
Cc: Alexander Graf <agraf@suse.de>,
"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
"kvm-ppc@vger.kernel.org" <kvm-ppc@vger.kernel.org>,
Wood Scott-B07421 <B07421@freescale.com>,
Yoder Stuart-B08248 <B08248@freescale.com>
Subject: Re: [PATCH 5/5] powerpc: using reset hcall when kvm,has-reset
Date: Mon, 15 Jul 2013 13:21:43 -0500 [thread overview]
Message-ID: <1373912503.8183.311@snotra> (raw)
In-Reply-To: <6A3DF150A5B70D4F9B66A25E3F7C888D070D2883@039-SN2MPN1-013.039d.mgd.msft.net> (from R65777@freescale.com on Mon Jul 15 10:16:41 2013)
On 07/15/2013 10:16:41 AM, Bhushan Bharat-R65777 wrote:
>
>
> > -----Original Message-----
> > From: Alexander Graf [mailto:agraf@suse.de]
> > Sent: Monday, July 15, 2013 8:40 PM
> > To: Bhushan Bharat-R65777
> > Cc: kvm@vger.kernel.org; kvm-ppc@vger.kernel.org; Wood
> Scott-B07421; Yoder
> > Stuart-B08248
> > Subject: Re: [PATCH 5/5] powerpc: using reset hcall when
> kvm,has-reset
> >
> >
> > On 15.07.2013, at 17:05, Bhushan Bharat-R65777 wrote:
> >
> > >
> > >
> > >> -----Original Message-----
> > >> From: Alexander Graf [mailto:agraf@suse.de]
> > >> Sent: Monday, July 15, 2013 5:20 PM
> > >> To: Bhushan Bharat-R65777
> > >> Cc: kvm@vger.kernel.org; kvm-ppc@vger.kernel.org; Wood
> Scott-B07421;
> > >> Yoder Stuart-B08248; Bhushan Bharat-R65777
> > >> Subject: Re: [PATCH 5/5] powerpc: using reset hcall when
> > >> kvm,has-reset
> > >>
> > >>
> > >> On 15.07.2013, at 13:11, Bharat Bhushan wrote:
> > >>
> > >>> Detect the availability of the reset hcalls by looking at
> > >>> kvm,has-reset property on the /hypervisor node in the device
> tree
> > >>> passed to the VM and patches the reset mechanism to use reset
> hcall.
> > >>>
> > >>> This patch uses the reser hcall when kvm,has-reset is there in
> > >>
> > >> Your patch description is pretty broken :).
> > >>
> > >>>
> > >>> Signed-off-by: Bharat Bhushan <bharat.bhushan@freescale.com>
> > >>> ---
> > >>> arch/powerpc/kernel/epapr_paravirt.c | 12 ++++++++++++
> > >>> 1 files changed, 12 insertions(+), 0 deletions(-)
> > >>>
> > >>> diff --git a/arch/powerpc/kernel/epapr_paravirt.c
> > >>> b/arch/powerpc/kernel/epapr_paravirt.c
> > >>> index d44a571..651d701 100644
> > >>> --- a/arch/powerpc/kernel/epapr_paravirt.c
> > >>> +++ b/arch/powerpc/kernel/epapr_paravirt.c
> > >>> @@ -22,6 +22,8 @@
> > >>> #include <asm/cacheflush.h>
> > >>> #include <asm/code-patching.h>
> > >>> #include <asm/machdep.h>
> > >>> +#include <asm/kvm_para.h>
> > >>> +#include <asm/kvm_host.h>
> > >>
> > >> Why would we need kvm_host.h? This is guest code.
> > >>
> > >>>
> > >>> #if !defined(CONFIG_64BIT) || defined(CONFIG_PPC_BOOK3E_64)
> extern
> > >>> void epapr_ev_idle(void); @@ -30,6 +32,14 @@ extern u32
> > >>> epapr_ev_idle_start[];
> > >>>
> > >>> bool epapr_paravirt_enabled;
> > >>>
> > >>> +void epapr_hypercall_reset(char *cmd) {
> > >>> + long ret;
> > >>> + ret = kvm_hypercall0(KVM_HC_VM_RESET);
> > >>
> > >> Is this available without CONFIG_KVM_GUEST? kvm_hypercall()
> simply
> > >> returns "unimplemented" for everything when that config option
> is not set.
> > >
> > > We are here because we patched the ppc_md.restart to point to new
> handler.
> > > So I think we should patch the ppc_md.restart only if
> CONFIG_KVM_GUEST is
> > true.
> >
> > We should only patch it if kvm_para_available(). That should guard
> us against
> > everything.
It also should depend on whether the reset hcall is advertised in the
device tree.
> > >>> + printk("error: system reset returned with error %ld\n",
> ret);
> > >>
> > >> So we should fall back to the normal reset handler here.
> > >
> > > Do you mean return normally from here, no BUG() etc?
> >
> > If we guard the patching against everything, we can treat a broken
> hcall as BUG.
> > However, if we don't we want to fall back to the normal guts based
> reset.
>
> Will let Scott comment on this?
>
> But ppc_md.restart can point to only one handler and during paravirt
> patching we changed this to new handler. So we cannot jump back to
> guts type handler
I don't think it's worth implementing a fall-back scheme -- if KVM
advertises that the reset hcall exists, then it had better exist.
BTW, this is not part of ePAPR so it should not be in
epapr_paravirt.c. It should go in kvm.c.
-Scott
next prev parent reply other threads:[~2013-07-15 18:21 UTC|newest]
Thread overview: 103+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-15 11:11 [PATCH 0/5] powerpc: implement reset/shutdown hcalls Bharat Bhushan
2013-07-15 11:23 ` Bharat Bhushan
2013-07-15 11:11 ` [PATCH 1/5] powerpc: define ePAPR hcall exit interface Bharat Bhushan
2013-07-15 11:23 ` Bharat Bhushan
2013-07-15 11:21 ` Alexander Graf
2013-07-15 11:21 ` Alexander Graf
2013-07-15 11:32 ` Bhushan Bharat-R65777
2013-07-15 11:11 ` [PATCH 2/5] booke: exit to guest userspace for unimplemented hcalls in kvm Bharat Bhushan
2013-07-15 11:23 ` Bharat Bhushan
2013-07-15 11:31 ` Alexander Graf
2013-07-15 11:31 ` Alexander Graf
2013-07-15 11:38 ` Bhushan Bharat-R65777
2013-07-15 11:38 ` Bhushan Bharat-R65777
2013-07-15 11:46 ` Alexander Graf
2013-07-15 11:46 ` Alexander Graf
2013-07-15 14:50 ` Bhushan Bharat-R65777
2013-07-15 14:56 ` Alexander Graf
2013-07-15 14:56 ` Alexander Graf
2013-07-15 15:13 ` Bhushan Bharat-R65777
2013-07-15 15:29 ` Alexander Graf
2013-07-15 15:29 ` Alexander Graf
2013-07-15 15:35 ` Bhushan Bharat-R65777
2013-07-15 15:38 ` Alexander Graf
2013-07-15 15:38 ` Alexander Graf
2013-07-15 18:07 ` Scott Wood
2013-07-15 18:07 ` Scott Wood
2013-07-16 4:46 ` Bhushan Bharat-R65777
2013-07-16 4:46 ` Bhushan Bharat-R65777
2013-07-15 11:11 ` [PATCH 3/5] booke: define reset and shutdown hcalls Bharat Bhushan
2013-07-15 11:23 ` Bharat Bhushan
2013-07-15 11:30 ` Gleb Natapov
2013-07-15 11:30 ` Gleb Natapov
2013-07-15 11:44 ` Alexander Graf
2013-07-15 11:44 ` Alexander Graf
2013-07-15 12:15 ` Gleb Natapov
2013-07-15 12:15 ` Gleb Natapov
2013-07-15 12:21 ` Alexander Graf
2013-07-15 12:21 ` Alexander Graf
2013-07-15 12:24 ` Gleb Natapov
2013-07-15 12:24 ` Gleb Natapov
2013-07-15 12:26 ` Alexander Graf
2013-07-15 12:26 ` Alexander Graf
2013-07-15 12:31 ` Gleb Natapov
2013-07-15 12:31 ` Gleb Natapov
2013-07-15 18:17 ` Scott Wood
2013-07-15 18:17 ` Scott Wood
2013-07-16 6:35 ` Gleb Natapov
2013-07-16 6:35 ` Gleb Natapov
2013-07-16 23:04 ` Scott Wood
2013-07-16 23:04 ` Scott Wood
2013-07-17 11:00 ` Gleb Natapov
2013-07-17 11:00 ` Gleb Natapov
2013-07-17 12:19 ` Alexander Graf
2013-07-17 12:19 ` Alexander Graf
2013-07-17 15:19 ` Yoder Stuart-B08248
2013-07-17 15:21 ` Alexander Graf
2013-07-17 15:21 ` Alexander Graf
2013-07-17 15:36 ` Yoder Stuart-B08248
2013-07-17 15:41 ` Alexander Graf
2013-07-17 15:41 ` Alexander Graf
2013-07-17 15:47 ` Bhushan Bharat-R65777
2013-07-17 15:52 ` Alexander Graf
2013-07-17 15:52 ` Alexander Graf
2013-07-17 15:59 ` Bhushan Bharat-R65777
2013-07-17 16:04 ` Alexander Graf
2013-07-17 16:04 ` Alexander Graf
2013-07-17 16:21 ` Bhushan Bharat-R65777
2013-07-17 16:23 ` Alexander Graf
2013-07-17 16:23 ` Alexander Graf
2013-07-17 16:59 ` Scott Wood
2013-07-17 16:59 ` Scott Wood
2013-07-17 17:05 ` Alexander Graf
2013-07-17 17:05 ` Alexander Graf
2013-07-17 17:09 ` Scott Wood
2013-07-17 17:09 ` Scott Wood
2013-07-15 11:11 ` [PATCH 4/5] powerpc: Resolve KVM_HC_FEATURES compilation dependeny Bharat Bhushan
2013-07-15 11:23 ` Bharat Bhushan
2013-07-15 11:46 ` Alexander Graf
2013-07-15 11:46 ` Alexander Graf
2013-07-15 11:11 ` [PATCH 5/5] powerpc: using reset hcall when kvm,has-reset Bharat Bhushan
2013-07-15 11:23 ` Bharat Bhushan
2013-07-15 11:50 ` Alexander Graf
2013-07-15 11:50 ` Alexander Graf
2013-07-15 15:05 ` Bhushan Bharat-R65777
2013-07-15 15:09 ` Alexander Graf
2013-07-15 15:09 ` Alexander Graf
2013-07-15 15:16 ` Bhushan Bharat-R65777
2013-07-15 18:21 ` Scott Wood [this message]
2013-07-15 18:21 ` Scott Wood
2013-07-15 20:28 ` Alexander Graf
2013-07-15 20:28 ` Alexander Graf
2013-07-15 20:52 ` Scott Wood
2013-07-15 20:52 ` Scott Wood
2013-07-15 20:55 ` Alexander Graf
2013-07-15 20:55 ` Alexander Graf
2013-07-15 22:23 ` Scott Wood
2013-07-15 22:23 ` Scott Wood
2013-07-16 23:21 ` Alexander Graf
2013-07-16 23:21 ` Alexander Graf
2013-07-16 23:26 ` Scott Wood
2013-07-16 23:26 ` Scott Wood
2013-07-16 23:37 ` Scott Wood
2013-07-16 23:37 ` Scott Wood
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=1373912503.8183.311@snotra \
--to=scottwood@freescale.com \
--cc=B07421@freescale.com \
--cc=B08248@freescale.com \
--cc=R65777@freescale.com \
--cc=agraf@suse.de \
--cc=kvm-ppc@vger.kernel.org \
--cc=kvm@vger.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 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.