>-----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
|