Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp736202pxp; Wed, 9 Mar 2022 11:34:20 -0800 (PST) X-Google-Smtp-Source: ABdhPJztFBuYQS23FjeZpYjwHLJiQ4JmAAYblRSZP2X8p236isaJq9B/srkh/wQtIBzZbY9xpDUZ X-Received: by 2002:a17:90b:1809:b0:1bf:7e9:bdf5 with SMTP id lw9-20020a17090b180900b001bf07e9bdf5mr1106352pjb.52.1646854460387; Wed, 09 Mar 2022 11:34:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646854460; cv=none; d=google.com; s=arc-20160816; b=VXF77CHYf/mIztPBNK/kHyUVDtOVH04ModBu5xEYc7dllQopEuD0DLb+pn+JYDyfbl vgUBXoFZX1nvAviWRAsblhXcyuiY+nSeRuXL1F21Xm3u2lX3a8TqVo3UKdtq18ITrvb3 RoAtkrd/mWqSXiW8fRYOFmC0eJfTGUkEa0DWB0PiDM4QGvvMNiXE/Vr/yYg8v9cFlZhM zXf9KVbhNcmgnltDWLjHmNE+HC82IC9VFZRuAB7v0sTd32ZeIryOuc03zmlqFoHAkMy1 RJ7AjQVTRyRQVwKe4HnmfBbccuRi95g7os/RcOY1ahR4tUFPB6vGyxF6CZXd9OyJ+fC/ 1pYg== 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=f8iMwrOtI+LFtrFbhkhVNCC/uOBQHXBnNjFzC1DvTtM=; b=kF7jCXPkOXc/Ias1jm214HXFAQuqLNd2vhPLfvI4+xMnjML0xJVf24qZpPM0D5nHK+ xCREkKyi//cjibZmij1kCoQJhUtuCjcBeg5dZftGZb8pj/IIYum47QSaeZ09WYFHkEt8 EH310No273dOwbmu7K8yJMtHhvk4zp/lzPnIHR3jvIOR3YRYhqsBs86yP+cbkb9aIGdO LuXbyGIZIWqp5xaUY79T5ItY+WrrCX3eQKrtDCCydQyFEacS64s83f5GE1bdjDj9ie2U KoFo41dgSXg/RAMLqua2f7GliBmMfMibwsIZVPJEh7vebMPwUDBPRgXWOfjaszcI8dMK /fJQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=IpmCotXa; 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=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q5-20020a635c05000000b003789365a66fsi2589467pgb.127.2022.03.09.11.34.02; Wed, 09 Mar 2022 11:34:20 -0800 (PST) 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=@google.com header.s=20210112 header.b=IpmCotXa; 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=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235097AbiCIShL (ORCPT + 99 others); Wed, 9 Mar 2022 13:37:11 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60954 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230427AbiCIShK (ORCPT ); Wed, 9 Mar 2022 13:37:10 -0500 Received: from mail-oi1-x233.google.com (mail-oi1-x233.google.com [IPv6:2607:f8b0:4864:20::233]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A0DC916F97C for ; Wed, 9 Mar 2022 10:36:10 -0800 (PST) Received: by mail-oi1-x233.google.com with SMTP id q189so3530015oia.9 for ; Wed, 09 Mar 2022 10:36:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=f8iMwrOtI+LFtrFbhkhVNCC/uOBQHXBnNjFzC1DvTtM=; b=IpmCotXa8tKYGH0gYOITZr+N6koJZ/F/CfEW0a/AxwxTKIQhq7gLjNJD1uQec1+k8f K32AFGVopArK4NWBcruyzEJgK60hU+qIowQVgBGQA1+xeV69Ve5QsSswDjqaHUGuAqYZ 85E5cbuOIa/3YdA35eeG/pv4CrRRupWMJt5LI7PJX2DZyqoRG4mSafXux/0vTqaDOroL EvwPJqKZk8fefUgdQthFm7h3BteTrFWv56BFnTv/syUo40YofyIshiweIqnMc6BAtXT/ acqWpmlgCo+iBXAN72hXByQu2ERMT+OezvrlGXVCUS/wjwjZ3pSGvUMIuNyoqtPU52Bw wMfw== 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=f8iMwrOtI+LFtrFbhkhVNCC/uOBQHXBnNjFzC1DvTtM=; b=fdEBB9uCOx4pXd/ViTuiujTRKniCdwos97HwSdnBKh4pYx0XBwilzhgJqyJvlu4hYc vq3HoCRhskgpZMJ6UNpet81duRVac7/Q2aOUoULVODob7IqeYhv2S+in7aEsZiY1NVOt czfKy6Ti2ILWrjteVsUU3Rbb0Op4J8o7hrffhjUgflqeXR9TNr0Bm/RuDSeWKuyGkkZn DnpUR+Wd0UlF9R2XDsZpKw774SgmRZ/WizlhSVI907sosWR8jOz1iGDagae4q8kr40RU vH7dgP6fWN3ToQg1L6/Ty7CYhW7Lk0bOfPRa7JyQWDQjVZiTtdqz/alGm3asZ7aQNaVo 8uKg== X-Gm-Message-State: AOAM532fk5NrTMMmCiYfQqtYAw7Y8bL3sLYWrskGer9yT9+ujvIKCYNM DsPaVXcKuzCKk2AEGvxTyZEc3fSC2kXno7iMlYaUGA== X-Received: by 2002:aca:3f09:0:b0:2da:4be9:96a1 with SMTP id m9-20020aca3f09000000b002da4be996a1mr1070320oia.13.1646850969432; Wed, 09 Mar 2022 10:36:09 -0800 (PST) MIME-Version: 1.0 References: <20220301143650.143749-1-mlevitsk@redhat.com> <20220301143650.143749-5-mlevitsk@redhat.com> In-Reply-To: <20220301143650.143749-5-mlevitsk@redhat.com> From: Jim Mattson Date: Wed, 9 Mar 2022 10:35:58 -0800 Message-ID: Subject: Re: [PATCH v3 4/7] KVM: x86: nSVM: support PAUSE filter threshold and count when cpu_pm=on To: Maxim Levitsky Cc: kvm@vger.kernel.org, Ingo Molnar , Dave Hansen , Sean Christopherson , Borislav Petkov , "H. Peter Anvin" , Thomas Gleixner , x86@kernel.org, Vitaly Kuznetsov , Joerg Roedel , linux-kernel@vger.kernel.org, Paolo Bonzini , Wanpeng Li Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-17.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, ENV_AND_HDR_SPF_MATCH,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,USER_IN_DEF_DKIM_WL,USER_IN_DEF_SPF_WL 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 Tue, Mar 1, 2022 at 6:37 AM Maxim Levitsky wrote: > > Allow L1 to use these settings if L0 disables PAUSE interception > (AKA cpu_pm=on) > > Signed-off-by: Maxim Levitsky I didn't think pause filtering was virtualizable, since the value of the internal counter isn't exposed on VM-exit. On bare metal, for instance, assuming the hypervisor doesn't intercept CPUID, the following code would quickly trigger a PAUSE #VMEXIT with the filter count set to 2. 1: pause cpuid jmp 1 Since L0 intercepts CPUID, however, L2 will exit to L0 on each loop iteration, and when L0 resumes L2, the internal counter will be set to 2 again. L1 will never see a PAUSE #VMEXIT. How do you handle this?