ロックは高性能マルチコアシステムソフトウェアにおける重要な構成要素だが、環境が異なるとうまく性能が出ない。使うとキャッシュラインが頻繁に行き来することになり、一方NUMA-awareなロックはシングルスレッドの性能が出ない。メモリフットプリントを挙げている。ロックの取得/開放のフェーズをロックの順番のポリシーから切り離し、クリティカルパスではない所でポリシーに基づくロック待ちのスレッドの順番入れ替えをおこなう。2019Tweet広告を非表示にするもっと読むコメントを書く2018-09-03ブログの引越ブログを引っ越すことにしました。新ブログ:https://utshina.hatenablog.jp/旧ブログ:http://d.hatena.ne.jp/shina_ecc/主に研究分野(OSや仮想化、セキュリティなどのシステムソフトウェア)に関することを記述します。ホームページもよろしくお願いします。する方法をメモしておきます。1年以上前に書きかけていたものを完成させたので、mrubyのバージョンが古いです。最近のバージョンだとどうなるのかは分かりません。ソースコードをダウンロードします。f65a39f4d19b1de019b0b805ccfb081757e5b7b5次にカーネル内で動作するバージョンをクロスビルドするための設定を追加します。%w(MRB_INT64)end(ctrl-d)次にカーネル内で動作させるためのヘッダファイルを作成します。必要最小限のものに置き換えます。これにより浮動小数点関係のエラーが減ります。ap);(ctrl-d)浮動小数点は使わないので、全部ごまかします。0(ctrl-d)内部のfloat型(mrb_float)をlongで置き換えます。value.h.patch浮動小数点演算をしているところを片っ端から潰します。計算結果のことはここでは考えません。build/kernel/lib/libmruby.aがビルドできればOKです。その他のコンパイルエラーは放置します。