VMware guest video broken by the 3.2.0.64 kernel update

Bug #1328898 reported by rojer
24
This bug affects 4 people
Affects Status Importance Assigned to Milestone
xserver-xorg-video-vmware (Ubuntu)
Confirmed
Undecided
Unassigned

Bug Description

See detailed discussion here on the VMWare board: https://communities.vmware.com/message/2388776

I can confirm that downgrading to 3.2.0.63 works, and booting into 3.2.0.64 causes the "split screen" issue.

Revision history for this message
rojer (rojer9) wrote :

regression is caused by a this patch applied with the 3.2.0.58 -> 3.2.0.59 update which happened between -64 and -65 (LP#1319885):

drm/vmwgfx: correct fb_fix_screeninfo.line_length

rolling back just that one patch fixes the issue.

Revision history for this message
rojer (rojer9) wrote :
Revision history for this message
cfriedt (chrisfriedt) wrote :

The issue is with xorg-video-vmware, not vmwgfx.

Revision history for this message
cfriedt (chrisfriedt) wrote :

correction. might be an issue with vmwgfx kms / fbdev. further discussion is happening on LKML.

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in xserver-xorg-video-vmware (Ubuntu):
status: New → Confirmed
Revision history for this message
ubuntu-tester (ubuntu-tester1) wrote :

I have the same "split screen" issue on Ubuntu 14.04 (trusty tahr) with kernels :
- linux-image-3.13.0-29-generic
- linux-image-3.13.0-30-generic

It works fine with kernels :
- linux-image-3.13.0-24-generic
- linux-image-3.13.0-27-generic

Revision history for this message
ubuntu-tester (ubuntu-tester1) wrote :

In addition to my previous comment about Ubuntu 14.04 VM on vmware player 6.0.2 :
- If I use my usual script that create VM in version "Workstation 6.5-7.x virtual machine" : I have the "split screen" issue.
- If I configure manually, the VM is created in version "Workstation 10.0 virtual machine" : I don't have the "split screen" issue.

I guess it's the same for ubuntu 12.04 (I will test). I hope there will be a solution to this issue because upgrade all VM to the version "Workstation 10.0 virtual machine", and all clients to vmware player 6.0.2 is quite complicated.

if you need specific information, don't hesitate to contact me.

Revision history for this message
cfriedt (chrisfriedt) wrote :

Hi cedricg91,

While I don't have a Windows 7 PC handy, I have tested using the following two host environments.

* ElementaryOS (VMWare Player 6.0.2 build-1744117 / 3D acceleration OFF)
* Mac OS X Mountain Lion (VMWare Fusion 5.0.4 1435862 / 3D acceleration ON)

With each of these host environments, I've tested both
* Ubuntu 12.04 LTS
  kernels:
    * 3.11.0-24-generic
    * latest git as of yesterday
    * 3.2.0-58-generic
    * 3.2.0-59-generic
    * 3.2.0-63-generic
    * 3.2.0-64-generic
* Ubuntu 14.04 LTS
    * kernels: 3.13.0-24-generic
    * latest git as of yesterday

Note: in the 12.04 test, I performed tests with several of the "narrowed down" versions that users reported in the link below.

https://communities.vmware.com/message/2388776

With each of the above Ubuntu installations, there were no packages or settings changed from the default installation options (aside from vmware-tools). Only Ubuntu-recommended updates were performed.

For each of these Ubuntu installations, on each of the host environments, I have used both KMS and fbdev API's. In KMS mode (via X / Unity desktop), aside from regular usage, I've resized the screen using the guest OS (Ubuntu's "System Settings") and also resized using the VMWare window in the host environment.

I have not been able to reproduce the split-screen issue.

Just a couple of comments:

* Is it possible that this issue ONLY occurs with a Windows (7?) host environment? VMWare folks?
* I would be very surprised if Ubuntu even used the vmware fbdev interface and have some doubt that the code path from the patch in question is even hot.

Since I do not have access to a Windows 7 host machine, I would appreciate if you could test for me.

Can you please add a logging statement in the kernel to function vmwgfx_fb.c::vmw_fb_check_var() ? E.g.

printk( KERN_INFO "fb_fix_screeninfo.line_length CODE PATH TRAVERSED\n" );

If you haven't seen the log message above - the split screen issue would most certainly have originated elsewhere.

If you do see the log message above, can you please try the following:

1) fetching the source package for a kernel that is FAILING your test,
2) reverse-applying the patch from link below
https://lkml.org/lkml/2014/2/1/41
3) recompiling the vmwgfx.ko module
4) making a backup of the original vmwgfx.ko module
5) overwriting the original vmwgfx.ko module
6) trying to reproduce the problem without the "fb_fix_screeninfo.line_length" patch

If that SOLVES the problem, please repeat the steps above with the following line removed from the patch.

vmw_write(vmw_priv, SVGA_REG_BYTES_PER_LINE, info->fix.line_length);

I greatly appreciate your effort in helping to resolve this bug - I wish I could do more, but I'm unable to reproduce it.

Thanks,

C

Revision history for this message
rojer (rojer9) wrote :

Hi Chris.

my host is a custom distro derived from Ubuntu with custom 3.13 kernel, guest is a plain 12.04 x64.
i have performed steps 1-6, this is how i isolated your patch:

1) sudo apt-get install linux-source-3.2.0=3.2.0-63.95
2) make -j3 deb-pkg, this produces linux-image-3.2.59_3.2.59-0_amd64.deb
3) dpkg -i linux-image-3.2.59_3.2.59-0_amd64.deb

this kernel boots fine, no issues.

repeat with linux-source-3.2.0=3.2.0-64.97 - this kernel boots into a "split screen".
in the same source tree, edit drivers/gpu/drm/vmwgfx/vmwgfx_fb.c to manually back out changes made in lkml/2014/2/1/41, make deb-pkg, install -> this kernel (3.2.59-2) boots normally.

i'll try removing vmw_write now.

Revision history for this message
ubuntu-tester (ubuntu-tester1) wrote :

Hi chrisfriedt,

I have the same issue on Ubuntu 14.04 host.

I found this issue on VM created with an older version of vmware player (version 5.0.x) that generate VMs in version "Workstation 6.5-7.x virtual machines". This issue is still present even if I use these VMs with the lastest version of vmware player.

According to my tests, VMs created with the lastest version of vmware player are in version "Workstation 10.0 virtual machines" and don't have this issue.

So, I think this issue is related to the version of the VM. So among people who have this issue, it may be useful to know the version of their VMs in order to reproduce the problem.

For example, about the question on https://communities.vmware.com/message/2388776, dominicus said "This install has been stable for >2yrs, but after some Ubuntu updates today, my screen now boots into 3 repeated and truncated panes." so he must have a VM with an older version.

I will try to perform tests that you noticed me and keep you informed.

Revision history for this message
rojer (rojer9) wrote :

removing (commenting out) vmw_write is not enough, the following patch still produces "split screen" output. http://pastebin.com/FYJEULF3

and to confirm what cedrig91 is saying - yes, my VM is also quite old.

Revision history for this message
ubuntu-tester (ubuntu-tester1) wrote :

Chris, Rojer,

On my Ubuntu 12.04 VM (3.2.0-64-generic kernel) I deleted /lib/modules/3.2.0-64-generic/kernel/drivers/gpu/drm/vmwgfx/vmgfx.ko and display seems to work fine now. There is no split issue and the screen resolution is dynamically configured (I have VMwareTools-9.2.2-893683 installed). On the other side, window maximization when we move an application window on the top of the desktop doesn't work.

This is not a solution, but perhaps it may give you an idea about the source of this issue.

Revision history for this message
cfriedt (chrisfriedt) wrote :

Hmm... I'm still skeptical that this code path is even touched.

Thomas Hellstrom is removing the write to BYTES_PER_LINE in any case, because it is a read-only register.

The most decisive test would be to log entry into this function call, like I said in my last message, but that would really only prove that the bug isn't because of my patch, not necessarily help to isolate the actual cause of the split screen issue.

> Can you please add a logging statement in the kernel to function vmwgfx_fb.c::vmw_fb_check_var() ? E.g.
> printk( KERN_INFO "fb_fix_screeninfo.line_length CODE PATH TRAVERSED\n" );

