Armadilloフォーラム

Qt5WebKitを入れたらtftpbootでトラブル

y.nakamura

2015年2月11日 18時13分

中村です。

別スレッドのQt5WebKitライブラリを入れたイメージを使って
tftpbootで起動すると、RAMDISKに展開するところで
page allocation failure が発生してしまいます。
tftpbootではなく、同じイメージをフラッシュに書き込んでから
ブートすれば問題は発生しません。

ブート中のメッセージは、こういうもので、
何度かBacktraceが表示されるのですが、最後のrcの実行と
loginプロンプト表示まで、処理は進んでいるようです。
ram diskに展開するときの右側のクルクルが回っているときに
page allocation failureが発生します。

....
RAMDISK: ext2 filesystem found at block 0
RAMDISK: Loading 127140KiB [1 disk] into ram disk... /
swapper: page allocation failure: order:0, mode:0x20
Backtrace:
[<c0011108>] (dump_backtrace+0x0/0x110) from [<c03ee264>] (dump_stack+0x18/0x1c)
 r6:00000000 r5:00000020 r4:00000002 r3:c056c240
[<c03ee24c>] (dump_stack+0x0/0x1c) from [<c00831f0>] (warn_alloc_failed+0x100/0x120)
....
atmark-dist v1.36.0 (AtmarkTechno/Armadillo-840)
Linux 3.4-at10 [armv7l arch]
 
armadillo840-0 login: 

127140KiBならばramdiskサイズはデフォルトのままで
大丈夫なはずですが、ためしに、起動パラメタでサイズを
大きくしても結果は同じでした。

Qt5WebKitライブラリが問題なのではなく、
このライブラリを入れたら、たまたま、問題が発生する
サイズになってしまった、いうことだと思うのですが、
まっさらなATDE5に新規に展開したソースと
Qt5WebKitライブラリを使って、余計なことは何もせずに
再現試験をやってみました。

同じようにpage allocation failureが発生しましたので、
その記録(メモとログ)をzipして添付します。

どのあたりに問題がありそうか、
ご助言をいだけると助かります。

--
なかむら

ファイル ファイルの説明
A840ブートトラブル_フォーラム投稿添付.zip A840でのtftpbootトラブルのメモとログ
コメント

at_kojiro.yamada

2015年2月17日 12時01分

> tftpbootではなく、同じイメージをフラッシュに書き込んでから
> ブートすれば問題は発生しません。

添付の手順どおりに行いましたが、
フラッシュからブートする場合でも発生しました。

> どのあたりに問題がありそうか、
> ご助言をいだけると助かります。

ユーザーランドイメージのサイズが大きくなったため、
下記ニュースの「Technical Detail」で説明されているものと
同じ現象が発生しているようです。

Armadillo 製品アップデートのお知らせ (2014年7月/Armadillo-800シリーズ対象)
http://armadillo.atmark-techno.com/news/140711/software-update"

とりあえず、CMAの空間サイズを32MBに設定して、
tftpbootでもBacktraceが出ないことは確認しました。

ただし、CMAの空間サイズを32MBに設定する場合、
AVコーデックミドルウェアが正しく動作しない場合があります。
これは、フラグメンテーションにより、
連続したメモリ領域の確保に失敗する可能性があるためです。

そのため、AVコーデックミドルウェアを使用する場合は、CMAの設定値は変えず
にユーザーランドイメージのサイズを小さくする必要があります。

y.nakamura

2015年2月17日 15時52分

中村です。

対応、ありがとうございます。

> > tftpbootではなく、同じイメージをフラッシュに書き込んでから
> > ブートすれば問題は発生しません。
>
> 添付の手順どおりに行いましたが、
> フラッシュからブートする場合でも発生しました。

今もう一度やってみたところ、フラッシュブートでも発生しました。
前回の投稿のあとフラッシュの書き換えはしていのですが、
何故あの時は発生しなかったのか、不明です。

> 下記ニュースの「Technical Detail」で説明されているものと
> 同じ現象が発生しているようです。
>
> Armadillo 製品アップデートのお知らせ (2014年7月/Armadillo-800シリーズ対象)
> http://armadillo.atmark-techno.com/news/140711/software-update"

ここをチラっとは見ていたのですが、at8でのアップデートということで、
ほとんどスルーしてしまっていました。
投稿する前に、ここに書いてあることを試してみるべきでした。

> とりあえず、CMAの空間サイズを32MBに設定して、
> tftpbootでもBacktraceが出ないことは確認しました。

同じように32MBにすることで、正常起動を確認できました。

> ただし、CMAの空間サイズを32MBに設定する場合、
> AVコーデックミドルウェアが正しく動作しない場合があります。

今回の作業では、動画の再生も使用します。
不具合の原因がわかりましたので、対策としは、

> そのため、AVコーデックミドルウェアを使用する場合は、CMAの設定値は変えず
> にユーザーランドイメージのサイズを小さくする必要があります。

このようにしたいと思います。

どうもありがとうございました。

--
なかむら