Messages in this thread | | | Date | Fri, 29 Jun 2012 18:26:33 +0900 | From | Tomoki Sekiyama <> | Subject | Re: [RFC PATCH 18/18] x86: request TLB flush to slave CPU using NMI |
| |
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@hitachi.com> Linux Technology Center Hitachi, Ltd., Yokohama Research Laboratory
| |