Also, if you haven't seen it, this page documents some of the methods
you can use to debug what's going on.

http://www.gem5.org/Debugging

The section called "Trace-based debugging" will probably be the most
useful. Be sure to only trace a portion of execution at a time. Tracing
too much creates some enormous files that are hard to work with.

Gabe

On 12/15/11 15:25, Gabe Black wrote:
> Where bottom >= top, is bottom really greater than or equal to top? Or
> in other words, is the comparison returning the wrong result, or are
> the values wrong in the first place? If it's the comparison that's
> wrong, that would be a bit surprising but easier to debug because it's
> pretty contained. If it's the values you'll need to figure out where
> those get corrupted, or if they were passed to Linux incorrectly from
> the start. Thank you for digging into the problem on your own.
>
> Gabe
>
> On 12/15/11 06:21, Anders Handler wrote:
>> Hi,
>>
>> X86 kernels version >2.6.32 (here 3.1.0) still gets the error "Cannot
>> allocate trampoline". Seems like the memory regions does not get
>> initialized correctly.
>>
>> The stack trace is:
>> [ 0.000000] Kernel panic - not syncing: Cannot allocate trampoline
>> [ 0.000000]
>> [ 0.000000] Pid: 0, comm: swapper Not tainted 3.1.0-gentoo #13
>> [ 0.000000] Call Trace:
>> [ 0.000000] [<ffffffff816772ab>] panic+0x8c/0x192
>> [ 0.000000] [<ffffffff81c9f733>] setup_trampolines+0x52/0xb1
>> [ 0.000000] [<ffffffff81c9ce1b>] setup_arch+0x5ca/0xabb
>> [ 0.000000] [<ffffffff816773ed>] ? printk+0x3c/0x3e
>> [ 0.000000] [<ffffffff81cad37e>] ? cgroup_init_early+0x25b/0x276
>> [ 0.000000] [<ffffffff81c998a1>] start_kernel+0x82/0x312
>> [ 0.000000] [<ffffffff81c99322>] x86_64_start_reservations+0x132/0x136
>> [ 0.000000] [<ffffffff81c99417>] x86_64_start_kernel+0xf1/0xf8
>> [ 0.000000] [<ffffffff81c99326>] x86_64_start_reservations+0x136/0x136
>>
>> A further investigation shows that in /arch/x86/kernel/trampoline.c
>> function setup_trampolines we call /mm/memblock.c,
>> memblock_find_in_range which again calls memblock_find_base.
>> Here we loop through the memory regions, where there is only 1, but
>> that is expected. Unfortunatly the line:
>> if (bottom >= top)
>> Evaluates to true, thus we never have a chance to call
>> memblock_find_region.
>> http://lxr.linux.no/linux+v3.1/mm/memblock.c#L111
>>
>> Gem5 does not cast any faults.
>>
>> Any help/suggestions is really appreciated.
>>
>>
>> Best regards
>> Anders
>>
>>
>> On Tue, Nov 29, 2011 at 10:15 AM, huangyongbing
>> <[email protected] <mailto:[email protected]>> wrote:
>>
>>     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] <mailto:[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]
>>>>         <mailto:[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] <mailto:[email protected]>
>>>>             http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>>>
>>>>
>>>>
>>>>         _______________________________________________
>>>>         gem5-users mailing list
>>>>         [email protected] <mailto:[email protected]>
>>>>         http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>>
>>>
>>>         _______________________________________________
>>>         gem5-users mailing list
>>>         [email protected] <mailto:[email protected]>
>>>         http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>>
>>>
>>>
>>>     _______________________________________________
>>>     gem5-users mailing list
>>>     [email protected] <mailto:[email protected]>
>>>     http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>
>>
>>     _______________________________________________
>>     gem5-users mailing list
>>     [email protected] <mailto:[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