Message ID | 20231114054032.1192027-6-hao.xiang@bytedance.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Use Intel DSA accelerator to offload zero page checking in multifd live migration. | expand |
Hao Xiang <hao.xiang@bytedance.com> writes: > Enable instruction set enqcmd in build. > > Signed-off-by: Hao Xiang <hao.xiang@bytedance.com> > --- > meson.build | 2 ++ > meson_options.txt | 2 ++ > scripts/meson-buildoptions.sh | 3 +++ > 3 files changed, 7 insertions(+) > > diff --git a/meson.build b/meson.build > index ec01f8b138..1292ab78a3 100644 > --- a/meson.build > +++ b/meson.build > @@ -2708,6 +2708,8 @@ 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')) We need some sort of detection at configure time whether the feature is available. There are different compilers and compiler versions, different Intel CPU versions, different CPU vendors, different architectures, etc. Not all combinations will support DSA. Check avx512 above.
On Mon, Dec 11, 2023 at 7:41 AM Fabiano Rosas <farosas@suse.de> wrote: > > Hao Xiang <hao.xiang@bytedance.com> writes: > > > Enable instruction set enqcmd in build. > > > > Signed-off-by: Hao Xiang <hao.xiang@bytedance.com> > > --- > > meson.build | 2 ++ > > meson_options.txt | 2 ++ > > scripts/meson-buildoptions.sh | 3 +++ > > 3 files changed, 7 insertions(+) > > > > diff --git a/meson.build b/meson.build > > index ec01f8b138..1292ab78a3 100644 > > --- a/meson.build > > +++ b/meson.build > > @@ -2708,6 +2708,8 @@ 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')) > > We need some sort of detection at configure time whether the feature is > available. There are different compilers and compiler versions, > different Intel CPU versions, different CPU vendors, different > architectures, etc. Not all combinations will support DSA. Check avx512 > above. > Will fix it in the next version.
diff --git a/meson.build b/meson.build index ec01f8b138..1292ab78a3 100644 --- a/meson.build +++ b/meson.build @@ -2708,6 +2708,8 @@ 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')) + # 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 c9baeda639..6fe8aca181 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -121,6 +121,8 @@ option('avx512f', type: 'feature', value: 'disabled', description: 'AVX512F optimizations') option('avx512bw', type: 'feature', value: 'auto', description: 'AVX512BW optimizations') +option('enqcmd', type: 'boolean', value: false, + description: 'MENQCMD 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 680fa3f581..bf139e3fb4 100644 --- a/scripts/meson-buildoptions.sh +++ b/scripts/meson-buildoptions.sh @@ -93,6 +93,7 @@ meson_options_help() { printf "%s\n" ' avx2 AVX2 optimizations' printf "%s\n" ' avx512bw AVX512BW optimizations' printf "%s\n" ' avx512f AVX512F 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' @@ -240,6 +241,8 @@ _meson_option_parse() { --disable-avx512bw) printf "%s" -Davx512bw=disabled ;; --enable-avx512f) printf "%s" -Davx512f=enabled ;; --disable-avx512f) printf "%s" -Davx512f=disabled ;; + --enable-enqcmd) printf "%s" -Denqcmd=true ;; + --disable-enqcmd) printf "%s" -Denqcmd=false ;; --enable-gcov) printf "%s" -Db_coverage=true ;; --disable-gcov) printf "%s" -Db_coverage=false ;; --enable-lto) printf "%s" -Db_lto=true ;;
Enable instruction set enqcmd in build. Signed-off-by: Hao Xiang <hao.xiang@bytedance.com> --- meson.build | 2 ++ meson_options.txt | 2 ++ scripts/meson-buildoptions.sh | 3 +++ 3 files changed, 7 insertions(+)