Hi, 

The Linue kernel 3.1 can pass gem5's checkes using the patch. However, there 
exists a kernel panic "Kernel panic - not syncing: Cannot allocate trampoline". 
 Additional work are needed.


Yongbing Huang





发件人: Gabe Black 
发送时间: 2011-11-29  16:05:31 
收件人: gem5-users 
抄送: 
主题: Re: [gem5-users] Problem with Linux kernel 3.1 
 
I haven't tested this at all (even to make sure it compiles) but give this a 
shot. This is a quick attempt to actually fix the check.

Gabe

On 11/28/11 20:35, huangyongbing wrote: 
Hi, 

I just tested your patch on my PC (Intel Nehalem), but unfortunately it didn't 
work.


Yongbing Huang





发件人: Anders Handler 
发送时间: 2011-11-29  06:47:33 
收件人: gem5 users mailing list 
抄送: 
主题: Re: [gem5-users] Problem with Linux kernel 3.1 
Hi, 


The attached patch will make it work (just disables some checks). I will make 
the right checks and send it here on Wednesday.


The problem was some faulty checks in src/arch/x86/isa/microops/regop.isa, 
where the descriptor-table register might fail. I'll find the appropriate 
checks in the AMD manual.


Anders




On Mon, Nov 28, 2011 at 10:38 PM, Gabe Black <[email protected]> wrote:

What CPU are you using? How did you determine this is where it gets stuck? Have 
you traced execution near there? Does it get stuck in the microcode looping 
forever, executing the same instruction over and over, etc., or does it stop 
executing instructions all together, perpetually trying to vector to an 
exception handler for instance?

My off hand guess to what's going on is that the check that makes sure the 
selector is ok isn't handling a NULL selector properly. The AMD architecture 
manal says this:

"Null selectors can only be loaded into the DS, ES, FS and GS data-segment 
registers, and into the LDTR descriptor-table register. A #GP occurs if 
software attempts to load the CS register with a null selector or if software 
attempts to load the SS register with a null selector in non 64-bit mode or at 
CPL 3."

It sounds like you've determined that %eax should really be 0 when that 
instruction executes.

With some more information I'll try to look at this sometime in the next week 
or two.

Gabe 


On 11/28/11 05:16, Anders Handler wrote: 
Hi, 


I have the same problem. The last instruction decoded in a kernel >2.6.32 is 
8e d0                   mov    %eax,%ss
where %eax contains 0 (xor    %eax,%eax).


In 2.6.32 and earlier the segment registers was set to "movl 
$__KERNEL_DS,%eax", which in my 2.6.32 kernel was 0x18.


The code is found in head_64.S in entry point "secondary_startup_64".


Any clue why the simulator gets stuck here?




Best regards
Anders


2011/11/28 huangyongbing <[email protected]>

Hi all,

I try to run Gem5 using X86_FS and Linux kernel 3.1. The configuration file I 
use is downloaded from Gem5 website which contained in file 
'config-x86.tar.gz'. No errors are printed out by gem5. However, there is also 
nothing printed out in m5term console. Using the same configuration file, Linux 
kernel 2.6.32 is runnable on Gem5. Thus, what's the problem?


2011-11-28 



-- Yongbing Huang

_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users




_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users



_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users




_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to