[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] Xen/MCE: adjust for future new vMCE model
Jan Beulich wrote: >>>> On 05.07.12 at 05:30, "Liu, Jinsong" <jinsong.liu@xxxxxxxxx> >>>> wrote: @@ -68,7 +74,7 @@ >> >> int vmce_restore_vcpu(struct vcpu *v, uint64_t caps) { >> - if ( caps & ~g_mcg_cap & ~MCG_CAP_COUNT & ~MCG_CTL_P ) >> + if ( caps & ~g_mcg_cap & ~MCG_CAP_COUNT ) >> { >> dprintk(XENLOG_G_ERR, "%s restore: unsupported MCA >> capabilities" " %#" PRIx64 " for d%d:v%u >> (supported: %#Lx)\n", @@ -77,6 +83,12 @@ return -EPERM; >> } >> >> + if ( (caps & MCG_CAP_COUNT) != GUEST_BANK_NUM ) + { >> + dprintk(XENLOG_G_ERR, "Bank number inconsistency\n"); + >> return -EPERM; + } >> + >> v->arch.mcg_cap = caps; >> return 0; >> } > > These two changes, as pointed out before, need some further > thought and tweaking: As I said earlier, we are already shipping > the code in its prior form, so outright rejecting MCG_CTL_P set > and non-default bank counts is not a proper solution. Warning > about them being in an unsupported state is certainly acceptable. > > And I think the guest visible MCG_CAP value also shouldn't > change across migration, so tolerating (but ignoring) a higher > bank count seems necessary. Not sure what to do when the > bank count is lower (0 or 1) - for 1, all communication to the > guest should probably go through bank 0, while 0 should > probably disable vMCE for that vCPU. > > Further I just noticed that you don't touch fill_vmsr_data() at > all (sending patches created with diff's -p option or equivalent > helps spotting where individual changes belong), yet that > function uses the hardware bank number to fill the struct > bank_entry. With the intended concept, the "bank" member > of that structure can probably go away altogether. > > Jan Seems things become a little bit chaos, let's jump out from details, make agreement first about what's the general purpose of this middle-work patch. ============ 1. current xen vmce status 1.1) current xen vmce has 2 kinds of bugs: * functional bug: it actually doesn't work correctly for guest; * migration bug: partly solved by c/s 24887; 1.2) c/s 24887 not in formal xen release version, it's a temporary fix (but unfortunately has been backported to SELS11 sp2) ============ 2. target of this middle-work patch 2.1) it's not used to address functional bug 2.3) it does minimal work, just in order not to bring trouble/dirty to future new vMCE, so it would * remove MCG_CTL --> otherwise new vMCE have to add useless MCG_CTL_P and MCG_CTL, w/ potential model specific issue; * stick all 1's to MCi_CTL --> to avoid semantic issue; * set MCG_CTL_P=0 and 2 banks at MCG_CAP --> otherwise dirty code at new vMCE, like bank number issue; ============ I think in this middle-work patch, we don't need constrained by c/s 24887: 1. c/s 24887 not in formal xen release 2. the benefit of keep compatible w/ 24887 is minor: * currently all xen version have migration bug, 3.x -> 4.0 -> 4.1 -> 4.2 * keep compatible w/ 24887 only benefit one case --> migration from SLES11 sp2 to xen 4.2 (for both SLES11 sp2 and xen 4.2, vMCE actually doesn't functionally work fine to guest) 3. the price/hurt to future vMCE is high (to keep compatible w/ 24887) Considering above, I prefer an outright cleanup in xen4.2, not constrained by c/s 24887 and not bring trouble/dirty to future vMCE. Thanks, Jinsong _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |