オープンソースカンファレンス2018 Tokyo/Fall NetBSDブース展示の記録

2018/10/27-8 に 明星大学 で行われるオープンソースカンファレンス2018 Tokyo/Spring でのNetBSDブース展示記録です。 #osc18tk #NetBSD
3
前へ 1 ・・ 6 7 次へ
Izumi Tsutsui @tsutsuii

原著はこちら UNIX® Systems for Modern Architectures: Symmetric Multiprocessing and Caching for Kernel Programmers amazon.co.jp/dp/0201633388 なぜ現代そのままのタイトルで日本語訳しなかったのかと問い詰めたい

2018-10-28 19:18:58
Izumi Tsutsui @tsutsuii

これ、1994年刊行なんですね……。ちなみに R4000 が出たのが 1991年で Pentium が 1993年、MC68040 が 1990年 (Wikipediaによる)

2018-10-28 19:21:33
Izumi Tsutsui @tsutsuii

キャッシュエイリアスネタのメモ(2): コンピュータアーキテクチャの話 (12) キャッシュの構造や働き(上級編) - メモリエーリアス web.archive.org/web/2007110822… 過去見た中で「キャッシュエイリアスをOSで処置する」ということに言及した唯一の記事。今の NetBSD/mips はこれをやろうとして爆死している感

2018-10-28 19:27:52
Izumi Tsutsui @tsutsuii

実際にMIPSやARMの 仮想アドレスインデックス・物理アドレスタグ (VIPT)キャッシュのエイリアスのページカラーリングの対処を実際に仮想記憶側で実装したOSは存在するのか、というのがいまだに気になっている(IRIXがどうか、というところ)

2018-10-28 19:30:18
Izumi Tsutsui @tsutsuii

キャッシュエイリアスネタのメモ(3): NetBSD UVM page coloringメモ - Togetter togetter.com/li/203520 現状(?)の NetBSD/mips がキャッシュエイリアスに対してどう対処しようとしているのかを実装から読み取ろうとして挫折したメモ。コード書いた人が実装設計について語らないままなので放置状態

2018-10-28 19:44:11
Izumi Tsutsui @tsutsuii

キャッシュエイリアスネタのメモ(4): ページカラーリング ja.wikipedia.org/wiki/%E3%83%9A… 前出の Togetter 中のツイートから参照している Wikipedia記事。今の記述だと仮想アドレスキャッシュと物理アドレスキャッシュの記載が分かれてるので、わざわざ新たに説明書かなくても これ読んでください で済む説

2018-10-28 19:46:47
Izumi Tsutsui @tsutsuii

キャッシュエイリアスネタのメモ(5): NetBSD/hpcmips の VR4100 (L1 16KB) でキャッシュエイリアスの問題をとりあえず回避するために PAGE SIZE を 16KB にするオプション(とその他もろもろ)が投入されたコミット mail-index.netbsd.org/source-changes… 途中の説明を端折りすぎですが 、参照ポインタとしてメモ

2018-10-28 19:58:21
Izumi Tsutsui @tsutsuii

キャッシュエイリアスネタのメモ(6): NetBSD/mips でエイリアス他対応の matt-nb5-mips64 がマージされる直前のとりあえず動いていた従来 mips PMAP のソース cvsweb.netbsd.org/bsdweb.cgi/src… cvsweb.netbsd.org/bsdweb.cgi/src… 2096行からの pmap_enter_pv() が物理アドレスページを仮想アドレスにマップする関数。

2018-10-28 20:09:25
Izumi Tsutsui @tsutsuii

ここで「MIPS3_NO_PV_UNCACHED」のオプションは「同一の物理アドレスに対し、ページカラーが異なる複数の仮想アドレスマッピングを許容しない(≒異なるカラーの仮想アドレスマップ要求があったら既存のマッピングを破棄する)というオプション。詳細はこのコミット参照 cvsweb.netbsd.org/bsdweb.cgi/src…

2018-10-28 20:11:25
Izumi Tsutsui @tsutsuii

「MIPS3_NO_PV_UNCACHED」を指定しないときはどうかというと、先のコミットログに「instead of mapping uncached」とあるとおり「同一の物理アドレスに対し、ページカラーが異なる複数の仮想アドレスマッピングが要求された場合はその物理アドレスに対するマッピングを uncached にする」という実装。

2018-10-28 20:13:47
Izumi Tsutsui @tsutsuii

「ページカラーが異なる複数の仮想アドレスマッピングが要求された」ということを検知するためには、すべてのアドレスマップ処理で「各物理アドレスがどの仮想アドレスにマップされているか」という情報を管理する必要がある。これは struct vm_page_md の中の pvh_list にある

2018-10-28 20:16:53
Izumi Tsutsui @tsutsuii

これを管理は pmap_enter() および pmap_remove() から呼ばれる pmap_enter_pv() や pmap_remove_pv() で記録される。ここで問題になるのが、本来カーネルVMが管理する必要のないアドレスマッピングに対しても VM管理用の pmap_enter() を使う必要がある (pmap_kenter_pa() は使えない) というところ

2018-10-28 20:19:42
Atsushi Tanaka @atanaka7

本日OSCで発表した資料「Zabbix 4.0のご紹介」を公開しました。 slideshare.net/atanaka7/zabbi… #osc18tk

2018-10-28 20:29:03
Izumi Tsutsui @tsutsuii

キャッシュエイリアスネタのメモ(7): gnats.netbsd.org/34243 PR port-sh3/34243: Some commands of NetBSD/dreamcast-current hang-up mail-index.netbsd.org/port-sh3/2006/… NetBSD/sh3 の SH4実装ではキャッシュエイリアス対策として「PA:VAのマッピングを1:1に制限する」となっていたために発生した問題。

2018-10-28 20:29:10
Izumi Tsutsui @tsutsuii

先に挙げた Wikipedia のページカラーリングの説明にもありましたが、仮想アドレスインデックスのページカラーが同じ場合にはエイリアスは発生しないので同一物理アドレスページが複数の仮想アドレスにマップされても問題ない(のでそういう修正をした)というのが表面上の話

2018-10-28 20:35:39
Izumi Tsutsui @tsutsuii

が、そもそも共有ライブラリを使用する場合、ユーザーランドプロセス側で「同一物理ページが同時に複数の仮想アドレスにマップした状態じゃないと動かない」という状態が発生しうる、というところがこのバグレポの本質 mail-index.netbsd.org/port-sh3/2006/…

2018-10-28 20:36:30
Izumi Tsutsui @tsutsuii

(業務連絡:会場で話をした際は勘違いをしていてページカラーが異なるページのマッピングを許さないようになっていた、という話をしましたが、ログを見たら実は間違いで、そもそもページカラーが同じでも複数マッピングを許さないようになっていたのを許すようにした、という修正でした)

2018-10-28 20:37:02
Izumi Tsutsui @tsutsuii

共有ライブラリのPA:VAマッピングでキャッシュエイリアスの問題を発生させないためには、アドレス配置にアラインメント制約を指定する必要があり、それは ELF ABIで規定されるべき値になる(はず。このへんわりと適当に書いてるので要検証……)

2018-10-28 20:39:35
Izumi Tsutsui @tsutsuii

ELF ABIではちゃんとエイリアスまで考慮してかなり大きなアラインメント(64KB等)が指定されている(というのを読んだような気がする)。にもかかわらず、「そんなでかいと効率悪いし理屈上ページサイズでいいじゃん」という実装になっているものがあるらしく、その場合エイリアス問題不可避の可能性

2018-10-28 20:42:06
Izumi Tsutsui @tsutsuii

キャッシュエイリアスネタのメモ(最後): キャッシュエイリアスが問題になる「VIPTキャッシュ、かつ、VAインデックスがページサイズより大きい」という実装は MIPS3系、SH4、一部のARMのみで、イマドキだと半導体プロセス実装上も way数を増やしてインデックスを減らす方向になっているというのが私見

2018-10-28 20:45:42
Izumi Tsutsui @tsutsuii

かつては「way数を増やすと制御回路や置換アルゴリズムが複雑になる」という話が成立したけれど、キャッシュが巨大になると相対的に制御回路のほうが小さくなり、プロセス歩留まり上も「wayを多めにしてNGのwayを無効にする」というほうが有利になっていると想像。(way数が 2^n でないのがわりとある)

2018-10-28 20:49:56
@SRCHACK.ORG: 2021年4月からぷらぷらしてます @SRCHACK

OSC Tokyo 2018/Fall参加してました。 OpenWrtする人達集まりましたか?openwrt.jp(仮)。 あなたの押入れに住んでた基板持ち込みましたか? #osc18tk お疲れ様でした。 2日目は、隣の「日本Androidの会 学生部」のスペースまでお借りして無事?展示完了。ありがとうございました。 pic.twitter.com/xFoql0QFKr

2018-10-28 21:02:01
拡大
拡大
拡大
@SRCHACK.ORG: 2021年4月からぷらぷらしてます @SRCHACK

OSC Tokyo 2018/Fall参加してました。 OpenWrtする人達集まりましたか?openwrt.jp(仮)。 #osc18tk 何故か全員手荷物で全て持ち帰る人達。なんで全員送らないのかが僕には解らない。

2018-10-28 21:06:07
Izumi Tsutsui @tsutsuii

イマドキの Intel CPUでは「複数wayのうち、省電力時は一部のwayのみ有効にする」「有効にするwayはプロセスばらつきを考慮して全wayのうち一番消費電力の小さいものを(製造時に)選択する」ということをしているという話を聞く news.mynavi.jp/article/201209…

2018-10-28 21:08:16
Izumi Tsutsui @tsutsuii

なので、キャッシュとして way数は増えても indexを増やす方向にはならない、つまり「OSでエイリアスを処理する」という実装は今後も現れないだろう、という想像。 (とりあえずここまででメモは終わり)

2018-10-28 21:08:47
前へ 1 ・・ 6 7 次へ