From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Hildenbrand Subject: Re: [PATCH RFC 0/2] assign each vcpu an owning thread and improve yielding Date: Wed, 3 Dec 2014 14:00:05 +0100 Message-ID: <20141203140005.376201fe@thinkpad-w530> References: <1416931449-24585-1-git-send-email-dahi@linux.vnet.ibm.com> <20141203131215.695a3ab7@thinkpad-w530> <547F07EB.4080807@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org, gleb@kernel.org, jfrei@linux.vnet.ibm.com, borntraeger@de.ibm.com, cornelia.huck@de.ibm.com To: Paolo Bonzini Return-path: Received: from e06smtp16.uk.ibm.com ([195.75.94.112]:39490 "EHLO e06smtp16.uk.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751061AbaLCNAM (ORCPT ); Wed, 3 Dec 2014 08:00:12 -0500 Received: from /spool/local by e06smtp16.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 3 Dec 2014 13:00:11 -0000 Received: from b06cxnps4076.portsmouth.uk.ibm.com (d06relay13.portsmouth.uk.ibm.com [9.149.109.198]) by d06dlp03.portsmouth.uk.ibm.com (Postfix) with ESMTP id 712331B08049 for ; Wed, 3 Dec 2014 13:00:26 +0000 (GMT) Received: from d06av07.portsmouth.uk.ibm.com (d06av07.portsmouth.uk.ibm.com [9.149.37.248]) by b06cxnps4076.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id sB3D08qg11665572 for ; Wed, 3 Dec 2014 13:00:08 GMT Received: from d06av07.portsmouth.uk.ibm.com (localhost [127.0.0.1]) by d06av07.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id sB3D074A016853 for ; Wed, 3 Dec 2014 08:00:08 -0500 In-Reply-To: <547F07EB.4080807@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: > > > On 03/12/2014 13:12, David Hildenbrand wrote: > >> This series improves yielding on architectures that cannot disable preemption > >> while entering the guest and makes the creating thread of a VCPU the owning > >> thread and therefore the yield target when yielding to that VCPU. > >> > >> We should focus on the case creating thread == executing thread and therefore > >> remove the complicated handling of PIDs involving synchronize_rcus. > >> > >> This way we can speed up the creation of VCPUs and directly yield to the > >> executing vcpu threads. > >> > >> Please note that - in theory - all VCPU ioctls should be triggered from the same > >> VCPU thread, so changing threads is not a scenario we should optimize. > >> > >> > >> David Hildenbrand (2): > >> KVM: don't check for PF_VCPU when yielding > >> KVM: thread creating a vcpu is the owner of that vcpu > >> > >> include/linux/kvm_host.h | 1 + > >> virt/kvm/kvm_main.c | 22 ++-------------------- > >> 2 files changed, 3 insertions(+), 20 deletions(-) > >> > > > > Hi Paolo, > > > > would be good if you could have a look at these patches. > > Sure. > > I think patch 1 is fine and I am applying it. For patch 2, what about > moving the ->pid assignment in the KVM_RUN case of kvm_vcpu_ioctl? Thanks Paolo! Well, do we have any known user that relies on this thread-switching in case of KVM_RUN? If yes, I am totally with you. If not I'd prefer to get this code completely out, as it contains some unnecessary complexity. And maintaining such code that already had a couple of bugs in it without any benefit doesn't make much sense. What do you think? David > > Paolo >