コグノスケ


link 未来から過去へ表示(*)  link 過去から未来へ表示

link もっと前
2017年10月12日 >>> 2017年9月29日
link もっと後

2017年10月12日

New Kindle Fire HD

目次: Kindle

第七世代Kindle Fire HD 10を買いました。

使って5分ですので、後日感想が変わるかもしれませんけど、

本が横並びに出るメニューがない
気に入ってたのに残念です。スマホでも出来てるのになぜFireに無いのでしょう。あのメニュー無いなら、もうKindle Fire買う意味無いや。
ロック画面に全面広告
最強にウザイです。有料の商品でこんなのあり得ません。仕組みを考えた奴の正気を疑いました。
フォントが変
昔からですが、中国語みたいな漢字が出ます。
少し軽くなった
とはいえ10インチ、手で持つには重いです。
純正カバーがイマイチ
縦置き出来るようになりましたが、目一杯倒しても60°と角度が急すぎるのでイマイチ。
本のアプリがバグってる
ストアに飛ぶメニューが全部二行ずつ出ます。どちらを押しても行き先は同じです。気づかなかったのかな…。


ロック画面で広告が出る、縦置きの角度は60°まで


メニューが全て2行ずつ表示されるストアアプリ

今のところ、普通のAndroidタブレットにKindleアプリ入れた方がよっぽどマシだと感じています。

ロック画面の全面広告

ロック画面の全面広告は、

  • 設定
  • アプリとゲーム
  • Amazonアプリケーションの設定
  • キャンペーン情報
  • ロック画面のキャンペーン情報

をOFFにすれば、出なくなりました。何の嫌がらせですかね、これ?

編集者:すずき(2021/12/08 03:48)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2017年10月10日

黄色いナンバープレートは嫌われている?

目次:

軽の黄色がこれほど不人気とは…白地の五輪ナンバー人気: 朝日新聞デジタル を読んで。

「黄色が車の色と合わなくて嫌」ならわかるけど「軽だとすぐわかって格好悪いから嫌」って意味分かりません。なんで軽が格好悪いんでしょう?百歩譲って主張の通りだとしても、ナンバー白くして何か解決するのか?

予想

コメントにて「トヨタをレクサスに張り替えるような、エンブレム張り替えと同じではないか?」という突っ込みをいただきました。

なるほど、高い車に乗っている気分を出したいんでしょうか?個人的には軽自動車とコンパクトカー(普通自動車)はあまり値段が変わらないから、見栄になっていないように思いましたが、乗っている本人の気持ち次第ですね……。

メモ: 技術系の話はFacebookから転記しておくことにした。後半の節は追記した。

編集者:すずき(2023/09/30 15:23)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2017年10月2日

スマホが壊れた

スマホ(ASUS Zenfone 3 Deluxe ZS550KL)を家の床に落としたら、電源ボタンが凹んでしまって、押せなくなってしまった。困った。


音量調整ボタン(左)は無事、電源ボタン(右)は帰らぬ人に

スリープからの復帰は、背面の指紋認証があるから問題ないけれど、スリープへの移行が出来ない。

画面が粉々なら諦めて買い換えるけど、電源ボタン以外は全く問題ないので、買い換えるほどでもない…でも不便……。

メモ: 技術系の話はFacebookから転記しておくことにした。後日、写真を追加した。

編集者:すずき(2017/10/06 00:16)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2017年9月30日

LinuxのCMAとTHPその2

目次: Android

昨日(2017年9月29日の日記参照)の続きです。各問題への所感です。

THPがCMAを使い切っちゃう問題

THPを諦める、すなわちCONFIG_TRANSPARENT_HUGEPAGEをLinuxのconfigで無効にしてしまえば回避できます。

私の場合THPは無くてもそんなに困らないですから、仮にTHPかCMAの排他的二択がLinuxの現状の仕様だったとしても構いません。

ユーザプロセスがCMA全然使わない問題

今のところ調整方法もへったくれも見つけられず、本当にどうしようもなくて困っています。

Buddy Allocatorを書き換えてMIGRATE_CMAから先にページ割り当てするように改造したところ、ユーザプロセスもドライバもそれなりにご機嫌に動いていますが、魔改造なことこの上ないでしょう。

誰が使ってるのこれ?問題

このデバイスはCMA使ってる、とか、お前の確認方法は間違っているとか、何か知っている人が居たら愚かな私に教えてほしいです……。

Androidデバイスならadbで繋いで /proc/meminfo見たときにCmaFreeって項目があればCMAを使っているはずです。

もしくは古いカーネルだと /proc/buddyinfoにCMAという項目があるかもしれません。

編集者:すずき(2023/09/24 08:49)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2017年9月29日

