Hey Gabe, When I try to boot older versions of Linux (2.6.28.4, 2.6.22.9), I'm running into a kernel panic related to xsave ( http://lxr.free-electrons.com/source/arch/x86/kernel/xsave.c?v=2.6.32#L323):
*FP/SSE not shown under xsave features 0xd* ------------[ cut here ]------------ kernel BUG at arch/x86/kernel/xsave.c:323! invalid opcode: 0000 [#1] SMP last sysfs file: CPU 0 Modules linked in: Pid: 0, comm: swapper Tainted: G W 2.6.28-rc4-dirty #5 RIP: 0010:[<ffffffff808d69e7>] [<ffffffff808d69e7>] xsave_cntxt_init+0x35/0x130 RSP: 0018:ffffffff808c3f18 EFLAGS: 000000b8 RAX: 000000000000002d RBX: ffffffff808c3f48 RCX: 00000000ffffffff RDX: ffffffff807c3c38 RSI: 0000000000000074 RDI: ffffffff8094a5f4 RBP: 0000000000000000 R08: 00000000ffffffff R09: 00000000000003fd R10: 0000000000000000 R11: 0000000000000000 R12: ffffffff807a8340 R13: 0000000000000005 R14: 00000000ffff8800 R15: ffff88000101f000 FS: 0000000000000000(0000) GS:ffffffff808bd980(0000) knlGS:0000000000000000 CS: 0010 DS: 0018 ES: 0018 CR0: 0000000080050033 CR2: 0000000000000000 CR3: 0000000000201000 CR4: 00000000000006a0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000000 Process swapper (pid: 0, threadinfo ffffffff808c2000, task ffffffff807a8340) Stack: ffffffff808c3f48 ffffffff8060e2b1 0000000000000010 ffffffff8060fa3f 0000000000000020 fffffff000000000 0100890239802087 00000000ffff8800 ffffffff808c3f88 ffffffffffffffff 0000000000000040 ffffffff808f7700 Call Trace: [<ffffffff8060e2b1>] fpu_init+0x4a/0x97 [<ffffffff8060fa3f>] cpu_init+0x319/0x33f [<ffffffff808cdab5>] start_kernel+0x1b2/0x321 [<ffffffff808cd405>] x86_64_start_kernel+0xd9/0xdd Code: 48 c1 e2 20 89 c0 48 8d 34 02 48 89 f0 48 89 35 90 96 05 00 83 e0 03 48 83 f8 03 74 12 48 c7 c7 10 82 71 80 31 c0 e8 4d e6 d3 ff <0f> 0b eb fe f6 05 b5 70 fe ff 04 48 c7 05 63 96 05 00 03 00 00 RIP [<ffffffff808d69e7>] xsave_cntxt_init+0x35/0x130 RSP <ffffffff808c3f18> ---[ end trace 4eaa2a86a8e2da22 ]--- Kernel panic - not syncing: Attempted to kill the idle task! ------------[ cut here ]------------ WARNING: at kernel/smp.c:333 smp_call_function_mask+0x1de/0x250() Modules linked in: Pid: 0, comm: swapper Tainted: G D W 2.6.28-rc4-dirty #5 Call Trace: [<ffffffff8023af92>] warn_on_slowpath+0x62/0xa0 [<ffffffff803a4159>] vsnprintf+0x449/0x6b0 [<ffffffff803a3a84>] string+0x34/0xf0 [<ffffffff803a4118>] vsnprintf+0x408/0x6b0 [<ffffffff802547dd>] up+0xd/0x40 [<ffffffff8023b6de>] release_console_sem+0x1ae/0x200 [<ffffffff8021ef40>] stop_this_cpu+0x0/0x30 [<ffffffff8025db9e>] smp_call_function_mask+0x1de/0x250 [<ffffffff803a3f78>] vsnprintf+0x268/0x6b0 [<ffffffff80615074>] printk+0x40/0x45 [<ffffffff8021ef30>] native_smp_send_stop+0x20/0x30 [<ffffffff80614f8d>] panic+0x82/0x129 [<ffffffff8023ecae>] do_exit+0x7de/0x890 [<ffffffff80615074>] printk+0x40/0x45 [<ffffffff806184ba>] oops_end+0x7a/0xc0 [<ffffffff8020d3d4>] do_invalid_op+0x84/0xa0 [<ffffffff808d69e7>] xsave_cntxt_init+0x35/0x130 [<ffffffff8023b6de>] release_console_sem+0x1ae/0x200 [<ffffffff802547dd>] up+0xd/0x40 [<ffffffff806178e9>] error_exit+0x0/0x51 [<ffffffff808d69e7>] xsave_cntxt_init+0x35/0x130 [<ffffffff808d69e7>] xsave_cntxt_init+0x35/0x130 [<ffffffff8060e2b1>] fpu_init+0x4a/0x97 [<ffffffff8060fa3f>] cpu_init+0x319/0x33f [<ffffffff808cdab5>] start_kernel+0x1b2/0x321 [<ffffffff808cd405>] x86_64_start_kernel+0xd9/0xdd ---[ end trace 4eaa2a86a8e2da22 ]--- Based on the commit message, it looks like this patch might have enabled Linux boot features through the xsave setting. Can you please let me know which of the bits in the CpuidResult vector I should disable to test if xsave is the problem? Thanks! Joel On Wed, Jan 7, 2015 at 12:06 AM, Gabe Black via gem5-dev <gem5-dev@gem5.org> wrote: > changeset 5d119a460f15 in /z/repo/gem5 > details: http://repo.gem5.org/gem5?cmd=changeset;node=5d119a460f15 > description: > x86: Enable three bits in the FamilyModelStepping ECX CPUID > bitfield. > > These are for the monitor/mwait instructions, SSSE3, and XSAVE. > > diffstat: > > src/arch/x86/cpuid.cc | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diffs (12 lines): > > diff -r e9bc4cde5d8e -r 5d119a460f15 src/arch/x86/cpuid.cc > --- a/src/arch/x86/cpuid.cc Tue Jan 06 22:13:56 2015 -0800 > +++ b/src/arch/x86/cpuid.cc Tue Jan 06 22:15:00 2015 -0800 > @@ -154,7 +154,7 @@ > break; > case FamilyModelStepping: > result = CpuidResult(0x00020f51, 0x00000805, > - 0xe7dbfbff, 0x00000001); > + 0xe7dbfbff, 0x04000209); > break; > default: > warn("x86 cpuid: unimplemented function %u", funcNum); > _______________________________________________ > gem5-dev mailing list > gem5-dev@gem5.org > http://m5sim.org/mailman/listinfo/gem5-dev > -- Joel Hestness PhD Candidate, Computer Architecture Dept. of Computer Science, University of Wisconsin - Madison http://pages.cs.wisc.edu/~hestness/ _______________________________________________ gem5-dev mailing list gem5-dev@gem5.org http://m5sim.org/mailman/listinfo/gem5-dev