From: Nuno Lucas <ntlucas@gm...> - 2006-05-18 00:17:44
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
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)
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)
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
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:
From: George P Boutwell <george.boutwell@gm...> - 2006-05-28 01:48:49
Got a chance to run this on my computer at work that has this
problem... The utility below lists it as an Intel P4 541
On 5/19/06, Henry Nestler wrote:
> Henry Nestler wrote:
> > Or search for a tool by intel, that give the model number.
From: Henry Nestler <Henry.Ne@Arcor.de> - 2006-05-19 19:14:41
Nuno Lucas wrote:
> 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).
Would you please give an exact Model number for this intel CPU. I need
any didea, what is new in this intel. Some register are only accessable
on special CPU models. If it don't match, then a exception would crash
To find the intel model:
Or search for a tool by intel, that give the model number.
> linux+0xa4b4 points to the instruction following the co_switch() call,
> so it's something wrong on the passage code.
It is nice to see, that was detect the "NX is need", and give an idea to
find the breking code line.
Many thanks. We are long waiting for such backtrace report.