On 08/05/2014 08:14 PM, Christian Borntraeger wrote:
We currently track the pid of the task that runs the VCPU in vcpu_load. Since we call vcpu_load for all kind of ioctls on a CPU, this causes hickups due to synchronize_rcu if one CPU is modified by another CPU or the main thread (e.g. initialization, reset). We track the pid only for the purpose of yielding, so let's update the pid only in the KVM_RUN ioctl. In addition, don't do a synchronize_rcu on startup (pid == 0). This speeds up guest boot time on s390 noticably for some configs, e.g. HZ=100, no full state tracking, 64 guest cpus 32 host cpus. Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> CC: Rik van Riel <riel@xxxxxxxxxx> CC: Raghavendra K T <raghavendra.kt@xxxxxxxxxxxxxxxxxx> CC: Michael Mueller <mimu@xxxxxxxxxxxxxxxxxx> ---
Please feel free to add Reviewed-by: Raghavendra K T <raghavendra.kt@xxxxxxxxxxxxxxxxxx> I could see very small improvement while testing 32 vcpu guest booting on x86 (16 pcpu host +ht). I was just wondering whether somebody implementing vcpu hot plug would have to bother about this change, but could not see any. What do you think? -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html