Project

General

Profile

Actions

Bug #1869

closed

osmo-trx binary cannot be moved to similar CPU

Added by neels over 7 years ago. Updated almost 7 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
-
Target version:
-
Start date:
12/05/2016
Due date:
% Done:

100%

Spec Reference:

Description

Built osmo-trx on a jenkins build slave and installed the resulting binary
on the gsm-tester APU, both are amd64 CPUs, but osmo-trx on the APU fails
with SIGILL = Illegal Instruction.

The CPUs have slightly differing CPU feature sets, which seems to be the cause of this problem.

Binaries should be interoperable within the same CPU family,
using run-time checks to determine which CPU features to use.

build slave CPU info:

# uname -a
Linux sysmocom-office1.am93.sysmocom.de 3.13.0-93-generic #140-Ubuntu SMP Mon Jul 18 21:21:05 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

# cat /proc/cpuinfo
processor    : 0
vendor_id    : GenuineIntel
cpu family    : 6
model        : 63
model name    : Intel(R) Xeon(R) CPU E5-1660 v3 @ 3.00GHz
stepping    : 2
microcode    : 0x2e
cpu MHz        : 1200.000
cache size    : 20480 KB
physical id    : 0
siblings    : 16
core id        : 0
cpu cores    : 8
apicid        : 0
initial apicid    : 0
fpu        : yes
fpu_exception    : yes
cpuid level    : 15
wp        : yes
flags        : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips    : 5999.38
clflush size    : 64
cache_alignment    : 64
address sizes    : 46 bits physical, 48 bits virtual
power management:
[...]

APU CPU info:

# uname -a
Linux apu-roh 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1+deb8u2 (2016-10-19) x86_64 GNU/Linux

# cat /proc/cpuinfo 
processor    : 0
vendor_id    : AuthenticAMD
cpu family    : 20
model        : 2
model name    : AMD G-T40E Processor
stepping    : 0
microcode    : 0x5000101
cpu MHz        : 800.000
cache size    : 512 KB
physical id    : 0
siblings    : 2
core id        : 0
cpu cores    : 2
apicid        : 0
initial apicid    : 0
fpu        : yes
fpu_exception    : yes
cpuid level    : 6
wp        : yes
flags        : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni monitor ssse3 cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch ibs skinit wdt arat hw_pstate npt lbrv svm_lock nrip_save pausefilter vmmcall
bogomips    : 2000.17
TLB size    : 1024 4K pages
clflush size    : 64
cache_alignment    : 64
address sizes    : 36 bits physical, 48 bits virtual
power management: ts ttp tm stc 100mhzsteps hwpstate
[...]

Here is a diff of the CPU features, -buildslave +APU:

+3dnowprefetch
 abm
-acpi
-aes
 aperfmperf
 apic
 arat
-arch_perfmon
-avx
-avx2
-bmi1
-bmi2
-bts
 clflush
 cmov
+cmp_legacy
 constant_tsc
+cr8_legacy
 cx16
 cx8
-dca
 de
-ds_cpl
-dtes64
-dtherm
-dts
-eagerfpu
-epb
-ept
-erms
-est
-f16c
-flexpriority
-fma
+extapic
+extd_apicid
 fpu
-fsgsbase
 fxsr
+fxsr_opt
 ht
-ida
-invpcid
+hw_pstate
+ibs
 lahf_lm
+lbrv
 lm
 mca
 mce
+misalignsse
 mmx
+mmxext
 monitor
-movbe
 msr
 mtrr
 nonstop_tsc
 nopl
+npt
+nrip_save
 nx
 pae
 pat
-pbe
-pcid
-pclmulqdq
-pdcm
+pausefilter
 pdpe1gb
-pebs
 pge
-pln
 pni
 popcnt
 pse
 pse36
-pts
-rdrand
 rdtscp
 rep_good
 sep
-smep
-smx
-ss
+skinit
 sse
 sse2
-sse4_1
-sse4_2
+sse4a
 ssse3
+svm
+svm_lock
 syscall
-tm
-tm2
-tpr_shadow
 tsc
-tsc_adjust
-tsc_deadline_timer
 vme
-vmx
-vnmi
-vpid
-x2apic
-xsave
-xsaveopt
-xtopology
-xtpr
+vmmcall
+wdt


Files

core.tgz core.tgz 5.82 MB neels, 04/25/2017 11:31 AM

Related issues

Related to Cellular Network Infrastructure - Bug #1928: nightly packages: osmo-trx fails for missing sqlite3.h and/or debian/rules errorClosed01/26/2017

Actions
Blocks OsmoBTS - Feature #1849: osmo-bts-trx integration to osmo-gsm-testerClosedroh11/18/2016

Actions
Actions

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)