[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: the P2M/VP patch merge plan (was Re: [Xen-ia64-devel] [PATCH][RFC][TAKE5] the P2M/VP patches)



Le Mercredi 26 Avril 2006 05:12, Isaku Yamahata a écrit :
> On Tue, Apr 25, 2006 at 05:27:22PM +0200, Tristan Gingold wrote:
> > Le Mardi 25 Avril 2006 03:28, Isaku Yamahata a écrit :
> > > On Mon, Apr 24, 2006 at 04:21:27PM +0200, Tristan Gingold wrote:
> > > > just a question: is P2M/VP SMP-h/g safe ?
> > > > Please do the merge even if not yet SMP ready.  I will work to
> > > > re-enable SMP.
> > >
> > > Unfortunately no for both SMP-h/g.
> > > It doesn't boot without nosmp xen boot option because the P2M table
> > > is not protected at least.
> > > A lock sould be introduced to protect it.
> > > Please define a wrapper function, something like
> > > p2m_lock()/p2m_unlock(). Prehaps read/write spin lock might be better
> > > for performance,
> > > but it can be tuned later. We should use simple spin lock as a first
> > > step.
> >
> > After a quick look, I do not understand why we must protect writes to
> > p2m.  I don't see possible incoherence.
>
> The following is what I notice now.
>
> - pgd_populate(), pud_populate(), pmd_populate()
>   What if two cpu try to populate same virtual address?
>   Given that page allocation on demand is now removed, it might be possible
>   to all necessary pgd/pud/pmd/pte page is allocate at domain creation.
>
> - guest_physmap_add_page()
>     assign_domain_page_replace()
>       ptep_get_and_clear()
>                       <<<<<<<<<<<< what if another cpu does set_pte() here?
>       set_pte()
>     set_gpfn_from_mfn()
>
> - memory ordering
>   set_pte() doesn't have any memory relase semantics.
>   And readers (i.e. *(pte)) doesn't have acquire semantics.
>   I guess some memory barrier is required.
>   (spin lock means memory barrier)
Ok, this is mostly SMP-g issues not SMP-h, isn't it ?

> > BTW, the check_xen_dot_config_xen_ia64_dom0_virtual_physical in
> > xen-mkbuildtree-pre seems broken.  The grep is wrong and is done too
> > early.
>
> I'm not satisfied with that.
> However I don't have any better idea. Do you have better idea?
The usual trick: copy both versions using a different name, the original file 
include the correct version according to CONFIG_ macro.

Tristan.



_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel


 


Rackspace

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