Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp4643859pxu; Mon, 21 Dec 2020 19:04:05 -0800 (PST) X-Google-Smtp-Source: ABdhPJygwWi85lzJO+Nlff2MigLRPN0823DDC83otI3L9Q0o63tc/ZdJy5rbvhkEF4TPGXhPbosI X-Received: by 2002:a05:6402:19b0:: with SMTP id o16mr18624068edz.270.1608606245288; Mon, 21 Dec 2020 19:04:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1608606245; cv=none; d=google.com; s=arc-20160816; b=03jq+mnnpv/qxgRF4+O3u6pSmAUCIcLCmtGkwSju49R+fdWdoTreB+/IMQ9qbRcPLD 84rxK+qK3DDJf/v+a7t+0+NJOV17WMPwd7xiFikN8EFqjRAlWwnTOSNvlKPxBAUqjL6Y /OAxig8tCsxvEncNhi46AaM3iqHb7y2wSnIhYdyxiwp9AxxiaXbXVl59UiBY+u3dvj15 FidBqEs3Q3yp0i/uBupbIzNChpdiOYE71JvasCng55tLWWvplRdwRCS3wXPtXCNwyvXU 9dB19F6xOqnG468j/HkmCVxLzXTg4Tjgetdg/KIKw1a3FN18Lz4myxhgFcj21/t3HtUT hN5w== 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; bh=8Z2Sdq8vvhxvp1+tCPYNF6GIdsGcuxswn8Muy0ybErY=; b=eg8bqtietF4PEO8S5q1Km9dhhX0988yWxhs2Kh+2FUhpo7aSo/MkS+49x+59OsApll fptjhxnrEKEz9M44fQ/gtCaw/QpQNOpbeIrRYxvDe2TJh9FdUXhWZsq2W9TvInv0Y6ta MMlbIMo/zjvHuSHwHGPTAAIwF20czFX1CntfjDpM6qxsqgu/4YcZcTfnMtM4szhGY8h3 tCmojYQL8ZGnceHwUt83XtLTjwiHgucr5TdOFxfyUHh9j2y/bq6YIPSCKexx5L8o2w6s Sn0/7iYCAeabIoZ/Pdea/0rtxaKOdKkfqUmCgXiDGlQuUBHqHMwOkWjdj5sImvP3EFkY Wspw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id s21si11608816edc.368.2020.12.21.19.03.44; Mon, 21 Dec 2020 19:04:05 -0800 (PST) Received-SPF: pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725807AbgLVDC3 (ORCPT + 99 others); Mon, 21 Dec 2020 22:02:29 -0500 Received: from ZXSHCAS2.zhaoxin.com ([203.148.12.82]:14552 "EHLO ZXSHCAS2.zhaoxin.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725782AbgLVDC3 (ORCPT ); Mon, 21 Dec 2020 22:02:29 -0500 Received: from zxbjmbx1.zhaoxin.com (10.29.252.163) by ZXSHCAS2.zhaoxin.com (10.28.252.162) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1979.3; Tue, 22 Dec 2020 11:01:44 +0800 Received: from [192.168.0.102] (113.201.128.11) by zxbjmbx1.zhaoxin.com (10.29.252.163) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1979.3; Tue, 22 Dec 2020 11:01:41 +0800 Date: Tue, 22 Dec 2020 11:01:39 +0800 From: To: , Eric Biggers CC: , , , , , , , , , , , , , Subject: Re: [PATCH] crypto: x86/crc32c-intel - Don't match some Zhaoxin CPUs User-Agent: K-9 Mail for Android In-Reply-To: References: <1607686144-2604-1-git-send-email-TonyWWang-oc@zhaoxin.com> <1f8d17bf-c1d9-6496-d2f8-5773633011fb@zhaoxin.com> <345BC725-406B-40C6-88E9-747DBEBE0493@zhaoxin.com> Message-ID: <4CDBFCA0-56B9-495B-9660-3BE9018BC8AE@zhaoxin.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit X-Originating-IP: [113.201.128.11] X-ClientProxiedBy: ZXSHCAS1.zhaoxin.com (10.28.252.161) To zxbjmbx1.zhaoxin.com (10.29.252.163) Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org On December 22, 2020 3:27:33 AM GMT+08:00, hpa@zytor.com wrote: >On December 20, 2020 6:46:25 PM PST, tonywwang-oc@zhaoxin.com wrote: >>On December 16, 2020 1:56:45 AM GMT+08:00, Eric Biggers >> wrote: >>>On Tue, Dec 15, 2020 at 10:15:29AM +0800, Tony W Wang-oc wrote: >>>> >>>> On 15/12/2020 04:41, Eric Biggers wrote: >>>> > On Mon, Dec 14, 2020 at 10:28:19AM +0800, Tony W Wang-oc wrote: >>>> >> On 12/12/2020 01:43, Eric Biggers wrote: >>>> >>> On Fri, Dec 11, 2020 at 07:29:04PM +0800, Tony W Wang-oc wrote: >>>> >>>> The driver crc32c-intel match CPUs supporting >>>X86_FEATURE_XMM4_2. >>>> >>>> On platforms with Zhaoxin CPUs supporting this X86 feature, >>When >>>> >>>> crc32c-intel and crc32c-generic are both registered, system >>will >>>> >>>> use crc32c-intel because its .cra_priority is greater than >>>> >>>> crc32c-generic. This case expect to use crc32c-generic driver >>>for >>>> >>>> some Zhaoxin CPUs to get performance gain, So remove these >>>Zhaoxin >>>> >>>> CPUs support from crc32c-intel. >>>> >>>> >>>> >>>> Signed-off-by: Tony W Wang-oc >>>> >>> >>>> >>> Does this mean that the performance of the crc32c instruction >on >>>those CPUs is >>>> >>> actually slower than a regular C implementation? That's very >>>weird. >>>> >>> >>>> >> >>>> >> From the lmbench3 Create and Delete file test on those chips, I >>>think yes. >>>> >> >>>> > >>>> > Did you try measuring the performance of the hashing itself, and >>>not some >>>> > higher-level filesystem operations? >>>> > >>>> >>>> Yes. Was testing on these Zhaoxin CPUs, the result is that with the >>>same >>>> input value the generic C implementation takes fewer time than the >>>> crc32c instruction implementation. >>>> >>> >>>And that is really "working as intended"? >> >>These CPU's crc32c instruction is not working as intended. >> >> Why do these CPUs even >>>declare that >>>they support the crc32c instruction, when it is so slow? >>> >> >>The presence of crc32c and some other instructions supports are >>enumerated by CPUID.01:ECX[SSE4.2] = 1, other instructions are ok >>except the crc32c instruction. >> >>>Are there any other instruction sets (AES-NI, PCLMUL, SSE, SSE2, AVX, >>>etc.) that >>>these CPUs similarly declare support for but they are uselessly slow? >> >>No. >> >>Sincerely >>Tonyw >> >>> >>>- Eric > >Then the right thing to do is to disable the CPUID bit in the >vendor-specific startup code. This way makes these CPUs do not support all instruction sets enumerated by CPUID.01:ECX[SSE4.2]. While only crc32c instruction is slow, just expect the crc32c-intel driver do not match these CPUs. Sincerely Tonyw