libc incorrectly detects AVX support
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
eglibc (Ubuntu) |
Fix Released
|
High
|
Adam Conrad | ||
Lucid |
Fix Released
|
High
|
Adam Conrad | ||
Oneiric |
Fix Released
|
High
|
Adam Conrad | ||
Precise |
Fix Released
|
High
|
Adam Conrad | ||
Quantal |
Fix Released
|
High
|
Adam Conrad |
Bug Description
[Impact]
In processors with AVX support virtual machines running can cause the program to execute invalid opcodes, thus crashing a running program.
[Development Fix]
This has been fixed in eglibc in precise. It it present in Lucid, Natty and Oneiric.
[Stable Fix]
A fix can be backported from the cvs-avx-
[Test Case]
Please see how to reproduce.
[Regression Potential]
This patch affects amd64 versions of eglibc, and in particular processors that have the AVX extension. This patch adds more complete checks for AVX enablement.
--
* Description of the problem:
libc incorrectly detects if AVX is enabled. On processors with AVX support like the Xeon E31270, libc does not check sufficiently to determine if AVX is actually enabled. The problem is exhibited on virtual machines using the effected version of eglibc where the host machine is running Xen and has a AVX capable CPU.
This bugreport explains the problem well: http://
* Versions Affected:
The problem is in lucid, eglibc-
The problem is also in current versions of eglibc available for Natty, Maverick and Oneiric.
The problem is patched upstream in debian unstable eglibc 2.13-22 which made it into precise eglibc 2.13-23ubuntu1:
https:/
There is a patch backported for glibc 2.11 provided by avx-fix.patch here:
http://
* How to reproduce:
The problem may only be reproducible on particular hardware that supports AVX being used as a Xen host.
It is reproducible when trying to start apache. The program exits when execution of an AVX instruction fails.
Start Apache on a Lucid guest VM where the host machine is running Xen and has a Xeon E31270 model cpu.
* What happens?
Apache exits with an error:
apache2[858] trap invalid opcode ip:7ffcebfdf920 sp:7fffc6da6798 error:0 in ld-2.11.
* What is expected?
Apache starts normally.
description: | updated |
Changed in eglibc (Ubuntu): | |
assignee: | nobody → Chris J Arges (christopherarges) |
Changed in eglibc (Ubuntu Lucid): | |
status: | New → Incomplete |
status: | Incomplete → Confirmed |
importance: | Undecided → High |
Changed in eglibc (Ubuntu): | |
importance: | Medium → High |
status: | Confirmed → In Progress |
Changed in eglibc (Ubuntu Precise): | |
status: | New → In Progress |
importance: | Undecided → High |
assignee: | nobody → Adam Conrad (adconrad) |
Changed in eglibc (Ubuntu Lucid): | |
assignee: | nobody → Chris J Arges (christopherarges) |
Changed in eglibc (Ubuntu Precise): | |
milestone: | none → ubuntu-12.04.1 |
Changed in eglibc (Ubuntu Oneiric): | |
status: | New → Confirmed |
importance: | Undecided → High |
assignee: | nobody → Chris J Arges (christopherarges) |
Changed in eglibc (Ubuntu Precise): | |
milestone: | ubuntu-12.04.1 → precise-updates |
tags: |
added: verification-done removed: verification-needed |
Changed in eglibc (Ubuntu Oneiric): | |
assignee: | Chris J Arges (christopherarges) → Adam Conrad (adconrad) |
Changed in eglibc (Ubuntu Lucid): | |
assignee: | Chris J Arges (christopherarges) → Adam Conrad (adconrad) |
Attached is a patch that fixes this issue for lucid.