<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/source/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in Makefile</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>a354b8de9ad607c0a11419a402df46b46503f921 - riscv: add platform-specific double word shifts for riscv32</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/riscv/lib/Makefile#a354b8de9ad607c0a11419a402df46b46503f921</link>
        <description>riscv: add platform-specific double word shifts for riscv32Add riscv32-specific &apos;__ashldi3()&apos;, &apos;__ashrdi3()&apos;, and &apos;__lshrdi3()&apos;. Initially it was intended to fix the following link error observed whenbuilding EFI-enabled kernel with CONFIG_EFI_STUB=y andCONFIG_EFI_GENERIC_STUB=y:riscv32-linux-gnu-ld: ./drivers/firmware/efi/libstub/lib-cmdline.stub.o: in function `__efistub_.L49&apos;:__efistub_cmdline.c:(.init.text+0x1f2): undefined reference to `__efistub___ashldi3&apos;riscv32-linux-gnu-ld: __efistub_cmdline.c:(.init.text+0x202): undefined reference to `__efistub___lshrdi3&apos;Reported at [1] trying to buildhttps://patchew.org/linux/20260212164413.889625-1-dmantipov@yandex.ru,tested with &apos;qemu-system-riscv32 -M virt&apos; only.Link: https://lore.kernel.org/20260519172259.908980-7-dmantipov@yandex.ruSigned-off-by: Dmitry Antipov &lt;dmantipov@yandex.ru&gt;Reported-by: kernel test robot &lt;lkp@intel.com&gt;Closes: https://lore.kernel.org/oe-kbuild-all/202603041925.KLKqpK6N-lkp@intel.com [1]Suggested-by: Ard Biesheuvel &lt;ardb@kernel.org&gt;Tested-by: Charlie Jenkins &lt;thecharlesjenkins@gmail.com&gt;Assisted-by: Gemini:gemini-3.1-pro-preview sashikoCc: Albert Ou &lt;aou@eecs.berkeley.edu&gt;Cc: Alexandre Ghiti &lt;alex@ghiti.fr&gt;Cc: Andriy Shevchenko &lt;andriy.shevchenko@intel.com&gt;Cc: Palmer Dabbelt &lt;palmer@dabbelt.com&gt;Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;

            List of files:
            /linux/arch/riscv/lib/Makefile</description>
        <pubDate>Tue, 19 May 2026 19:22:57 +0200</pubDate>
        <dc:creator>Dmitry Antipov &lt;dmantipov@yandex.ru&gt;</dc:creator>
    </item>
<item>
        <title>feff82eb5f4075d541990d0ba60dad14ea83ea9b - Merge tag &apos;riscv-for-linus-7.1-mw1&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/riscv/lib/Makefile#feff82eb5f4075d541990d0ba60dad14ea83ea9b</link>
        <description>Merge tag &apos;riscv-for-linus-7.1-mw1&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linuxPull RISC-V updates from Paul Walmsley: &quot;There is one significant change outside arch/riscv in this pull  request: the addition of a set of KUnit tests for strlen(), strnlen(),  and strrchr().  Otherwise, the most notable changes are to add some RISC-V-specific  string function implementations, to remove XIP kernel support, to add  hardware error exception handling, and to optimize our runtime  unaligned access speed testing.  A few comments on the motivation for removing XIP support. It&apos;s been  broken in the RISC-V kernel for months. The code is not easy to  maintain. Furthermore, for XIP support to truly be useful for RISC-V,  we think that compile-time feature switches would need to be added for  many of the RISC-V ISA features and microarchitectural properties that  are currently implemented with runtime patching. No one has stepped  forward to take responsibility for that work, so many of us think it&apos;s  best to remove it until clear use cases and champions emerge.  Summary:   - Add Kunit correctness testing and microbenchmarks for strlen(),     strnlen(), and strrchr()   - Add RISC-V-specific strnlen(), strchr(), strrchr() implementations   - Add hardware error exception handling   - Clean up and optimize our unaligned access probe code   - Enable HAVE_IOREMAP_PROT to be able to use generic_access_phys()   - Remove XIP kernel support   - Warn when addresses outside the vmemmap range are passed to     vmemmap_populate()   - Update the ACPI FADT revision check to warn if it&apos;s not at least     ACPI v6.6, which is when key RISC-V-specific tables were added to     the specification   - Increase COMMAND_LINE_SIZE to 2048 to match ARM64, x86, PowerPC,     etc.   - Make kaslr_offset() a static inline function, since there&apos;s no need     for it to show up in the symbol table   - Add KASLR offset and SATP to the VMCOREINFO ELF notes to improve     kdump support   - Add Makefile cleanup rule for vdso_cfi copied source files, and add     a .gitignore for the build artifacts in that directory   - Remove some redundant ifdefs that check Kconfig macros   - Add missing SPDX license tag to the CFI selftest   - Simplify UTS_MACHINE assignment in the RISC-V Makefile   - Clarify some unclear comments and remove some superfluous comments   - Fix various English typos across the RISC-V codebase&quot;* tag &apos;riscv-for-linus-7.1-mw1&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux: (31 commits)  riscv: Remove support for XIP kernel  riscv: Reuse compare_unaligned_access() in check_vector_unaligned_access()  riscv: Split out compare_unaligned_access()  riscv: Reuse measure_cycles() in check_vector_unaligned_access()  riscv: Split out measure_cycles() for reuse  riscv: Clean up &amp; optimize unaligned scalar access probe  riscv: lib: add strrchr() implementation  riscv: lib: add strchr() implementation  riscv: lib: add strnlen() implementation  lib/string_kunit: extend benchmarks to strnlen() and chr searches  lib/string_kunit: add performance benchmark for strlen()  lib/string_kunit: add correctness test for strrchr()  lib/string_kunit: add correctness test for strnlen()  lib/string_kunit: add correctness test for strlen()  riscv: vdso_cfi: Add .gitignore for build artifacts  riscv: vdso_cfi: Add clean rule for copied sources  riscv: enable HAVE_IOREMAP_PROT  riscv: mm: WARN_ON() for bad addresses in vmemmap_populate()  riscv: acpi: update FADT revision check to 6.6  riscv: add hardware error trap handler support  ...

            List of files:
            /linux/arch/riscv/lib/Makefile</description>
        <pubDate>Fri, 24 Apr 2026 19:00:37 +0200</pubDate>
        <dc:creator>Linus Torvalds &lt;torvalds@linux-foundation.org&gt;</dc:creator>
    </item>
<item>
        <title>bef64bcb940269a503d12eb1bc180d1aa9adf74d - riscv: lib: add strrchr() implementation</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/riscv/lib/Makefile#bef64bcb940269a503d12eb1bc180d1aa9adf74d</link>
        <description>riscv: lib: add strrchr() implementationAdd an assembly implementation of strrchr() for RISC-V.This implementation minimizes instruction count and avoids unnecessarymemory access to the stack. The performance benefits are most visibleon small workloads (1-16 bytes) where the architectural savings infunction overhead outweigh the execution time of the scan loop.Benchmark results (QEMU TCG, rv64):  Length | Original (MB/s) | Optimized (MB/s) | Improvement  -------|-----------------|------------------|------------  1 B    | 20              | 21               | +5.0%  7 B    | 111             | 120              | +8.1%  16 B   | 189             | 199              | +5.3%  512 B  | 361             | 382              | +5.8%  4096 B | 388             | 391              | +0.8%Signed-off-by: Feng Jiang &lt;jiangfeng@kylinos.cn&gt;Tested-by: Joel Stanley &lt;joel@jms.id.au&gt;Link: https://patch.msgid.link/20260130025018.172925-9-jiangfeng@kylinos.cnSigned-off-by: Paul Walmsley &lt;pjw@kernel.org&gt;

            List of files:
            /linux/arch/riscv/lib/Makefile</description>
        <pubDate>Sat, 04 Apr 2026 03:28:47 +0200</pubDate>
        <dc:creator>Feng Jiang &lt;jiangfeng@kylinos.cn&gt;</dc:creator>
    </item>
<item>
        <title>adf542133960d402f63c976b00e46be4d986d4c3 - riscv: lib: add strchr() implementation</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/riscv/lib/Makefile#adf542133960d402f63c976b00e46be4d986d4c3</link>
        <description>riscv: lib: add strchr() implementationAdd an assembly implementation of strchr() for RISC-V.By eliminating stack frame management (prologue/epilogue) and optimizingthe function entries, the assembly version provides significant relativegains for short strings where the fixed overhead of the C function ismost prominent. As string length increases, performance converges withthe generic C implementation.Benchmark results (QEMU TCG, rv64):  Length | Original (MB/s) | Optimized (MB/s) | Improvement  -------|-----------------|------------------|------------  1 B    | 21              | 22               | +4.8%  7 B    | 113             | 121              | +7.1%  16 B   | 195             | 202              | +3.6%  512 B  | 376             | 389              | +3.5%  4096 B | 394             | 393              | -0.3%Signed-off-by: Feng Jiang &lt;jiangfeng@kylinos.cn&gt;Tested-by: Joel Stanley &lt;joel@jms.id.au&gt;Link: https://patch.msgid.link/20260130025018.172925-8-jiangfeng@kylinos.cnSigned-off-by: Paul Walmsley &lt;pjw@kernel.org&gt;

            List of files:
            /linux/arch/riscv/lib/Makefile</description>
        <pubDate>Sat, 04 Apr 2026 03:28:47 +0200</pubDate>
        <dc:creator>Feng Jiang &lt;jiangfeng@kylinos.cn&gt;</dc:creator>
    </item>
<item>
        <title>5ba15d419fab848a3813eb56bbcad00e291fbc49 - riscv: lib: add strnlen() implementation</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/riscv/lib/Makefile#5ba15d419fab848a3813eb56bbcad00e291fbc49</link>
        <description>riscv: lib: add strnlen() implementationAdd an optimized strnlen() implementation for RISC-V. This versionincludes a generic optimization and a Zbb-powered optimization usingthe &apos;orc.b&apos; instruction, derived from the strlen() implementation.Benchmark results (QEMU TCG, rv64):  Length | Original (MB/s) | Optimized (MB/s) | Improvement  -------|-----------------|------------------|------------  16 B   | 179             | 309              | +72.6%  512 B  | 347             | 1562             | +350.1%  4096 B | 356             | 1878             | +427.5%Suggested-by: Qingfang Deng &lt;dqfext@gmail.com&gt;Signed-off-by: Feng Jiang &lt;jiangfeng@kylinos.cn&gt;Link: https://patch.msgid.link/20260130025018.172925-7-jiangfeng@kylinos.cnSigned-off-by: Paul Walmsley &lt;pjw@kernel.org&gt;

            List of files:
            /linux/arch/riscv/lib/Makefile</description>
        <pubDate>Sat, 04 Apr 2026 03:28:47 +0200</pubDate>
        <dc:creator>Feng Jiang &lt;jiangfeng@kylinos.cn&gt;</dc:creator>
    </item>
<item>
        <title>5265d55b214647f56b46330ec1b30641073608c8 - riscv: move the XOR code to lib/raid/</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/riscv/lib/Makefile#5265d55b214647f56b46330ec1b30641073608c8</link>
        <description>riscv: move the XOR code to lib/raid/Move the optimized XOR into lib/raid and include it it in xor.ko insteadof always building it into the main kernel image.Link: https://lkml.kernel.org/r/20260327061704.3707577-17-hch@lst.deSigned-off-by: Christoph Hellwig &lt;hch@lst.de&gt;Reviewed-by: Eric Biggers &lt;ebiggers@kernel.org&gt;Tested-by: Eric Biggers &lt;ebiggers@kernel.org&gt;Cc: Albert Ou &lt;aou@eecs.berkeley.edu&gt;Cc: Alexander Gordeev &lt;agordeev@linux.ibm.com&gt;Cc: Alexandre Ghiti &lt;alex@ghiti.fr&gt;Cc: Andreas Larsson &lt;andreas@gaisler.com&gt;Cc: Anton Ivanov &lt;anton.ivanov@cambridgegreys.com&gt;Cc: Ard Biesheuvel &lt;ardb@kernel.org&gt;Cc: Arnd Bergmann &lt;arnd@arndb.de&gt;Cc: &quot;Borislav Petkov (AMD)&quot; &lt;bp@alien8.de&gt;Cc: Catalin Marinas &lt;catalin.marinas@arm.com&gt;Cc: Chris Mason &lt;clm@fb.com&gt;Cc: Christian Borntraeger &lt;borntraeger@linux.ibm.com&gt;Cc: Dan Williams &lt;dan.j.williams@intel.com&gt;Cc: David S. Miller &lt;davem@davemloft.net&gt;Cc: David Sterba &lt;dsterba@suse.com&gt;Cc: Heiko Carstens &lt;hca@linux.ibm.com&gt;Cc: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;Cc: &quot;H. Peter Anvin&quot; &lt;hpa@zytor.com&gt;Cc: Huacai Chen &lt;chenhuacai@kernel.org&gt;Cc: Ingo Molnar &lt;mingo@redhat.com&gt;Cc: Jason A. Donenfeld &lt;jason@zx2c4.com&gt;Cc: Johannes Berg &lt;johannes@sipsolutions.net&gt;Cc: Li Nan &lt;linan122@huawei.com&gt;Cc: Madhavan Srinivasan &lt;maddy@linux.ibm.com&gt;Cc: Magnus Lindholm &lt;linmag7@gmail.com&gt;Cc: Matt Turner &lt;mattst88@gmail.com&gt;Cc: Michael Ellerman &lt;mpe@ellerman.id.au&gt;Cc: Nicholas Piggin &lt;npiggin@gmail.com&gt;Cc: Palmer Dabbelt &lt;palmer@dabbelt.com&gt;Cc: Richard Henderson &lt;richard.henderson@linaro.org&gt;Cc: Richard Weinberger &lt;richard@nod.at&gt;Cc: Russell King &lt;linux@armlinux.org.uk&gt;Cc: Song Liu &lt;song@kernel.org&gt;Cc: Sven Schnelle &lt;svens@linux.ibm.com&gt;Cc: Ted Ts&apos;o &lt;tytso@mit.edu&gt;Cc: Vasily Gorbik &lt;gor@linux.ibm.com&gt;Cc: WANG Xuerui &lt;kernel@xen0n.name&gt;Cc: Will Deacon &lt;will@kernel.org&gt;Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;

            List of files:
            /linux/arch/riscv/lib/Makefile</description>
        <pubDate>Fri, 27 Mar 2026 07:16:48 +0100</pubDate>
        <dc:creator>Christoph Hellwig &lt;hch@lst.de&gt;</dc:creator>
    </item>
<item>
        <title>13150742b09e720fdf021de14cd2b98b37415a89 - Merge tag &apos;libcrypto-updates-for-linus&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/riscv/lib/Makefile#13150742b09e720fdf021de14cd2b98b37415a89</link>
        <description>Merge tag &apos;libcrypto-updates-for-linus&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linuxPull crypto library updates from Eric Biggers: &quot;This is the main crypto library pull request for 6.17. The main focus  this cycle is on reorganizing the SHA-1 and SHA-2 code, providing  high-quality library APIs for SHA-1 and SHA-2 including HMAC support,  and establishing conventions for lib/crypto/ going forward:   - Migrate the SHA-1 and SHA-512 code (and also SHA-384 which shares     most of the SHA-512 code) into lib/crypto/. This includes both the     generic and architecture-optimized code. Greatly simplify how the     architecture-optimized code is integrated. Add an easy-to-use     library API for each SHA variant, including HMAC support. Finally,     reimplement the crypto_shash support on top of the library API.   - Apply the same reorganization to the SHA-256 code (and also SHA-224     which shares most of the SHA-256 code). This is a somewhat smaller     change, due to my earlier work on SHA-256. But this brings in all     the same additional improvements that I made for SHA-1 and SHA-512.  There are also some smaller changes:   - Move the architecture-optimized ChaCha, Poly1305, and BLAKE2s code     from arch/$(SRCARCH)/lib/crypto/ to lib/crypto/$(SRCARCH)/. For     these algorithms it&apos;s just a move, not a full reorganization yet.   - Fix the MIPS chacha-core.S to build with the clang assembler.   - Fix the Poly1305 functions to work in all contexts.   - Fix a performance regression in the x86_64 Poly1305 code.   - Clean up the x86_64 SHA-NI optimized SHA-1 assembly code.  Note that since the new organization of the SHA code is much simpler,  the diffstat of this pull request is negative, despite the addition of  new fully-documented library APIs for multiple SHA and HMAC-SHA  variants.  These APIs will allow further simplifications across the kernel as  users start using them instead of the old-school crypto API. (I&apos;ve  already written a lot of such conversion patches, removing over 1000  more lines of code. But most of those will target 6.18 or later)&quot;* tag &apos;libcrypto-updates-for-linus&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux: (67 commits)  lib/crypto: arm64/sha512-ce: Drop compatibility macros for older binutils  lib/crypto: x86/sha1-ni: Convert to use rounds macros  lib/crypto: x86/sha1-ni: Minor optimizations and cleanup  crypto: sha1 - Remove sha1_base.h  lib/crypto: x86/sha1: Migrate optimized code into library  lib/crypto: sparc/sha1: Migrate optimized code into library  lib/crypto: s390/sha1: Migrate optimized code into library  lib/crypto: powerpc/sha1: Migrate optimized code into library  lib/crypto: mips/sha1: Migrate optimized code into library  lib/crypto: arm64/sha1: Migrate optimized code into library  lib/crypto: arm/sha1: Migrate optimized code into library  crypto: sha1 - Use same state format as legacy drivers  crypto: sha1 - Wrap library and add HMAC support  lib/crypto: sha1: Add HMAC support  lib/crypto: sha1: Add SHA-1 library functions  lib/crypto: sha1: Rename sha1_init() to sha1_init_raw()  crypto: x86/sha1 - Rename conflicting symbol  lib/crypto: sha2: Add hmac_sha*_init_usingrawkey()  lib/crypto: arm/poly1305: Remove unneeded empty weak function  lib/crypto: x86/poly1305: Fix performance regression on short messages  ...

            List of files:
            /linux/arch/riscv/lib/Makefile</description>
        <pubDate>Tue, 29 Jul 2025 02:58:52 +0200</pubDate>
        <dc:creator>Linus Torvalds &lt;torvalds@linux-foundation.org&gt;</dc:creator>
    </item>
<item>
        <title>b5943815e63b859b5b66710e79c9561112c4d01b - lib/crc: riscv: Migrate optimized CRC code into lib/crc/</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/riscv/lib/Makefile#b5943815e63b859b5b66710e79c9561112c4d01b</link>
        <description>lib/crc: riscv: Migrate optimized CRC code into lib/crc/Move the riscv-optimized CRC code from arch/riscv/lib/crc* into its newlocation in lib/crc/riscv/, and wire it up in the new way.  This new wayof organizing the CRC code eliminates the need to artificially split thecode for each CRC variant into separate arch and generic modules,enabling better inlining and dead code elimination.  For more details,see &quot;lib/crc: Prepare for arch-optimized code in subdirs of lib/crc/&quot;.Reviewed-by: &quot;Martin K. Petersen&quot; &lt;martin.petersen@oracle.com&gt;Acked-by: Ingo Molnar &lt;mingo@kernel.org&gt;Acked-by: &quot;Jason A. Donenfeld&quot; &lt;Jason@zx2c4.com&gt;Link: https://lore.kernel.org/r/20250607200454.73587-9-ebiggers@kernel.orgSigned-off-by: Eric Biggers &lt;ebiggers@kernel.org&gt;

            List of files:
            /linux/arch/riscv/lib/Makefile</description>
        <pubDate>Sat, 07 Jun 2025 22:04:50 +0200</pubDate>
        <dc:creator>Eric Biggers &lt;ebiggers@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>daed4fcf04db425e44d377a425424752881a2a68 - lib/crypto: riscv: Move arch/riscv/lib/crypto/ into lib/crypto/</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/riscv/lib/Makefile#daed4fcf04db425e44d377a425424752881a2a68</link>
        <description>lib/crypto: riscv: Move arch/riscv/lib/crypto/ into lib/crypto/Move the contents of arch/riscv/lib/crypto/ into lib/crypto/riscv/.The new code organization makes a lot more sense for how this codeactually works and is developed.  In particular, it makes it possible tobuild each algorithm as a single module, with better inlining and deadcode elimination.  For a more detailed explanation, see the patchsetwhich did this for the CRC library code:https://lore.kernel.org/r/20250607200454.73587-1-ebiggers@kernel.org/.Also see the patchset which did this for SHA-512:https://lore.kernel.org/linux-crypto/20250616014019.415791-1-ebiggers@kernel.org/This is just a preparatory commit, which does the move to get the filesinto their new location but keeps them building the same way as before.Later commits will make the actual improvements to the way thearch-optimized code is integrated for each algorithm.Acked-by: Ard Biesheuvel &lt;ardb@kernel.org&gt;Acked-by: Palmer Dabbelt &lt;palmer@dabbelt.com&gt;Reviewed-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;Reviewed-by: Sohil Mehta &lt;sohil.mehta@intel.com&gt;Link: https://lore.kernel.org/r/20250619191908.134235-6-ebiggers@kernel.orgSigned-off-by: Eric Biggers &lt;ebiggers@kernel.org&gt;

            List of files:
            /linux/arch/riscv/lib/Makefile</description>
        <pubDate>Thu, 19 Jun 2025 21:19:04 +0200</pubDate>
        <dc:creator>Eric Biggers &lt;ebiggers@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>d604877c2f9473848345db8e79341d4f6338dd78 - crypto: riscv - move library functions to arch/riscv/lib/crypto/</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/riscv/lib/Makefile#d604877c2f9473848345db8e79341d4f6338dd78</link>
        <description>crypto: riscv - move library functions to arch/riscv/lib/crypto/Continue disentangling the crypto library functions from the genericcrypto infrastructure by moving the riscv ChaCha library functions intoa new directory arch/riscv/lib/crypto/ that does not depend on CRYPTO.This mirrors the distinction between crypto/ and lib/crypto/.Signed-off-by: Eric Biggers &lt;ebiggers@google.com&gt;Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;

            List of files:
            /linux/arch/riscv/lib/Makefile</description>
        <pubDate>Tue, 22 Apr 2025 17:27:12 +0200</pubDate>
        <dc:creator>Eric Biggers &lt;ebiggers@google.com&gt;</dc:creator>
    </item>
<item>
        <title>511484fa881e8ce32fda63c5c3d3492394dbddda - riscv/crc64: add Zbc optimized CRC64 functions</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/riscv/lib/Makefile#511484fa881e8ce32fda63c5c3d3492394dbddda</link>
        <description>riscv/crc64: add Zbc optimized CRC64 functionsWire up crc64_be_arch() and crc64_nvme_arch() for 64-bit RISC-V usingcrc-clmul-template.h.  This greatly improves the performance of theseCRCs on Zbc-capable CPUs in 64-bit kernels.These optimized CRC64 functions are not yet supported in 32-bit kernels,since crc-clmul-template.h assumes that the CRC fits in an unsignedlong.  That implementation limitation could be addressed, but it wouldadd a fair bit of complexity, so it has been omitted for now.Tested-by: Bj&#246;rn T&#246;pel &lt;bjorn@rivosinc.com&gt;Acked-by: Alexandre Ghiti &lt;alexghiti@rivosinc.com&gt;Link: https://lore.kernel.org/r/20250216225530.306980-5-ebiggers@kernel.orgSigned-off-by: Eric Biggers &lt;ebiggers@google.com&gt;

            List of files:
            /linux/arch/riscv/lib/Makefile</description>
        <pubDate>Sun, 16 Feb 2025 23:55:30 +0100</pubDate>
        <dc:creator>Eric Biggers &lt;ebiggers@google.com&gt;</dc:creator>
    </item>
<item>
        <title>8bf3e17898eb3dbf1bd07f857a6b06d04602ce78 - riscv/crc-t10dif: add Zbc optimized CRC-T10DIF function</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/riscv/lib/Makefile#8bf3e17898eb3dbf1bd07f857a6b06d04602ce78</link>
        <description>riscv/crc-t10dif: add Zbc optimized CRC-T10DIF functionWire up crc_t10dif_arch() for RISC-V using crc-clmul-template.h.  Thisgreatly improves CRC-T10DIF performance on Zbc-capable CPUs.Tested-by: Bj&#246;rn T&#246;pel &lt;bjorn@rivosinc.com&gt;Acked-by: Alexandre Ghiti &lt;alexghiti@rivosinc.com&gt;Link: https://lore.kernel.org/r/20250216225530.306980-4-ebiggers@kernel.orgSigned-off-by: Eric Biggers &lt;ebiggers@google.com&gt;

            List of files:
            /linux/arch/riscv/lib/Makefile</description>
        <pubDate>Sun, 16 Feb 2025 23:55:29 +0100</pubDate>
        <dc:creator>Eric Biggers &lt;ebiggers@google.com&gt;</dc:creator>
    </item>
<item>
        <title>72acff5f81851fe0858d2430b35b4b08f8f27a72 - riscv/crc32: reimplement the CRC32 functions using new template</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/riscv/lib/Makefile#72acff5f81851fe0858d2430b35b4b08f8f27a72</link>
        <description>riscv/crc32: reimplement the CRC32 functions using new templateDelete the previous Zbc optimized CRC32 code, and re-implement it usingthe new template.  The new implementation is more optimized and sharesmore code among CRC variants.Tested-by: Bj&#246;rn T&#246;pel &lt;bjorn@rivosinc.com&gt;Acked-by: Alexandre Ghiti &lt;alexghiti@rivosinc.com&gt;Link: https://lore.kernel.org/r/20250216225530.306980-3-ebiggers@kernel.orgSigned-off-by: Eric Biggers &lt;ebiggers@google.com&gt;

            List of files:
            /linux/arch/riscv/lib/Makefile</description>
        <pubDate>Sun, 16 Feb 2025 23:55:28 +0100</pubDate>
        <dc:creator>Eric Biggers &lt;ebiggers@google.com&gt;</dc:creator>
    </item>
<item>
        <title>d36cebe03c3ae4ea1fde20cfc797fab8729c3ab5 - lib/crc32: improve support for arch-specific overrides</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/riscv/lib/Makefile#d36cebe03c3ae4ea1fde20cfc797fab8729c3ab5</link>
        <description>lib/crc32: improve support for arch-specific overridesCurrently the CRC32 library functions are defined as weak symbols, andthe arm64 and riscv architectures override them.This method of arch-specific overrides has the limitation that it onlyworks when both the base and arch code is built-in.  Also, it makes thearch-specific code be silently not used if it is accidentally built withlib-y instead of obj-y; unfortunately the RISC-V code does this.This commit reorganizes the code to have explicit *_arch() functionsthat are called when they are enabled, similar to how some of the cryptolibrary code works (e.g. chacha_crypt() calls chacha_crypt_arch()).Make the existing kconfig choice for the CRC32 implementation alsocontrol whether the arch-optimized implementation (if one is available)is enabled or not.  Make it enabled by default if CRC32 is also enabled.The result is that arch-optimized CRC32 library functions will beincluded automatically when appropriate, but it is now possible todisable them.  They can also now be built as a loadable module if theCRC32 library functions happen to be used only by loadable modules, inwhich case the arch and base CRC32 modules will be automatically loadedvia direct symbol dependency when appropriate.Reviewed-by: Ard Biesheuvel &lt;ardb@kernel.org&gt;Link: https://lore.kernel.org/r/20241202010844.144356-3-ebiggers@kernel.orgSigned-off-by: Eric Biggers &lt;ebiggers@google.com&gt;

            List of files:
            /linux/arch/riscv/lib/Makefile</description>
        <pubDate>Mon, 02 Dec 2024 02:08:27 +0100</pubDate>
        <dc:creator>Eric Biggers &lt;ebiggers@google.com&gt;</dc:creator>
    </item>
<item>
        <title>58ff537109ac863d4ec83baf8413b17dcc10101c - riscv: Omit optimized string routines when using KASAN</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/riscv/lib/Makefile#58ff537109ac863d4ec83baf8413b17dcc10101c</link>
        <description>riscv: Omit optimized string routines when using KASANThe optimized string routines are implemented in assembly, so they arenot instrumented for use with KASAN. Fall back to the C version of theroutines in order to improve KASAN coverage. This fixes thekasan_strings() unit test.Signed-off-by: Samuel Holland &lt;samuel.holland@sifive.com&gt;Reviewed-by: Alexandre Ghiti &lt;alexghiti@rivosinc.com&gt;Tested-by: Alexandre Ghiti &lt;alexghiti@rivosinc.com&gt;Link: https://lore.kernel.org/r/20240801033725.28816-2-samuel.holland@sifive.comSigned-off-by: Palmer Dabbelt &lt;palmer@rivosinc.com&gt;

            List of files:
            /linux/arch/riscv/lib/Makefile</description>
        <pubDate>Thu, 01 Aug 2024 05:36:59 +0200</pubDate>
        <dc:creator>Samuel Holland &lt;samuel.holland@sifive.com&gt;</dc:creator>
    </item>
<item>
        <title>a43fe27d650375cd9e5ea915c538f6f9eabd185e - riscv: Optimize crc32 with Zbc extension</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/riscv/lib/Makefile#a43fe27d650375cd9e5ea915c538f6f9eabd185e</link>
        <description>riscv: Optimize crc32 with Zbc extensionAs suggested by the B-ext spec, the Zbc (carry-less multiplication)instructions can be used to accelerate CRC calculations. Currently, thecrc32 is the most widely used crc function inside kernel, so this patchfocuses on the optimization of just the crc32 APIs.Compared with the current table-lookup based optimization, Zbc basedoptimization can also achieve large stride during CRC calculation loop,meantime, it avoids the memory access latency of the table-lookup basedimplementation and it reduces memory footprint.If Zbc feature is not supported in a runtime environment, then thetable-lookup based implementation would serve as fallback via alternativemechanism.By inspecting the vmlinux built by gcc v12.2.0 with default optimizationlevel (-O2), we can see below instruction count change for each 8-bytestride in the CRC32 loop:rv64: crc32_be (54-&gt;31), crc32_le (54-&gt;13), __crc32c_le (54-&gt;13)rv32: crc32_be (50-&gt;32), crc32_le (50-&gt;16), __crc32c_le (50-&gt;16)The compile target CPU is little endian, extra effort is needed for byteswapping for the crc32_be API, thus, the instruction count change is notas significant as that in the *_le cases.This patch is tested on QEMU VM with the kernel CRC32 selftest for bothrv64 and rv32. Running the CRC32 selftest on a real hardware (SpacemiT K1)with Zbc extension shows 65% and 125% performance improvement respectivelyon crc32_test() and crc32c_test().Signed-off-by: Xiao Wang &lt;xiao.w.wang@intel.com&gt;Reviewed-by: Charlie Jenkins &lt;charlie@rivosinc.com&gt;Link: https://lore.kernel.org/r/20240621054707.1847548-1-xiao.w.wang@intel.comSigned-off-by: Palmer Dabbelt &lt;palmer@rivosinc.com&gt;

            List of files:
            /linux/arch/riscv/lib/Makefile</description>
        <pubDate>Fri, 21 Jun 2024 07:47:07 +0200</pubDate>
        <dc:creator>Xiao Wang &lt;xiao.w.wang@intel.com&gt;</dc:creator>
    </item>
<item>
        <title>c640868491105d53899f9f8e613acd4aa06cef68 - Merge patch series &quot;riscv: Add fine-tuned checksum functions&quot;</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/riscv/lib/Makefile#c640868491105d53899f9f8e613acd4aa06cef68</link>
        <description>Merge patch series &quot;riscv: Add fine-tuned checksum functions&quot;Charlie Jenkins &lt;charlie@rivosinc.com&gt; says:Each architecture generally implements fine-tuned checksum functions toleverage the instruction set. This patch adds the main checksumfunctions that are used in networking. Tested on QEMU, this seriesallows the CHECKSUM_KUNIT tests to complete an average of 50.9% faster.This patch takes heavy use of the Zbb extension using alternativespatching.To test this patch, enable the configs for KUNIT, then CHECKSUM_KUNIT.I have attempted to make these functions as optimal as possible, but Ihave not ran anything on actual riscv hardware. My performance testinghas been limited to inspecting the assembly, running the algorithms onx86 hardware, and running in QEMU.ip_fast_csum is a relatively small function so even though it ispossible to read 64 bits at a time on compatible hardware, thebottleneck becomes the clean up and setup code so loading 32 bits at atime is actually faster.* b4-shazam-merge:  kunit: Add tests for csum_ipv6_magic and ip_fast_csum  riscv: Add checksum library  riscv: Add checksum header  riscv: Add static key for misaligned accesses  asm-generic: Improve csum_foldLink: https://lore.kernel.org/r/20240108-optimize_checksum-v15-0-1c50de5f2167@rivosinc.comSigned-off-by: Palmer Dabbelt &lt;palmer@rivosinc.com&gt;

            List of files:
            /linux/arch/riscv/lib/Makefile</description>
        <pubDate>Thu, 18 Jan 2024 03:07:11 +0100</pubDate>
        <dc:creator>Palmer Dabbelt &lt;palmer@rivosinc.com&gt;</dc:creator>
    </item>
<item>
        <title>a04c192eabfb76824d00f1b4cd0f25844a59d0f0 - riscv: Add checksum library</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/riscv/lib/Makefile#a04c192eabfb76824d00f1b4cd0f25844a59d0f0</link>
        <description>riscv: Add checksum libraryProvide a 32 and 64 bit version of do_csum. When compiled for 32-bitwill load from the buffer in groups of 32 bits, and when compiled for64-bit will load in groups of 64 bits.Additionally provide riscv optimized implementation of csum_ipv6_magic.Signed-off-by: Charlie Jenkins &lt;charlie@rivosinc.com&gt;Acked-by: Conor Dooley &lt;conor.dooley@microchip.com&gt;Reviewed-by: Xiao Wang &lt;xiao.w.wang@intel.com&gt;Link: https://lore.kernel.org/r/20240108-optimize_checksum-v15-4-1c50de5f2167@rivosinc.comSigned-off-by: Palmer Dabbelt &lt;palmer@rivosinc.com&gt;

            List of files:
            /linux/arch/riscv/lib/Makefile</description>
        <pubDate>Tue, 09 Jan 2024 00:57:05 +0100</pubDate>
        <dc:creator>Charlie Jenkins &lt;charlie@rivosinc.com&gt;</dc:creator>
    </item>
<item>
        <title>c2a658d419246108c9bf065ec347355de5ba8a05 - riscv: lib: vectorize copy_to_user/copy_from_user</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/riscv/lib/Makefile#c2a658d419246108c9bf065ec347355de5ba8a05</link>
        <description>riscv: lib: vectorize copy_to_user/copy_from_userThis patch utilizes Vector to perform copy_to_user/copy_from_user. IfVector is available and the size of copy is large enough for Vector toperform better than scalar, then direct the kernel to do Vector copiesfor userspace. Though the best programming practice for users is toreduce the copy, this provides a faster variant when copies areinevitable.The optimal size for using Vector, copy_to_user_thres, is only aheuristic for now. We can add DT parsing if people feel the need ofcustomizing it.The exception fixup code of the __asm_vector_usercopy must fallback tothe scalar one because accessing user pages might fault, and must besleepable. Current kernel-mode Vector does not allow tasks to bepreemptible, so we must disactivate Vector and perform a scalar fallbackin such case.The original implementation of Vector operations comes fromhttps://github.com/sifive/sifive-libc, which we agree to contribute toLinux kernel.Co-developed-by: Jerry Shih &lt;jerry.shih@sifive.com&gt;Signed-off-by: Jerry Shih &lt;jerry.shih@sifive.com&gt;Co-developed-by: Nick Knight &lt;nick.knight@sifive.com&gt;Signed-off-by: Nick Knight &lt;nick.knight@sifive.com&gt;Suggested-by: Guo Ren &lt;guoren@kernel.org&gt;Signed-off-by: Andy Chiu &lt;andy.chiu@sifive.com&gt;Tested-by: Bj&#246;rn T&#246;pel &lt;bjorn@rivosinc.com&gt;Tested-by: Lad Prabhakar &lt;prabhakar.mahadev-lad.rj@bp.renesas.com&gt;Link: https://lore.kernel.org/r/20240115055929.4736-6-andy.chiu@sifive.comSigned-off-by: Palmer Dabbelt &lt;palmer@rivosinc.com&gt;

            List of files:
            /linux/arch/riscv/lib/Makefile</description>
        <pubDate>Mon, 15 Jan 2024 06:59:24 +0100</pubDate>
        <dc:creator>Andy Chiu &lt;andy.chiu@sifive.com&gt;</dc:creator>
    </item>
<item>
        <title>c5674d00cacdb1c47c72e19a552fbae401bc3532 - riscv: Add vector extension XOR implementation</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/riscv/lib/Makefile#c5674d00cacdb1c47c72e19a552fbae401bc3532</link>
        <description>riscv: Add vector extension XOR implementationThis patch adds support for vector optimized XOR and it is tested inqemu.Co-developed-by: Han-Kuan Chen &lt;hankuan.chen@sifive.com&gt;Signed-off-by: Han-Kuan Chen &lt;hankuan.chen@sifive.com&gt;Signed-off-by: Greentime Hu &lt;greentime.hu@sifive.com&gt;Signed-off-by: Andy Chiu &lt;andy.chiu@sifive.com&gt;Tested-by: Bj&#246;rn T&#246;pel &lt;bjorn@rivosinc.com&gt;Tested-by: Lad Prabhakar &lt;prabhakar.mahadev-lad.rj@bp.renesas.com&gt;Link: https://lore.kernel.org/r/20240115055929.4736-4-andy.chiu@sifive.comSigned-off-by: Palmer Dabbelt &lt;palmer@rivosinc.com&gt;

            List of files:
            /linux/arch/riscv/lib/Makefile</description>
        <pubDate>Mon, 15 Jan 2024 06:59:22 +0100</pubDate>
        <dc:creator>Greentime Hu &lt;greentime.hu@sifive.com&gt;</dc:creator>
    </item>
</channel>
</rss>