LinuxのCMAとTHPその1

目次: Android

Twitterでボヤきまくっていたけど、流れて消えちゃうのでメモ。Linuxのメモリ管理がさっぱりわかりません。CMA(Contiguous Memory Allocator)とTHP(Transparent Huge Pages)の動きが謎過ぎます。

CMAとは、ある領域を特別な領域として定めて、普段はユーザプロセス用のメモリとして使い、ドライバが要求するなどここぞというときにユーザプロセス用のメモリを強制立ち退き(Page Migration)させてDMA用のメモリとして使う技術です。

私が思いつく利点としては、

  • reserved領域などDMA専用のメモリを定義するのに対し
    →ユーザプロセス用のメモリが多く使える
  • 通常のカーネルヒープに対し
    →カーネルヒープから物理連続の領域を取得するのは、先客が居たりして難しい(特に大容量の領域ほど)が、CMAならユーザプロセス用のページを立ち退きさせれば良いので比較的容易

THPは仮想連続の4KBのページを512枚集めてきて、2MB(ARMの場合)のHuge Pageに置き換えてしまう技術。のはずです。あまり調べてないので、違ってたらゴメンなさい。

私が思いつく利点としては、

  • 4KB 512ページに比べて、ページテーブルの容量が節約できる
  • TLBヒット率も上がる、はず

これらの技術のコンセプトは素晴らしいので、ぜひ使いたいと思って使っていますが、動きが謎過ぎて困っています。困っている問題は3つ。

  • THPにCMA占領されちゃう問題
  • ユーザプロセスがCMA全然使わない問題
  • 誰が使ってるのこれ?問題

THPにCMA占領されちゃう問題

THPはkhugepagedというカーネルスレッドが裏でひっそりと活動してページを置き換えます。こいつが使うメモリページはPageCompoundという属性になっていて、なぜかPage Migrationできません。なぜなのか理由はわかりません。

それでいてTHPはCMA領域をガンガン消費します。なぜかはあまり調べていませんが、おそらく、

  • 要求する領域のサイズが大きいこと
  • 後述するようにユーザプロセスはCMA領域を全然使わないので、CMA領域は比較的空いていること
    =連続したページが取りやすい

辺りがCMAから大きいサイズの領域を取りやすい理由だと思います。

しばらく放っておくとCMA領域がTHPで埋まってしまうため、ドライバのdma_alloc() がENOMEMとかで失敗するようになって、ドライバが動かなくなってしまいます。

解決方法を知りたくて、頑張ってBuddy Allocatorまでコード読んでみましたが、khugepagedも結局alloc_pages() でHuge Pageを取っているだけでした。つまり他の用途のメモリの取り方と何ら変わりません。当然ながらCMA領域を避けて取るとか、そんな機構があるようには見えなかったので、この問題を回避する方法はわからないままです。

THPはGFP(Get Free Pages)フラグが少し特殊ですので、Buddy Allocatorでフラグを見てTHPをCMA領域に割り当てないように改造することは出来ましたが、本当にこんな改造が要るんでしょうか?

私が見た範囲では、フラグをチェックしてメモリの割り当て処理を変えている個所は見当たりませんでしたから、何か別の方法が隠れているかもしれません。

誰も困っていないのでしょうか。それとも私の設定がマズいだけでしょうか?

ユーザプロセスがCMA全然使わない問題

Buddy Allocatorの詳細な仕組みはここでは説明しきれませんが、メモリはゾーンという大きな括りで分けられており、各ゾーンには5つのリストがあります。アロケータはこの5つのリストのどれかからページを割り当てます。/proc/pagetypeinfoで各リストの残量を見ることができます。

  • MIGRATE_UNMOVABLE
  • MIGRATE_MOVABLE
  • MIGRATE_RECLAIMABLE
  • MIGRATE_HIGHATOMIC
  • MIGRATE_CMA

カーネルにメモリページの取得リクエストが来ると、基本的には上4つのリストのどれかからページが取得されます。どのリストになるのかはGFP(Get Free Pages)フラグに何を指定したか?によって決まります。ユーザプロセス用のメモリであればMIGRATE_MOVABLEから取られます。

ではMIGRATE_CMAはいつ使われるのか?というと、これが良くわからないんです。

実機でメモリを使いまくるプロセスを立ち上げ(yes | sortとか)/proc/meminfoの様子を見ていると、

  • 空き領域MemFreeが減りまくる(CmaFreeは減らない)
  • ページキャッシュCachedが減りまくる(CmaFreeは減らない)
  • ページキャッシュがなくなったせいでI/Oが多発してシステムが遅くなる
  • やっとCMA領域CmaFreeが減り始める
  • OOM Killerにプロセスを強制終了させられる

