On 2012/06/29 1:38, Avi Kivity wrote: > On 06/28/2012 09:08 AM, Tomoki Sekiyama wrote: >> For slave CPUs, it is inapropriate to request TLB flush using IPI. >> because the IPI may be sent to a KVM guest when the slave CPU is running >> the guest with direct interrupt routing. >> >> Instead, it registers a TLB flush request in per-cpu bitmask and send a NMI >> to interrupt execution of the guest. Then, NMI handler will check the >> requests and handles the requests. > > > Currently x86's get_user_pages_fast() depends on TLB flushes being held > up by local_irq_disable(). With this patch, this is no longer true and > get_user_pages_fast() can race with page table freeing. There are > patches from Peter Zijlstra to remove this dependency though. Thank you for the information. I will check his patches. > NMIs are > still slow and fragile when compared to normal interrupts, so this patch > is somewhat problematic. OK, always sending NMIs is actually problematic. I should check the slave core state and send NMIs only when slave guest is running and NMI is really needed. Thanks, -- Tomoki Sekiyama <tomoki.sekiyama.qu@xxxxxxxxxxx> Linux Technology Center Hitachi, Ltd., Yokohama Research Laboratory -- 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