[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel][PATCH 2/2] Enhance MTRR/PAT virtualization for EPT & VT-d enabled both
Yeah, this is better, but now I understand this patch a bit more, I wonder why you need a parameter at all? Would it not be quite easy for ept_set_entry() to determine whether any gfn->mfn mapping has changed, since it can see the old EPTE as it modifies it? In which case why not have that function determine whether it needs to modify VT-d tables (i.e, default to 0 at top of function, and flip to 1 as soon as you see a gfn->mfn translation change)? Now, I could accept your current patch if I'm missing something, because I prefer this new interface to the way you did it before, but perhaps you can hide this new flag entirely inside ept_set_entry() and avoid any extra interface complexity at all? What do you think? -- Keir On 23/01/2009 02:41, "Xin, Xiaohui" <xiaohui.xin@xxxxxxxxx> wrote: > Keir, > Thanks for your comments. Attached is the updated version. > > Thanks > Xiaohui > >> -----Original Message----- >> From: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx >> [mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Keir Fraser >> Sent: 2009年1月22日 21:14 >> To: Xin, Xiaohui; xen-devel@xxxxxxxxxxxxxxxxxxx >> Subject: Re: [Xen-devel][PATCH 2/2] Enhance MTRR/PAT virtualization for EPT & >> VT-d enabled both >> >> On 22/01/2009 12:37, "Xin, Xiaohui" <xiaohui.xin@xxxxxxxxx> wrote: >> >>> I knew that. But since at last we should add the parameter in >>> ept_set_entry() >>> which will then taint p2m_set_entry() to add an unused parameter, and the >>> parameter is meaningless at all in shadow mode. And the flag is used in the >>> same way as the flag is_in_uc_mode in hvm_set_uc_mode(). >> >> That's not true, since is_in_uc_mode is a state which persists beyond any >> single function's scope. It is a reflection of a real aspect of guest state. >> >>> Do you like to add a parameter in set-entry() and then ept_set_entry() and >>> p2m_set_entry()? >> >> This is not necessary. Rename ept_set_entry() to something else (e.g., >> __ept_set_entry() if you can't think of anything better), taking this new >> parameter. Then create a new ept_set_entry(), calling your renamed original >> function, passing a default value for the new parameter. >> >> This can work because the vmx_set_uc_mode() calls ept_* functions directly, >> and hence having this parameter configurable via the generic p2m interface >> is not necessary (as far as I can see). Only callers of ept_set_entry() >> which need to specify the new parameter need to call the renamed function, >> and I think all such callers are in vmx/ept code. >> >> And please add a comment to give some idea of what this new parameter >> actually means and represents (something higher level than it being an >> optimisation hack :-). >> >> -- Keir >> >> >> >> _______________________________________________ >> Xen-devel mailing list >> Xen-devel@xxxxxxxxxxxxxxxxxxx >> http://lists.xensource.com/xen-devel _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |