** Description changed:

- Currently it's impossible to install from xenial-desktop-amd64.iso on a
- wide range of hardware with Nvidia GPUs.
+ [Description updated to reflect state of 16.04 release ISO]
  
- The problem is invalid opcode(s) when using llvmpipe (the software
- opengl fallback, used when using Unity with the Nouveau driver). The
- result is that compiz crashes over and over; Upstart will continue to
- restart compiz till it gives up. To confirm whether this bug is
- happening, switch to a VT and check dmesg, in which you'll see something
- like:
+ == In summary ==
+ 
+ If you have an Intel Skylake (6th gen) CPU and an NVIDIA GPU (or
+ possibly other GPUs that likewise require use of the llvmpipe opengl
+ software fallback), a work-around is needed to install Ubuntu 16.04
+ desktop.
+ 
+ To work-around this, you'll need to:
+ 
+ 1) Choose "Install Ubuntu" in the pre-boot menu (rather than "Try Ubuntu
+ without installing")
+ 
+ 2) Check "Download updates while installing Ubuntu"
+ 
+ ** Note the above work-around wont work till 
+ llvm-toolchain-3.8 1:3.8-2ubuntu3 lands in xenial-updates (it's currently 
only in xenial-proposed). FIXME: update description once this happens.
+ 
+ == In detail ==
+ 
+ The Ubuntu 16.04 desktop ISOs includes libllvm3.8 1:3.8-2ubuntu1, which
+ has a bug that results in invalid JIT code generation when using the
+ mesa llvmpipe opengl software fallback on Skylake CPUs.
+ 
+ When you encounter this bug, Unity/Compiz will fail to start, and you'll
+ see something like this in dmesg:
  
  [ 2092.557913] traps: compiz[10155] trap invalid opcode ip:7efc940030d4
  sp:7ffccd914ea0 error:0
  
- A workable solution seems to be to re-build mesa against llvm-3.6-dev,
- libclang-3.6-dev (rather that 3.8). This would get us a working Xenial
- ISO for the effected hardware. Post 16.04 release, this could be
- revisited, and mesa in Xenial could possibly switch back to llvm 3.8
- once this issue is resolved.
- 
- I have mesa test packages built against llvm 3.6 here:
- 
- https://launchpad.net/~jderose/+archive/ubuntu/mesa/+packages
- 
- I couldn't test the installation without a re-spun ISO, but I did
- confirm that after updating to the mesa packages in my PPA, I could
- again use Unity. So I'm pretty sure this will fix installing from the
- ISO as well.
- 
- My hunch is that llvm 3.8 is generating invalid code during its JIT
- compilation for llvmpipe, but it could also be the result of memory
- corruption. Either way, building mesa against llvm 3.6 seems to be quick
- the fix.
- 
- Note this is a regression from 14.04.4 and 15.10, both of which install
- fine on the hardware effected by this bug.
- 
- For concrete examples of System76 hardware effected by this:
- 
- 1) All Skylake laptops with 970m, 980m, and 980gtx GPUs
- 
- 2) All Skylake and Haswell-E desktops with 970gtx and 980gtx GPUs
- (although strangely, things seem to work with when you connect to a
- monitor over HDMI, but always fails when connecting to a monitor over
- DisplayPort)
- 
- Note that none of the above failed tested scenarios are using Optimus:
- all are using discrete GPU configurations.
- 
- In my testing thus far on the effected hardware, the install always
- fails if you choose "Try Ubuntu without installing". The install usually
- seems to work when you choose "Install Ubuntu", but even this 2nd
- scenario sometimes fails (and when it does, you'll see the same "trap
- invalid opcode" bits in dmesg).
- 
- Also note that so far I've only tested amd64, haven't tested i386.
- 
- I suspect there is some deeper weirdness here, but at this point
- System76 is just trying to make sure we have a Xenial ISO from which
- customers can re-install Ubuntu.
- 
- Old description
- ===============
- Currently Unity on Xenial is unusable when the llvmpipe software fallback is 
used, at least on certain hardware.
- 
- For example, from dmesg:
- 
- [ 2092.557913] traps: compiz[10155] trap invalid opcode ip:7efc940030d4 
sp:7ffccd914ea0 error:0
- [ 2093.109485] traps: compiz[10192] trap invalid opcode ip:7f38ac01a0d4 
sp:7ffe5ed737e0 error:0
- [ 2093.718863] traps: compiz[10212] trap invalid opcode ip:7fe6900010d4 
sp:7ffd55804020 error:0
- 
- This definitely effects hardware we've tested with NVIDIA 970m and 980m
- GPUs (when using the nouveau driver), and probably effects others as
- well.
- 
- Although strangely, with some NVIDIA 900 series hardware we're not
- seeing this bug when using the nouveau driver. This will be investigated
- further.
- 
- In the current state, it's not possible to install Xenial on effected
- hardware using recent daily desktop amd64 ISOs.
- 
- Note this problem exists both when run against mesa 11.1.2-1ubuntu2 in
- Xenial proper, and when run against mesa 11.2.0~rc4-1ubuntu0.1 from
- ppa:canonical-x/x-staging. (The later test was done with the System76
- imaging system using an image with ppa:canonical-x/x-staging and
- nvidia-361 pre-installed, then removing nvidia-361 and rebooting).
- 
- I'm kinda shooting in the dark here, but I did my best to rule out the
- kernel as a variable:
- 
- (1) I built and installed the 4.4.0-16 kernel on 15.10, rebooted, and
- had no problems.
- 
- (2) On Xenial I tried the 4.5 and 4.6rc1 mainline builds, but they don't
- fix the problem.
- 
- I'm not sure the underling bug is in compiz, but I'm filing it against
- compiz anyway because that's where the dmesg output is pointing me.
- 
- Other likely culprits include nux, mesa, maybe even llvm, and probably
- others I'm not thinking of :)
- 
- Also, I'm positive llvmpipe is being used when this invalid opcode is
- trapped because I added this to
- /etc/X11/Xsession.d/50_check_unity_support:
- 
- /usr/lib/nux/unity_support_test -p > /tmp/compiz-debug.log
- 
- That way I could figure out what renderer was being used from a VT (as
- the X session is darn near unusable in this state).
+ libllvm3.8 1:3.8-2ubuntu3 fixes this issue, but the fix did not make it
+ onto the 16.04 release ISO. It will be included on the 16.04.1 ISO.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1564156

Title:
  xenial: invalid opcode when using llvmpipe

To manage notifications about this bug go to:
https://bugs.launchpad.net/oem-priority/+bug/1564156/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to