qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [RFC] create a single workqueue for each vm to update vm irq routing table
@ 2013-11-26 12:40 Zhanghaoyu (A)
  2013-11-26 12:47 ` Paolo Bonzini
  2013-11-26 12:48 ` Gleb Natapov
  0 siblings, 2 replies; 60+ messages in thread
From: Zhanghaoyu (A) @ 2013-11-26 12:40 UTC (permalink / raw)
  To: KVM, qemu-devel@nongnu.org, Gleb Natapov, Michael S. Tsirkin,
	Eric Blake, Paolo Bonzini
  Cc: Huangweidong (C), Zanghongyong, Luonengjun, Jinxin (F)

Hi all,

When guest set irq smp_affinity, VMEXIT occurs, then the vcpu thread will IOCTL return to QEMU from hypervisor, then vcpu thread ask the hypervisor to update the irq routing table,
in kvm_set_irq_routing, synchronize_rcu is called, current vcpu thread is blocked for so much time to wait RCU grace period, and during this period, this vcpu cannot provide service to VM,
so those interrupts delivered to this vcpu cannot be handled in time, and the apps running on this vcpu cannot be serviced too.
It's unacceptable in some real-time scenario, e.g. telecom. 

So, I want to create a single workqueue for each VM, to asynchronously performing the RCU synchronization for irq routing table, 
and let the vcpu thread return and VMENTRY to service VM immediately, no more need to blocked to wait RCU grace period.
And, I have implemented a raw patch, took a test in our telecom environment, above problem disappeared.

Any better ideas?

Thanks,
Zhang Haoyu

^ permalink raw reply	[flat|nested] 60+ messages in thread

end of thread, other threads:[~2013-11-30  2:47 UTC | newest]

Thread overview: 60+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-26 12:40 [Qemu-devel] [RFC] create a single workqueue for each vm to update vm irq routing table Zhanghaoyu (A)
2013-11-26 12:47 ` Paolo Bonzini
2013-11-26 12:56   ` Gleb Natapov
2013-11-26 13:13     ` Paolo Bonzini
2013-11-28  3:46       ` Zhanghaoyu (A)
2013-11-26 16:05     ` Michael S. Tsirkin
2013-11-26 16:14       ` Gleb Natapov
2013-11-26 16:24         ` Michael S. Tsirkin
2013-11-30  2:46           ` Zhanghaoyu (A)
2013-11-26 13:18   ` Avi Kivity
2013-11-26 13:47     ` Paolo Bonzini
2013-11-26 14:36       ` Avi Kivity
2013-11-26 14:46         ` Paolo Bonzini
2013-11-26 14:54           ` Avi Kivity
2013-11-26 15:03             ` Gleb Natapov
2013-11-26 15:20               ` Paolo Bonzini
2013-11-26 15:25                 ` Avi Kivity
2013-11-26 15:28                   ` Paolo Bonzini
2013-11-26 15:35                     ` Avi Kivity
2013-11-26 15:58                       ` Paolo Bonzini
2013-11-26 16:06                         ` Avi Kivity
2013-11-26 16:11                           ` Michael S. Tsirkin
2013-11-26 16:21                             ` Avi Kivity
2013-11-26 16:42                               ` Paolo Bonzini
2013-11-26 16:08                         ` Michael S. Tsirkin
2013-11-26 16:24                 ` Gleb Natapov
2013-11-26 16:27                   ` Avi Kivity
2013-11-26 16:38                     ` Gleb Natapov
2013-11-26 16:28                   ` Paolo Bonzini
2013-11-26 16:29                     ` Avi Kivity
2013-11-26 16:37                     ` Gleb Natapov
2013-11-28  6:27                 ` Zhanghaoyu (A)
2013-11-28  8:55                   ` Paolo Bonzini
2013-11-28  9:19                     ` Gleb Natapov
2013-11-28  9:29                       ` Paolo Bonzini
2013-11-28  9:43                         ` Gleb Natapov
2013-11-28  9:49                       ` Avi Kivity
2013-11-28  9:53                         ` Paolo Bonzini
2013-11-28 10:16                           ` Avi Kivity
2013-11-28 10:40                             ` Paolo Bonzini
2013-11-28 10:47                               ` Avi Kivity
2013-11-28 11:09                               ` Gleb Natapov
2013-11-28 11:10                                 ` Paolo Bonzini
2013-11-28 11:16                                   ` Avi Kivity
2013-11-28 11:23                                   ` Gleb Natapov
2013-11-28 11:31                                     ` Paolo Bonzini
2013-11-28 11:33                                       ` Avi Kivity
2013-11-28 10:11                         ` Gleb Natapov
2013-11-28 10:12                           ` Avi Kivity
2013-11-28 11:02                             ` Gleb Natapov
2013-11-28 11:18                               ` Avi Kivity
2013-11-28 11:22                                 ` Gleb Natapov
2013-11-28 11:30                                   ` Avi Kivity
2013-11-28 11:33                                   ` Michael S. Tsirkin
2013-11-28 11:33                                     ` Gleb Natapov
2013-11-26 15:24               ` Avi Kivity
2013-11-28  9:14                 ` Zhanghaoyu (A)
2013-11-28  9:20                   ` Gleb Natapov
2013-11-26 12:48 ` Gleb Natapov
2013-11-26 12:50   ` Gleb Natapov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).