[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v5 01/13] meson: Introduce new instruction set enqcmd to the buil
From: |
Yichen Wang |
Subject: |
[PATCH v5 01/13] meson: Introduce new instruction set enqcmd to the build system. |
Date: |
Thu, 11 Jul 2024 14:52:36 -0700 |
From: Hao Xiang <hao.xiang@linux.dev>
Enable instruction set enqcmd in build.
Signed-off-by: Hao Xiang <hao.xiang@linux.dev>
Signed-off-by: Yichen Wang <yichen.wang@bytedance.com>
---
meson.build | 14 ++++++++++++++
meson_options.txt | 2 ++
scripts/meson-buildoptions.sh | 3 +++
3 files changed, 19 insertions(+)
diff --git a/meson.build b/meson.build
index 6a93da48e1..af650cfabf 100644
--- a/meson.build
+++ b/meson.build
@@ -2893,6 +2893,20 @@ config_host_data.set('CONFIG_AVX512BW_OPT',
get_option('avx512bw') \
int main(int argc, char *argv[]) { return bar(argv[0]); }
'''), error_message: 'AVX512BW not available').allowed())
+config_host_data.set('CONFIG_DSA_OPT', get_option('enqcmd') \
+ .require(have_cpuid_h, error_message: 'cpuid.h not available, cannot enable
ENQCMD') \
+ .require(cc.links('''
+ #include <stdint.h>
+ #include <cpuid.h>
+ #include <immintrin.h>
+ static int __attribute__((target("enqcmd"))) bar(void *a) {
+ uint64_t dst[8] = { 0 };
+ uint64_t src[8] = { 0 };
+ return _enqcmd(dst, src);
+ }
+ int main(int argc, char *argv[]) { return bar(argv[argc - 1]); }
+ '''), error_message: 'ENQCMD not available').allowed())
+
# For both AArch64 and AArch32, detect if builtins are available.
config_host_data.set('CONFIG_ARM_AES_BUILTIN', cc.compiles('''
#include <arm_neon.h>
diff --git a/meson_options.txt b/meson_options.txt
index 0269fa0f16..4ed820bb8d 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -121,6 +121,8 @@ option('avx2', type: 'feature', value: 'auto',
description: 'AVX2 optimizations')
option('avx512bw', type: 'feature', value: 'auto',
description: 'AVX512BW optimizations')
+option('enqcmd', type: 'feature', value: 'disabled',
+ description: 'ENQCMD optimizations')
option('keyring', type: 'feature', value: 'auto',
description: 'Linux keyring support')
option('libkeyutils', type: 'feature', value: 'auto',
diff --git a/scripts/meson-buildoptions.sh b/scripts/meson-buildoptions.sh
index cfadb5ea86..280e117687 100644
--- a/scripts/meson-buildoptions.sh
+++ b/scripts/meson-buildoptions.sh
@@ -95,6 +95,7 @@ meson_options_help() {
printf "%s\n" ' auth-pam PAM access control'
printf "%s\n" ' avx2 AVX2 optimizations'
printf "%s\n" ' avx512bw AVX512BW optimizations'
+ printf "%s\n" ' enqcmd ENQCMD optimizations'
printf "%s\n" ' blkio libblkio block device driver'
printf "%s\n" ' bochs bochs image format support'
printf "%s\n" ' bpf eBPF support'
@@ -239,6 +240,8 @@ _meson_option_parse() {
--disable-avx2) printf "%s" -Davx2=disabled ;;
--enable-avx512bw) printf "%s" -Davx512bw=enabled ;;
--disable-avx512bw) printf "%s" -Davx512bw=disabled ;;
+ --enable-enqcmd) printf "%s" -Denqcmd=enabled ;;
+ --disable-enqcmd) printf "%s" -Denqcmd=disabled ;;
--enable-gcov) printf "%s" -Db_coverage=true ;;
--disable-gcov) printf "%s" -Db_coverage=false ;;
--enable-lto) printf "%s" -Db_lto=true ;;
--
Yichen Wang
- [PATCH v5 00/13] WIP: Use Intel DSA accelerator to offload zero page checking in multifd live migration., Yichen Wang, 2024/07/11
- [PATCH v5 01/13] meson: Introduce new instruction set enqcmd to the build system.,
Yichen Wang <=
- [PATCH v5 02/13] util/dsa: Add idxd into linux header copy list., Yichen Wang, 2024/07/11
- [PATCH v5 03/13] util/dsa: Implement DSA device start and stop logic., Yichen Wang, 2024/07/11
- [PATCH v5 04/13] util/dsa: Implement DSA task enqueue and dequeue., Yichen Wang, 2024/07/11
- [PATCH v5 05/13] util/dsa: Implement DSA task asynchronous completion thread model., Yichen Wang, 2024/07/11
- [PATCH v5 07/13] util/dsa: Implement DSA task asynchronous submission and wait for completion., Yichen Wang, 2024/07/11
- [PATCH v5 06/13] util/dsa: Implement zero page checking in DSA task., Yichen Wang, 2024/07/11
- [PATCH v5 08/13] migration/multifd: Add new migration option for multifd DSA offloading., Yichen Wang, 2024/07/11