[meta-intel] [RFC][PATCH v2] conf: add new machine intel-skylake-64

Mittal, Anuj anuj.mittal at intel.com
Tue Aug 20 21:31:10 PDT 2019


Thanks, I have merged this now.

Thanks,

Anuj

On Wed, 2019-08-21 at 10:11 +0800, Naveen Saini wrote:
> Add 64-bit new machine (intel-skylake-64) with -march=skylake
> and avx2 instruction-set set up.
> 
> We do see a qemu-usermode failure at build time, on setup of
> avx2 instruction-set as QEMU does not support AVX instruction
> set.
> 
> Check this:
> https://bugs.launchpad.net/qemu/+bug/1818075
> 
> So to bypass this issue disabling qemu-usermode for intel-skylake-64
> machine.
> 
> Due to above limitation and in order to not affecting existing
> machines, this new machine is being proposed to add.
> 
> A quick performance comparision between intel-corei7-64 vs intel-
> skylake-64 machines
> 
> Measurements are in time, taken by the benchmark tests. Less is
> better.
> 
> Test/Benchmark			intel-corei7-64		intel
> -skylake-64
> 
> (1) CppPerformanceBenchmarks (Test: Math Library)
> 				(1st) 5m 15.70s		4m 36.39s
> 				(2nd) 5m 16.37s		4m 36.51s
> 				(3rd) 5m 15.54s		4m 37.80s
> CppPerformanceBenchmarks is a set of C++ compiler performance
> benchmarks.
> 
> (2) AOBench
> 				(1st) 0m 35.07s		0m 28.74s
> 				(2nd) 0m 34.90s		0m 28.72s
> 				(3rd) 0m 34.85s		0m 28.89s
> AOBench is a lightweight ambient occlusion renderer, written in C.
> The
> test profile is using a size of 2048 x 2048.
> 
> (3) C-Ray
> 				(1st) 320 seconds	232 seconds
> 				(2nd) 320 seconds	232 seconds
> 				(3rd) 321 seconds	232 seconds
> C-Ray, a simple raytracer designed to test the floating-point CPU
> performance.
> 
> For this patch, 'bitbake world' gets successfully built with latest
> poky master.
> 
> Signed-off-by: Naveen Saini <naveen.kumar.saini at intel.com>
> ---
>  conf/machine/include/qemuboot-intel.inc           |  4 +++
>  conf/machine/include/tune-skylake.inc             | 28
> +++++++++++++++++++
>  conf/machine/intel-skylake-64.conf                | 33
> +++++++++++++++++++++++
>  recipes-kernel/linux/meta-intel-compat-kernel.inc |  1 +
>  4 files changed, 66 insertions(+)
>  create mode 100644 conf/machine/include/tune-skylake.inc
>  create mode 100644 conf/machine/intel-skylake-64.conf
> 
> diff --git a/conf/machine/include/qemuboot-intel.inc
> b/conf/machine/include/qemuboot-intel.inc
> index 6586cf0..88e20a3 100644
> --- a/conf/machine/include/qemuboot-intel.inc
> +++ b/conf/machine/include/qemuboot-intel.inc
> @@ -8,6 +8,10 @@ QB_SYSTEM_NAME_intel-corei7-64 = "qemu-system-
> x86_64"
>  QB_CPU_intel-corei7-64 = "-cpu Nehalem"
>  QB_CPU_KVM_intel-corei7-64 = "-cpu kvm64"
>  
> +QB_SYSTEM_NAME_intel-skylake-64 = "qemu-system-x86_64"
> +QB_CPU_intel-skylake-64 = "-cpu Skylake-Client"
> +QB_CPU_KVM_intel-skylake-64 = "-cpu kvm64"
> +
>  QB_AUDIO_DRV = "alsa"
>  QB_AUDIO_OPT = "-soundhw ac97,es1370"
>  QB_KERNEL_CMDLINE_APPEND = "vga=0 uvesafb.mode_option=640x480-32
> oprofile.timer=1 uvesafb.task_timeout=-1"
> diff --git a/conf/machine/include/tune-skylake.inc
> b/conf/machine/include/tune-skylake.inc
> new file mode 100644
> index 0000000..78645de
> --- /dev/null
> +++ b/conf/machine/include/tune-skylake.inc
> @@ -0,0 +1,28 @@
> +# Settings for the GCC(1) cpu-type "skylake":
> +#
> +#     Intel Skylake CPU with 64-bit extensions, MMX, SSE, SSE2,
> SSE3, SSSE3, SSE4.1,
> +#     SSE4.2, AVX, AVX2 and POPCNT instruction set support.
> +#
> +# This tune is recommended for Intel Skylake CPU (and beyond).
> +#
> +DEFAULTTUNE ?= "skylake-64"
> +
> +# Include the previous tune to pull in PACKAGE_EXTRA_ARCHS
> +require conf/machine/include/tune-core2.inc
> +
> +# Extra tune features
> +TUNEVALID[skylake] = "Enable skylake specific processor
> optimizations"
> +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'skylake', '
> -march=skylake -mtune=generic -mfpmath=sse -mavx2', '', d)}"
> +
> +# Extra tune selections
> +
> +AVAILTUNES += "skylake-64"
> +TUNE_FEATURES_tune-skylake-64 = "${TUNE_FEATURES_tune-x86-64}
> skylake"
> +BASE_LIB_tune-skylake-64 = "lib64"
> +TUNE_PKGARCH_tune-skylake-64 = "skylake-64"
> +PACKAGE_EXTRA_ARCHS_tune-skylake-64 = "${PACKAGE_EXTRA_ARCHS_tune-
> core2-64} skylake-64"
> +QEMU_EXTRAOPTIONS_skylake-64 = " -cpu Skylake-Client"
> +
> +# Disable QEMU user
> +MACHINE_FEATURES_remove = "qemu-usermode"
> +
> diff --git a/conf/machine/intel-skylake-64.conf b/conf/machine/intel-
> skylake-64.conf
> new file mode 100644
> index 0000000..51786ba
> --- /dev/null
> +++ b/conf/machine/intel-skylake-64.conf
> @@ -0,0 +1,33 @@
> +#@TYPE: Machine
> +#@NAME: intel-skylake-64
> +
> +#@DESCRIPTION: Machine configuration for 64 bit Intel Skylake CPU
> (and later) with MMX, SSE, SSE2, SSE3, SSE4.1, SSE4.2, AVX, and AVX2
> instruction set support. Supports a moderately wide range of drivers
> that should boot and be usable on "typical" hardware.
> +
> +require conf/machine/include/meta-intel.inc
> +require conf/machine/include/x86-base.inc
> +require conf/machine/include/tune-skylake.inc
> +require conf/machine/include/intel-common-pkgarch.inc
> +
> +MACHINE_FEATURES += "efi"
> +MACHINE_FEATURES += "wifi 3g nfc"
> +MACHINE_FEATURES += "intel-ucode"
> +
> +MACHINE_HWCODECS ?= "intel-vaapi-driver gstreamer1.0-vaapi"
> +
> +XSERVER ?= "${XSERVER_X86_BASE} \
> +            ${XSERVER_X86_EXT} \
> +            ${XSERVER_X86_FBDEV} \
> +            ${XSERVER_X86_I915} \
> +            ${XSERVER_X86_I965} \
> +            ${XSERVER_X86_MODESETTING} \
> +            ${XSERVER_X86_VESA} \
> +            ${XSERVER_X86_ASPEED_AST} \
> +           "
> +
> +SYSLINUX_OPTS = "serial 0 115200"
> +SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyS2"
> +APPEND += "rootwait console=ttyS0,115200 console=tty0"
> +
> +IMAGE_FSTYPES += "wic"
> +WKS_FILE ?= "${@bb.utils.contains_any("EFI_PROVIDER", "systemd-
> boot", "systemd-bootdisk-microcode.wks.in", "grub-bootdisk-
> microcode.wks.in", d)}"
> +WKS_FILE_DEPENDS_append = " intel-microcode"
> diff --git a/recipes-kernel/linux/meta-intel-compat-kernel.inc
> b/recipes-kernel/linux/meta-intel-compat-kernel.inc
> index be5056c..a985925 100644
> --- a/recipes-kernel/linux/meta-intel-compat-kernel.inc
> +++ b/recipes-kernel/linux/meta-intel-compat-kernel.inc
> @@ -8,6 +8,7 @@ KERNEL_FEATURES_intel-x86-common =
> "${KERNEL_FEATURES_INTEL_COMMON}"
>  
>  KMACHINE_corei7-64-intel-common = "intel-corei7-64"
>  KMACHINE_core2-32-intel-common = "intel-core2-32"
> +KMACHINE_skylake-64-intel-common = "intel-corei7-64"
>  
>  INTEL_COMMON_AUTOLOAD ?= " uio iwlwifi i915"
>  KERNEL_MODULE_AUTOLOAD_intel-x86-common = "
> ${INTEL_COMMON_AUTOLOAD}"
> -- 
> 2.7.4
> 


More information about the meta-intel mailing list