[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Linux spin lock enhancement on xen
Hi guys, Check out the attached patches. I changed the spin lock semantics so the lock contains the vcpu id of the vcpu holding it. This then tells xen to make that vcpu runnable if not already running: Linux: spin_lock() if (try_lock() == failed) loop X times if (try_lock() == failed) sched_op_yield_to(vcpu_num of holder) start again; endif endif Xen: sched_op_yield_to: if (vcpu_running(vcpu_num arg)) do nothing else vcpu_kick(vcpu_num arg) do_yield() endif In my worst case test scenario, I get about 20-36% improvement when the system is two to three times over provisioned. Please provide any feedback. I would like to submit official patch for SCHEDOP_yield_to in xen. thanks, Mukesh Attachment:
spin-lin.diff Attachment:
spin-xen.diff _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |