Jan Kiszka wrote: > Avi Kivity wrote: >> On 01/11/2010 12:13 PM, Jan Kiszka wrote: >>> BTW, does anybody know how to back-port synchronize_srcu_expedited best? >>> It looked like a simple mapping to synchronize_srcu was not sufficient >>> to achieve the same performance as with the pre-srcu locking (e.g. >>> guest&host stalled during guest's framebuffer setup). >>> >> Isn't it sufficient to backport kernel/srcu.c? I thought no sched.c >> changes were necessary. > > Haven't looked yet, but if that's the case, it would indeed be > straightforward. It's far away from being straightforward: synchronize_rcu_expedited is based on synchronize_sched_expedited, introduced to 2.6.32. But that services is hooked deep into the scheduler, fiddling directly with runqueues (which are completely private to sched.c). This path looks like a dead end, specifically when its about supporting ~8 major Linux releases backwards. Paul, we have a problem here on the KVM-for-older-kernels front: We need synchronize_rcu_expedited for acceptable write-side performance (there are certain phases with lots of changes, plain synchronize_rcu just stalls both guest and host for several seconds). Our target kernels (down to 2.6.27, unofficially even 2.6.24) do not have the expedited service. Can you think of a poor man's solution for those kernels? Unfortunately, I don't think there is mechanical patching possible to role-back our srcu use to a rw-sem. But I will check this once again tomorrow. Jan
Attachment:
signature.asc
Description: OpenPGP digital signature