From: Nuno L. <nt...@gm...> - 2006-05-18 00:17:44
|
Hello all. Got some free time and decided to try to track this long standing issue. I believe it's the first time we have a full bugcheck analysis of the problem, so many thanks to the user who made it available. Got the 0.6.3 revision building from scratch (so it should compile the same and could get the unstriped binaries) and this is the "translated" backtrace: linux+0xa4b4 _nx_protect_switch_wrapper (0001a460) linux+0x2041 _co_monitor_ioctl (00011d40) linux+0x4426 _co_manager_ioctl (000141f0) linux+0x6b13 _co_manager_dispatch (00016a10) linux+0x6b53 _dispatch_wrapper (00016b40) nt!IopfCallDriver+0x31 [...] kernel32!DeviceIoControl+0xdd colinux_daemon+0x962e _co_os_manager_ioctl (004095f0) colinux_daemon+0x4b06 _co_manager_io_monitor (00404ad0) colinux_daemon+0x4eff _co_user_monitor_run (00404ee0) colinux_daemon+0x4933 _co_daemon_run (00404690) colinux_daemon+0x1419 _co_winnt_daemon_main (00401390) colinux_daemon+0x16f6 _co_winnt_main (00401520) colinux_daemon+0x184f _WinMain (00401830) colinux_daemon+0xdcca _main (0040dbc0) colinux_daemon+0x1237 ___mingw_CRTStartup (00401150) colinux_daemon+0x1288 _mainCRTStartup (00401270) kernel32!BaseProcessStart+0x23 So the problem is at the NX/DEP code, and as it was working on AMD64 machines (the code was written before the "new" P4's with the NX feature), it seems co_switch() is not compatible with this new Pentium 4 CPUs when NX/DEP is enabled (and PAE needs to be enabled too). linux+0xa4b4 points to the instruction following the co_switch() call, so it's something wrong on the passage code. Well, no more free time today and no machine where I can test any quick fix (I don't even have a windows machine to test it), but I would make sure co_arch_anti_nx_init only initializes the "anti NX" code if the CPU is an AMD64 and fail to do it on Intel until we get around to fix it (we can't call a version stable if it crashes some users computers). For the interested parties, lxr colinux source site is back up: colinux daemons: http://xpto.ath.cx/~lucas/colxr/source colinux kernel: http://xpto.ath.cx/~lucas/lxr/source (no free text search and source diff working yet). The NX functions file is here: http://xpto.ath.cx/~lucas/colxr/source/src/colinux/arch/i386/antinx.c Best regards, ~Nuno Lucas |