diff options
author | Naveen Saini <naveen.kumar.saini@intel.com> | 2019-08-21 10:11:38 +0800 |
---|---|---|
committer | Anuj Mittal <anuj.mittal@intel.com> | 2019-08-21 12:30:01 +0800 |
commit | 04510bfabd50bb33da8ccc5075a2c5163605d552 (patch) | |
tree | 99d38ae3eec10b9c7214cf9e81d11147275a918c | |
parent | ae9f89ee8166a7fecd30d7df59e8c2052080d4c0 (diff) | |
download | meta-intel-04510bfabd50bb33da8ccc5075a2c5163605d552.tar.gz |
conf: add new machine intel-skylake-64
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@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
-rw-r--r-- | conf/machine/include/qemuboot-intel.inc | 4 | ||||
-rw-r--r-- | conf/machine/include/tune-skylake.inc | 28 | ||||
-rw-r--r-- | conf/machine/intel-skylake-64.conf | 33 | ||||
-rw-r--r-- | recipes-kernel/linux/meta-intel-compat-kernel.inc | 1 |
4 files changed, 66 insertions, 0 deletions
diff --git a/conf/machine/include/qemuboot-intel.inc b/conf/machine/include/qemuboot-intel.inc index 6586cf09..88e20a3e 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" | |||
8 | QB_CPU_intel-corei7-64 = "-cpu Nehalem" | 8 | QB_CPU_intel-corei7-64 = "-cpu Nehalem" |
9 | QB_CPU_KVM_intel-corei7-64 = "-cpu kvm64" | 9 | QB_CPU_KVM_intel-corei7-64 = "-cpu kvm64" |
10 | 10 | ||
11 | QB_SYSTEM_NAME_intel-skylake-64 = "qemu-system-x86_64" | ||
12 | QB_CPU_intel-skylake-64 = "-cpu Skylake-Client" | ||
13 | QB_CPU_KVM_intel-skylake-64 = "-cpu kvm64" | ||
14 | |||
11 | QB_AUDIO_DRV = "alsa" | 15 | QB_AUDIO_DRV = "alsa" |
12 | QB_AUDIO_OPT = "-soundhw ac97,es1370" | 16 | QB_AUDIO_OPT = "-soundhw ac97,es1370" |
13 | QB_KERNEL_CMDLINE_APPEND = "vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1" | 17 | 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 00000000..78645def --- /dev/null +++ b/conf/machine/include/tune-skylake.inc | |||
@@ -0,0 +1,28 @@ | |||
1 | # Settings for the GCC(1) cpu-type "skylake": | ||
2 | # | ||
3 | # Intel Skylake CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, | ||
4 | # SSE4.2, AVX, AVX2 and POPCNT instruction set support. | ||
5 | # | ||
6 | # This tune is recommended for Intel Skylake CPU (and beyond). | ||
7 | # | ||
8 | DEFAULTTUNE ?= "skylake-64" | ||
9 | |||
10 | # Include the previous tune to pull in PACKAGE_EXTRA_ARCHS | ||
11 | require conf/machine/include/tune-core2.inc | ||
12 | |||
13 | # Extra tune features | ||
14 | TUNEVALID[skylake] = "Enable skylake specific processor optimizations" | ||
15 | TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'skylake', ' -march=skylake -mtune=generic -mfpmath=sse -mavx2', '', d)}" | ||
16 | |||
17 | # Extra tune selections | ||
18 | |||
19 | AVAILTUNES += "skylake-64" | ||
20 | TUNE_FEATURES_tune-skylake-64 = "${TUNE_FEATURES_tune-x86-64} skylake" | ||
21 | BASE_LIB_tune-skylake-64 = "lib64" | ||
22 | TUNE_PKGARCH_tune-skylake-64 = "skylake-64" | ||
23 | PACKAGE_EXTRA_ARCHS_tune-skylake-64 = "${PACKAGE_EXTRA_ARCHS_tune-core2-64} skylake-64" | ||
24 | QEMU_EXTRAOPTIONS_skylake-64 = " -cpu Skylake-Client" | ||
25 | |||
26 | # Disable QEMU user | ||
27 | MACHINE_FEATURES_remove = "qemu-usermode" | ||
28 | |||
diff --git a/conf/machine/intel-skylake-64.conf b/conf/machine/intel-skylake-64.conf new file mode 100644 index 00000000..51786ba7 --- /dev/null +++ b/conf/machine/intel-skylake-64.conf | |||
@@ -0,0 +1,33 @@ | |||
1 | #@TYPE: Machine | ||
2 | #@NAME: intel-skylake-64 | ||
3 | |||
4 | #@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. | ||
5 | |||
6 | require conf/machine/include/meta-intel.inc | ||
7 | require conf/machine/include/x86-base.inc | ||
8 | require conf/machine/include/tune-skylake.inc | ||
9 | require conf/machine/include/intel-common-pkgarch.inc | ||
10 | |||
11 | MACHINE_FEATURES += "efi" | ||
12 | MACHINE_FEATURES += "wifi 3g nfc" | ||
13 | MACHINE_FEATURES += "intel-ucode" | ||
14 | |||
15 | MACHINE_HWCODECS ?= "intel-vaapi-driver gstreamer1.0-vaapi" | ||
16 | |||
17 | XSERVER ?= "${XSERVER_X86_BASE} \ | ||
18 | ${XSERVER_X86_EXT} \ | ||
19 | ${XSERVER_X86_FBDEV} \ | ||
20 | ${XSERVER_X86_I915} \ | ||
21 | ${XSERVER_X86_I965} \ | ||
22 | ${XSERVER_X86_MODESETTING} \ | ||
23 | ${XSERVER_X86_VESA} \ | ||
24 | ${XSERVER_X86_ASPEED_AST} \ | ||
25 | " | ||
26 | |||
27 | SYSLINUX_OPTS = "serial 0 115200" | ||
28 | SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyS2" | ||
29 | APPEND += "rootwait console=ttyS0,115200 console=tty0" | ||
30 | |||
31 | IMAGE_FSTYPES += "wic" | ||
32 | WKS_FILE ?= "${@bb.utils.contains_any("EFI_PROVIDER", "systemd-boot", "systemd-bootdisk-microcode.wks.in", "grub-bootdisk-microcode.wks.in", d)}" | ||
33 | 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 be5056c2..a985925f 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}" | |||
8 | 8 | ||
9 | KMACHINE_corei7-64-intel-common = "intel-corei7-64" | 9 | KMACHINE_corei7-64-intel-common = "intel-corei7-64" |
10 | KMACHINE_core2-32-intel-common = "intel-core2-32" | 10 | KMACHINE_core2-32-intel-common = "intel-core2-32" |
11 | KMACHINE_skylake-64-intel-common = "intel-corei7-64" | ||
11 | 12 | ||
12 | INTEL_COMMON_AUTOLOAD ?= " uio iwlwifi i915" | 13 | INTEL_COMMON_AUTOLOAD ?= " uio iwlwifi i915" |
13 | KERNEL_MODULE_AUTOLOAD_intel-x86-common = " ${INTEL_COMMON_AUTOLOAD}" | 14 | KERNEL_MODULE_AUTOLOAD_intel-x86-common = " ${INTEL_COMMON_AUTOLOAD}" |