Following thread seem to have fallen silent. Was anybody able to boot Linux 3.X on gem5 finally?
Thanks Arka On 12/16/2011 08:08 AM, Anders Handler wrote: > Hi, > > My current finding suggests that the problem exists in the e820 stuff. > Maybe some changes to the handling of realModeData. > > Any help is appreciated. > > Best regards > Anders > > 2011/12/16 Anders Handler<[email protected]> > >> Hi again, >> >> I enabled memory debugging and got the following output. >> >> [ 0.000000] memblock_x86_reserve_range: [0x000f0050-0x000f005f] * >> MP-table mpf >> [ 0.000000] memblock_x86_reserve_range: [0x000f0060-0x000f019f] * >> MP-table mpc >> [ 0.000000] memblock_x86_reserve_range: [0x01de3000-0x01de3012] >> BRK >> [ 0.000000] MEMBLOCK configuration: >> [ 0.000000] memory size = 0x7f00000 >> [ 0.000000] memory.cnt = 0x1 >> [ 0.000000] memory[0x0] [0x00000000100000-0x00000007ffffff], >> 0x7f00000 bytes >> [ 0.000000] reserved.cnt = 0x2 >> [ 0.000000] reserved[0x0] [0x0000000009f000-0x000000000fffff], >> 0x61000 bytes >> [ 0.000000] reserved[0x1] [0x00000001000000-0x00000001de3012], >> 0xde3013 bytes >> >> This looks rather normal to me. So still no idea about why it does not >> work. >> >> / Anders >> >> 2011/12/16 Anders Handler<[email protected]> >> >>> Hi, >>> >>> I did indeed create a trace file, and it's huge. The check is correct, >>> but the values are false. The memblockbase is fetched from >>> memblock.memory.regions[i].base, which has been initialized with a wrong >>> value (0x10000), which is the same as top. >>> >>> I have not yet tracked down where memblock.memory.regions[i].base is >>> initialized. >>> >>> Best regards >>> Anders >>> >>> >>> 2011/12/15 Gabe Black<[email protected]> >>> >>>> ** >>>> 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]> 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]>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 >>>>>> [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 >>>>> [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 >>>> [email protected]http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users >>>> >>>> >>>> >>>> _______________________________________________ >>>> gem5-users mailing >>>> [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
