From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f52.google.com (mail-wr1-f52.google.com [209.85.221.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8951C3D4130 for ; Mon, 25 May 2026 07:50:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.52 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779695411; cv=none; b=tjyJagR0ptPZYelH4ICTlVhmhdWToiiOnlXOPYW7+/+N6Uw36W0vOp/zK420tA54CYW95wBhYZg7gqJvd2yQ6rotPsd6f6YUHIcIdb7udLeuJYNVgNxoA8CBwxnIa6MAbcDx8V0bPlf37sFXjmMv+nIWl9MLnU0ok5FPuCzEHZA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779695411; c=relaxed/simple; bh=NR8ERBteiNpEvT/i3MkwfQhIOdqEBtmpkWicvVoDvSY=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=NFko0cI1bl+v+LjrYuoWyyBaq5thqdxwiVVJktjodVy5KVbdOsrDesz6WBFLHerKAHgYL0uJhALrYnTK2kjEVkomF4I6WUa0DklAxxoSGANLz9BqOO/Gh+T8WexgS50fsTAKgbYNJz/llyOQeseUhgHGvel32swvRGtBdu/TKgY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=JATo0DsK; arc=none smtp.client-ip=209.85.221.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="JATo0DsK" Received: by mail-wr1-f52.google.com with SMTP id ffacd0b85a97d-449de065cb3so8990519f8f.2 for ; Mon, 25 May 2026 00:50:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1779695408; x=1780300208; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=PoBZmEEKJgwumlmFRTQvrYGlkjtr/HeYrTo4cMXpiV0=; b=JATo0DsKUAIwiaib334nnvCZvfCMDNZfB/zXSFLAtU2RuUxxOUe4vb+ypPbpcCpjfj lC9aW1xMFrdczvsLF8Zw2hdPHXsMFh2AOFnhGllgmyahxo9FLCPExKoOW7oYNK5ey6jY Bs8Iq9wQjANHSan6nRaH8e+mb10duHfhD32Iey1+BN3WdOTrjKIzzjsiH5i/kufnUUrv i4uMYy63SS2AkhtSBeM9q5VhS2iWHpMMaRYPClcIp/jwGRDmGFd95sjEArDVuvHi0CxA LIOVwIwj+pHZqz+QNEzg7ZvxcvKENS0/WntYoVwrrkR9XT6UdQiXeOdYJVA5KeYi9SsL 7FmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779695408; x=1780300208; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=PoBZmEEKJgwumlmFRTQvrYGlkjtr/HeYrTo4cMXpiV0=; b=AdR6885fNPtoGuilqRhhr8TTHjYPxPRviiHQZ4v+T8SMf8wADdCinXUIVl3FaUGqE1 FOhvb3D1vhbM8UvKrjxvsIwSiXG7ViY/7DnNzNWfF+OLBsGQukJqxmuDaBVIMg9/gNZo +nWLS9GYopV+nNZwHwtJfBp0f50fch55BoGNhDCtrANXO5il4JPTA8FJxdwIs5u55LeE 83NBQdEkwnVVfIWXmmXWtezh9+TEaLWyhuzjgWU78Dd6ks1fyA63Jq0CzS6IXIKmxFwP tp292qdvW6/0BqzSmyY6D+R8qgW8m6f5aAXLeV9Uvj/fmX1hyrZG01sXVP+zgiPG0QSb E/sw== X-Forwarded-Encrypted: i=1; AFNElJ85ZceD+/weOqDGAhygy98RAxHGfdyRdN9wZsRIskC030NaXgLZjUW4UME1fTaCyOsiiC3BUcX2NDjgiVg=@vger.kernel.org X-Gm-Message-State: AOJu0YyTdBjrL778KQ/DJN9AVjjZjfF1AuQer48sT/75/ZpU7uOlTB2s ezwXN9xMzBsm+MyzEUBaDXrtlFB29V3gKV4EwWIT+/sW62ZQ8JW3522kqA7h1YEAgVo= X-Gm-Gg: Acq92OGua0H0XVP+ld183ivvego64dwPyR+Kp/OurYJYwEPAb/aysNFHkLMepOSl7w+ 7qYodH8LFR7hC1WCUc93atwPcCmuRMKR9zL4ABPyfdaA+pPLVYQFg/LohgMCbKbLoz7ZjpWTO2c Bj4UAZePsGxRu3rn13Esg/gpbwNr/ESzzzQsX50VQQx/rwh2ZaPpKSuZ3NaxOKibUkxd7DQfMs8 rV/4t0Ck2kWBgl6X7tZxqa4bxvq/2eT8tjfNSXG+MSUNrpwQ0MMXCCXQwa5CfJWaqKLKJEYsfDV +BT9quaNMtFah43L5RkHDdO9AWOqJ6jHyPGANNIlHn/eRYsH0QzLdSa4v6oa4PEGddDRX84R3sB L+lbyVrWEWngUOdSFqROqGvAtE83H0cHh7/uhSBLmaD4ylyDeKshQeYasOIWSjM0qIpfzTBtSEz 6UvvFBCbzBtP7Qp668/qKHWQtLHy6xuR0m5QEetQCK+f+O168dnjc4EmKa5mX3BbmBxoc6LTwvo LymoKLB7tFLh3acNwug0VKIGno2gX9WNM1DYI6oGAm3PV1tvh+aF9/suJRl6BUIfhVv8w== X-Received: by 2002:a05:6000:1882:b0:43d:7d24:b4ff with SMTP id ffacd0b85a97d-45eb38a80b5mr18489748f8f.40.1779695407785; Mon, 25 May 2026 00:50:07 -0700 (PDT) Received: from ?IPV6:2a00:1028:838d:271e:8e3b:4aff:fe4c:a100? (dynamic-2a00-1028-838d-271e-8e3b-4aff-fe4c-a100.ipv6.o2.cz. [2a00:1028:838d:271e:8e3b:4aff:fe4c:a100]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45eb6c9ba2esm26039629f8f.8.2026.05.25.00.50.06 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 25 May 2026 00:50:07 -0700 (PDT) Message-ID: <5d1b8b13-d590-497d-9185-609494135348@suse.com> Date: Mon, 25 May 2026 09:50:06 +0200 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2] genksyms: Support arm64 CRC32 hardware acceleration To: Wentao Guan Cc: masahiroy@kernel.org, linux-kernel@vger.kernel.org, linux-kbuild@vger.kernel.org, linux-modules@vger.kernel.org References: <20260525070344.1564886-1-guanwentao@uniontech.com> Content-Language: en-US From: Petr Pavlu In-Reply-To: <20260525070344.1564886-1-guanwentao@uniontech.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit +Cc: kbuild, modules On 5/25/26 9:03 AM, Wentao Guan wrote: > Use hardware 'crc32b' to partial_crc32_one() when support, > it shows 2x speed up than crctab32 way. > > I think it will be scaled to more architecture. Could you please provide measurements showing how this improves the runtime of genksyms and affects the overall kernel build time? Are CRC calculations actually a hot path in genksyms? I don't think it is worth complicating the genksyms code with architecture-specific optimizations unless there is a clear benefit. Additionally, many distributions already switched to gendwarfksyms last year. Unless someone provides a good reason to keep genksyms around, I expect it will be deprecated soon and eventually removed. It would be more valuable to show whether the same optimization is worthwhile for gendwarfksyms. -- Thanks, Petr > > Signed-off-by: Wentao Guan > --- > changelog: > 1. remove change in partial_crc32(), > for partial_crc32_one() already use crc32b. > > --- > --- > scripts/genksyms/genksyms.c | 34 ++++++++++++++++++++++++++++++++++ > 1 file changed, 34 insertions(+) > > diff --git a/scripts/genksyms/genksyms.c b/scripts/genksyms/genksyms.c > index 83e48670c2fcf..80b7797c842aa 100644 > --- a/scripts/genksyms/genksyms.c > +++ b/scripts/genksyms/genksyms.c > @@ -116,8 +116,40 @@ static const uint32_t crctab32[] = { > 0x2d02ef8dU > }; > > +/* > + * Architecture-specific CRC32 hardware acceleration. > + */ > +static int crc32_hw_available; > + > +#ifdef __aarch64__ > +#include > +#include > + > +static void crc32_check_hw(void) > +{ > + crc32_hw_available = (getauxval(AT_HWCAP) & HWCAP_CRC32) != 0; > +} > + > +static inline uint32_t crc32_hw_byte(uint8_t c, uint32_t crc) > +{ > + asm volatile(".arch_extension crc\n\t" > + "crc32b %w0, %w0, %w1" : "+r"(crc) : "r"(c)); > + return crc; > +} > + > +#else > +static void crc32_check_hw(void) > +{ > + crc32_hw_available = 0; > +} > +#endif > + > static uint32_t partial_crc32_one(uint8_t c, uint32_t crc) > { > +#if defined(__aarch64__) > + if (__builtin_expect(crc32_hw_available, 0)) > + return crc32_hw_byte(c, crc); > +#endif > return crctab32[(crc ^ c) & 0xff] ^ (crc >> 8); > } > > @@ -740,6 +772,8 @@ int main(int argc, char **argv) > FILE *dumpfile = NULL, *ref_file = NULL; > int o; > > + crc32_check_hw(); > + > struct option long_opts[] = { > {"debug", 0, 0, 'd'}, > {"warnings", 0, 0, 'w'},