Hi Jim,

On Wed, Apr 21, 2021 at 04:46:17AM -0600, Jim Freeman wrote:
> Stock 1.8.19-1+deb10u3 on Debian10 runs fine, but when I install
> 2.2.8-1~bpo10+1 from buster-backports, I get "Illegal instruction" ?
> Is my CPU just too historic ?

Possible but it makes me think that it could also be a matter of lib
or toolchain that was built for a slightly different arch with certain
extensions (e.g. sse etc).

Since it seems to happen easily, you should try it again under gdb,
then disassemble the code around the location:

 # gdb --args ./haproxy -f ~/haproxy.cfg
 > run

Once it crashes, issue:

 > bt

it will report the backtrace and current function where it died,
then:

 > disassemble $rip

and press Enter until you see a line with "=>" indicating the current
location. Please post a copy of the surrounding lines here, we may
possibly figure that we're using an instruction we ought not to use.

> flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
> pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm
> 3dnowext 3dnow rep_good nopl cpuid pni lahf_lm 3dnowprefetch vmmcall
> bugs : fxsave_leak sysret_ss_attrs null_seg swapgs_fence spectre_v1 spectre_v2

I'm not seeing cmpxchg16b here ("cx16"), which could be a serious
concern, as we've never been aware of any x86_64 CPU without it and
have been enabling it by default on x86_64 (and it cannot be enabled
nor disabled at run time as it allows to replace certain structures
with other ones).

Willy

Reply via email to