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

Re: [Xen-ia64-devel] RFC: ptc.ga implementation for SMP-g



Le Lundi 03 Avril 2006 20:01, Alex Williamson a Ãcrit :
> On Mon, 2006-04-03 at 14:38 +0100, Tristan Gingold wrote:
> > Hi,
> >
> > after the comments, here is my updated patch for ptc.ga
> > Please comment it.
> >
> > With this patch, the page_flags are always written atomically.  Ptc only
> > clear it.  This eliminates itc and ptc conflicts.
> >
> > The other conflict is use.  This is within ia64_page_fault, between
> > vcpu_translate and vcpu_itc_no_srlz.  This part of code is protected by a
> > flag + counter: At entry the flag is set and the counter increment, at
> > exit the flag is reset.  Ptc.ga waits if the flag is set and retries if
> > the counter has changes.
>
> Hi Tristan,
>
>    Is there any way a nested page fault could double increment tlb_inuse
> (ie. where you might hit that BUG_ON)? 
I don't think so.  If a fault occurs within vcpu_translate, it is a xen fault 
which won't result in calling ia64_page_fault.  vcpu_translate reads domain 
memory (guest VHPT entry), but in case of failure it doesn't inject a fault.

> This locking looks a lot like a
> seqlock.  Could the bit in ia64_do_page_fault() be replaced by:
Thank for this.
[...]

>    BTW, lkml strongly discourages setting variables inside tests like
> while ((count = PSCBX(vcpu, tlb_inuse)) & 1).  The preferred mechanism
> is to separate them into two statements:
>
>       count = PSCBX(vcpu, tlb_inuse);
>       while (count & 1)
Is it a style point ?
Note that your sequence it different from my sequence.

Thank you for your comments.

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