[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] RE: [PATCH 4/6] MCE: Fix the vMCE address translation for HVM guest.
>-----Original Message----- >From: Christoph Egger [mailto:Christoph.Egger@xxxxxxx] >Sent: Thursday, January 28, 2010 4:14 PM >To: Jiang, Yunhong >Cc: Keir Fraser; Frank.Vanderlinden@xxxxxxx; Jan Beulich; >xen-devel@xxxxxxxxxxxxxxxxxxx >Subject: Re: [PATCH 4/6] MCE: Fix the vMCE address translation for HVM guest. > >On Thursday 28 January 2010 06:55:58 Jiang, Yunhong wrote: >> Fix the vMCE address translation for HVM guest. >> >> Fix address translation when we inject a virtual MCE to HVM guest. > >IMO, the whole address translation should be x86 generic with hooks >to handle AMD/Intel specific registers. Agree. I think Frank/Jan has done a lot of work to merge the MCE staff. And still something left to merge the MCE handler (Frank triedto merge the handler before, I remember) . With the broadcast checking patch, it will be easier to merge. I have a patch on-hand that try to do some clean-up and prepare for merge. The main change is to change the mcheck_mca_logout, to pass-in a ops pointer and data pointer, as code below. --jyh + +struct mca_ops { + mctelem_class_t queue; + /* return 0 if no extended information created */ + int (*global_extended)(struct mcinfo_extended *gext, + struct mcinfo_global *mcg, void *data); + int (*parse_global)(struct mcinfo_global *mcg, + struct mcinfo_extended *gext, void *data); + int (*bank_extended)(struct mcinfo_extended *bext, struct mcinfo_back *mcb, + void *data); + /* Return 1 if owned error happens */ + int (*parse_bank)(struct mcinfo_bank *mcb, + struct mcinfo_global *mcg, + struct mcinfo_extended *gext, + struct mcinfo_extended *bext, + void *data); + int (*clear_bank)(struct mcinfo_bank *mcb, + struct mcinfo_global *mcg, + struct mcinfo_extended *gext, + struct mcinfo_extended *bext, + void *data); }; .... -mctelem_cookie_t mcheck_mca_logout(enum mca_source who, cpu_banks_t bankmask, - struct mca_summary *sp, cpu_banks_t* clear_bank) -{ - struct vcpu *v = current; - struct domain *d; - uint64_t gstatus, status, addr, misc; +mctelem_cookie_t mcheck_mca_logout(cpu_banks_t bankmask, struct mca_ops *handler, void *data) +{ > >Christoph > >> >> Signed-off-by: Jiang, Yunhong <yunhong.jiang@xxxxxxxxx> >> >> diff -r ac2951705a86 xen/arch/x86/cpu/mcheck/mce_intel.c >> --- a/xen/arch/x86/cpu/mcheck/mce_intel.c Tue Jan 26 20:04:51 2010 +0800 >> +++ b/xen/arch/x86/cpu/mcheck/mce_intel.c Tue Jan 26 22:49:11 2010 +0800 >> @@ -371,8 +371,8 @@ static void intel_UCR_handler(struct mci >> >> gfn = >> mfn_to_gmfn(d, ((bank->mc_addr) >> >> PAGE_SHIFT)); - bank->mc_addr = >> - gfn << PAGE_SHIFT | (bank->mc_addr & >> PAGE_MASK); + bank->mc_addr = gfn << >PAGE_SHIFT | >> + (bank->mc_addr & (PAGE_SIZE >-1 )); >> if (fill_vmsr_data(bank, global->mc_gstatus) == >> -1) { >> mce_printk(MCE_QUIET, "Fill vMCE# data >for >> DOM%d " > > > >-- >---to satisfy European Law for business letters: >Advanced Micro Devices GmbH >Karl-Hammerschmidt-Str. 34, 85609 Dornach b. Muenchen >Geschaeftsfuehrer: Andrew Bowd, Thomas M. McCoy, Giuliano Meroni >Sitz: Dornach, Gemeinde Aschheim, Landkreis Muenchen >Registergericht Muenchen, HRB Nr. 43632 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |