System crashed afrer upgrade from 0.7.3.0 to 0.7.4.0 and COLINUX_NO_SMP_WORKAROUND=Y
OS Windows XP,2003
Error code is:
0x1000007f (0x00000008, 0xba338d70, 0x00000000, 0x00000000). A
http://msdn.microsoft.com/en-us/library/ms795478.aspx
--------
Bug Check 0x7F: UNEXPECTED_KERNEL_MODE_TRAP
Parameter: 0x00000008, or Double Fault, indicates that an exception occurs during a call to the handler for a prior exception. Typically, the two exceptions are handled serially. However, there are several exceptions that cannot be handled serially, and in this situation the processor signals a double fault. There are two common causes of a double fault:
A kernel stack overflow. This overflow occurs when a guard page is hit, and the kernel tries to push a trap frame. Because there is no stack left, a stack overflow results, causing the double fault. If you think this overview has occurred, use the !thread debugger extension to determine the stack limits, and then use the kb (Display Stack Backtrace) debugger command with a large parameter (for example, kb 100) to display the full stack.
A hardware problem.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Are you sure to have upgrade it right, and the driver was successfully replaced?
Have you tried
1. execute "colinux-daemon --remove-driver"
2. execute "colinux-daemon --install-driver"
Does it also crash without "COLINUX_NO_SMP_WORKAROUND=Y" ?
Do you have a minidump and can you please analyze it? (see debugging.txt)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
checking if the driver is installed
current state: 4 (fully initialized)
current number of monitors: 0
current linux api version: 12
current periphery api version: 22
Driver compiled on: Wed Apr 15 18:59:08 2009
-----------------------------------------------------------
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
UNEXPECTED_KERNEL_MODE_TRAP (7f)
This means a trap occurred in kernel mode, and it's a trap of a kind
that the kernel isn't allowed to have/catch (bound trap) or that
is always instant death (double fault). The first number in the
bugcheck params is the number of the trap (8 = double fault, etc)
Consult an Intel x86 family manual to learn more about what these
traps are. Here is a *portion* of those codes:
If kv shows a taskGate
use .tss on the part before the colon, then kv.
Else if kv shows a trapframe
use .trap on that value
Else
.trap on the appropriate frame will show where the trap was taken
(on x86, this will be the ebp that goes with the procedure KiTrap)
Endif
kb will then show the corrected stack.
Arguments:
Arg1: 00000008, EXCEPTION_DOUBLE_FAULT
Arg2: ba338d70
Arg3: 00000000
Arg4: 00000000
-----------------------------------------------------
MODULE_NAME: nt
When it's crashing? Some times after install (without starting colinux-daemon)?
After executing the kernel (with or without boot messages)?
Or on shutdown coLinux?
Do you used the file "vmlinux", that was distributed with the installation (or a self made kernel)?
Runs the quick test with initrd and the kernel from installation directory
"colinux-daemon kernel=vmlinux initrd=initrd.gz root=/dev/ram0" ?
I afraid, it is the change on "sysenter" (X86_FEATURE_SEP).
Add "nosep" to the kernel command line and try to boot. This will disable the SEP feature on Linux side.
You can try some of the changes, step by step from snapshot archive: http://www.henrynestler.com/colinux/testing/devel-0.8.0/
20080823-Snapshot : SVN revision r1118 without sysenter
20080907-Snapshot : SVN revision r1119 with sysenter
PS: Please login on SF berore answer. So, we know, that is the same user from beginning.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
>Do you used the file "vmlinux", that was distributed with the installation
>(or a self made kernel)?
- distributed with the installation
>Runs the quick test with initrd and the kernel from installation
>directory
>"colinux-daemon kernel=vmlinux initrd=initrd.gz root=/dev/ram0" ?
BOOT OK !!!!!
but, if remove root=/dev/ram0, windows crashed after few seconds !!!
colinux-daemon kernel=vmlinux initrd=initrd.gz -> Crash after few seconds
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Processors Information
------------------------------------------------------------------------------------
Processor 1 (ID = 0)
Number of cores 2 (max 2)
Number of threads 2 (max 2)
Name Intel Pentium D 820
Codename SmithField
Specification Intel(R) Pentium(R) D CPU 2.80GHz
Package Socket 775 LGA (platform ID = 4h)
CPUID F.4.7
Extended CPUID F.4
Core Stepping B0
Technology 90 nm
Core Speed 2800.2 MHz (14.0 x 200.0 MHz)
Rated Bus speed 800.1 MHz
Stock frequency 2800 MHz
Instructions sets MMX, SSE, SSE2, SSE3, EM64T
L1 Data cache 2 x 16 KBytes, 8-way set associative, 64-byte line size
Trace cache 2 x 12 Kuops, 8-way set associative
L2 cache 2 x 1024 KBytes, 8-way set associative, 64-byte line size
FID/VID Control no
Features XD
----- colinux /proc/cpuinfo ----
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Pentium(R) D CPU 2.80GHz
stepping : 7
cpu MHz : 2800.000
cache size : 1024 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat
pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni mon
itor ds_cpl cid cx16 xtpr lahf_lm
bogomips : 5688.52
clflush size : 64
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
http://msdn.microsoft.com/en-us/library/ms795478.aspx
--------
Bug Check 0x7F: UNEXPECTED_KERNEL_MODE_TRAP
Parameter: 0x00000008, or Double Fault, indicates that an exception occurs during a call to the handler for a prior exception. Typically, the two exceptions are handled serially. However, there are several exceptions that cannot be handled serially, and in this situation the processor signals a double fault. There are two common causes of a double fault:
A kernel stack overflow. This overflow occurs when a guard page is hit, and the kernel tries to push a trap frame. Because there is no stack left, a stack overflow results, causing the double fault. If you think this overview has occurred, use the !thread debugger extension to determine the stack limits, and then use the kb (Display Stack Backtrace) debugger command with a large parameter (for example, kb 100) to display the full stack.
A hardware problem.
Are you sure to have upgrade it right, and the driver was successfully replaced?
Have you tried
1. execute "colinux-daemon --remove-driver"
2. execute "colinux-daemon --install-driver"
Does it also crash without "COLINUX_NO_SMP_WORKAROUND=Y" ?
Do you have a minidump and can you please analyze it? (see debugging.txt)
Yes,
dir linux.sys
15.04.2009 г. 21:59 84 992 linux.sys
------------------------------------------------------
C:\Program Files\coLinux>colinux-daemon.exe --remove-driver
Cooperative Linux Daemon, 0.7.4
Daemon compiled on Wed Apr 15 18:59:08 2009
------------------------------------------------------
C:\Program Files\coLinux>colinux-daemon.exe --install-driver
Cooperative Linux Daemon, 0.7.4
Daemon compiled on Wed Apr 15 18:59:08 2009
loading C:\Program Files\coLinux\linux.sys
daemon: driver installed
------------------------------------------------------
C:\Program Files\coLinux>colinux-daemon.exe --status-driver
Cooperative Linux Daemon, 0.7.4
Daemon compiled on Wed Apr 15 18:59:08 2009
checking if the driver is installed
current state: 4 (fully initialized)
current number of monitors: 0
current linux api version: 12
current periphery api version: 22
Driver compiled on: Wed Apr 15 18:59:08 2009
-----------------------------------------------------------
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
UNEXPECTED_KERNEL_MODE_TRAP (7f)
This means a trap occurred in kernel mode, and it's a trap of a kind
that the kernel isn't allowed to have/catch (bound trap) or that
is always instant death (double fault). The first number in the
bugcheck params is the number of the trap (8 = double fault, etc)
Consult an Intel x86 family manual to learn more about what these
traps are. Here is a *portion* of those codes:
If kv shows a taskGate
use .tss on the part before the colon, then kv.
Else if kv shows a trapframe
use .trap on that value
Else
.trap on the appropriate frame will show where the trap was taken
(on x86, this will be the ebp that goes with the procedure KiTrap)
Endif
kb will then show the corrected stack.
Arguments:
Arg1: 00000008, EXCEPTION_DOUBLE_FAULT
Arg2: ba338d70
Arg3: 00000000
Arg4: 00000000
-----------------------------------------------------
MODULE_NAME: nt
FAULTING_MODULE: 804d7000 nt
DEBUG_FLR_IMAGE_TIMESTAMP: 498c11d3
BUGCHECK_STR: 0x7f_8
DEFAULT_BUCKET_ID: DRIVER_FAULT
LAST_CONTROL_TRANSFER: from 00000000 to 80543561
STACK_TEXT:
STACK_COMMAND: kb
FOLLOWUP_IP:
nt!Kei386EoiHelper+16a5
80543561 ebee jmp nt!Kei386EoiHelper+0x1695 (80543551)
SYMBOL_STACK_INDEX: 0
SYMBOL_NAME: nt!Kei386EoiHelper+16a5
FOLLOWUP_NAME: MachineOwner
IMAGE_NAME: ntkrpamp.exe
BUCKET_ID: WRONG_SYMBOLS
Followup: MachineOwner
---------
Hm, that's odd.
When it's crashing? Some times after install (without starting colinux-daemon)?
After executing the kernel (with or without boot messages)?
Or on shutdown coLinux?
Do you used the file "vmlinux", that was distributed with the installation (or a self made kernel)?
Runs the quick test with initrd and the kernel from installation directory
"colinux-daemon kernel=vmlinux initrd=initrd.gz root=/dev/ram0" ?
Such crash is typically from the code in our passage page, because we don't have a trap handler there.
The changes on passage page between 0.7.3 (SVN r1055) and 0.7.4 (SVN r1245) are minimal. Exactly it was only r1198, r1192 and r1119:
http://colinux.svn.sourceforge.net/viewvc/colinux/branches/devel/src/colinux/arch/i386/passage.c?view=log&pathrev=1245
I afraid, it is the change on "sysenter" (X86_FEATURE_SEP).
Add "nosep" to the kernel command line and try to boot. This will disable the SEP feature on Linux side.
You can try some of the changes, step by step from snapshot archive:
http://www.henrynestler.com/colinux/testing/devel-0.8.0/
20080823-Snapshot : SVN revision r1118 without sysenter
20080907-Snapshot : SVN revision r1119 with sysenter
PS: Please login on SF berore answer. So, we know, that is the same user from beginning.
>Do you used the file "vmlinux", that was distributed with the installation
>(or a self made kernel)?
- distributed with the installation
>Runs the quick test with initrd and the kernel from installation
>directory
>"colinux-daemon kernel=vmlinux initrd=initrd.gz root=/dev/ram0" ?
BOOT OK !!!!!
but, if remove root=/dev/ram0, windows crashed after few seconds !!!
colinux-daemon kernel=vmlinux initrd=initrd.gz -> Crash after few seconds
Previous is not entirely true.
first time: "colinux-daemon kernel=vmlinux initrd=initrd.gz root=/dev/ram" -> BOOT OK!!!
second time: "colinux-daemon kernel=vmlinux initrd=initrd.gz root=/dev/ram" -> CRASH !!!
Blue screen
BCCode : 1000007f BCP1 : 00000008 BCP2 : 80042000 BCP3 : 00000000
BCP4 : 00000000 OSVer : 5_1_2600 SP : 3_0 Product : 256_1
Dimitar,
please say, works 0.7.4 without COLINUX_NO_SMP_WORKAROUND=Y ?
Works an older snapsot? For example:
http://www.henrynestler.com/colinux/testing/devel-0.8.0/
20080823-Snapshot
with 20080823-Snapshot work - OK !
And 20080907-Snapshot crashed, with same configuration?
What is the CPU manufacturer (Intel or AMD)?
What detected a Linux (better would be a native Linux or Knoppix) for this cpu in the flags?
type: cat /proc/cpuinfo
PS:
2008-08-23T14:15:00 r1118 is without sysenter support
2008-09-07T12:26:17 r1119 is the first build with sysenter
Processors Information
------------------------------------------------------------------------------------
Processor 1 (ID = 0)
Number of cores 2 (max 2)
Number of threads 2 (max 2)
Name Intel Pentium D 820
Codename SmithField
Specification Intel(R) Pentium(R) D CPU 2.80GHz
Package Socket 775 LGA (platform ID = 4h)
CPUID F.4.7
Extended CPUID F.4
Core Stepping B0
Technology 90 nm
Core Speed 2800.2 MHz (14.0 x 200.0 MHz)
Rated Bus speed 800.1 MHz
Stock frequency 2800 MHz
Instructions sets MMX, SSE, SSE2, SSE3, EM64T
L1 Data cache 2 x 16 KBytes, 8-way set associative, 64-byte line size
Trace cache 2 x 12 Kuops, 8-way set associative
L2 cache 2 x 1024 KBytes, 8-way set associative, 64-byte line size
FID/VID Control no
Features XD
----- colinux /proc/cpuinfo ----
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Pentium(R) D CPU 2.80GHz
stepping : 7
cpu MHz : 2800.000
cache size : 1024 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat
pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni mon
itor ds_cpl cid cx16 xtpr lahf_lm
bogomips : 5688.52
clflush size : 64