Thanks for all of the help!

Revision history for this message
rojer (rojer9) wrote :

booting kernel with the following patch http://pastebin.com/NBeRfwYJ and running "dmesg | grep fb_fix" comes back empty, so vmw_fb_check_var is not invoked.

however, in my setup there is a reliably reproducible link between changes to info->fix.line_length and the split screen issue: comment out info->fix.line_length changes => everything's fine, put them back in info->fix.line_length => "split screen" on boot.

Revision history for this message
ubuntu-tester (ubuntu-tester1) wrote :

I added a logging statement in the kernel to function vmwgfx_fb.c::vmw_fb_check_var() using the following patch : http://pastebin.com/7RcV49Tb

"dmesg | grep fb_fix" comes back empty.

Revision history for this message
cfriedt (chrisfriedt) wrote :

Not sure atm, but you might need to remove "quiet" from the boot args to see KERN_INFO messages.

Revision history for this message
rojer (rojer9) wrote :

i was running with quiet mode disabled but just to be sure i added a printk statement to vmw_fb_init and it does appear in the output. current patch: http://pastebin.com/4g0Pw5Bg

dmesg output:

$ dmesg | grep vmw
[ 2.014495] vmwgfx 0000:00:0f.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[ 2.041379] vmw_fb_init called
[ 2.055168] [drm] Initialized vmwgfx 2.3.0 20111025 for 0000:00:0f.0 on minor 0
[ 11.613973] init: vmware-tools pre-start process (1744) terminated with status 1
$ dmesg | grep fb_fix
(nothing)

Revision history for this message
ubuntu-tester (ubuntu-tester1) wrote :

I disabled the kernel option "quiet".
After switching to tty console, "dmesg | grep fb_fix" returns :

[ 462.793956] fb_fix_screeninfo.line_length CODE PATH TRAVERSED

Revision history for this message
cfriedt (chrisfriedt) wrote :

Oh dear...

It seems like we're narrowing it down at least, but it definitely seems to be limited to older VMWare versions and possibly only Windows hosts.

@cedricg91 would you be able to follow up with Thomas Hellstrom's request for a VM image? In fact, would you be able to just put it up publically via FTP, because I'd certainly like to test this out myself.

https://communities.vmware.com/message/2398248#2398248

Also, for anyone who has experienced this issue, would you please post your exact VMware Player version, I guess the VMware .vmx file version, and possibly also your host OS?

Revision history for this message
rojer (rojer9) wrote :

Chris, as mentioned above, my host is a modified Ubuntu 12.04 (with a newer 3.13 kernel), amd64.
i'm afraid i cannot post exact build details because it's an internal corporate build.
my player version is 6.0.2 build-1744117, guest os is a vanilla 12.04 amd64

the image i'm using was created a couple years ago using earlier versions of vmware.

Revision history for this message
ubuntu-tester (ubuntu-tester1) wrote :

Chris,

Below, the download link of an Ubuntu 12.04 VM image with the "split screen" issue.
Username : user
Password : user

http://dl.free.fr/hapWaVIAI

I don't think this is an OS host issue because I reproduced this issue on Windows and Ubuntu 14.04 hosts, and Rojer on a modified Ubuntu 12.04 host.

Revision history for this message
abePdIta (abepdita) wrote :

(sorry for my English)
I experience this issue on Ubuntu 12.04 and 14.04 with updated kernels (3.2.0-67-generic and 3.13.0-30-generic) and different DE's.
I'm on a vCenter environment so I don't use vmPlayer. I use vSphere Client 5.5.0 build 1474107 on vCenter Server 5.5.0 build 1476327. My VM's are running on a cluster of two esx hosts with wmWare proprietary OS.
I confirm that downgrading the vmwgfx.ko driver (to 3.2.0-61 in my case) as described on http://askubuntu.com/a/498749 solves the problem.
For me another solution is upgrading virtual hardware (accessible from the VM menu of the VM console when the VM is not powered on) that increments the virtualHW.version value of the vmx file from 7 to 9.

Revision history for this message
GonzO (gonzo) wrote :

Upgrading the Virtual Machine Version from 7 to 10 fixes this for me on all my VMs.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.