こんな動きになります。3番目のページキャッシュ減少が起きると、システムが遅すぎて使い物になりませんので、もっと早めにCMA領域を利用していただきたいのですが、なぜかそうなりません。

Buddy Allocatorのコードを見るとMIGRATE_MOVABLEが枯渇というか、ページ割り当てに失敗したときに初めてMIGRATE_CMAからのページ割り当てに挑戦するようになっているように見えます。

個人的にはMIGRATE_CMA → MIGRATE_MOVABLEの順に割り当てた方が良かったのではないか?と思いました。ドライバがCMA領域を使う時はPage Migrationがあるわけですから。

MIGRATE_MOVABLE → MIGRATE_CMAの順に割り当てMIGRATE_MOVABLEを先に使い果たしてしまうと、CMA領域からユーザプロセス用のページをMigrationしようにも移動させる先がありません。これではPage Migrationが役に立ちません。

どうもイマイチです。設定か何かが間違っているのでしょうか。

誰が使ってるのこれ?問題

あまりに訳の分からない動きをしているので、CMAが正常に動いている例が見たかったのですが、手元のAndroidデバイスでCMAを使っているシステムが全くありませんでした。ショック。

CMAは組み込みのように制約の多いハードウェア、かつ、メモリ容量に制限のあるシステム向けの機能です。AndroidであればION Carveout Heapだとメモリ占有が多すぎて耐えられないボンクラハードウェアや、メモリの搭載量が非常に少ないシステム向けの最終兵器のはずです。

GoogleもAOSPで紹介している(Low RAM Configuration | Android Open Source Project のCarveouts, Ion and Contiguous Memory Allocation (CMA) の節)ほどなのになあ。

でも身の回りの製品では誰も使っていません。CMAって誰が使ってるんだろう??

編集者:すずき(2023/09/24 08:49)

コメント一覧

  • hdkさん(2017/10/06 21:37)
    CMA は噂によれば、ビデオのハードウェアデコーダーがフル HD や 4K などのフレームを扱うのに大きなサイズの RAM が必要なので、という話がありましたが、近年は非連続アドレスでも扱えるようになってきちゃって必要性はそんなにないのかも? ビデオのデコードでもしなければそもそも使われなさそうです。

    Transparent Huge Page は身近なところでは QEMU などで大きな容量の RAM を仮想マシンに割り当てた時に勝手に使われているみたいですが、組み込み環境ではどうなんですかね...
  • すずきさん(2017/10/07 12:26)
    会社ではビデオ系ハード、グラフィクス、デコーダ、サウンド系と、あらゆるハードが大容量の物理連続領域を要求してくるので、困っています。

    うちの会社のハードがヘボいというか、世の中に追いつけてないんだと思いますけど……。

    THP 自体は良いんですが、CMA との共存ができない点がイマイチです。単に CMA の実装がイケてないだけかもしれませんが、私には良くわからなかった。
  • hdkさん(2017/10/09 00:35)
    非連続物理アドレスは IOMMU を使って仮想アドレスにマップしちゃうのが今時の流行り (?) のようです。

    Hugepages は Intel DPDK がやっているみたいに意図的に使う方法もありますので、THP はある程度自動でやってくれるという、おまけみたいなものなんですかね。
  • すずきさん(2017/10/09 22:41)
    私も IOMMU と DDR のインタリーブアクセスがあれば、今風アーキテクチャなのになあ、とは思いますが、色々あって積んでないままです。

    Intel DPDK は初めて知りました。ネットワーク超特化のアーキテクチャで、TLB ミスヒットが大きなペナルティとして認識されているんですね。

    THP は何かの基準でページを選んで、空き時間を使って統合してくれているように見えました。残念ながらコンセプトを語れるほど、わかってませんけど……。
open/close この記事にコメントする



link もっと前
2017年10月12日 >>> 2017年9月29日
link もっと後

管理用メニュー

link 記事を新規作成

<2017>
<<<10>>>
1234567
891011121314
15161718192021
22232425262728
293031----

最近のコメント5件

  • link 25年11月28日
    hdkさん (12/04 08:10)
    「あれ、停止直前くらいの時のトルクコンバー...」
  • link 25年11月28日
    すずきさん (12/03 11:24)
    「トルクコンバーターがいてエンブレは掛かり...」
  • link 25年11月28日
    hdkさん (12/02 08:02)
    「"停止直前に急にエンブレがほぼゼロになる...」
  • link 25年10月6日
    すずきさん (10/10 13:14)
    「ですね。ccはもはやコンパイラというより...」
  • link 25年10月6日
    hdkさん (10/10 08:27)
    「ただのHello, worldでも試して...」

