On Wednesday 14 April 2010 18:19:49 Avi Kivity wrote: > On 04/14/2010 01:14 PM, Sheng Yang wrote: > >> I wouldn't like to depend on model specific behaviour. > >> > >> One option is to read all the information synchronously and store it in > >> a per-cpu area with atomic instructions, then queue the NMI. Another > >> option is to have another callback which tells us that the NMI is done, > >> and have a busy loop wait until the NMI is delivered. > > > > Callback seems too heavy, may affect the performance badly. Maybe a short > > queue would help, though this one is more complex. > > The patch we're replying to adds callbacks (to read rip, etc.), so it's > no big deal. For the queue solution, a queue of size one would probably > be sufficient even if not guaranteed by the spec. I don't see how the > cpu can do another guest entry without delivering the NMI. > > > But I am still curious if we extend the region, how much it would help. > > Would get a result soon... > > Yes, interesting to see what the latency is. If it's reasonably short > (and I expect it will be so), we can do the busy wait solution. > > If we have an NMI counter somewhere, we can simply wait until it changes. Good idea. Of course we have one(at least on x86). There is irq_stat.irq__nmi_count for per cpu. :) -- regards Yang, Sheng -- 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