Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package isa-l for openSUSE:Factory checked in at 2026-03-31 15:22:33 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/isa-l (Old) and /work/SRC/openSUSE:Factory/.isa-l.new.1999 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "isa-l" Tue Mar 31 15:22:33 2026 rev:5 rq:1343722 version:2.32.0 Changes: -------- --- /work/SRC/openSUSE:Factory/isa-l/isa-l.changes 2026-03-17 19:05:08.830287001 +0100 +++ /work/SRC/openSUSE:Factory/.isa-l.new.1999/isa-l.changes 2026-03-31 15:23:34.735543974 +0200 @@ -1,0 +2,15 @@ +Mon Mar 30 15:36:42 UTC 2026 - Pablo de Lara Guarch <[email protected]> + +- Add 0001-crc-fix-x86-CRC-dispatcher.patch to fix dispatcher issue + +------------------------------------------------------------------- +Mon Mar 30 15:25:40 UTC 2026 - Pablo de Lara Guarch <[email protected]> + +- Removed unnecessary debug lines in spec file. + +------------------------------------------------------------------- +Mon Mar 30 15:17:31 UTC 2026 - Pablo de Lara Guarch <[email protected]> + +- Added patch fixing CRC x86 dispatcher. + +------------------------------------------------------------------- New: ---- 0001-crc-fix-x86-CRC-dispatcher.patch ----------(New B)---------- New: - Add 0001-crc-fix-x86-CRC-dispatcher.patch to fix dispatcher issue ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ isa-l.spec ++++++ --- /var/tmp/diff_new_pack.kCx02C/_old 2026-03-31 15:23:35.575578969 +0200 +++ /var/tmp/diff_new_pack.kCx02C/_new 2026-03-31 15:23:35.579579135 +0200 @@ -30,6 +30,8 @@ BuildRequires: libtool BuildRequires: nasm >= 2.14.01 +Patch0: 0001-crc-fix-x86-CRC-dispatcher.patch + %description Optimized low-level functions targeting storage applications. @@ -77,7 +79,8 @@ in libisal2. %prep -%autosetup +%setup -q -n isa-l-2.32.0 +%patch 0 -p1 %build %global _lto_cflags %{_lto_cflags} -ffat-lto-objects ++++++ 0001-crc-fix-x86-CRC-dispatcher.patch ++++++ >From 4b8a74db220266ac37fba70b5fb55d3c95fab7b4 Mon Sep 17 00:00:00 2001 From: Pablo de Lara <[email protected]> Date: Fri, 20 Mar 2026 09:11:11 +0000 Subject: [PATCH] crc: fix x86 CRC dispatcher rbx register was being clobbered by a function pointer before being used to decide on the AVX512+VPCLMUL implementation to be used, based on its content from CPUID instruction. Signed-off-by: Pablo de Lara <[email protected]> Reported-by: Maodi Ma <[email protected]> --- Release_notes.txt | 5 +++++ include/multibinary.asm | 27 ++++++++++++++------------- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/Release_notes.txt b/Release_notes.txt index 96032dd..b7ca581 100644 --- a/Release_notes.txt +++ b/Release_notes.txt @@ -11,6 +11,11 @@ RELEASE NOTE CONTENTS 2. FIXED ISSUES --------------- +Unreleased + +* Fixed x86 CRC dispatcher (AVX512+VPLCMUL implementation could not be always reached + when the ISA was available). + v2.32 * Fixed RAID performance application for MacOS. diff --git a/include/multibinary.asm b/include/multibinary.asm index 6de280b..f6630a1 100644 --- a/include/multibinary.asm +++ b/include/multibinary.asm @@ -131,7 +131,6 @@ section .text %1_dispatch_init: push rsi - push rax push rbx push rcx push rdx @@ -164,33 +163,35 @@ ;; Test for AVX2 xor ecx, ecx mov eax, 7 - cpuid + cpuid ; ebx, ecx returned to be checked test ebx, FLAG_CPUID7_EBX_AVX2 je _%1_init_done ; No AVX2 possible - and ecx, FLAGS_CPUID7_ECX_AVX2_G2 - cmp ecx, FLAGS_CPUID7_ECX_AVX2_G2 - lea rbx, [%5 WRT_OPT] - cmove rsi, rbx + mov eax, ecx + and eax, FLAGS_CPUID7_ECX_AVX2_G2 + cmp eax, FLAGS_CPUID7_ECX_AVX2_G2 + lea rax, [%5 WRT_OPT] + cmove rsi, rax ;; Test for AVX512 and edi, FLAG_XGETBV_EAX_ZMM_OPM cmp edi, FLAG_XGETBV_EAX_ZMM_OPM jne _%1_init_done ; No AVX512 possible - and ebx, FLAGS_CPUID7_EBX_AVX512_G1 - cmp ebx, FLAGS_CPUID7_EBX_AVX512_G1 + mov eax, ebx + and eax, FLAGS_CPUID7_EBX_AVX512_G1 + cmp eax, FLAGS_CPUID7_EBX_AVX512_G1 jne _%1_init_done - and ecx, FLAGS_CPUID7_ECX_AVX512_G2 - cmp ecx, FLAGS_CPUID7_ECX_AVX512_G2 - lea rbx, [%6 WRT_OPT] ; AVX512/10 opt - cmove rsi, rbx + mov eax, ecx + and eax, FLAGS_CPUID7_ECX_AVX512_G2 + cmp eax, FLAGS_CPUID7_ECX_AVX512_G2 + lea rax, [%6 WRT_OPT] ; AVX512/10 opt + cmove rsi, rax _%1_init_done: pop rdi pop rdx pop rcx pop rbx - pop rax mov [%1_dispatched], rsi pop rsi ret -- 2.43.0
