Received: by 2002:a05:6a10:1a4d:0:0:0:0 with SMTP id nk13csp4358512pxb; Sat, 5 Feb 2022 10:57:18 -0800 (PST) X-Google-Smtp-Source: ABdhPJzR8Z1N0G4FPodynMTmsAck44uWn2T/2DhLqVKPtXgPjhOah/pjjfdFsieLFhIHVBDztagA X-Received: by 2002:a17:90b:3447:: with SMTP id lj7mr5484621pjb.39.1644087437898; Sat, 05 Feb 2022 10:57:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1644087437; cv=none; d=google.com; s=arc-20160816; b=y2fAEn36T+YjzVeBL0jro3/YpaADme/9+bRukWZOwhux20JBM54PT7bAOgY0Bzed6a BMTnPZ3tpNWNuMLl54ktabFd6pqICG7e1mHrZ3bHcrm/M9iL1P7D+XutMhBRQUTwgI1D xix1f2YU73yIUfZz3Y4ObwBVggd/jivbbWliJzBVtL5nk5D0eYoTgmwOF/V8+nmh/2/d LsRNZ/rHUJAuEHpwvpvj1vB0Ccia8iaKqkKZTgiMVe6QWDfnCecFD56ClSEyicaU0qs3 gKuLzkIYloh/0PdMMYVLyWbGp2VAoqlV6GIpq15W50HXf8N/gYLGfbLlrdku06VPUvQ+ H00Q== 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=UZjT0AI8QaDMZi7gSSNnNcg9BqhdWxMUwV4p8xm0hR8=; b=qUXC1UMj5Iod3bjkkMbSw4wYDht8E/5neHWwa1WNO7eGZ60sTVqiFXRdUEBRNVcqZz rfLeSCH5xD2md81VejaOAyZdBHkYe6zfgOqOAlFsFBz9N+M1Eztu+cJFVmdFej8A9Qvp LX526yq1s1vmmTWrU50DlV8cEk4QT9tqcJJt0kYHIM3o+ix7Pdpmuw1+aEGTPFPRUDsU YtvHOl7itBue6nf2zFoHeJXE4ioNc6BEhu8mrM0Vu4yi6Q48DVWvMKtKPD5Abzg5cIIN TP5PkniXIp5uDCIk/QI/fUsT2A3uLwrxqRu9a13S+x3QLFhPqt9QgRhOa7BUfrsOSrI8 dkyg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=Kz8+3jlU; 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 e3si5140138pgk.443.2022.02.05.10.57.06; Sat, 05 Feb 2022 10:57:17 -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=Kz8+3jlU; 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 S231618AbiBCUvG (ORCPT + 99 others); Thu, 3 Feb 2022 15:51:06 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34298 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229473AbiBCUvF (ORCPT ); Thu, 3 Feb 2022 15:51:05 -0500 Received: from mail-ot1-x336.google.com (mail-ot1-x336.google.com [IPv6:2607:f8b0:4864:20::336]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8DFFDC061714 for ; Thu, 3 Feb 2022 12:51:05 -0800 (PST) Received: by mail-ot1-x336.google.com with SMTP id q14-20020a05683022ce00b005a6162a1620so3655484otc.0 for ; Thu, 03 Feb 2022 12:51:05 -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=UZjT0AI8QaDMZi7gSSNnNcg9BqhdWxMUwV4p8xm0hR8=; b=Kz8+3jlUvBmSaJpMHCcA2q3moKa+5SMh4PI6lDjMnwXfYkHP0VRxwyrFw8xfddQkh9 P32fHUmTYcCYzMCYgQUWzIp+6EQTME+zhyUOUfWtd6n2hiYGYmW0ywiYvdWBH+9FGbO+ Al8e4kE8FjB59UoeQxgP6z95IA+9Wx5oqEid+jMX1GCMcKpM4KK3sx/JheZVUuDgD7QI vxdEkDG3alyhtZ7gmeYe8CV2gNfyZJSdjzLvK6Q0fAhCK2CN84Nis0S72wlq1oXXnsq0 uYhmjLyrIv6UKClpw06Vt0GeuAfRRG0ObF6zH2N1CarhMciEvJRzO0oMNbBbqunmxsLu 48Mg== 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=UZjT0AI8QaDMZi7gSSNnNcg9BqhdWxMUwV4p8xm0hR8=; b=WUgjufZ6p1krjHgAkqy0USrFc4J34tcsumGGMkJtvQ70OF4y/8tCbk4u7FQIqaAaqO TG/IZSA7hBXcgxvAFXGJDai4TvigNletXFR2Vn242yVvEUw+HrU9HQ5bKtqE8AoVq50g 7CbBYrSIiP0oNlchYOP0eam+FOZ48TiHyoAkVWwmYSrxWh5F4jz2tRm5XAZRhPMZLc5I L7X1t+WDhuw83HCOEaIt49iqdCP30FlUC9JixjFFcFVcODye3u6ciuyIqczRcF8ums15 eQKteeSPMiQmWnijv0MH12zWEsFhrOdlyUDnN+o4uRt1j+6d/J1Miaw0CY88R6aXUrd8 LBIA== X-Gm-Message-State: AOAM530r32/KfKPfOe1/HZA3XhFUk2mcsHqImPVbtTr32CbLYMm5dbky kwzzvsORKS3fEnwEBQEqCjd+ZnFvPtfoyAk6ND+vfg== X-Received: by 2002:a05:6830:22e3:: with SMTP id t3mr19898967otc.75.1643921464617; Thu, 03 Feb 2022 12:51:04 -0800 (PST) MIME-Version: 1.0 References: <20220203194308.2469117-1-jmattson@google.com> <20220203194308.2469117-2-jmattson@google.com> In-Reply-To: From: Jim Mattson Date: Thu, 3 Feb 2022 12:50:53 -0800 Message-ID: Subject: Re: [PATCH 2/2] x86/cpufeatures: Add macros for Intel's new fast rep string features To: Dave Hansen Cc: Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" , Paolo Bonzini , Tony Luck , Peter Zijlstra , "Chang S. Bae" , Juergen Gross , Andrew Cooper , Babu Moger , Jing Liu , Sean Christopherson , linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Feb 3, 2022 at 12:25 PM Dave Hansen wrote: > > On 2/3/22 11:43, Jim Mattson wrote: > > Even if no one else cares, these features should be exposed to kvm > > guests, and the code for the KVM_GET_SUPPORTED_CPUID ioctl is more > > readable if the bits have corresponding X86_FEATURE macros. > > I went digging around KVM_GET_SUPPORTED_CPUID and didn't see any obvious > unreadable things resulting from not having these defines. Maybe I'm > looking in the wrong spot. Do you have a slightly more specific pointer? These features are not currently enumerated by KVM_GET_SUPPORTED_CPUID. They would be added as follows [gmail mangles diffs; sorry]: diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c index 28be02adc669..11e621b6faac 100644 --- a/arch/x86/kvm/cpuid.c +++ b/arch/x86/kvm/cpuid.c @@ -599,7 +599,7 @@ void kvm_set_cpu_caps(void) kvm_cpu_cap_set(X86_FEATURE_SPEC_CTRL_SSBD); kvm_cpu_cap_mask(CPUID_7_1_EAX, - F(AVX_VNNI) | F(AVX512_BF16) + F(AVX_VNNI) | F(AVX512_BF16) | F(FZRM) | F(FSRS) | F(FSRC) ); kvm_cpu_cap_mask(CPUID_D_1_EAX, (Of course, we can always define these macros in that file, if that's preferable.) > > +#define X86_FEATURE_FZRM (12*32+10) /* Fast zero-length REP MOVSB */ > > +#define X86_FEATURE_FSRS (12*32+11) /* Fast short REP STOSB */ > > +#define X86_FEATURE_FSRC (12*32+12) /* Fast short REP {CMPSB,SCASB} */ > > If the use really is for inside the kernel, maybe we should hide them > from cpuinfo: > > #define X86_FEATURE_FSRC (12*32+12) /* "" Fast short REP {CMPSB,SCASB} */ That sounds good to me.