Hi all, Merely a thought: Could it be as simple as Ruby not really supporting coherent devices and interactions between cacheable and uncacheable address ranges?
ARM + classic definitely works well also for full system, but it would be good if you can verify that your particular (kernel, disk image etc) setup is working. Does anyone actually have any examples of Ruby being used for “complex” full system configurations? Thanks, Andreas From: gem5-users <gem5-users-boun...@gem5.org<mailto:gem5-users-boun...@gem5.org>> on behalf of Jason Lowe-Power <ja...@lowepower.com<mailto:ja...@lowepower.com>> Reply-To: gem5 users mailing list <gem5-users@gem5.org<mailto:gem5-users@gem5.org>> Date: Monday, 27 February 2017 at 15:22 To: gem5 users mailing list <gem5-users@gem5.org<mailto:gem5-users@gem5.org>> Subject: Re: [gem5-users] Linux booting problem in ARM NOC Hi Sharjeel, It's clear that Ruby+ARM currently doesn't work. It's going to take some effort and some code changes in Ruby to get it to work correctly. It's good that a single core boots. You should try something *very simple* with 2 cores. For instance, use MI_example and the Pt2Pt topology with the simple network model. From here you'll be able to track down the problems easier. Once you have that working, you can slowly introduce other code and solve the problems that come with that. Jason On Mon, Feb 27, 2017 at 1:42 AM SHARJEEL KHILJI <sharjeelsaeedkhi...@gmail.com<mailto:sharjeelsaeedkhi...@gmail.com>> wrote: Hi, I can boot linux on following to a point indicated. I can boot the same kernel on single core CrossbarGarnet. There is some issue with multi core in ARM NOC in full system. Any suggestions please, ./build/ARM/gem5.fast configs/example/fs.py --machine-type=VExpress_GEM5_V1 --kernel /home/khilji/gem5/m5/system/binaries/vmlinux-aarch32 --disk-image /home/khilji/gem5/m5/system/disks/arm-ubuntu-natty-headless.img --dtb-filename /home/khilji/gem5/m5/system/dtb/armv7_gem5_v1_2cpu.dtb --num-cpus=2 --cpu-type=timing --ruby --num-dirs=1 --garnet-network flexible --topology Torus --mesh-rows 2 Booting Linux on physical CPU 0x0 Initializing cgroup subsys cpuset Linux version 4.3.3 (bes...@jaguar.lirmm.fr<mailto:bes...@jaguar.lirmm.fr>) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0) ) #1 SMP PREEMPT Sat Jan 30 23:15:48 CET 2016 CPU: ARMv7 Processor [410fc0f0] revision 0 (ARMv7), cr=10c5387d CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache Machine model: V2P-CA15 Ignoring memory range 0x100000000 - 0x480000000 cma: Reserved 16 MiB at 0x9f000000 Memory policy: Data cache writealloc On node 0 totalpages: 131072 free_area_init_node: node 0, pgdat 806e4300, node_mem_map 9ebf2000 Normal zone: 1024 pages used for memmap Normal zone: 0 pages reserved Normal zone: 131072 pages, LIFO batch:31 PERCPU: Embedded 12 pages/cpu @9ebd3000 s19392 r8192 d21568 u49152 pcpu-alloc: s19392 r8192 d21568 u49152 alloc=12*4096 pcpu-alloc: [0] 0 [0] 1 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 130048 Kernel command line: earlyprintk=pl011,0x1c090000 console=ttyAMA0 lpj=19988480 norandmaps rw loglevel=8 mem=512MB root=/dev/sda1 PID hash table entries: 2048 (order: 1, 8192 bytes) Dentry cache hash table entries: 65536 (order: 6, 262144 bytes) Inode-cache hash table entries: 32768 (order: 5, 131072 bytes) Memory: 496044K/524288K available (5125K kernel code, 155K rwdata, 1476K rodata, 268K init, 136K bss, 11860K reserved, 16384K cma-reserved) Virtual kernel memory layout: vector : 0xffff0000 - 0xffff1000 ( 4 kB) fixmap : 0xffc00000 - 0xfff00000 (3072 kB) vmalloc : 0xa0800000 - 0xff000000 (1512 MB) lowmem : 0x80000000 - 0xa0000000 ( 512 MB) modules : 0x7f000000 - 0x80000000 ( 16 MB) .text : 0x80008000 - 0x8067a8c8 (6603 kB) .init : 0x8067b000 - 0x806be000 ( 268 kB) .data : 0x806be000 - 0x806e4e40 ( 156 kB) .bss : 0x806e7000 - 0x807091fc ( 137 kB) SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1 Preemptible hierarchical RCU implementation. Build-time adjustment of leaf fanout to 32. RCU restricting CPUs from NR_CPUS=32 to nr_cpu_ids=2. RCU: Adjusting geometry for rcu_fanout_leaf=32, nr_cpu_ids=2 NR_IRQS:16 nr_irqs:16 16 L2C: failed to init: -19 Architected cp15 timer(s) running at 25.16MHz (virt). clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x5cdd39714, max_idle_ns: 440795202620 ns sched_clock: 56 bits at 25MHz, resolution 39ns, wraps every 4398046511084ns Switching to timer-based delay loop, resolution 39ns Console: colour dummy device 80x30 Calibrating delay loop (skipped) preset value.. 3997.69 BogoMIPS (lpj=19988480) pid_max: default: 32768 minimum: 301 Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) CPU: Testing write buffer coherency: ok /cpus/cpu@0 missing clock-frequency property /cpus/cpu@1 missing clock-frequency property CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 Setting up static identity map for 0x80008280 - 0x800082d8 CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 Brought up 2 CPUs SMP: Total of 2 processors activated (7995.39 BogoMIPS). CPU: All CPU(s) started in SVC mode. devtmpfs: initialized VFP support v0.3: implementor 41 architecture 4 part 30 variant a rev 0 clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns NET: Registered protocol family 16 DMA: preallocated 256 KiB pool for atomic coherent allocations cpuidle: using governor ladder cpuidle: using governor menu hw-breakpoint: Debug register access (0xee113e93) caused undefined instruction on CPU 0 hw-breakpoint: Debug register access (0xee013e90) caused undefined instruction on CPU 0 hw-breakpoint: Debug register access (0xee003e17) caused undefined instruction on CPU 0 hw-breakpoint: CPU 0 failed to disable vector catch hw-breakpoint: Debug register access (0xee113e93) caused undefined instruction on CPU 1 hw-breakpoint: Debug register access (0xee013e90) caused undefined instruction on CPU 1 hw-breakpoint: Debug register access (0xee003e17) caused undefined instruction on CPU 1 Serial: AMBA PL011 UART driver 1c090000.uart: ttyAMA0 at MMIO 0x1c090000 (irq = 23, base_baud = 0) is a PL011 rev3 console [ttyAMA0] enabled best regards, Sharjeel On 21 February 2017 at 20:32, Jason Lowe-Power <ja...@lowepower.com<mailto:ja...@lowepower.com>> wrote: Hi Sharjeel, I think you've found another case where ARM isn't supported in Ruby. I would *guess* this is a problem with some kind of atomic/memory ordering operation. I would try simplifying your simulated system and building up until you find the problem. For instance, start with 1 core and make sure Linux boots. Then, two cores, etc. You may also want to try simpler topologies (e.g., Pt2Pt or crossbar) and using only a single directory. This could also be a problem with the memory ranges. Ruby only supports a single range with no gaps. I don't know what the ARM systems use. Jason On Tue, Feb 21, 2017 at 3:54 AM SHARJEEL KHILJI <sharjeelsaeedkhi...@gmail.com<mailto:sharjeelsaeedkhi...@gmail.com>> wrote: Hi, I am trying to boot linuxv4.4 on ARM NOC. The booting process gets stuck and same set of instruction is executed again and again. Following is the set of instructions. ./build/ARM/gem5.debug --debug-flags= Exec,ExecTicks configs/example/fs.py --machine-type=VExpress_GEM5_V1 --kernel /home/khilji/gem5/m5/system/binaries/vmlinux-aarch32 --disk-image /home/khilji/gem5/m5/system/disks/linux-aarch32-ael.img --dtb-filename /home/khilji/gem5/m5/system/dtb/armv7_gem5_v1_4cpu.dtb --num-cpus=4 --cpu-type=timing --mem-size=512MB --ruby --num-dirs=2 --garnet-network flexible --topology Mesh --mesh-rows 2 --numa-high-bit=28 Following instructions are show in the terminal 370581084500: system.cpu0 T0 : @smp_call_function_many+592 : dmb #0 : IntAlu : 370581085500: system.cpu0 T0 : @smp_call_function_many+596 : tsts r3, #1 : IntAlu : D=0x0000000000000000 370581086500: system.cpu0 T0 : @smp_call_function_many+600 : bne : IntAlu : 370581087500: system.cpu0 T0 : @smp_call_function_many+588 : ldr r3, [r1, #12] : MemRead : D=0x0000000000000003 A=0x9eb4c Looks like a sort of deadlock. Any suggestions please, if anyone can give in this matter. best regards, sharjeel _______________________________________________ gem5-users mailing list gem5-users@gem5.org<mailto:gem5-users@gem5.org> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users _______________________________________________ gem5-users mailing list gem5-users@gem5.org<mailto:gem5-users@gem5.org> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users _______________________________________________ gem5-users mailing list gem5-users@gem5.org<mailto:gem5-users@gem5.org> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
_______________________________________________ gem5-users mailing list gem5-users@gem5.org http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users