http://forums.gentoo.org/viewtopic.php?p=766194#766194 Reproducible: Always Steps to Reproduce: 1. 2. 3.
from dmesg: /dev/vmnet: open called by PID 25408 (vmware-vmx) bridge-eth0: set IFF_PROMISC /dev/vmnet: port on hub 0 successfully opened sr0: CDROM (ioctl) reports ILLEGAL REQUEST. Unable to handle kernel NULL pointer dereference at virtual address 000005e8 printing eip: f0dac67b *pde = 00000000 Oops: 0002 CPU: 0 EIP: 0010:[<f0dac67b>] Tainted: PF EFLAGS: 00013246 eax: 00000000 ebx: 00000001 ecx: 00000000 edx: 00000000 esi: 00000000 edi: c8a62e00 ebp: d8e63e70 esp: d8e63e58 ds: 0018 es: 0018 ss: 0018 Process vmware-vmx (pid: 1543, stackpage=d8e63000) Stack: c04121ad d8c37f00 c015e3e8 d86d6ac0 d82ae7c0 ffffffea d8e63f90 f0daa6d7 c8a62e00 00000000 c8a62e00 c8a62e00 d8c3e0c0 00203246 00000000 f0db42d7 d8c3e0c0 00000000 00203202 f0db42b8 d8c3e180 d8c3e180 00203286 d8c3e180 Call Trace: [<c04121ad>] [<f0daa6d7>] [<f0db42d7>] [<f0db42b8>] [<c040da97>] [<c0419ce6>] [<c034567a>] [<c0411f77>] [<c01d412f>] [<c01d6933>] [<c01d0dd8>] [<c021d54f>] [<c01d247b>] Code: 89 9e e8 05 00 00 50 50 8b 45 0c 50 57 e8 33 0d 00 00 83 c4
Carlo: Can you please run that OOPS through ksymoops - emerge ksymoops and do "ksymoops < file_with_OOPS > file_out", where file_with_OOPS contains the stack trace and file_out contains the resulting data from ksymoops? Please run this on the kernel on which you experience problems.
Did it. Unfortunately nothing (beside the usual options warning).
I'm just trying to figure out how this is a VMWare problem. The problem does not occur under gentoo-sources-2.4.22-r2, which means it is something that was changed in the kernel which is causing the problem. Can someone on the kernel team give me some direction on this?
*** Bug 37909 has been marked as a duplicate of this bug. ***
I guess, I found what causes this problem. The poll_initwait interface has been changed in the new kernel, but VMware still thinks it should use the old interface. I made the following changes in /opt/vmware/lib/modules/source/vmmon.tar in vmmon-only/include/compat_wait.h: I replaced line #38 with the following two lines: (defined(WE_ARE_WOLK) && LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 20)) || \ LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4 ,22) Original line #38: (defined(WE_ARE_WOLK) && LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 20)) While these modifications may not be correct in all possible configurations, it seems to work for me (note: I haven't done any extensive testing yet).
Okay at least it seems to go further than the last time! Thanks for the hint!
Okay, I'm running gentoo-sources 2.4.22-r4 now for 4 days, with the little modification posted above. Windows XP Pro (university license) works flawless. To my suprise, winxp boots in about 40 seconds in VMware, but needs about 80 seconds on the same hardware, non emulated :) So I think, it would be best to update the VMware-workstation ebuild and close this bug as fixed!
Additional Information from vmware-config.pl `/tmp/vmware-config2/vmmon-only/driver-2.4.22-r5-2004011913' ../linux/hostif.c: In function `HostIF_SemaphoreWait': ../linux/hostif.c:1818: warning: passing arg 1 of `poll_initwait_Rsmp_ce49a19e' from incompatible pointer type ../linux/hostif.c:1835: warning: passing arg 1 of `poll_freewait_Rsmp_9ce323ee' from incompatible pointer type
vmmon patch (comment #6) with gentoo-sources-2.4.22-r4 is work fine. but with gentoo-sources-2.4.22-r5, kernel panic and freeze. Jan 24 16:56:17 [kernel] kernel BUG at filemap.c:81! Jan 24 16:56:17 [kernel] Unable to handle kernel paging request at virtual addre ss 17b970b4 Jan 24 16:56:37 [kernel] Unable to handle kernel NULL pointer dereference at vir tual address 00000000 Jan 24 16:58:35 [kernel] Unable to handle kernel NULL pointer dereference at vir tual address 00000009
...Um. It has been almost a month. Any update? I still can't use VmWare with a 2.4.22_r5 kernel as noted above...
I was using it with gentoo-sources-2.4.22-r5 now several days -> worked. I still have to try with -r7. BTW: I'm using network connections within VMware and my USB mouse (but emulated as PS/2 mouse). My logitech IO Pen is not recognized :( WinXP in VMware doesn't even show an unsupported device :(
I'm using vmware-workstation 4.0.5.6030-r1. vmware don't work with gentoo-sources-2.4.22-r7, but work fine with gs-sources-2.4.25_pre7-r2. I suppose epoll patch is cause of this problem.
Hirose: care to elaborate?
I tested vmware-workstation-4.0.5.6030-r1 with some sys-kernel/*. OK o gs-sources-2.4.25_pre7-r2 o vanilla-sources-2.4.25 o gentoo-sources-2.4.22-r2 o gentoo-sources-2.4.22-r4 (patched comment #6) NG o gentoo-sources-2.4.22-r7 o gentoo-sources-2.4.22-r5 with gentoo-sources-2.4.22-r{5,7}, if start guest OS (Windows 2000), then kernel oops occur and vmware freeze. 1. strace when freeze is as follows. (snip) gettimeofday({1077951059, 681523}, NULL) = 0 ioctl(32, FIONREAD, [0]) = 0 poll( <unfinished ...> ^^^^ 2. difference between gentoo-sources-2.4.22-r2 and 2.4.22-r4 which seems to be relat3ed is epoll patch in /usr/src/linux-2.4.22-gentoo-r{3,4}/patches.txt. For two reasons, I suppose epoll patch is cause of this problem. --- Unable to handle kernel NULL pointer dereference at virtual address 000005e8 printing eip: f8e1f6b2 *pde = 00000000 Oops: 0002 CPU: 0 EIP: 0010:[<f8e1f6b2>] Tainted: PF EFLAGS: 00010246 eax: 00000000 ebx: 00000001 ecx: 00000000 edx: c0000000 esi: 00000000 edi: c283ba00 ebp: c40b1e70 esp: c40b1e58 ds: 0018 es: 0018 ss: 0018 Process vmware-vmx (pid: 3119, stackpage=c40b1000) Stack: 00000000 00003286 42a26000 c2486f80 c33c1500 ffffffea c40b1f90 f8e1d6cf c283ba00 00000000 c283ba00 c283ba00 c40b0000 00003ac1 00003ac0 00003282 00000000 c010360c c010360c c01037a8 00000001 00003202 c01f661f c01e9f95 Call Trace: [<f8e1d6cf>] [<c01f661f>] [<c01e9f95>] [<c02155db>] [<c01f6842>] [<c023166f>] [<c03eef1c>] [<c01eac30>] [<c01eb123>] [<c020ee2a>] [<c01c5cff>] Code: 89 9e e8 05 00 00 50 50 8b 45 0c 50 57 e8 2c 0d 00 00 83 c4
This bug persists with 2.4.22-gentoo-r7. It is not possible to even compile the vmware stuff w/o warning (which, in fact, seem to be errors preventing vmware to work properly); # vmware-config.pl Making sure VMware Workstation's services are stopped. Stopping VMware services: Virtual machine monitor done Bridged networking on /dev/vmnet0 done DHCP server on /dev/vmnet8 done NAT networking on /dev/vmnet8 done Host-only networking on /dev/vmnet8 done Virtual ethernet done Trying to find a suitable vmmon module for your running kernel. None of VMware Workstation's pre-built vmmon modules is suitable for your running kernel. Do you want this program to try to build the vmmon module for your system (you need to have a C compiler installed on your system)? [yes] y Using compiler "/usr/bin/gcc". Use environment variable CC to override. What is the location of the directory of C header files that match your running kernel? [/lib/modules/2.4.22-gentoo-r7/build/include] Extracting the sources of the vmmon module. Building the vmmon module. make: Entering directory `/tmp/vmware-config0/vmmon-only' make[1]: Entering directory `/tmp/vmware-config0/vmmon-only' make[2]: Entering directory `/tmp/vmware-config0/vmmon-only/driver-2.4.22-gentoo-r7' make[2]: Leaving directory `/tmp/vmware-config0/vmmon-only/driver-2.4.22-gentoo-r7' make[2]: Entering directory `/tmp/vmware-config0/vmmon-only/driver-2.4.22-gentoo-r7' ../include/vm_asm.h: In function `Div643264': ../include/vm_asm.h:1095: warning: use of memory input without lvalue in asm operand 4 is deprecated ../linux/hostif.c: In function `HostIF_SemaphoreWait': ../linux/hostif.c:1818: warning: passing arg 1 of `poll_initwait_R7306442a' from incompatible pointer type ../linux/hostif.c:1835: warning: passing arg 1 of `poll_freewait_Re4108fbc' from incompatible pointer type ../include/vm_asm.h: In function `Div643264': ../include/vm_asm.h:1095: warning: use of memory input without lvalue in asm operand 4 is deprecated ../include/vm_asm.h: In function `Vmx86_GetkHzEstimate': ../include/vm_asm.h:1095: warning: use of memory input without lvalue in asm operand 4 is deprecated ../include/vm_asm.h: In function `Div643264': ../include/vm_asm.h:1095: warning: use of memory input without lvalue in asm operand 4 is deprecated ../include/vm_asm.h: In function `Div643264': ../include/vm_asm.h:1095: warning: use of memory input without lvalue in asm operand 4 is deprecated make[2]: Leaving directory `/tmp/vmware-config0/vmmon-only/driver-2.4.22-gentoo-r7' make[1]: Leaving directory `/tmp/vmware-config0/vmmon-only' make: Leaving directory `/tmp/vmware-config0/vmmon-only' The module loads perfectly in the running kernel. Extracting the sources of the vmnet module. Building the vmnet module. make: Entering directory `/tmp/vmware-config0/vmnet-only' vm_asm.h: In function `Div643264': vm_asm.h:1095: warning: use of memory input without lvalue in asm operand 4 is deprecated vm_asm.h: In function `Div643264': vm_asm.h:1095: warning: use of memory input without lvalue in asm operand 4 is deprecated vm_asm.h: In function `Div643264': vm_asm.h:1095: warning: use of memory input without lvalue in asm operand 4 is deprecated vm_asm.h: In function `Div643264': vm_asm.h:1095: warning: use of memory input without lvalue in asm operand 4 is deprecated vm_asm.h: In function `Div643264': vm_asm.h:1095: warning: use of memory input without lvalue in asm operand 4 is deprecated vm_asm.h: In function `Div643264': vm_asm.h:1095: warning: use of memory input without lvalue in asm operand 4 is deprecated make: Leaving directory `/tmp/vmware-config0/vmnet-only' The module loads perfectly in the running kernel. You have already setup networking. Would you like to skip networking setup and keep your old settings as they are? (yes/no) [yes]
Man... you guys rock on the verbosity... thank you... Unfortunately, this is getting a bit beyond my scope of expertise... so I'm going to start bugging the x86-kernel guys and see if they can help.... stay tuned for the next exciting episode... same bat time... same bat channel...
What if you use the new 4.5.1 ebuild? Same problems? I know it fixes quite a few problems with 2.6 kernels.
Chris: The fix in comment #6 seem to work for a lot of people (including myself, gentoo-sources-2.4.22-r7) and I saw no negative report in forums.g.o. Why not just applying the changes? Personally I don't tend to switch to vmware 4.5.1 yet.
I was mostly asking since the 4.5.1 ebuild is going to be marked stable soon and 4.0.x will be removed. They use the same licenses, so there's no need to keep the older version around, especially if the newer version fixes many of the problems without requiring patching.
This did it for me, thanks for the tip. The 4.5.1 ebuild works flawlessly under 2.4.22-gentoo-r7.
I'm going to resolve this bug and mark the new vmware version as stable.