-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Yes, this is usually the way (I use) to debug the kernel without using
kdbg /
adding hooks for kdbg.
Seems to me like a memory-addressing issue.
//Markus
Giuseppe Sacco wrote:
> Hi Markus,
>
> Il giorno mer, 29/08/2007 alle 04.25 +0200, Markus Gothe ha
> scritto:
>> Use gdb and list the read address.
>
> I think I understood what you mean. I recompiled the kernel adding
> the debug symbols, stripped it and booted with it. There I got
> those numbers (using the 32bit version):
>
> Exception PC: 0x8021c9fc, Exception RA: 0x804ddc6c gpda 0x81060e08,
> _regs 0x81061008 arg: 81070000 0 80503518 1 tmp: 81070000 1000
> 8051a868 fff8054f ffffffff 81412ef4 a13fab68 7 sve: 81070000
> 4083ae51 0 4608a976 0 4085cc91 0 3ed97758
>
> then run gdb and issue those commands:
>
> (gdb) info symbol 0x8021c9fc __bzero + 56 in section .text (gdb)
> info symbol 0x804ddc6c init_bootmem_core + 196 in section
> .init.text (gdb) list *0x804ddc6c 0x804ddc6c is in
> init_bootmem_core (mm/bootmem.c:107). 102 */ 103
> mapsize = get_mapsize(bdata); 104
> memset(bdata->node_bootmem_map, 0xff, mapsize); 105 106
> return mapsize; 107 } 108 109 /* 110 * Marks a
> particular physical memory range as unallocatable. Usable RAM 111
> * might be used for boot-time allocations - or it might get added
> (gdb) list *0x8021c9fc No source file for address 0x8021c9fc. (gdb)
> disassemble 0x804ddc6c Dump of assembler code for function
> init_bootmem_core: 0xffffffff804ddba8 <init_bootmem_core+0>:
> daddiu sp,sp,-32 0xffffffff804ddbac <init_bootmem_core+4>:
> sd ra,16(sp) 0xffffffff804ddbb0 <init_bootmem_core+8>:
> sd s1,8(sp) 0xffffffff804ddbb4 <init_bootmem_core+12>: sd
> s0,0(sp) 0xffffffff804ddbb8 <init_bootmem_core+16>: li
> v0,-13 0xffffffff804ddbbc <init_bootmem_core+20>: ld
> s1,648(a0) 0xffffffff804ddbc0 <init_bootmem_core+24>: dsll
> a1,a1,0xc 0xffffffff804ddbc4 <init_bootmem_core+28>: dsll32
> v0,v0,0x1b 0xffffffff804ddbc8 <init_bootmem_core+32>: daddu
> a1,a1,v0 0xffffffff804ddbcc <init_bootmem_core+36>: dsll
> a2,a2,0xc 0xffffffff804ddbd0 <init_bootmem_core+40>: sd
> a1,16(s1) 0xffffffff804ddbd4 <init_bootmem_core+44>: sd
> a3,8(s1) 0xffffffff804ddbd8 <init_bootmem_core+48>: sd
> a2,0(s1) 0xffffffff804ddbdc <init_bootmem_core+52>: lui
> v1,0x0 0xffffffff804ddbe0 <init_bootmem_core+56>: lui
> at,0x8049 0xffffffff804ddbe4 <init_bootmem_core+60>: daddiu
> v1,v1,0 0xffffffff804ddbe8 <init_bootmem_core+64>: dsll32
> v1,v1,0x0 0xffffffff804ddbec <init_bootmem_core+68>: daddu
> v1,v1,at 0xffffffff804ddbf0 <init_bootmem_core+72>: ld
> v1,2112(v1) 0xffffffff804ddbf4 <init_bootmem_core+76>: lui
> a1,0x0 0xffffffff804ddbf8 <init_bootmem_core+80>: lui
> at,0x8049 0xffffffff804ddbfc <init_bootmem_core+84>: daddiu
> a1,a1,0 0xffffffff804ddc00 <init_bootmem_core+88>: daddiu
> at,at,2112 0xffffffff804ddc04 <init_bootmem_core+92>: dsll32
> a1,a1,0x0 0xffffffff804ddc08 <init_bootmem_core+96>: daddu
> a1,a1,at 0xffffffff804ddc0c <init_bootmem_core+100>: bnel
> v1,a1,0x804ddc88 <init_bootmem_core+224> 0xffffffff804ddc10
> <init_bootmem_core+104>: ld v0,-48(v1) 0xffffffff804ddc14
> <init_bootmem_core+108>: daddiu v0,s1,48 0xffffffff804ddc18
> <init_bootmem_core+112>: sd a1,48(s1) 0xffffffff804ddc1c
> <init_bootmem_core+116>: move a0,s1 0xffffffff804ddc20
> <init_bootmem_core+120>: lui at,0x0 0xffffffff804ddc24
> <init_bootmem_core+124>: daddiu at,at,0 0xffffffff804ddc28
> <init_bootmem_core+128>: dsll at,at,0x10 0xffffffff804ddc2c
> <init_bootmem_core+132>: daddiu at,at,-32695
> 0xffffffff804ddc30 <init_bootmem_core+136>: dsll at,at,0x10
> 0xffffffff804ddc34 <init_bootmem_core+140>: sd v0,2120(at)
> 0xffffffff804ddc38 <init_bootmem_core+144>: lui at,0x0
> 0xffffffff804ddc3c <init_bootmem_core+148>: daddiu at,at,0
> 0xffffffff804ddc40 <init_bootmem_core+152>: dsll at,at,0x10
> 0xffffffff804ddc44 <init_bootmem_core+156>: daddiu
> at,at,-32695 0xffffffff804ddc48 <init_bootmem_core+160>: dsll
> at,at,0x10 0xffffffff804ddc4c <init_bootmem_core+164>: sd
> v0,2112(at) 0xffffffff804ddc50 <init_bootmem_core+168>: jal
> 0x804dd5c8 <get_mapsize> 0xffffffff804ddc54
> <init_bootmem_core+172>: sd a1,8(v0) 0xffffffff804ddc58
> <init_bootmem_core+176>: ld a0,16(s1) 0xffffffff804ddc5c
> <init_bootmem_core+180>: move s0,v0 0xffffffff804ddc60
> <init_bootmem_core+184>: li a1,255 0xffffffff804ddc64
> <init_bootmem_core+188>: jal 0x8021c9a0 <memset>
> 0xffffffff804ddc68 <init_bootmem_core+192>: move a2,v0
> 0xffffffff804ddc6c <init_bootmem_core+196>: move v0,s0
> 0xffffffff804ddc70 <init_bootmem_core+200>: ld ra,16(sp)
> 0xffffffff804ddc74 <init_bootmem_core+204>: ld s1,8(sp)
> 0xffffffff804ddc78 <init_bootmem_core+208>: ld s0,0(sp)
> 0xffffffff804ddc7c <init_bootmem_core+212>: jr ra [...]
> (gdb) info line *0x804ddc6c Line 107 of "mm/bootmem.c" starts at
> address 0x804ddc6c <init_bootmem_core+196> and ends at 0x804ddc88
> <init_bootmem_core+224>. (gdb) info line *0x804ddc6b Line 104 of
> "mm/bootmem.c" starts at address 0x804ddc60 <init_bootmem_core+184>
> and ends at 0x804ddc6c <init_bootmem_core+196>.
>
>
> So, it this what you requested?
>
>> From what I understand the problem may be that
>> bdata->node_bootmem_map
> maybe incorrectly initialised for this machine.
>
> Bye, Giuseppe
>
>
- --
_______________________________________
Mr Markus Gothe
Software Engineer
Phone: +46 (0)13 21 81 20 (ext. 1046)
Fax: +46 (0)13 21 21 15
Mobile: +46 (0)73 718 72 80
Diskettgatan 11, SE-583 35 Linköping, Sweden
www.27m.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
iD8DBQFG1xR56I0XmJx2NrwRCCIIAJ9qqcFcMJK7izUn/yJUiUQwufHnYACeIiqt
tNI/Ew/0EFKp7Qzxi3issJU=
=NbCf
-----END PGP SIGNATURE-----
|