From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christian Borntraeger Subject: Re: [PATCH RFC 1/2] KVM: don't check for PF_VCPU when yielding Date: Wed, 26 Nov 2014 10:31:51 +0100 Message-ID: <54759E07.5050204@de.ibm.com> References: <1416931449-24585-1-git-send-email-dahi@linux.vnet.ibm.com> <1416931449-24585-2-git-send-email-dahi@linux.vnet.ibm.com> <54758692.5000906@de.ibm.com> <20141126102319.2f92c64b@thinkpad-w530> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org, pbonzini@redhat.com, gleb@kernel.org, jfrei@linux.vnet.ibm.com, cornelia.huck@de.ibm.com, raghavendra.kt.linux@gmail.com, Michael Mueller To: David Hildenbrand Return-path: Received: from e06smtp14.uk.ibm.com ([195.75.94.110]:46671 "EHLO e06smtp14.uk.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751212AbaKZJb6 (ORCPT ); Wed, 26 Nov 2014 04:31:58 -0500 Received: from /spool/local by e06smtp14.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 26 Nov 2014 09:31:56 -0000 Received: from b06cxnps4074.portsmouth.uk.ibm.com (d06relay11.portsmouth.uk.ibm.com [9.149.109.196]) by d06dlp03.portsmouth.uk.ibm.com (Postfix) with ESMTP id C77511B08040 for ; Wed, 26 Nov 2014 09:32:09 +0000 (GMT) Received: from d06av04.portsmouth.uk.ibm.com (d06av04.portsmouth.uk.ibm.com [9.149.37.216]) by b06cxnps4074.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id sAQ9VsfS4587780 for ; Wed, 26 Nov 2014 09:31:54 GMT Received: from d06av04.portsmouth.uk.ibm.com (localhost [127.0.0.1]) by d06av04.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id sAQ9VqIl002695 for ; Wed, 26 Nov 2014 02:31:54 -0700 In-Reply-To: <20141126102319.2f92c64b@thinkpad-w530> Sender: kvm-owner@vger.kernel.org List-ID: Am 26.11.2014 um 10:23 schrieb David Hildenbrand: >> This change is a trade-off. >> PRO: This patch would improve the case of preemption on s390. This is probably a corner case as most distros have preemption off anyway. >> CON: The downside is that kvm_vcpu_yield_to is called also from kvm_vcpu_on_spin. Here we want to avoid the scheduler overhead for a wrong decision. > > Won't most of that part be covered by: > if (!ACCESS_ONCE(vcpu->preempted)) Hmm, right. Checking vcpu->preempted and PF_VCPU might boil down to the same. Would be good if to have to performance regression test, though. > > vcpu->preempted is only set when scheduled out involuntarily. It is cleared > when scheduled in. s390 sets it manually, to speed up waking up a vcpu. > > So when our task is scheduled in (an PF_VCPU is set), this check will already > avoid scheduler overhead in kvm_vcpu_on_spin() or am I missing something? > CC Raghavendra KT. Could be rerun your kernbench/sysbench/ebizzy setup on x86 to see if the patch in this thread causes any regression? If think your commit 7bc7ae25b143"kvm: Iterate over only vcpus that are preempted" might have really made the PF_VCPU check unnecessary CC Michael Mueller, do we still have our yield performance setup handy to check if this patch causes any regression? Christian