From: Mukesh Rathor <mukesh.rathor@oracle.com>
To: Mukesh Rathor <mukesh.rathor@oracle.com>
Cc: jun.nakajima@intel.com, george.dunlap@eu.citrix.com,
Konrad Rzeszutek Wilk <konrad@kernel.org>,
jbeulich@suse.com, yang.z.zhang@intel.com,
xen-devel@lists.xenproject.org
Subject: Re: [PATCH] Xen 4.4-rc3 regression with PVH compared to Xen 4.4-rc2.
Date: Mon, 3 Feb 2014 17:16:35 -0800 [thread overview]
Message-ID: <20140203171635.6132cf7d@mantra.us.oracle.com> (raw)
In-Reply-To: <20140203112605.66306ae9@mantra.us.oracle.com>
On Mon, 3 Feb 2014 11:26:05 -0800
Mukesh Rathor <mukesh.rathor@oracle.com> wrote:
> On Mon, 3 Feb 2014 12:03:20 -0500
> Konrad Rzeszutek Wilk <konrad@kernel.org> wrote:
>
> > I am hereby requesting an Xen 4.4 exemption for this bug-fix.
> >
> > The PVH feature is considered experimental, but it would be good to
> > have it working out of the box without crashing the hypervisor.
> >
> > Sadly that is not the case as
> > 09bb434748af9bfe3f7fca4b6eef721a7d5042a4 "Nested VMX: prohibit
> > virtual vmentry/vmexit during IO emulation" casues an NULL pointer
> > dereference when starting a guest with 'pvh=1' in the guest config.
> >
> > There are two ways of fixing this:
> > a). Add an '!xen_pvh_domain()' or '!xen_pvh_vcpu(current)' in the
> > path, or b). Check for ioreq() being NULL. This is actually done in
> > other places in the hypervisor - so I choose to piggyback on that.
> >
>
> I was about to send this patch on friday:
>
> diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c
> index d2ba435..563b02f 100644
> --- a/xen/arch/x86/hvm/vmx/vvmx.c
> +++ b/xen/arch/x86/hvm/vmx/vvmx.c
> @@ -1394,13 +1394,14 @@ void nvmx_switch_guest(void)
> struct vcpu *v = current;
> struct nestedvcpu *nvcpu = &vcpu_nestedhvm(v);
> struct cpu_user_regs *regs = guest_cpu_user_regs();
> + ioreq_t *ioreq = get_ioreq(v);
>
> /*
> * a pending IO emualtion may still no finished. In this case,
> * no virtual vmswith is allowed. Or else, the following IO
> * emulation will handled in a wrong VCPU context.
> */
> - if ( get_ioreq(v)->state != STATE_IOREQ_NONE )
> + if ( ioreq && ioreq->state != STATE_IOREQ_NONE )
> return;
> /*
> * a softirq may interrupt us between a virtual vmentry is
>
>
>
> when I realized even after the above fix it is still crashing for
> me... debugging right now. JFYI.
Ok, the crash in nvmx_switch_guest() even after the above fix is a
different issue for which I am making a patch. So, this patch should
be applied, however, rather than calling get_ioreq() twice as in
Konrad's patch, I recommend my code above which calls it once. It's
inlined now, and prob would be optimized, but the function could
change in many ways in future.
thanks
mukesh
prev parent reply other threads:[~2014-02-04 1:17 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-03 17:03 [PATCH] Xen 4.4-rc3 regression with PVH compared to Xen 4.4-rc2 Konrad Rzeszutek Wilk
2014-02-03 17:03 ` [PATCH] pvh: Fix regression caused by assumption that HVM paths MUST use io-backend device Konrad Rzeszutek Wilk
2014-02-04 8:54 ` Jan Beulich
2014-02-04 14:48 ` Konrad Rzeszutek Wilk
2014-02-04 15:02 ` Jan Beulich
2014-02-04 15:32 ` Konrad Rzeszutek Wilk
2014-02-04 15:46 ` Jan Beulich
2014-02-04 16:42 ` Konrad Rzeszutek Wilk
2014-02-05 14:35 ` George Dunlap
2014-02-05 15:00 ` Jan Beulich
2014-02-05 15:26 ` Konrad Rzeszutek Wilk
2014-02-07 2:28 ` Zhang, Yang Z
2014-02-07 15:41 ` Konrad Rzeszutek Wilk
2014-02-10 12:40 ` George Dunlap
2014-02-11 0:17 ` Zhang, Yang Z
2014-02-13 15:38 ` George Dunlap
2014-02-13 16:03 ` Jan Beulich
2014-02-13 16:08 ` George Dunlap
2014-02-13 17:00 ` Jan Beulich
2014-02-03 19:26 ` [PATCH] Xen 4.4-rc3 regression with PVH compared to Xen 4.4-rc2 Mukesh Rathor
2014-02-03 19:53 ` Konrad Rzeszutek Wilk
2014-02-03 20:01 ` Mukesh Rathor
2014-02-04 1:16 ` Mukesh Rathor [this message]
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=20140203171635.6132cf7d@mantra.us.oracle.com \
--to=mukesh.rathor@oracle.com \
--cc=george.dunlap@eu.citrix.com \
--cc=jbeulich@suse.com \
--cc=jun.nakajima@intel.com \
--cc=konrad@kernel.org \
--cc=xen-devel@lists.xenproject.org \
--cc=yang.z.zhang@intel.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).