[Armadillo:00838] Armadillo-9: 大きなkernelではboot不可?
SATO Yusuke
email@hidden
2006年 2月 3日 (金) 00:41:13 JST
こんばんわ、佐藤(ゆ)です
Subject変更しました。
06/01/12 に SATO Yusuke<email@hidden> は書きました:
>
> 起動する場合のSystem.mapは、
>
> -------------------------------------------------
> c0014000 A swapper_pg_dir
> c0018000 T __init_begin
> ...
> c027e000 D __data_start
> ...
> c02cf0d0 D _edata
> c02cf0e0 B __bss_start
> ...
> c02db51c B this_is_dummy
> c03e48dc b logbuf_lock
> ...
> c03ff000 B _end
> -------------------------------------------------
>
> となっています。起動しない場合は、
>
> -------------------------------------------------
> c0014000 A swapper_pg_dir
> c0018000 T __init_begin
> ...
> c027e000 D __data_start
> ...
> c02cf0d0 D _edata
> c02cf0e0 B __bss_start
> ...
> c02db51c B this_is_dummy
> c03e4940 b logbuf_lock
> ...
> c03ff060 B _end
> -------------------------------------------------
>
> です。_end と __bss_start のアドレスの差は、
> 起動する場合: 0x0012ff20
> 起動しない場合: 0x0012ff80
> ですね。
素のカーネルで kernel/printk.c でbss使用量を増減させるのではなく、
LIDSパッチをあてたカーネルで、LIDSのbss使用量を増減させる方法で
試してみました。
結果、起動の条件は、少なくとも「bssのサイズが0x0012ff20に収まって
いること」ではなく、「_end のアドレスが 0xc03ff000 より小さいこと」
のように思えました。
c02df280 B __bss_start
c0407360 B _end
では起動せず、
c02df280 B __bss_start
c03fec60 B _end
ならば起動しました。
# __bss_startの位置が以前のメールとは異なります
私もICEは(一応)所持しているので解析できる環境ではあるんですが…
報告だけですみません、とりあえずポストさせていただきます。
なにかわかりましたら教えてください。
--
SATO Yusuke / 佐藤 祐介 <email@hidden>
armadillo メーリングリストの案内