From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH] virtio: Use ioeventfd for virtqueue notify Date: Tue, 05 Oct 2010 13:58:44 +0200 Message-ID: <4CAB12F4.30701@redhat.com> References: <1285855312-11739-1-git-send-email-stefanha@linux.vnet.ibm.com> <4CA862A7.2080302@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Stefan Hajnoczi , qemu-devel@nongnu.org, kvm@vger.kernel.org, "Michael S. Tsirkin" , Anthony Liguori , Khoa Huynh , Sridhar Samudrala , Steve Dobbelstein To: rukhsana ansari Return-path: Received: from mx1.redhat.com ([209.132.183.28]:55108 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751465Ab0JEL6y (ORCPT ); Tue, 5 Oct 2010 07:58:54 -0400 In-Reply-To: Sender: kvm-owner@vger.kernel.org List-ID: 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