最近の記事20件

  • link 25年11月28日
    すずき (12/04 02:17)
    「[ジャガーさんの所感] 目次: 車ジャガーXE Sを購入してから4か月が経ちました。通勤で毎日乗っているためか走行距離が3,0...」
  • link 25年11月29日
    すずき (12/02 01:15)
    「[バーベキュー@つくば] 筑波大関連の人が集まってバーベキューするイベントが年1回開かれていて、誘ってもらったので去年から参加...」
  • link 23年5月15日
    すずき (12/02 00:43)
    「[車 - まとめリンク] 目次: 車三菱 FTO GPX '95の話。群馬県へのドライブ1群馬県へのドライブ2将来車を買い替え...」
  • link 25年9月7日
    すずき (12/01 22:03)
    「[ジャガーXEのタイヤ交換(FALKEN AZENIS)] 目次: 車タイヤのメーカーが左前だけ違うのと、溝の残りが4mmくら...」
  • link 25年7月20日
    すずき (12/01 22:02)
    「[ジャガーXEを買いました] 目次: 車車を買い替えました。ジャガーXE Sです。マイナー車すぎて会社の人たちもあまり知らなさ...」
  • link 10年9月3日
    すずき (12/01 22:01)
    「[レガシィの納車は明日] 目次: 車中古車屋さんから夕方電話がかかってきました。明日の納車だそうです。担当の方が忙しいかったの...」
  • link 10年9月4日
    すずき (12/01 22:00)
    「[今日の予定] 目次: 車今日の予定はこんな感じ。午前: 納車(茨木)昼: 退寮(高槻)午後: 同期のみなさんと食事(京都)実...」
  • link 25年11月21日
    すずき (12/01 21:55)
    「[ジャガーさんをぶつけた] 目次: 車家の近所の狭い道で路駐してたタクシーをかわして進もうと思したら、左前を電柱にぶつけました...」
  • link 25年11月9日
    すずき (11/23 14:16)
    「[タローマンのゲームTAS動画] 目次: ゲーム今年の夏ごろにシブヤフードダンジョンとタローマンがコラボしたイベント(シブヤフ...」
  • link 21年12月28日
    すずき (11/23 14:14)
    「[ゲーム - まとめリンク] 目次: ゲームNintendo DSを買ったパネルでポンDS最近の朝はパネポンDS聖剣伝説DSチ...」
  • link 25年5月1日
    すずき (11/07 13:52)
    「[首都高バトルSteam版、フルチューン後の姿 - その3] 目次: ゲーム首都高バトル(Steam版)高ランクの車をひたすら...」
  • link 23年4月10日
    すずき (11/04 16:20)
    「[Linux - まとめリンク] 目次: Linuxカーネル、ドライバ関連。Linux kernel 2.4 for ARMが...」
  • link 09年5月18日
    すずき (11/04 16:19)
    「[ffmpegとlibx264] 目次: LinuxせっかくDVDという長めの映像コンテンツが手元にあるので、ffmpegで変...」
  • link 25年10月31日
    すずき (11/02 03:19)
    「[GNU global + pygmentsトラブルシューティングUbuntu編] 目次: Linux先日(2025年10月2...」
  • link 25年10月22日
    すずき (11/02 02:58)
    「[NTPで時刻をすぐに合わせたい] 目次: LinuxNTPで時刻を調整する方法は2つあって、ズレている時間をジワジワ合わせて...」
  • link 23年6月1日
    すずき (11/02 02:42)
    「[自宅サーバー - まとめリンク] 目次: 自宅サーバーこの日記システム、Wikiの話。カウンターをPerlからPHPに移植日...」
  • link 05年11月23日
    すずき (11/02 02:41)
    「[NTPで時計合わせ、その2] 目次: 自宅サーバー11/23現在、未だGoogle先生に捕捉されていない奇跡。それはさておき...」
  • link 05年11月22日
    すずき (11/02 02:41)
    「[NTPで時計合わせ] 目次: 自宅サーバーパソコンの時計は勝手にどんどんずれていきます。放って置くと1分くらいずれていること...」
  • link 15年5月8日
    すずき (11/02 02:40)
    「[GPSは世界一正確な時計、その2] 目次: 自宅サーバー前回(2015年3月9日の日記参照)はGPSモジュールをPCと接続し...」
  • link 15年3月9日
    すずき (11/02 02:40)
    「[GPSは世界一正確な時計] 目次: 自宅サーバーGPSのレシーバーモジュールを買いました。Globalsat BU-353S...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 2025年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDFファイル RSS 1.0

最終更新: 12/04 08:10