[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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |