みんなのオブザイヤーオブザイヤーを募集中!今年のツイート今年のうちにまとめよう!

#カーネルパッチ勉強会

Linuxカーネルパッチについて、ゆたかさん(神)による一言解説をまとめているものです。 https://twitter.com/yutakakn > Linuxに関する勘所を忘れないようにするため、Linuxカーネルのコミット内容を毎日読むことにしました。
Linux kernel カーネルパッチ勉強会
5451view 47コメント
11
ゆたかさん @yutakakn
Linuxに関する勘所を忘れないようにするため、Linuxカーネルのコミット内容を毎日読むことにしました。 #カーネルパッチ勉強会
ゆたかさん @yutakakn
UDFはDVDで使われるファイルシステムのことで、UnicodeからUTF-8に変換する処理でサロゲートペアをエラーにできていなかったバグ修正です。サロゲートペアというのは4バイトで一文字とする方式のことです。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会
ゆたかさん @yutakakn
use-after-free bugというのは、メモリを解放した後に、そのメモリにアクセスすることで例外が起きるというバグのことです。ただし、無線LANドライバを取り外した時なので、通常は起きないはずですが、systemdだとありえるのかな。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会
ゆたかさん @yutakakn
ACPIビデオ検出処理で、BIOS定義でWin8以上であればLCDと判断していたのを、SMBIOSのシャーシ種別も参照して、「デスクトップ機かつWin8以上」という条件に修正しています。DELLのウルトラブックでの不具合を是正するパッチのようです。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会
ゆたかさん @yutakakn
この修正見て初めて知りましたが、glibcのprintfで%pは64bitアドレスが表示されますが、Linuxカーネルの%pはハッシュアドレス(上位32bitがゼロ)となり、本当の64bitアドレスを表示するには%pxを使う必要があります。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会
ゆたかさん @yutakakn
下記修正はAMDプロセッサの温度を取得する処理で、今年出たばかりのRyzen 7 2700Xに対応させています。ファイル名がk10temp.cとなっているのは、AMDのK10アーキテクチャが由来です。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会
ゆたかさん @yutakakn
下記修正はsparc64向けのドライバのライセンスが誤ってGPLv3になっていたのが是正されています。LinuxカーネルはGPLv2で、ドライバもGPLv2にしたほうが望ましいとされています。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会
ゆたかさん @yutakakn
カーネルの高精度タイマー(hrtimer)で排他制御漏れによる競合状態(race condition)が発生して、expiresメンバーが意図せぬ変更がされてしまうという問題の修正です。発生頻度は低そうですが、いつ起きるか分からない怖さ。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会
ゆたかさん @yutakakn
関数内で途中リターンしていたことで、関数末尾の処理が行われないという、ありがちなバグの修正です。途中リターンがいいか悪いかという議論もありますが、__reload_late()に関しては「途中リターンしない」修正が適切でありそう。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会
ゆたかさん @yutakakn
GCC8の対応がカーネルに入っていて、もうGCC8が出たのかと思ったら、GW中にGCC8がリリースされていました。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会
ゆたかさん @yutakakn
Linuxカーネルのprintfでの%pはハッシュアドレスで、真のポインタアドレスにはならないので、%pxに修正されていますが、この手の問題箇所は他にもありそうです。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会
ゆたかさん @yutakakn
Linuxをfreeze(ハイバネーションのこと)させた後のレジューム時、PCIコンフィグレーション空間が復元できていないため、PCIデバイスが正しく動作しなくなるという問題修正です。D0はデバイスの電源がオン、D3coldはオフ、D3hotはちょっとだけ電力が流れている状態です。 git.kernel.org/pub/scm/linux/… #タグ
ゆたかさん @yutakakn
Ceph(セフ)というのは初耳でしたが、分散ストレージソフトウェアのことで、Linuxカーネル2.6後期から取り込まれているようです。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会
ゆたかさん @yutakakn
スプリアス割り込み(spurious interrupts)というのは、ハードウェアから要因不明の割り込みが上がったことを表し、処理のしようがないのでdebug printして無視するしかありません。一般的にはハードウエアの故障を意味します。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会
ゆたかさん @yutakakn
デバイスドライバ(無線ラジオコントロールドライバ)を取り外す際、ヌルポでカーネルパニックするという問題が修正されています。ドライバの取り外しは非常に難しく、頭を抱えるところとして定番です。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会
ゆたかさん @yutakakn
カーネル関数のstrncpy_from_user()は、ANSI Cのstrncpy()に似せた仕様のため、バッファフルだとNULL終端されないことに対する修正です。strncpyはベテランでも落とし穴にはまることがあります。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会
ゆたかさん @yutakakn
Sambaのディレクトリに対するfsyncをエラーにさせないようにする修正ですが、そもそもディレクトリにfsyncする必要あるのかと思いましたが、manページにきちんと書いてありますね。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会
ゆたかさん @yutakakn
NVMeのドライバにIntelの方が修正されています。NVMeというのはSATAではなくPCI ExpressでつなぐSSDのことです。NVMeは不揮発性メモリのPCI Expressという意味で、SSDより高速と謳われています。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会
ゆたかさん @yutakakn
Exynos4210ってなんだろう思ったら、サムスンがARM系プロセッサを製造販売していたんですね。知りませんでした。Linuxカーネルへのパッチは温度センサのバグ修正です。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会
ゆたかさん @yutakakn
SO_BINDTODEVICEなんていうソケットオプションがあるんですね。ソケットとインターフェイスを結びつけることができます。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会
ゆたかさん @yutakakn
ボンディングドライバで受信ロードバランシング(RLB)の際、不正なMACアドレスを弾く修正です。ボンディングとチーミングは同義だと思っていたのですが、RHEL7にはそれぞれ機能が用意されているようです。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会
ゆたかさん @yutakakn
RTCデバイスの初期化中にデバイスファイルを有効化しているため、別コンテキストで割り込みが起こるとカーネルパニックするという問題の修正で、スタックトレースも含めて解説されていて大変わかりやすいです。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会
ゆたかさん @yutakakn
goldfish RTCドライバにライセンスが付与されていなかった問題の修正です。goldfishというのはAndroidエミュレータ用の仮想RTCデバイスのことで、通常のサーバやPCには搭載されていないデバイスです。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会
ゆたかさん @yutakakn
unsigned charの変数を24ビット左シフトすると、signed intとして扱われるので、それをそのままunsigned long(8バイト)に代入すると、上位4バイトがMSBで埋め尽くされるという問題修正ですが、C言語ベテランでもハマりそう。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会
ゆたかさん @yutakakn
パッチ制作者はauthorの方になります。メールアドレスを見るとCanonicalの人で、Ubuntuの開発を行っている会社です。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会
残りを読む(186)

コメント

Lit @BRAVEMANLBRID 2018-05-29 17:46:50
まとめを更新しました。
Lit @BRAVEMANLBRID 2018-05-30 20:03:30
まとめを更新しました。
Lit @BRAVEMANLBRID 2018-06-02 00:25:13
まとめを更新しました。
Lit @BRAVEMANLBRID 2018-06-05 11:18:56
まとめを更新しました。
Lit @BRAVEMANLBRID 2018-06-08 00:41:21
まとめを更新しました。
Lit @BRAVEMANLBRID 2018-06-12 17:37:31
まとめを更新しました。
Lit @BRAVEMANLBRID 2018-07-05 01:20:47
まとめを更新しました。
Lit @BRAVEMANLBRID 2018-07-11 00:39:47
まとめを更新しました。
Lit @BRAVEMANLBRID 2018-07-15 00:28:52
まとめを更新しました。
Lit @BRAVEMANLBRID 2018-07-18 12:12:11
まとめを更新しました。
Lit @BRAVEMANLBRID 2018-07-29 02:07:42
まとめを更新しました。
Lit @BRAVEMANLBRID 2018-08-01 23:22:46
まとめを更新しました。
Lit @BRAVEMANLBRID 2018-08-05 13:36:23
まとめを更新しました。
Lit @BRAVEMANLBRID 2018-08-07 15:15:00
まとめを更新しました。
Lit @BRAVEMANLBRID 2018-08-07 15:24:01
修正。前後のつぶやきで気になったものも含めておきました
Lit @BRAVEMANLBRID 2018-08-10 19:17:14
まとめを更新しました。
Lit @BRAVEMANLBRID 2018-08-14 22:08:45
更新しました!∠(・`_´・ )
Lit @BRAVEMANLBRID 2018-08-17 13:13:36
まとめを更新しました!
ゆたかさん @yutakakn 2018-08-19 21:48:32
まとめを更新しました。 8/17以降のツイートを当方で追加しました。
Lit @BRAVEMANLBRID 2018-08-22 22:39:58
カーネルパッチ関係なくて恐縮ですがへぇへぇへぇってなったので更新しました!
Lit @BRAVEMANLBRID 2018-08-24 00:13:33
まとめを更新しました!
Lit @BRAVEMANLBRID 2018-08-25 23:08:11
まとめを更新しました!
Lit @BRAVEMANLBRID 2018-08-27 00:02:19
まとめを更新しました。
Lit @BRAVEMANLBRID 2018-08-29 16:18:09
まとめを更新しました! 今回もとても勉強になりました。年末?年始世間を賑わせたSpectre の対策が悲しいほど地道だったのでびっくりしました。セキュリティ対策としては定期的な更新が必須ということですかね
Lit @BRAVEMANLBRID 2018-09-02 10:28:42
ロードアベレージについて入れておきました。 (ロードアベレージは個人的にあまり好きではないので助かります)
Lit @BRAVEMANLBRID 2018-09-06 19:17:01
まとめを更新しました。 今回必須のメモリバリアwmb(), mb()についてや, ハードウェア制御の基本的な内容は @yutakakn さんの「Linuxデバイスドライバプログラミング」に書いてありました。メモリバリアは249pあたりですね。合わせて読むと勉強になります
Lit @BRAVEMANLBRID 2018-09-07 20:03:17
まとめを更新しました!
Lit @BRAVEMANLBRID 2018-09-08 21:42:40
まとめを更新しました!
Lit @BRAVEMANLBRID 2018-09-11 20:14:50
まとめを更新しました。
Lit @BRAVEMANLBRID 2018-09-17 18:52:14
まとめを更新しました! 意図的に書いてあるのかもしれない...と勘繰ることが可能な処理のバグを潰すのは大変そうですね。(ところで僕は意図的にfall throughするというのを知りませんでした。勉強になります)
Lit @BRAVEMANLBRID 2018-09-20 18:30:52
まとめを更新しました。今回は最近気になってる時計関連の話題なのでの嬉しいです。といってもオーバーフローする問題の修正のようです。前回の補足も入れておきました。
Lit @BRAVEMANLBRID 2018-09-22 00:57:11
まとめを更新しました。よろしくなさそうな気配の修正があるのも面白いですね。また修正されるのでしょうか。。。
Lit @BRAVEMANLBRID 2018-09-24 20:02:06
まとめを更新しました! 前回の補足も追加させていただきました
Lit @BRAVEMANLBRID 2018-09-27 19:59:58
遅れましたが、まとめを更新しました!
Lit @BRAVEMANLBRID 2018-10-07 01:26:27
まとめを更新しました!
Lit @BRAVEMANLBRID 2018-10-13 16:56:57
まとめを更新しました!
Lit @BRAVEMANLBRID 2018-10-22 23:48:08
おくれました。。。まとめを更新しました!(コピペミスの修正ならいけそうな気がしました!(気がつくかどうかは別として))
Lit @BRAVEMANLBRID 30日前
まとめを更新しました。
Lit @BRAVEMANLBRID 23日前
まとめを更新しました。
Lit @BRAVEMANLBRID 21日前
少し遅れてしまいましたが、まとめを更新しました!復活嬉しいですw
Lit @BRAVEMANLBRID 16日前
まとめを更新しました。未使用っていうのの修正が面白かったんですが、どうやって気がついてくるのか気になりました
Lit @BRAVEMANLBRID 13日前
まとめを更新しました!
Lit @BRAVEMANLBRID 10日前
まとめを更新しました!use-after-free
Lit @BRAVEMANLBRID 7日前
まとめを更新しました!確保すべきメモリ領域を確保できてなかったというやつは面白かったです。別のバグを修正するまで明らかなにならなかったっていうのは結構ありがちなのですかね。
Lit @BRAVEMANLBRID 1日前
まとめを更新しました。おもしろかったです
ログインして広告を非表示にする
ログインして広告を非表示にする