Re: [PATCH] virtio: Use ioeventfd for virtqueue notify

Avi Kivity
2010-10-05T11:58:54Z

On 10/05/2010 01:00 PM, rukhsana ansari wrote:
> Hi,
>
> W.r.t:
> > Note that this is a tradeoff. If an idle core is available and the
> > scheduler places the iothread on that core, then the heavyweight exit is
> > replaced by a lightweight exit + IPI. If the iothread is co-located with
> > the vcpu, then we'll take a heavyweight exit in any case.
> >
> Q: Does the kvm kernel code check for such a condition and take a
> heavyweight exit?

No. The heavyweight exit is caused by a context switch (partial) or
return to userspace (full).

> > The first case is very likely if the host cpu is undercommitted and there is
> > heavy I/O activity. This is a typical subsystem benchmark scenario (as
> > opposed to a system benchmark like specvirt). My feeling is that total
> > system throughput will be decreased unless the scheduler is clever enough to
> > place the iothread and vcpu on the same host cpu when the system is
> > overcommitted.
> >
> >
> Q: Sorry if the answer is obvious here.
> If the heavyweight exit is taken when both threads are assigned to the
> same core, how will the system throughput increase?
>

Co-locating threads on the same core reduces cross-core traffic.

--
error compiling committee.c: too many arguments to function