Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp746851ybz; Sat, 25 Apr 2020 03:27:03 -0700 (PDT) X-Google-Smtp-Source: APiQypKggEeL8em+66I0S3VRy4wE0xrFJn42KwTrOb7LFIR8B/gmSVtXf8luGXS/+PPWviZjz4px X-Received: by 2002:a05:6402:22a6:: with SMTP id cx6mr10717559edb.277.1587810422856; Sat, 25 Apr 2020 03:27:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587810422; cv=none; d=google.com; s=arc-20160816; b=uMRIN4E/HsEoWNZCYSr5XNF54nbyafl8sR7TtpdHUXyVtoBFoFCcHUxsdZof/W1sWq 0EhIyqhzn74vmyiumnCLOpxLUDfaIRVEVJJG5DO8ItGMWMOfj9j9Ead0bgMVbBXkU7F2 CVRccK081PPDaR1tSc9CREK0cOe98Vaa8lGOgnVZT4b4Pctq4JF+Z8x7O1i3s2gah79x a9lds47CPSY6c6DH+hGvhvVOH5GO0aegdk+1+Ue63LO4+CUkHCCmDhwaOcyKu+IG76GJ saxoeDzqK5XXo96cXkGzSIZ9gMUwbncuahqXqf2J0HScFX83Z1BaAHXIEe51GRdEo75a gEkw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature; bh=AiiGjxMSfR/3HcuLZdv0rh/BGKXUkSP2JfWB96AlEV4=; b=gpxQ544ikEFtzQB/rTrykqLqs5DkzvVc7pRDCTS/ejNgJlvnoUmjj2JY66zgvfL5dz HiLQw3BPeNrIib1SF7WxBjoWC+/XgtfI7FCwiLL6KjgB0Y7p8iSHgDHhhlMGmLrKqbnl 1DNooHgz8ENkqGhvNG8VoiQMdSafexw7pCujxx5BxwmZwgE4C5HCTf1w8nDd5a62Id4f mBYLu1qwiQDcBD//FXPSWAFzMJYv5LOxslxlTGiqt9LFhHB6YI9xxbVxUGmWqiZdW89h mFGb39Afcn6nf04sUJFGcaCXMoSC/zCDtF3YwFuFkCvCo/5FSUfBbElKnCcCPo2WXR4m zZeQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=e56uy6oq; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id da15si4836805edb.140.2020.04.25.03.26.39; Sat, 25 Apr 2020 03:27:02 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=e56uy6oq; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726135AbgDYKYl (ORCPT + 99 others); Sat, 25 Apr 2020 06:24:41 -0400 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:47556 "EHLO us-smtp-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726107AbgDYKYk (ORCPT ); Sat, 25 Apr 2020 06:24:40 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1587810278; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=AiiGjxMSfR/3HcuLZdv0rh/BGKXUkSP2JfWB96AlEV4=; b=e56uy6oq7GCXzI9LBQsCaTHhluggEXtKLCBU7J5jUlrLplKxrizVEi+oVcgk8jkyP8JaNa gWK3siU95OCKvmQpHV5YfpMntL3UKW6erTw/sARyXSGFpcyw2K/b6XgF74dL/EpA+Mn/pR QIBnNxIpsL3vFElAM6KQmb3gORwTnQo= Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-337-th1I6Ms9NpKo7D4EBP8E4Q-1; Sat, 25 Apr 2020 06:24:29 -0400 X-MC-Unique: th1I6Ms9NpKo7D4EBP8E4Q-1 Received: by mail-wr1-f72.google.com with SMTP id d17so6457282wrr.17 for ; Sat, 25 Apr 2020 03:24:29 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=AiiGjxMSfR/3HcuLZdv0rh/BGKXUkSP2JfWB96AlEV4=; b=n++8P0WDQNVMmjBWclSwkgyLPSRg3UO8NQxeEry7sUPwsNWSpz+qLtDg20Fk/N656W Tvn4ST1M0tT7DJaik/PPG4kV0NHdQT8wSlgLEkV2gTPNactPloZSxccJGVLGP8BpbmNH NmddZH1xKZ+mryWbd24Ky3z81ppeq+Y3tsxiymJ7sXoCeZ2FWBsYm/pGD6gHICBJ/Vit D+AMmrGYxVJyDIBAULzxcMRcnMHxcgHHAtKpaCciDzgFRZ9uNsViQDtphny9Irj5yGxu ZDIYDwgQa9hpYxTXKzZiIqlzctphuSZymUKz/8WNT20QYnkcch6kt1jBGEcJmx/Rqowk Z5Ow== X-Gm-Message-State: AGi0PuZ/NwA0n5o+4KiDJ3giIcSzDMkR3yjNvL2IoJJO8XAcItAxNcCq 9q7hcad2f13bRf4zzPUb6LnpTp3fRhy5CGO/hlBgaXLf2hgcZCKeWGqPr68AWSLwqPvj/A2BeDt 9ZjhhPxx4beEDCRn0rS6k3T56 X-Received: by 2002:a5d:5745:: with SMTP id q5mr17541307wrw.351.1587810268503; Sat, 25 Apr 2020 03:24:28 -0700 (PDT) X-Received: by 2002:a5d:5745:: with SMTP id q5mr17541287wrw.351.1587810268284; Sat, 25 Apr 2020 03:24:28 -0700 (PDT) Received: from ?IPv6:2001:b07:6468:f312:d0a0:f143:e9e4:2926? ([2001:b07:6468:f312:d0a0:f143:e9e4:2926]) by smtp.gmail.com with ESMTPSA id t17sm11580360wro.2.2020.04.25.03.24.26 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 25 Apr 2020 03:24:27 -0700 (PDT) Subject: Re: [PATCH 5/5] kvm: Replace vcpu->swait with rcuwait To: Davidlohr Bueso , tglx@linutronix.de Cc: peterz@infradead.org, maz@kernel.org, bigeasy@linutronix.de, rostedt@goodmis.org, torvalds@linux-foundation.org, will@kernel.org, joel@joelfernandes.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, Paul Mackerras , kvmarm@lists.cs.columbia.edu, linux-mips@vger.kernel.org, Davidlohr Bueso References: <20200424054837.5138-1-dave@stgolabs.net> <20200424054837.5138-6-dave@stgolabs.net> From: Paolo Bonzini Message-ID: <69af54bb-8632-fbf7-d774-da9a954ff1b7@redhat.com> Date: Sat, 25 Apr 2020 12:24:25 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.6.0 MIME-Version: 1.0 In-Reply-To: <20200424054837.5138-6-dave@stgolabs.net> Content-Type: text/plain; charset=windows-1252 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org I'm squashing this in to keep the changes compared to the current code minimal, and queuing the series. Thanks, Paolo diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c index bbefa2a7f950..feca3118b17f 100644 --- a/arch/powerpc/kvm/book3s_hv.c +++ b/arch/powerpc/kvm/book3s_hv.c @@ -230,10 +230,10 @@ static bool kvmppc_ipi_thread(int cpu) static void kvmppc_fast_vcpu_kick_hv(struct kvm_vcpu *vcpu) { int cpu; - struct rcuwait *wait; + struct rcuwait *waitp; - wait = kvm_arch_vcpu_get_wait(vcpu); - if (rcuwait_wake_up(wait)) + waitp = kvm_arch_vcpu_get_wait(vcpu); + if (rcuwait_wake_up(waitp)) ++vcpu->stat.halt_wakeup; cpu = READ_ONCE(vcpu->arch.thread_cpu); @@ -3814,7 +3814,10 @@ static void kvmppc_vcore_blocked(struct kvmppc_vcore *vc) } } + prepare_to_rcuwait(&vc->wait); + set_current_state(TASK_INTERRUPTIBLE); if (kvmppc_vcore_check_block(vc)) { + finish_rcuwait(&vc->wait); do_sleep = 0; /* If we polled, count this as a successful poll */ if (vc->halt_poll_ns) @@ -3827,8 +3830,8 @@ static void kvmppc_vcore_blocked(struct kvmppc_vcore *vc) vc->vcore_state = VCORE_SLEEPING; trace_kvmppc_vcore_blocked(vc, 0); spin_unlock(&vc->lock); - rcuwait_wait_event(&vc->wait, - kvmppc_vcore_check_block(vc), TASK_INTERRUPTIBLE); + schedule(); + finish_rcuwait(&vc->wait); spin_lock(&vc->lock); vc->vcore_state = VCORE_INACTIVE; trace_kvmppc_vcore_blocked(vc, 1); diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index 7c2d18c12d87..c671de51a753 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -2737,10 +2737,10 @@ EXPORT_SYMBOL_GPL(kvm_vcpu_block); bool kvm_vcpu_wake_up(struct kvm_vcpu *vcpu) { - struct rcuwait *wait; + struct rcuwait *waitp; - wait = kvm_arch_vcpu_get_wait(vcpu); - if (rcuwait_wake_up(wait)) { + waitp = kvm_arch_vcpu_get_wait(vcpu); + if (rcuwait_wake_up(waitp)) { WRITE_ONCE(vcpu->ready, true); ++vcpu->stat.halt_wakeup; return true;