Message ID | 20160527133033.7412-1-haozhong.zhang@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
>>> On 27.05.16 at 15:30, <haozhong.zhang@intel.com> wrote: > Commit 26646f3 "x86/mce: translate passed-in GPA to host machine > address" and commit 4ddf474 "tools/xen-mceinj: Pass in GPA when > injecting through MSR_MCI_ADDR" forgot to consider reserved domain > ID and mistakenly add MC_MSRINJ_F_GPADDR flag for them, which in turn > causes bug reported by > http://lists.xenproject.org/archives/html/xen-devel/2016-05/msg02640.html. > > This patch removes MC_MSRINK_F_GPADDR flag and checks this when injecting > to reserved domain IDs except DOMID_SELF, and treats the passed-in > address as host machine address. > > Signed-off-by: Haozhong Zhang <haozhong.zhang@intel.com> Reviewed-by: Jan Beulich <jbeulich@suse.com>
On Fri, May 27, 2016 at 08:03:42AM -0600, Jan Beulich wrote: > >>> On 27.05.16 at 15:30, <haozhong.zhang@intel.com> wrote: > > Commit 26646f3 "x86/mce: translate passed-in GPA to host machine > > address" and commit 4ddf474 "tools/xen-mceinj: Pass in GPA when > > injecting through MSR_MCI_ADDR" forgot to consider reserved domain > > ID and mistakenly add MC_MSRINJ_F_GPADDR flag for them, which in turn > > causes bug reported by > > http://lists.xenproject.org/archives/html/xen-devel/2016-05/msg02640.html. > > > > This patch removes MC_MSRINK_F_GPADDR flag and checks this when injecting > > to reserved domain IDs except DOMID_SELF, and treats the passed-in > > address as host machine address. > > > > Signed-off-by: Haozhong Zhang <haozhong.zhang@intel.com> > > Reviewed-by: Jan Beulich <jbeulich@suse.com> > Release-acked-by: Wei Liu <wei.liu2@citrix.com>
On Fri, May 27, 2016 at 03:06:08PM +0100, Wei Liu wrote: > On Fri, May 27, 2016 at 08:03:42AM -0600, Jan Beulich wrote: > > >>> On 27.05.16 at 15:30, <haozhong.zhang@intel.com> wrote: > > > Commit 26646f3 "x86/mce: translate passed-in GPA to host machine > > > address" and commit 4ddf474 "tools/xen-mceinj: Pass in GPA when > > > injecting through MSR_MCI_ADDR" forgot to consider reserved domain > > > ID and mistakenly add MC_MSRINJ_F_GPADDR flag for them, which in turn > > > causes bug reported by > > > http://lists.xenproject.org/archives/html/xen-devel/2016-05/msg02640.html. > > > > > > This patch removes MC_MSRINK_F_GPADDR flag and checks this when injecting > > > to reserved domain IDs except DOMID_SELF, and treats the passed-in > > > address as host machine address. > > > > > > Signed-off-by: Haozhong Zhang <haozhong.zhang@intel.com> > > > > Reviewed-by: Jan Beulich <jbeulich@suse.com> > > > > Release-acked-by: Wei Liu <wei.liu2@citrix.com> And queued.
>>> On 27.05.16 at 17:31, <wei.liu2@citrix.com> wrote: > On Fri, May 27, 2016 at 03:06:08PM +0100, Wei Liu wrote: >> On Fri, May 27, 2016 at 08:03:42AM -0600, Jan Beulich wrote: >> > >>> On 27.05.16 at 15:30, <haozhong.zhang@intel.com> wrote: >> > > Commit 26646f3 "x86/mce: translate passed-in GPA to host machine >> > > address" and commit 4ddf474 "tools/xen-mceinj: Pass in GPA when >> > > injecting through MSR_MCI_ADDR" forgot to consider reserved domain >> > > ID and mistakenly add MC_MSRINJ_F_GPADDR flag for them, which in turn >> > > causes bug reported by >> > > http://lists.xenproject.org/archives/html/xen-devel/2016-05/msg02640.html. >> > > >> > > This patch removes MC_MSRINK_F_GPADDR flag and checks this when injecting >> > > to reserved domain IDs except DOMID_SELF, and treats the passed-in >> > > address as host machine address. >> > > >> > > Signed-off-by: Haozhong Zhang <haozhong.zhang@intel.com> >> > >> > Reviewed-by: Jan Beulich <jbeulich@suse.com> >> > >> >> Release-acked-by: Wei Liu <wei.liu2@citrix.com> > > And queued. Please wait for a maintainer ack. Jan
On Fri, May 27, 2016 at 10:06:31AM -0600, Jan Beulich wrote: > >>> On 27.05.16 at 17:31, <wei.liu2@citrix.com> wrote: > > On Fri, May 27, 2016 at 03:06:08PM +0100, Wei Liu wrote: > >> On Fri, May 27, 2016 at 08:03:42AM -0600, Jan Beulich wrote: > >> > >>> On 27.05.16 at 15:30, <haozhong.zhang@intel.com> wrote: > >> > > Commit 26646f3 "x86/mce: translate passed-in GPA to host machine > >> > > address" and commit 4ddf474 "tools/xen-mceinj: Pass in GPA when > >> > > injecting through MSR_MCI_ADDR" forgot to consider reserved domain > >> > > ID and mistakenly add MC_MSRINJ_F_GPADDR flag for them, which in turn > >> > > causes bug reported by > >> > > http://lists.xenproject.org/archives/html/xen-devel/2016-05/msg02640.html. > >> > > > >> > > This patch removes MC_MSRINK_F_GPADDR flag and checks this when injecting > >> > > to reserved domain IDs except DOMID_SELF, and treats the passed-in > >> > > address as host machine address. > >> > > > >> > > Signed-off-by: Haozhong Zhang <haozhong.zhang@intel.com> > >> > > >> > Reviewed-by: Jan Beulich <jbeulich@suse.com> > >> > > >> > >> Release-acked-by: Wei Liu <wei.liu2@citrix.com> > > > > And queued. > > Please wait for a maintainer ack. > $ ./scripts/get_maintainer.pl -f xen/arch/x86/cpu/mcheck/mce.c Christoph Egger <chegger@amazon.de> Liu Jinsong <jinsong.liu@alibaba-inc.com> Jan Beulich <jbeulich@suse.com> Andrew Cooper <andrew.cooper3@citrix.com> xen-devel@lists.xen.org So I took it that your review was sufficient and pushed it. It's already in staging. I can revert it now. Wei. > Jan > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel
On Fri, May 27, 2016 at 05:14:08PM +0100, Wei Liu wrote: > On Fri, May 27, 2016 at 10:06:31AM -0600, Jan Beulich wrote: > > >>> On 27.05.16 at 17:31, <wei.liu2@citrix.com> wrote: > > > On Fri, May 27, 2016 at 03:06:08PM +0100, Wei Liu wrote: > > >> On Fri, May 27, 2016 at 08:03:42AM -0600, Jan Beulich wrote: > > >> > >>> On 27.05.16 at 15:30, <haozhong.zhang@intel.com> wrote: > > >> > > Commit 26646f3 "x86/mce: translate passed-in GPA to host machine > > >> > > address" and commit 4ddf474 "tools/xen-mceinj: Pass in GPA when > > >> > > injecting through MSR_MCI_ADDR" forgot to consider reserved domain > > >> > > ID and mistakenly add MC_MSRINJ_F_GPADDR flag for them, which in turn > > >> > > causes bug reported by > > >> > > http://lists.xenproject.org/archives/html/xen-devel/2016-05/msg02640.html. > > >> > > > > >> > > This patch removes MC_MSRINK_F_GPADDR flag and checks this when injecting > > >> > > to reserved domain IDs except DOMID_SELF, and treats the passed-in > > >> > > address as host machine address. > > >> > > > > >> > > Signed-off-by: Haozhong Zhang <haozhong.zhang@intel.com> > > >> > > > >> > Reviewed-by: Jan Beulich <jbeulich@suse.com> > > >> > > > >> > > >> Release-acked-by: Wei Liu <wei.liu2@citrix.com> > > > > > > And queued. > > > > Please wait for a maintainer ack. > > > > $ ./scripts/get_maintainer.pl -f xen/arch/x86/cpu/mcheck/mce.c > Christoph Egger <chegger@amazon.de> > Liu Jinsong <jinsong.liu@alibaba-inc.com> > Jan Beulich <jbeulich@suse.com> > Andrew Cooper <andrew.cooper3@citrix.com> > xen-devel@lists.xen.org > OK, so looking at MAINTAINERS file: MACHINE CHECK (MCA) & RAS M: Christoph Egger <chegger@amazon.de> M: Liu Jinsong <jinsong.liu@alibaba-inc.com> S: Supported F: xen/arch/x86/cpu/mcheck/ I will revert this patch now. Sorry for all the trouble! Wei.
On 05/27/16 17:16, Wei Liu wrote: > On Fri, May 27, 2016 at 05:14:08PM +0100, Wei Liu wrote: > > On Fri, May 27, 2016 at 10:06:31AM -0600, Jan Beulich wrote: > > > >>> On 27.05.16 at 17:31, <wei.liu2@citrix.com> wrote: > > > > On Fri, May 27, 2016 at 03:06:08PM +0100, Wei Liu wrote: > > > >> On Fri, May 27, 2016 at 08:03:42AM -0600, Jan Beulich wrote: > > > >> > >>> On 27.05.16 at 15:30, <haozhong.zhang@intel.com> wrote: > > > >> > > Commit 26646f3 "x86/mce: translate passed-in GPA to host machine > > > >> > > address" and commit 4ddf474 "tools/xen-mceinj: Pass in GPA when > > > >> > > injecting through MSR_MCI_ADDR" forgot to consider reserved domain > > > >> > > ID and mistakenly add MC_MSRINJ_F_GPADDR flag for them, which in turn > > > >> > > causes bug reported by > > > >> > > http://lists.xenproject.org/archives/html/xen-devel/2016-05/msg02640.html. > > > >> > > > > > >> > > This patch removes MC_MSRINK_F_GPADDR flag and checks this when injecting > > > >> > > to reserved domain IDs except DOMID_SELF, and treats the passed-in > > > >> > > address as host machine address. > > > >> > > > > > >> > > Signed-off-by: Haozhong Zhang <haozhong.zhang@intel.com> > > > >> > > > > >> > Reviewed-by: Jan Beulich <jbeulich@suse.com> > > > >> > > > > >> > > > >> Release-acked-by: Wei Liu <wei.liu2@citrix.com> > > > > > > > > And queued. > > > > > > Please wait for a maintainer ack. > > > > > > > $ ./scripts/get_maintainer.pl -f xen/arch/x86/cpu/mcheck/mce.c > > Christoph Egger <chegger@amazon.de> > > Liu Jinsong <jinsong.liu@alibaba-inc.com> > > Jan Beulich <jbeulich@suse.com> > > Andrew Cooper <andrew.cooper3@citrix.com> > > xen-devel@lists.xen.org > > > > OK, so looking at MAINTAINERS file: > > MACHINE CHECK (MCA) & RAS > M: Christoph Egger <chegger@amazon.de> > M: Liu Jinsong <jinsong.liu@alibaba-inc.com> > S: Supported > F: xen/arch/x86/cpu/mcheck/ > > I will revert this patch now. Sorry for all the trouble! > > Wei. Hi Christoph and Jinsong, Could you help to look at this patch set? Thanks, Haozhong
On Wed, Jun 01, 2016 at 02:38:17PM +0800, Haozhong Zhang wrote: > On 05/27/16 17:16, Wei Liu wrote: > > On Fri, May 27, 2016 at 05:14:08PM +0100, Wei Liu wrote: > > > On Fri, May 27, 2016 at 10:06:31AM -0600, Jan Beulich wrote: > > > > >>> On 27.05.16 at 17:31, <wei.liu2@citrix.com> wrote: > > > > > On Fri, May 27, 2016 at 03:06:08PM +0100, Wei Liu wrote: > > > > >> On Fri, May 27, 2016 at 08:03:42AM -0600, Jan Beulich wrote: > > > > >> > >>> On 27.05.16 at 15:30, <haozhong.zhang@intel.com> wrote: > > > > >> > > Commit 26646f3 "x86/mce: translate passed-in GPA to host machine > > > > >> > > address" and commit 4ddf474 "tools/xen-mceinj: Pass in GPA when > > > > >> > > injecting through MSR_MCI_ADDR" forgot to consider reserved domain > > > > >> > > ID and mistakenly add MC_MSRINJ_F_GPADDR flag for them, which in turn > > > > >> > > causes bug reported by > > > > >> > > http://lists.xenproject.org/archives/html/xen-devel/2016-05/msg02640.html. > > > > >> > > > > > > >> > > This patch removes MC_MSRINK_F_GPADDR flag and checks this when injecting > > > > >> > > to reserved domain IDs except DOMID_SELF, and treats the passed-in > > > > >> > > address as host machine address. > > > > >> > > > > > > >> > > Signed-off-by: Haozhong Zhang <haozhong.zhang@intel.com> > > > > >> > > > > > >> > Reviewed-by: Jan Beulich <jbeulich@suse.com> > > > > >> > > > > > >> > > > > >> Release-acked-by: Wei Liu <wei.liu2@citrix.com> > > > > > > > > > > And queued. > > > > > > > > Please wait for a maintainer ack. > > > > > > > > > > $ ./scripts/get_maintainer.pl -f xen/arch/x86/cpu/mcheck/mce.c > > > Christoph Egger <chegger@amazon.de> > > > Liu Jinsong <jinsong.liu@alibaba-inc.com> > > > Jan Beulich <jbeulich@suse.com> > > > Andrew Cooper <andrew.cooper3@citrix.com> > > > xen-devel@lists.xen.org > > > > > > > OK, so looking at MAINTAINERS file: > > > > MACHINE CHECK (MCA) & RAS > > M: Christoph Egger <chegger@amazon.de> > > M: Liu Jinsong <jinsong.liu@alibaba-inc.com> > > S: Supported > > F: xen/arch/x86/cpu/mcheck/ > > > > I will revert this patch now. Sorry for all the trouble! > > > > Wei. > > Hi Christoph and Jinsong, > > Could you help to look at this patch set? > I think this is a bit too late for 4.7.0. It can be backported when Christoph and Jinsong get around to it. Wei. > Thanks, > Haozhong
On 27.05.16 15:30, Haozhong Zhang wrote: > Commit 26646f3 "x86/mce: translate passed-in GPA to host machine > address" and commit 4ddf474 "tools/xen-mceinj: Pass in GPA when > injecting through MSR_MCI_ADDR" forgot to consider reserved domain > ID and mistakenly add MC_MSRINJ_F_GPADDR flag for them, which in turn > causes bug reported by > http://lists.xenproject.org/archives/html/xen-devel/2016-05/msg02640.html. > > This patch removes MC_MSRINK_F_GPADDR flag and checks this when injecting > to reserved domain IDs except DOMID_SELF, and treats the passed-in > address as host machine address. > > Signed-off-by: Haozhong Zhang <haozhong.zhang@intel.com> Acked-by: Christoph Egger <chegger@amazon.de> > --- > Changes in v3: > * Refine check condition of domid. > > Changes in v2: > * Consider all reserved domain IDs rather than just DOMID_XEN. > > v1 can be found at > http://lists.xenproject.org/archives/html/xen-devel/2016-05/msg02534.html. > --- > tools/tests/mce-test/tools/xen-mceinj.c | 5 ++++- > xen/arch/x86/cpu/mcheck/mce.c | 14 +++++++++++--- > 2 files changed, 15 insertions(+), 4 deletions(-) > > diff --git a/tools/tests/mce-test/tools/xen-mceinj.c b/tools/tests/mce-test/tools/xen-mceinj.c > index 061ec7c..51abc8a 100644 > --- a/tools/tests/mce-test/tools/xen-mceinj.c > +++ b/tools/tests/mce-test/tools/xen-mceinj.c > @@ -317,7 +317,10 @@ static int inject_mci_addr(xc_interface *xc_handle, > domid_t domid) > { > return add_msr_bank_intpose(xc_handle, cpu_nr, > - MC_MSRINJ_F_INTERPOSE | MC_MSRINJ_F_GPADDR, > + MC_MSRINJ_F_INTERPOSE | > + ((domid >= DOMID_FIRST_RESERVED && > + domid != DOMID_SELF) ? > + 0 : MC_MSRINJ_F_GPADDR), > MCi_type_ADDR, bank, val, domid); > } > > diff --git a/xen/arch/x86/cpu/mcheck/mce.c b/xen/arch/x86/cpu/mcheck/mce.c > index cc446eb..0244553 100644 > --- a/xen/arch/x86/cpu/mcheck/mce.c > +++ b/xen/arch/x86/cpu/mcheck/mce.c > @@ -1427,6 +1427,7 @@ long do_mca(XEN_GUEST_HANDLE_PARAM(xen_mc_t) u_xen_mc) > > if ( mc_msrinject->mcinj_flags & MC_MSRINJ_F_GPADDR ) > { > + domid_t domid; > struct domain *d; > struct mcinfo_msr *msr; > unsigned int i; > @@ -1434,10 +1435,17 @@ long do_mca(XEN_GUEST_HANDLE_PARAM(xen_mc_t) u_xen_mc) > unsigned long gfn, mfn; > p2m_type_t t; > > - d = get_domain_by_id(mc_msrinject->mcinj_domid); > + domid = (mc_msrinject->mcinj_domid == DOMID_SELF) ? > + current->domain->domain_id : mc_msrinject->mcinj_domid; > + if ( domid >= DOMID_FIRST_RESERVED ) > + return x86_mcerr("do_mca inject: incompatible flag " > + "MC_MSRINJ_F_GPADDR with domain %d", > + -EINVAL, domid); > + > + d = get_domain_by_id(domid); > if ( d == NULL ) > return x86_mcerr("do_mca inject: bad domain id %d", > - -EINVAL, mc_msrinject->mcinj_domid); > + -EINVAL, domid); > > for ( i = 0, msr = &mc_msrinject->mcinj_msr[0]; > i < mc_msrinject->mcinj_count; > @@ -1452,7 +1460,7 @@ long do_mca(XEN_GUEST_HANDLE_PARAM(xen_mc_t) u_xen_mc) > put_gfn(d, gfn); > put_domain(d); > return x86_mcerr("do_mca inject: bad gfn %#lx of domain %d", > - -EINVAL, gfn, mc_msrinject->mcinj_domid); > + -EINVAL, gfn, domid); > } > > msr->value = pfn_to_paddr(mfn) | (gaddr & (PAGE_SIZE - 1)); >
On Mon, Jun 06, 2016 at 03:40:33PM +0200, Egger, Christoph wrote: > On 27.05.16 15:30, Haozhong Zhang wrote: > > Commit 26646f3 "x86/mce: translate passed-in GPA to host machine > > address" and commit 4ddf474 "tools/xen-mceinj: Pass in GPA when > > injecting through MSR_MCI_ADDR" forgot to consider reserved domain > > ID and mistakenly add MC_MSRINJ_F_GPADDR flag for them, which in turn > > causes bug reported by > > http://lists.xenproject.org/archives/html/xen-devel/2016-05/msg02640.html. > > > > This patch removes MC_MSRINK_F_GPADDR flag and checks this when injecting > > to reserved domain IDs except DOMID_SELF, and treats the passed-in > > address as host machine address. > > > > Signed-off-by: Haozhong Zhang <haozhong.zhang@intel.com> > > Acked-by: Christoph Egger <chegger@amazon.de> > Thanks! I will see what I can with it for 4.7.0. Wei.
diff --git a/tools/tests/mce-test/tools/xen-mceinj.c b/tools/tests/mce-test/tools/xen-mceinj.c index 061ec7c..51abc8a 100644 --- a/tools/tests/mce-test/tools/xen-mceinj.c +++ b/tools/tests/mce-test/tools/xen-mceinj.c @@ -317,7 +317,10 @@ static int inject_mci_addr(xc_interface *xc_handle, domid_t domid) { return add_msr_bank_intpose(xc_handle, cpu_nr, - MC_MSRINJ_F_INTERPOSE | MC_MSRINJ_F_GPADDR, + MC_MSRINJ_F_INTERPOSE | + ((domid >= DOMID_FIRST_RESERVED && + domid != DOMID_SELF) ? + 0 : MC_MSRINJ_F_GPADDR), MCi_type_ADDR, bank, val, domid); } diff --git a/xen/arch/x86/cpu/mcheck/mce.c b/xen/arch/x86/cpu/mcheck/mce.c index cc446eb..0244553 100644 --- a/xen/arch/x86/cpu/mcheck/mce.c +++ b/xen/arch/x86/cpu/mcheck/mce.c @@ -1427,6 +1427,7 @@ long do_mca(XEN_GUEST_HANDLE_PARAM(xen_mc_t) u_xen_mc) if ( mc_msrinject->mcinj_flags & MC_MSRINJ_F_GPADDR ) { + domid_t domid; struct domain *d; struct mcinfo_msr *msr; unsigned int i; @@ -1434,10 +1435,17 @@ long do_mca(XEN_GUEST_HANDLE_PARAM(xen_mc_t) u_xen_mc) unsigned long gfn, mfn; p2m_type_t t; - d = get_domain_by_id(mc_msrinject->mcinj_domid); + domid = (mc_msrinject->mcinj_domid == DOMID_SELF) ? + current->domain->domain_id : mc_msrinject->mcinj_domid; + if ( domid >= DOMID_FIRST_RESERVED ) + return x86_mcerr("do_mca inject: incompatible flag " + "MC_MSRINJ_F_GPADDR with domain %d", + -EINVAL, domid); + + d = get_domain_by_id(domid); if ( d == NULL ) return x86_mcerr("do_mca inject: bad domain id %d", - -EINVAL, mc_msrinject->mcinj_domid); + -EINVAL, domid); for ( i = 0, msr = &mc_msrinject->mcinj_msr[0]; i < mc_msrinject->mcinj_count; @@ -1452,7 +1460,7 @@ long do_mca(XEN_GUEST_HANDLE_PARAM(xen_mc_t) u_xen_mc) put_gfn(d, gfn); put_domain(d); return x86_mcerr("do_mca inject: bad gfn %#lx of domain %d", - -EINVAL, gfn, mc_msrinject->mcinj_domid); + -EINVAL, gfn, domid); } msr->value = pfn_to_paddr(mfn) | (gaddr & (PAGE_SIZE - 1));
Commit 26646f3 "x86/mce: translate passed-in GPA to host machine address" and commit 4ddf474 "tools/xen-mceinj: Pass in GPA when injecting through MSR_MCI_ADDR" forgot to consider reserved domain ID and mistakenly add MC_MSRINJ_F_GPADDR flag for them, which in turn causes bug reported by http://lists.xenproject.org/archives/html/xen-devel/2016-05/msg02640.html. This patch removes MC_MSRINK_F_GPADDR flag and checks this when injecting to reserved domain IDs except DOMID_SELF, and treats the passed-in address as host machine address. Signed-off-by: Haozhong Zhang <haozhong.zhang@intel.com> --- Changes in v3: * Refine check condition of domid. Changes in v2: * Consider all reserved domain IDs rather than just DOMID_XEN. v1 can be found at http://lists.xenproject.org/archives/html/xen-devel/2016-05/msg02534.html. --- tools/tests/mce-test/tools/xen-mceinj.c | 5 ++++- xen/arch/x86/cpu/mcheck/mce.c | 14 +++++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-)