Skip to content

Commit

Permalink
update isa-l
Browse files Browse the repository at this point in the history
  • Loading branch information
cielavenir committed Feb 10, 2025
1 parent 9e8ef3a commit 371f54c
Show file tree
Hide file tree
Showing 148 changed files with 39,789 additions and 44,494 deletions.
1 change: 1 addition & 0 deletions lib/isa-l/00repo.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
https://github.com/intel/isa-l
6 changes: 3 additions & 3 deletions lib/isa-l/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,10 @@ patches, file issues, and ask questions on our [mailing list].

## Coding Style

The coding style for ISA-L C code roughly follows linux kernel guidelines. Use
the included indent script to format C code.
The coding style for ISA-L C code is roughly based on LLVM style with
some customizations. Use the included format script to format C code.

./tools/iindent your_files.c
./tools/format.sh

And use check format script before submitting.

Expand Down
4 changes: 3 additions & 1 deletion lib/isa-l/Makefile.nmake
Original file line number Diff line number Diff line change
Expand Up @@ -335,6 +335,8 @@ perfs = \

perfs: lib $(perfs)
$(perfs): $(@B).obj
perf: $(perfs)
!$?

progs = \
igzip.exe
Expand All @@ -354,7 +356,7 @@ isa-l.h:
@echo.>> $@
@echo #define ISAL_MAJOR_VERSION 2 >> $@
@echo #define ISAL_MINOR_VERSION 31 >> $@
@echo #define ISAL_PATCH_VERSION 0 >> $@
@echo #define ISAL_PATCH_VERSION 1 >> $@
@echo #define ISAL_MAKE_VERSION(maj, min, patch) ((maj) * 0x10000 + (min) * 0x100 + (patch))>> $@
@echo #define ISAL_VERSION ISAL_MAKE_VERSION(ISAL_MAJOR_VERSION, ISAL_MINOR_VERSION, ISAL_PATCH_VERSION)>> $@
@echo.>> $@
Expand Down
4 changes: 3 additions & 1 deletion lib/isa-l/README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
Intel(R) Intelligent Storage Acceleration Library
=================================================

