Re: [patch 3/3] x86: kvm guest side support for KVM_HC_RT_PRIO hypercall

From: Peter Zijlstra
Date: Fri Sep 22 2017 - 08:31:19 EST


On Fri, Sep 22, 2017 at 09:16:40AM -0300, Marcelo Tosatti wrote:
> On Fri, Sep 22, 2017 at 12:00:05PM +0200, Peter Zijlstra wrote:
> > On Thu, Sep 21, 2017 at 10:10:41PM -0300, Marcelo Tosatti wrote:
> > > When executing guest vcpu-0 with FIFO:1 priority, which is necessary
> > > to
> > > deal with the following situation:
> > >
> > > VCPU-0 (housekeeping VCPU) VCPU-1 (realtime VCPU)
> > >
> > > raw_spin_lock(A)
> > > interrupted, schedule task T-1 raw_spin_lock(A) (spin)
> > >
> > > raw_spin_unlock(A)
> > >
> > > Certain operations must interrupt guest vcpu-0 (see trace below).
> >
> > Those traces don't make any sense. All they include is kvm_exit and you
> > can't tell anything from that.
>
> Hi Peter,
>
> OK lets describe whats happening:
>
> With QEMU emulator thread and vcpu-0 sharing a physical CPU
> (which is a request from several NFV customers, to improve
> guest packing), the following occurs when the guest generates
> the following pattern:
>
> 1. submit IO.
> 2. busy spin.

User-space spinning is a bad idea in general and terminally broken in
a RT setup. Sounds like you need to go fix qemu to not suck.