Received: by 2002:a05:6a10:2726:0:0:0:0 with SMTP id ib38csp1418503pxb; Wed, 30 Mar 2022 03:07:12 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwRPcWWNHk/ls4RYteKKVf+S3d9ScaaS8vRKej57XXxICsd1G+tpl+59ed8JVicth7SDnZp X-Received: by 2002:a17:907:971e:b0:6da:8221:c82f with SMTP id jg30-20020a170907971e00b006da8221c82fmr33523279ejc.443.1648634831959; Wed, 30 Mar 2022 03:07:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1648634831; cv=none; d=google.com; s=arc-20160816; b=W1s7ZrBPotVRI1ZF7vMpfP5abpxyZqlCMZWybeX43VtfQCsG0TjEE3Fk4b2R7/WuU+ AxI0fS6dYh8nx/dhA30w93JYtcDlg4KCW6lE1ygxf/hCWm3Tj8C9tM+HVUq1SbH4OPDk AvqErmjhspJQRM1T9EphkQ4qYbfd19oor3L85CIWpFkxaCEwqcLOgZwWqd7qJBRDbPvA lNTX5a9gd0Ry3mUKdBQzeZRKaNNiox0isF4bxBIhZLlX4B1pf86wc0CUHlJ6jofgQMRc 4uI67DCS0ZbSz+QKzXrIGDS1xNu7XoNpOasuelOL7VM8EF73Zu5TFE0tlnx3DP/tZE2+ bWJQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=SnZBSyZar3/cpU2H1RzHZf2a0uvetUDmC7HqxBo+h7A=; b=CI09mPYr3cQj8bMVVsnNPQvjVbj9li9CGXaI4dIspQuVahOQj//Ym9cPb4eBN+v4Pi rtS0t9Nzo7gKKu2IKzkdITBBYtyvvGL1pQatzlmDPlNuBemiDb73yJtYHb3G617EnjT5 ODZ8wp0Rj1LSsQ4S05E8RSppv+hif1Vd9+ADiMDwofq1j2lpCDTtIbCxhqrEr/AH7IkY opLsAAM/0BEvsEhve1EqR86nekV543zlpWJZ8OQLbNY2hesB+NlVR64bjavHUng/lXtv jLBH5dhag/TYjtwUYLvHbQ1CpvE7vdf3DJGFPYxv4RtRYCP8ReI2BN+dgG3ZqS9iiz1P edMA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=dfr0ZWv4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id r2-20020a056402234200b00418c2b5bf8bsi19833352eda.621.2022.03.30.03.06.44; Wed, 30 Mar 2022 03:07:11 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=dfr0ZWv4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241592AbiC3BUf (ORCPT + 99 others); Tue, 29 Mar 2022 21:20:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55836 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234408AbiC3BUe (ORCPT ); Tue, 29 Mar 2022 21:20:34 -0400 Received: from mail-yw1-x112c.google.com (mail-yw1-x112c.google.com [IPv6:2607:f8b0:4864:20::112c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5C18847384; Tue, 29 Mar 2022 18:18:50 -0700 (PDT) Received: by mail-yw1-x112c.google.com with SMTP id 00721157ae682-2e5e176e1b6so202247447b3.13; Tue, 29 Mar 2022 18:18:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=SnZBSyZar3/cpU2H1RzHZf2a0uvetUDmC7HqxBo+h7A=; b=dfr0ZWv4GAasLPKufTMYblXVd1edCvaJVrOyVpf1oXqqJ7o1OgHvvSnaz3BYt4Q429 iddtQlNar88/RztYNbULqaXccn7FvhGCSo1Zick3THkFdquBL2zCmLy864qplc4wtOka 4CXqvaXr5tilv9RWkpb6pyviGYxMBXijxdWPyrZ0+7fHn2dEwBjgf3lWPWQIOfUYpvCu niRX668YjBFEonkVt6Ws4Exd6kH41c5qN6v4tDna/ysf6kELSBg3zLfuLeEA1TM5aCEz vRDbSIU2Uh/i/F3I8OhimUhM0B7FJiICBWfS8aUHgEUc2nO36kNVwOVSfDXiszgY4Ync ChBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=SnZBSyZar3/cpU2H1RzHZf2a0uvetUDmC7HqxBo+h7A=; b=l9Q5/egDumr1MovoPq3SLrKyVABX9cEznbgJxxZflib/Tn4oaweuJpZYZk2Hor7OXi ZiaeV4CI8ayG4Y34yq8NsDCAmmF1G+IHmAgk1Tbbh9G7fxNH9XTOZvcdlE1ZHR2RrD2s i2a46b4N0uQJoUPSq1KdwCBzizhRrWWVLAXTCf7MOImbpa1wSIfcfuV24SuwqfFoj3+u UDrwO0dWPgkyEgWuL6KDbOeRmGGGEDJbvWHF0pleRwpuN3AZsqsphUEMhDjl5eITmZYm 1FG3BRl+GCD5Z8b0deHkY86Pu1Aw2uPlLuVZ3qIbT8tJjjf/4JF7Exg8EA1l46MXeka8 ujGQ== X-Gm-Message-State: AOAM5314aRIs5H7QqxP/DoI33eWG6+JnOq7oI3qwyBS5CK2Q4nfQvUBE PrG+91cddeLIkQyk+s9ncWae44+y8Yi1nQ/h5yepbw8a X-Received: by 2002:a81:1704:0:b0:2e5:d98b:e185 with SMTP id 4-20020a811704000000b002e5d98be185mr34019442ywx.354.1648603129650; Tue, 29 Mar 2022 18:18:49 -0700 (PDT) MIME-Version: 1.0 References: <1648216709-44755-1-git-send-email-wanpengli@tencent.com> <1648216709-44755-4-git-send-email-wanpengli@tencent.com> In-Reply-To: From: Wanpeng Li Date: Wed, 30 Mar 2022 09:18:38 +0800 Message-ID: Subject: Re: [PATCH RESEND 3/5] KVM: X86: Boost vCPU which is in critical section To: Sean Christopherson Cc: LKML , kvm , Paolo Bonzini , Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Joerg Roedel Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 30 Mar 2022 at 08:07, Sean Christopherson wrote: > > On Fri, Mar 25, 2022, Wanpeng Li wrote: > > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > > index 425fd7f38fa9..6b300496bbd0 100644 > > --- a/arch/x86/kvm/x86.c > > +++ b/arch/x86/kvm/x86.c > > @@ -10375,6 +10375,28 @@ static int vcpu_run(struct kvm_vcpu *vcpu) > > return r; > > } > > > > +static int kvm_vcpu_non_preemptable(struct kvm_vcpu *vcpu) > > s/preemtable/preemptible > > And I'd recommend inverting the return, and also return a bool, i.e. > > static bool kvm_vcpu_is_preemptible(struct kvm_vcpu *vcpu) Good suggestion. > > > +{ > > + int count; > > + > > + if (!vcpu->arch.pv_pc.preempt_count_enabled) > > + return 0; > > + > > + if (!kvm_read_guest_cached(vcpu->kvm, &vcpu->arch.pv_pc.preempt_count_cache, > > + &count, sizeof(int))) > > + return (count & ~PREEMPT_NEED_RESCHED); > > This cements PREEMPT_NEED_RESCHED into KVM's guest/host ABI. I doubt the sched > folks will be happy with that. > > > + > > + return 0; > > +} > > +