[![Build Status](https://travis-ci.org/intel/isa-l.svg?branch=master)](https://travis-ci.org/intel/isa-l)
![Continuous Integration](https://github.com/intel/isa-l/actions/workflows/ci.yml/badge.svg)
[![Package on conda-forge](https://img.shields.io/conda/v/conda-forge/isa-l.svg)](https://anaconda.org/conda-forge/isa-l)
[![Coverity Status](https://scan.coverity.com/projects/29480/badge.svg)](https://scan.coverity.com/projects/intel-isa-l)
[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/intel/isa-l/badge)](https://securityscorecards.dev/viewer/?uri=github.com/intel/isa-l)

ISA-L is a collection of optimized low-level functions targeting storage
applications. ISA-L includes:
Expand Down
19 changes: 15 additions & 4 deletions lib/isa-l/Release_notes.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
v2.31 Intel Intelligent Storage Acceleration Library Release Notes
==================================================================
v2.31.1 Intel Intelligent Storage Acceleration Library Release Notes
====================================================================

RELEASE NOTE CONTENTS
1. KNOWN ISSUES
Expand All @@ -9,14 +9,25 @@ RELEASE NOTE CONTENTS
1. KNOWN ISSUES
----------------

* Perf tests do not run in Windows environment.

* 32-bit lib is not supported in Windows.

* 32-bit lib is not validated.

2. FIXED ISSUES
---------------
v2.31.1

* Fixed return type for PowerPC _gf_vect_mul_base function.
* Fixed isal_deflate_icf_finish_lvl1 dispatcher for aarch64.
* Fixed CRC compilation on aarch64.
* Fixed MacOS-14 compilation.
* Fixed MinGW build.
* Fixed Clang compilation on igzip library on aarch64.
* Fixed spelling mistakes and typos.
* Fixed Windows build on erasure code performance applications.
* Fixed FreeBSD build warnings.
* Fixed compilation with YASM.

v2.31

* Fixed various compilation issues/warnings for different platforms.
Expand Down
2 changes: 1 addition & 1 deletion lib/isa-l/configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

AC_PREREQ(2.69)
AC_INIT([libisal],
[2.31.0],
[2.31.1],
[https://github.com/intel/isa-l/issues],
[isa-l])
AC_CONFIG_SRCDIR([])
Expand Down
10 changes: 6 additions & 4 deletions lib/isa-l/crc/aarch64/crc64_rocksoft.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,14 @@
#include "crc64.h"
#include <stdint.h>

uint64_t crc64_rocksoft_refl(uint64_t seed, const uint8_t * buf, uint64_t len)
uint64_t
crc64_rocksoft_refl(uint64_t seed, const uint8_t *buf, uint64_t len)
{
return crc64_rocksoft_refl_base(seed, buf, len);
return crc64_rocksoft_refl_base(seed, buf, len);
}

uint64_t crc64_rocksoft_norm(uint64_t seed, const uint8_t * buf, uint64_t len)
uint64_t
crc64_rocksoft_norm(uint64_t seed, const uint8_t *buf, uint64_t len)
{
return crc64_rocksoft_norm_base(seed, buf, len);
return crc64_rocksoft_norm_base(seed, buf, len);
}
205 changes: 97 additions & 108 deletions lib/isa-l/crc/aarch64/crc_aarch64_dispatcher.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,185 +31,174 @@
DEFINE_INTERFACE_DISPATCHER(crc16_t10dif)
{
#if defined(__linux__)
unsigned long auxval = getauxval(AT_HWCAP);
if (auxval & HWCAP_PMULL)
return PROVIDER_INFO(crc16_t10dif_pmull);
unsigned long auxval = getauxval(AT_HWCAP);
if (auxval & HWCAP_PMULL)
return PROVIDER_INFO(crc16_t10dif_pmull);
#elif defined(__APPLE__)
if (sysctlEnabled(SYSCTL_PMULL_KEY))
return PROVIDER_INFO(crc16_t10dif_pmull);
if (sysctlEnabled(SYSCTL_PMULL_KEY))
return PROVIDER_INFO(crc16_t10dif_pmull);
#endif
return PROVIDER_BASIC(crc16_t10dif);

return PROVIDER_BASIC(crc16_t10dif);
}

DEFINE_INTERFACE_DISPATCHER(crc16_t10dif_copy)
{
#if defined(__linux__)
unsigned long auxval = getauxval(AT_HWCAP);
if (auxval & HWCAP_PMULL)
return PROVIDER_INFO(crc16_t10dif_copy_pmull);
unsigned long auxval = getauxval(AT_HWCAP);
if (auxval & HWCAP_PMULL)
return PROVIDER_INFO(crc16_t10dif_copy_pmull);
#elif defined(__APPLE__)
if (sysctlEnabled(SYSCTL_PMULL_KEY))
return PROVIDER_INFO(crc16_t10dif_copy_pmull);
if (sysctlEnabled(SYSCTL_PMULL_KEY))
return PROVIDER_INFO(crc16_t10dif_copy_pmull);
#endif
return PROVIDER_BASIC(crc16_t10dif_copy);

return PROVIDER_BASIC(crc16_t10dif_copy);
}

DEFINE_INTERFACE_DISPATCHER(crc32_ieee)
{
#if defined(__linux__)
unsigned long auxval = getauxval(AT_HWCAP);
if (auxval & HWCAP_PMULL) {
return PROVIDER_INFO(crc32_ieee_norm_pmull);
}
unsigned long auxval = getauxval(AT_HWCAP);
if (auxval & HWCAP_PMULL) {
return PROVIDER_INFO(crc32_ieee_norm_pmull);
}
#elif defined(__APPLE__)
if (sysctlEnabled(SYSCTL_PMULL_KEY))
return PROVIDER_INFO(crc32_ieee_norm_pmull);
if (sysctlEnabled(SYSCTL_PMULL_KEY))
return PROVIDER_INFO(crc32_ieee_norm_pmull);
#endif
return PROVIDER_BASIC(crc32_ieee);

return PROVIDER_BASIC(crc32_ieee);
}

DEFINE_INTERFACE_DISPATCHER(crc32_iscsi)
{
#if defined(__linux__)
unsigned long auxval = getauxval(AT_HWCAP);
if (auxval & HWCAP_CRC32) {
switch (get_micro_arch_id()) {
case MICRO_ARCH_ID(ARM, NEOVERSE_N1):
case MICRO_ARCH_ID(ARM, CORTEX_A57):
case MICRO_ARCH_ID(ARM, CORTEX_A72):
return PROVIDER_INFO(crc32_iscsi_crc_ext);
}
}
if ((HWCAP_CRC32 | HWCAP_PMULL) == (auxval & (HWCAP_CRC32 | HWCAP_PMULL))) {
return PROVIDER_INFO(crc32_iscsi_3crc_fold);
}

if (auxval & HWCAP_PMULL) {
return PROVIDER_INFO(crc32_iscsi_refl_pmull);
}
unsigned long auxval = getauxval(AT_HWCAP);
if (auxval & HWCAP_CRC32) {
switch (get_micro_arch_id()) {
case MICRO_ARCH_ID(ARM, NEOVERSE_N1):
case MICRO_ARCH_ID(ARM, CORTEX_A57):
case MICRO_ARCH_ID(ARM, CORTEX_A72):
return PROVIDER_INFO(crc32_iscsi_crc_ext);
}
}
if ((HWCAP_CRC32 | HWCAP_PMULL) == (auxval & (HWCAP_CRC32 | HWCAP_PMULL))) {
return PROVIDER_INFO(crc32_iscsi_3crc_fold);
}

if (auxval & HWCAP_PMULL) {
return PROVIDER_INFO(crc32_iscsi_refl_pmull);
}
#elif defined(__APPLE__)
if (sysctlEnabled(SYSCTL_CRC32_KEY))
return PROVIDER_INFO(crc32_iscsi_3crc_fold);
if (sysctlEnabled(SYSCTL_PMULL_KEY))
return PROVIDER_INFO(crc32_iscsi_refl_pmull);
if (sysctlEnabled(SYSCTL_CRC32_KEY))
return PROVIDER_INFO(crc32_iscsi_3crc_fold);
if (sysctlEnabled(SYSCTL_PMULL_KEY))
return PROVIDER_INFO(crc32_iscsi_refl_pmull);
#endif
return PROVIDER_BASIC(crc32_iscsi);

return PROVIDER_BASIC(crc32_iscsi);
}

DEFINE_INTERFACE_DISPATCHER(crc32_gzip_refl)
{
#if defined(__linux__)
unsigned long auxval = getauxval(AT_HWCAP);

if (auxval & HWCAP_CRC32) {
switch (get_micro_arch_id()) {
case MICRO_ARCH_ID(ARM, NEOVERSE_N1):
case MICRO_ARCH_ID(ARM, CORTEX_A57):
case MICRO_ARCH_ID(ARM, CORTEX_A72):
return PROVIDER_INFO(crc32_gzip_refl_crc_ext);
}
}
if ((HWCAP_CRC32 | HWCAP_PMULL) == (auxval & (HWCAP_CRC32 | HWCAP_PMULL))) {
return PROVIDER_INFO(crc32_gzip_refl_3crc_fold);
}

if (auxval & HWCAP_PMULL)
return PROVIDER_INFO(crc32_gzip_refl_pmull);
unsigned long auxval = getauxval(AT_HWCAP);

if (auxval & HWCAP_CRC32) {
switch (get_micro_arch_id()) {
case MICRO_ARCH_ID(ARM, NEOVERSE_N1):
case MICRO_ARCH_ID(ARM, CORTEX_A57):
case MICRO_ARCH_ID(ARM, CORTEX_A72):
return PROVIDER_INFO(crc32_gzip_refl_crc_ext);
}
}
if ((HWCAP_CRC32 | HWCAP_PMULL) == (auxval & (HWCAP_CRC32 | HWCAP_PMULL))) {
return PROVIDER_INFO(crc32_gzip_refl_3crc_fold);
}

if (auxval & HWCAP_PMULL)
return PROVIDER_INFO(crc32_gzip_refl_pmull);
#elif defined(__APPLE__)
if (sysctlEnabled(SYSCTL_CRC32_KEY))
return PROVIDER_INFO(crc32_gzip_refl_3crc_fold);
if (sysctlEnabled(SYSCTL_PMULL_KEY))
return PROVIDER_INFO(crc32_gzip_refl_pmull);
if (sysctlEnabled(SYSCTL_CRC32_KEY))
return PROVIDER_INFO(crc32_gzip_refl_3crc_fold);
if (sysctlEnabled(SYSCTL_PMULL_KEY))
return PROVIDER_INFO(crc32_gzip_refl_pmull);
#endif
return PROVIDER_BASIC(crc32_gzip_refl);

return PROVIDER_BASIC(crc32_gzip_refl);
}

DEFINE_INTERFACE_DISPATCHER(crc64_ecma_refl)
{
#if defined(__linux__)
unsigned long auxval = getauxval(AT_HWCAP);
unsigned long auxval = getauxval(AT_HWCAP);

if (auxval & HWCAP_PMULL)
return PROVIDER_INFO(crc64_ecma_refl_pmull);
if (auxval & HWCAP_PMULL)
return PROVIDER_INFO(crc64_ecma_refl_pmull);
#elif defined(__APPLE__)
if (sysctlEnabled(SYSCTL_PMULL_KEY))
return PROVIDER_INFO(crc64_ecma_refl_pmull);
if (sysctlEnabled(SYSCTL_PMULL_KEY))
return PROVIDER_INFO(crc64_ecma_refl_pmull);
#endif
return PROVIDER_BASIC(crc64_ecma_refl);

return PROVIDER_BASIC(crc64_ecma_refl);
}

DEFINE_INTERFACE_DISPATCHER(crc64_ecma_norm)
{
#if defined(__linux__)
unsigned long auxval = getauxval(AT_HWCAP);
if (auxval & HWCAP_PMULL)
return PROVIDER_INFO(crc64_ecma_norm_pmull);
unsigned long auxval = getauxval(AT_HWCAP);
if (auxval & HWCAP_PMULL)
return PROVIDER_INFO(crc64_ecma_norm_pmull);
#elif defined(__APPLE__)
if (sysctlEnabled(SYSCTL_PMULL_KEY))
return PROVIDER_INFO(crc64_ecma_norm_pmull);
if (sysctlEnabled(SYSCTL_PMULL_KEY))
return PROVIDER_INFO(crc64_ecma_norm_pmull);
#endif
return PROVIDER_BASIC(crc64_ecma_norm);

return PROVIDER_BASIC(crc64_ecma_norm);
}

DEFINE_INTERFACE_DISPATCHER(crc64_iso_refl)
{
#if defined(__linux__)
unsigned long auxval = getauxval(AT_HWCAP);
if (auxval & HWCAP_PMULL)
return PROVIDER_INFO(crc64_iso_refl_pmull);
unsigned long auxval = getauxval(AT_HWCAP);
if (auxval & HWCAP_PMULL)
return PROVIDER_INFO(crc64_iso_refl_pmull);
#elif defined(__APPLE__)
if (sysctlEnabled(SYSCTL_PMULL_KEY))
return PROVIDER_INFO(crc64_iso_refl_pmull);
if (sysctlEnabled(SYSCTL_PMULL_KEY))
return PROVIDER_INFO(crc64_iso_refl_pmull);
#endif
return PROVIDER_BASIC(crc64_iso_refl);

return PROVIDER_BASIC(crc64_iso_refl);
}

DEFINE_INTERFACE_DISPATCHER(crc64_iso_norm)
{
#if defined(__linux__)
unsigned long auxval = getauxval(AT_HWCAP);
if (auxval & HWCAP_PMULL)
return PROVIDER_INFO(crc64_iso_norm_pmull);
unsigned long auxval = getauxval(AT_HWCAP);
if (auxval & HWCAP_PMULL)
return PROVIDER_INFO(crc64_iso_norm_pmull);
#elif defined(__APPLE__)
if (sysctlEnabled(SYSCTL_PMULL_KEY))
return PROVIDER_INFO(crc64_iso_norm_pmull);
if (sysctlEnabled(SYSCTL_PMULL_KEY))
return PROVIDER_INFO(crc64_iso_norm_pmull);
#endif
return PROVIDER_BASIC(crc64_iso_norm);

return PROVIDER_BASIC(crc64_iso_norm);
}

DEFINE_INTERFACE_DISPATCHER(crc64_jones_refl)
{
#if defined(__linux__)
unsigned long auxval = getauxval(AT_HWCAP);
if (auxval & HWCAP_PMULL)
return PROVIDER_INFO(crc64_jones_refl_pmull);
unsigned long auxval = getauxval(AT_HWCAP);
if (auxval & HWCAP_PMULL)
return PROVIDER_INFO(crc64_jones_refl_pmull);
#elif defined(__APPLE__)
if (sysctlEnabled(SYSCTL_PMULL_KEY))
return PROVIDER_INFO(crc64_jones_refl_pmull);
if (sysctlEnabled(SYSCTL_PMULL_KEY))
return PROVIDER_INFO(crc64_jones_refl_pmull);
#endif
return PROVIDER_BASIC(crc64_jones_refl);

return PROVIDER_BASIC(crc64_jones_refl);
}

DEFINE_INTERFACE_DISPATCHER(crc64_jones_norm)
{
#if defined(__linux__)
unsigned long auxval = getauxval(AT_HWCAP);
if (auxval & HWCAP_PMULL)
return PROVIDER_INFO(crc64_jones_norm_pmull);
unsigned long auxval = getauxval(AT_HWCAP);
if (auxval & HWCAP_PMULL)
return PROVIDER_INFO(crc64_jones_norm_pmull);
#elif defined(__APPLE__)
if (sysctlEnabled(SYSCTL_PMULL_KEY))
return PROVIDER_INFO(crc64_jones_norm_pmull);
if (sysctlEnabled(SYSCTL_PMULL_KEY))
return PROVIDER_INFO(crc64_jones_norm_pmull);
#endif
return PROVIDER_BASIC(crc64_jones_norm);

return PROVIDER_BASIC(crc64_jones_norm);
}
Loading

0 comments on commit 371f54c

Please sign in to comment.