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



On Friday 29 January 2010 06:55:49 Jiang, Yunhong wrote:
> >-----Original Message-----
> >From: Christoph Egger [mailto:Christoph.Egger@xxxxxxx]
> >Sent: Friday, January 29, 2010 12:31 AM
> >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 10:44:28 Jiang, Yunhong wrote:
> >> >-----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);
> >>  };
> >
> >IMO, a single struct mc_info argument for each hook does its job.
> >This is more flexible and extensible.
> >
> >Christoph
>
> For global hook, it is ok to pass the mc_info, for the per_bank hook, we
> should pass the bank, to avoid search each time. I will send out the patch
> when it is ready, and we can have more discussion at that time.
>

This is reasonable. I agree on that.

Christoph


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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.