Received: by 2002:a05:6358:111d:b0:dc:6189:e246 with SMTP id f29csp247653rwi; Wed, 2 Nov 2022 11:25:48 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4PIPVv4O7t1pRqNNvDzwszEXP3J8N2z/X951qoezftpdR3AijBddN2MT8mclB9ETMm0Tg+ X-Received: by 2002:a63:6a48:0:b0:43a:18ce:4e08 with SMTP id f69-20020a636a48000000b0043a18ce4e08mr23326394pgc.432.1667413548538; Wed, 02 Nov 2022 11:25:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1667413548; cv=none; d=google.com; s=arc-20160816; b=QyKRoMbo9UQwWzQQ0Ke8aCgNxDK1DbdLmL+9jLQh0bdZjSo0jrrWr0UbxlrM6oBMjR fzAXtkGG87+nOWfhkhC8m/zsWkCwGwCpqP75HasvgQP0MuD/wsRGynb1y3Gpss9yYWFa fIzfJPp6vM1vHWQNnJ1XO8luNMSJ3annWctAfkGvsidk4kjp8Nh92SNlJBlpLR6Gm1C0 XEg0ztWGeL8B70bfiyHuKDOGgcmNE33tN7uj3BBRBEgZa/WiqXjDm+uvZ3+JN4udjn/O A5hRDTiATXswErx1K7CJ2XloJiNIedHfLQxTZS45Jth9fPDapuposXQj+3UDHyTVCUhD A46w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:references:in-reply-to:user-agent:subject:cc:to:from :date:dkim-signature:dkim-filter; bh=vIjTqafDHMz12/79Y+kw+Cq7rrIa/6hI7Ssn5drf0vY=; b=f7WCHyeNiM/Cxz2UV4ivVNfz7uJ0o9IAts0Iz8vDcQlg6RaqtO3tyJMG2da9iDBeY4 FrVWoflKflTAIog/iHxFPdgWW9eLyQxMRUHyTkPadptiGM2Tj20BLNtLzS6hQSs24kdt 0ktl7b6e2SpVuEFOR3hTLtIfYTLaRwW5ZzMLAfHzF/gixOgWOn4kbTy983+/i+Epa9IV qWo19/4AObaTUY7JrnhZoTTNh1mcd/ujiH+JNcYzNMg5HBmhNrm+0/VClwSBEpFXLw83 Rd4Cr4nxgrf3TG2W9yTfsCiAmftrkmKY0ZwaPjhmvcXXb0+TrzXR7VlI7MVHIRGeRGNA f48Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@zytor.com header.s=2022100601 header.b=TJZEPFER; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=zytor.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id v17-20020a170902ca9100b00177fd8409b7si14557871pld.73.2022.11.02.11.25.26; Wed, 02 Nov 2022 11:25:48 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-crypto-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=@zytor.com header.s=2022100601 header.b=TJZEPFER; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=zytor.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230481AbiKBSTu (ORCPT + 99 others); Wed, 2 Nov 2022 14:19:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45256 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231289AbiKBSTu (ORCPT ); Wed, 2 Nov 2022 14:19:50 -0400 Received: from mail.zytor.com (unknown [IPv6:2607:7c80:54:3::138]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5AB2A2F392; Wed, 2 Nov 2022 11:19:48 -0700 (PDT) Received: from [127.0.0.1] ([73.223.250.219]) (authenticated bits=0) by mail.zytor.com (8.17.1/8.17.1) with ESMTPSA id 2A2IIxBB204854 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO); Wed, 2 Nov 2022 11:19:00 -0700 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 2A2IIxBB204854 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com; s=2022100601; t=1667413142; bh=vIjTqafDHMz12/79Y+kw+Cq7rrIa/6hI7Ssn5drf0vY=; h=Date:From:To:CC:Subject:In-Reply-To:References:From; b=TJZEPFER/BiGN+mylQebG9EXskkhAarmnEzi6qVzgCxhKCedILTFc1X5/PqpeE0DT 0H1LbklDD/UFXkz3ZIT7qGi83v4a8BKAXtFa3NIJJi6z8aOB2I+vhddrNPUAjZCe/m J10Hr+KkYlzz2veGEtEalm0kCbf7T7baIPWeQJExnd130T8u84q+so3b9QpiB5PjqQ d64uKZnYAHxOQ5BjoaY7tFB22R94DR9nh4wphinYYKnL+hEbruNvkBRa62E9+lvqpu SUV1DJuHARGIUmxOdFYEgVjRDhecyqckTsb9Vqt/nKw/ZmXSDq5xWlVceihlRThEQN hGOwJtEK1tpIQ== Date: Wed, 02 Nov 2022 11:19:00 -0700 From: "H. Peter Anvin" To: "Elliott, Robert (Servers)" , Paolo Bonzini , Borislav Petkov , Maxim Levitsky CC: "linux-kernel@vger.kernel.org" , "kvm@vger.kernel.org" , Pawan Gupta , Ingo Molnar , Josh Poimboeuf , Namhyung Kim , Tony Luck , Arnaldo Carvalho de Melo , Thomas Gleixner , Alexander Shishkin , Tim Chen , "David S. Miller" , Dave Hansen , "Chang S. Bae" , Jane Malalane , Kees Cook , Kan Liang , Peter Zijlstra , "maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)" , Herbert Xu , Jiri Olsa , Mark Rutland , "linux-perf-users@vger.kernel.org" , "open list:CRYPTO API" Subject: =?US-ASCII?Q?RE=3A_=5BPATCH_v2_1/5=5D_perf/x86/intel/lbr=3A_use_?= =?US-ASCII?Q?setup=5Fclear=5Fcpu=5Fcap_instead_of_clear=5Fcpu=5Fcap?= User-Agent: K-9 Mail for Android In-Reply-To: References: <20220718141123.136106-1-mlevitsk@redhat.com> <20220718141123.136106-2-mlevitsk@redhat.com> Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RDNS_NONE,SPF_HELO_PASS, SPF_PASS autolearn=no 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-crypto@vger.kernel.org On November 2, 2022 9:23:00 AM PDT, "H=2E Peter Anvin" wr= ote: >On November 2, 2022 7:27:52 AM PDT, "Elliott, Robert (Servers)" wrote: >> >>> From: Paolo Bonzini >>=2E=2E=2E >>> (2) in particular holds even on bare metal=2E The kernel bug here is = that >>> X86_FEATURE_AVX only tells you if the instructions are _present_, not = if >>> they are _usable_=2E Indeed, the XCR0 check is present for all other >>> files in arch/x86/crypto, either instead or in addition to >>> boot_cpu_has(X86_FEATURE_AVX)=2E >>>=20 >>> Maxim had sent a patch about a year ago to do it in aesni-intel-glue= =2Ec >>> but Dave told him to fix the dependencies instead >>> (https://lore=2Ekernel=2Eorg/all/20211103124614=2E499580-1- >>> mlevitsk@redhat=2Ecom/)=2E >>> What do you think of applying that patch instead? >> >>Most of the x86 crypto modules using X86_FEATURE_AVX do check >> cpu_has_xfeatures(XFEATURE_MASK_YMM, =2E=2E=2E >> >>so it's probably prudent to add it to the rest (or remove it everywhere >>if it is not needed)=2E >> >>1=2E Currently checking XSAVE YMM: >> aria_aesni_avx_glue >> blake2s-glue >> camellia_aesni_avx2_glue camellia_aesni_avx_glue >> cast5_avx_glue cast6_avx_glue >> chacha_glue >> poly1305_glue >> serpent_avx2_glue serpent_avx_glue >> sha1_ssse3_glue sha256_ssse3_glue sha512_ssse3_glue >> sm3_avx_glue >> sm4_aesni_avx2_glue sm4_aesni_avx_glue >> twofish_avx_glue >> >>Currently not checking XSAVE YMM: >> aesni-intel_glue >> curve25519-x86_64 >> nhpoly1305-avx2-glue >> polyval-clmulni_glue >> >>2=2E Similarly, modules using X86_FEATURE_AVX512F, X86_FEATURE_AVXX512VL >>and/or X86_FEATURE_AVX512BW probably need to check XFEATURE_MASK_AVX512: >> >>Currently checking XSAVE AVX512: >> blake2s-glue >> poly1305_glue >> >>Currently not checking XSAVE AVX512: >> chacha_glue >> >>3=2E Similarly, modules using X86_FEATURE_XMM2 probably need to >>check XFEATURE_MASK_SSE: >> >>Currently checking XSAVE SSE: >> aegis128-aesni-glue=20 >> >>Current not checking XSAVE SSE: >> nhpoly1305-sse2_glue >> serpent_sse2_glue >> >> >> > >We have a dependency system for CPUID features=2E If you are going to do = this (as opposed to "fixing" this in Qemu or just saying "don't do that, it= isn't a valid hardware configuration=2E" One more thing: for obvious reasons, this doesn't fix user space if user s= pace calls CPUID directly as opposed to reading /proc/cpuinfo or looking in= sysfs=2E Unfortunately this is the rule rather than the exception, althoug= h for some features like AVX user space is also supposed to check XCR0, in = which case it will work properly anyway=2E