#カーネルパッチ勉強会

Linuxカーネルパッチについて、ゆたかさんによる一言解説をまとめているものです。 https://twitter.com/yutakakn > Linuxに関する勘所を忘れないようにするため、Linuxカーネルのコミット内容を毎日読むことにしました。
カーネルパッチ勉強会 kernel Linux
7643view 60コメント
12
ゆたかさん @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/… #カーネルパッチ勉強会
残りを読む(218)

コメント

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