[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-ia64-devel] Question about time_interpolator_get_counter() in RHEL4
On Mon, 2007-01-15 at 19:02 +0900, Masaki Kanno wrote: > Hi Alex, > > Could you comment a this issue? > > When we tested RHEL4 on domVTi of SMP, we met with hanging up of the > RHEL4. We examined this issue with the xenctx. As a result, the each > VCPUs of domVTi seemed to be looping in the following functions. > - A VCPU is looping in time_interpolator_get_counter(). > - Other VCPUs are looping in fsys_gettimeofday(). > > When we were examining this issue further, we found your patch about > time_interpolator_get_counter(). > > [PATCH] optimize writer path in time_interpolator_get_counter() > http://lkml.org/lkml/2005/8/1/134 Hi Kan, That sounds like the right scenario. Both of these code paths are using seqlocks to allow multiple CPUs to try to update the last_cycle value via a cmpxchg. The optimization I added allows the CPU holding the write lock to update the last_cycle counter and exit without competing with the other CPUs in the cmpxchg. This significantly reduces the contention caused by the cmpxchg and maintains correctness because the readers (on the fsys_gettimeofday path) cannot exit while a write seqlock is held. I only saw a true live-lock in this code segment with a prototype processor, but the possibility for it certainly exists. I could see the scheduling of vCPUs potentially making this problem more likely. Thanks, Alex -- Alex Williamson HP Open Source & Linux Org. _______________________________________________ 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 |