On Fri, Sep 29, 2017 at 10:18:25AM +0200, Paolo Bonzini wrote: > On 28/09/2017 23:35, Marcelo Tosatti wrote: > > On Thu, Sep 28, 2017 at 09:22:02AM +0200, Paolo Bonzini wrote: > >> On 28/09/2017 02:44, Marcelo Tosatti wrote: > >>>> Again: if you have many interruptions, it's not a flaw in KVM or QEMU's > >>>> design, it's just that someone is doing something stupid. It could be > >>>> the guest (e.g. unnecessary devices or daemons as in the example above), > >>>> QEMU (e.g. the RTC emulation used to trigger QEMU timers twice a second > >>>> just to increment the clock), or the management (e.g. polling "is the VM > >>>> running" 50 times per second). But it can and must be fixed. > >>> > >>> No, i mean you can run anything in VCPU-0 (it is valid to do that). > >>> And that "anything" can generate 1 interrupt per second, 1000 or 10.000 > >>> interrupts per second. Which are all valid things to be done. > >>> > >>> "I can't run a kernel compilation on VCPU-0 because that will impact > >>> latency on the realtime VCPU-1" is not acceptable. > >> > >> That shouldn't happen. Sources of frequent interruptions have all been > >> fixed or moved outside the main thread. > >> > >> If there are more left, report the bug and we'll see how to fix it in > >> userspace. > > > > What should not happen? The generation of 10.000 interrupts per second > > (say disk IO completion) on a given workload ? > > If you know you have this kind disk workload, you must use virtio-blk or > virtio-scsi with iothreads and place the iothreads on their own physical > CPUs. > > Among "run arbitrary workloads", "run real-time workloads", "pack stuff > into as few physical CPUs as possible", you can only pick two. > > Paolo Thats not the state of things (userspace in vcpu-0 is not specially tailored to not violate latencies in vcpu-1): that is not all user triggered actions can be verified. Think "updatedb", and so on...