編集可能

#カーネルパッチ勉強会

Linuxカーネルパッチについて、ゆたかさんによる一言解説をまとめているものです。 https://twitter.com/yutakakn > Linuxに関する勘所を忘れないようにするため、Linuxカーネルのコミット内容を毎日読むことにしました。
17
ゆたモン【非公式】🍅フォロバ100% @55_yutamon

Linuxに関する勘所を忘れないようにするため、Linuxカーネルのコミット内容を毎日読むことにしました。 #カーネルパッチ勉強会

2018-05-27 15:49:19
ゆたモン【非公式】🍅フォロバ100% @55_yutamon

UDFはDVDで使われるファイルシステムのことで、UnicodeからUTF-8に変換する処理でサロゲートペアをエラーにできていなかったバグ修正です。サロゲートペアというのは4バイトで一文字とする方式のことです。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-05-27 15:53:13
ゆたモン【非公式】🍅フォロバ100% @55_yutamon

use-after-free bugというのは、メモリを解放した後に、そのメモリにアクセスすることで例外が起きるというバグのことです。ただし、無線LANドライバを取り外した時なので、通常は起きないはずですが、systemdだとありえるのかな。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-05-27 15:54:10
ゆたモン【非公式】🍅フォロバ100% @55_yutamon

ACPIビデオ検出処理で、BIOS定義でWin8以上であればLCDと判断していたのを、SMBIOSのシャーシ種別も参照して、「デスクトップ機かつWin8以上」という条件に修正しています。DELLのウルトラブックでの不具合を是正するパッチのようです。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-05-27 15:54:57
ゆたモン【非公式】🍅フォロバ100% @55_yutamon

この修正見て初めて知りましたが、glibcのprintfで%pは64bitアドレスが表示されますが、Linuxカーネルの%pはハッシュアドレス(上位32bitがゼロ)となり、本当の64bitアドレスを表示するには%pxを使う必要があります。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-05-27 15:55:49
ゆたモン【非公式】🍅フォロバ100% @55_yutamon

下記修正はAMDプロセッサの温度を取得する処理で、今年出たばかりのRyzen 7 2700Xに対応させています。ファイル名がk10temp.cとなっているのは、AMDのK10アーキテクチャが由来です。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-05-27 15:56:38
ゆたモン【非公式】🍅フォロバ100% @55_yutamon

下記修正はsparc64向けのドライバのライセンスが誤ってGPLv3になっていたのが是正されています。LinuxカーネルはGPLv2で、ドライバもGPLv2にしたほうが望ましいとされています。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-05-27 15:57:08
ゆたモン【非公式】🍅フォロバ100% @55_yutamon

カーネルの高精度タイマー(hrtimer)で排他制御漏れによる競合状態(race condition)が発生して、expiresメンバーが意図せぬ変更がされてしまうという問題の修正です。発生頻度は低そうですが、いつ起きるか分からない怖さ。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-05-27 15:57:37
ゆたモン【非公式】🍅フォロバ100% @55_yutamon

関数内で途中リターンしていたことで、関数末尾の処理が行われないという、ありがちなバグの修正です。途中リターンがいいか悪いかという議論もありますが、__reload_late()に関しては「途中リターンしない」修正が適切でありそう。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-05-27 15:58:13
ゆたモン【非公式】🍅フォロバ100% @55_yutamon

GCC8の対応がカーネルに入っていて、もうGCC8が出たのかと思ったら、GW中にGCC8がリリースされていました。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-05-27 16:08:14
ゆたモン【非公式】🍅フォロバ100% @55_yutamon

Linuxカーネルのprintfでの%pはハッシュアドレスで、真のポインタアドレスにはならないので、%pxに修正されていますが、この手の問題箇所は他にもありそうです。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-05-27 16:10:45
ゆたモン【非公式】🍅フォロバ100% @55_yutamon

Linuxをfreeze(ハイバネーションのこと)させた後のレジューム時、PCIコンフィグレーション空間が復元できていないため、PCIデバイスが正しく動作しなくなるという問題修正です。D0はデバイスの電源がオン、D3coldはオフ、D3hotはちょっとだけ電力が流れている状態です。 git.kernel.org/pub/scm/linux/… #タグ

2018-05-27 16:12:10
ゆたモン【非公式】🍅フォロバ100% @55_yutamon

Ceph(セフ)というのは初耳でしたが、分散ストレージソフトウェアのことで、Linuxカーネル2.6後期から取り込まれているようです。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-05-27 16:13:10
ゆたモン【非公式】🍅フォロバ100% @55_yutamon

スプリアス割り込み(spurious interrupts)というのは、ハードウェアから要因不明の割り込みが上がったことを表し、処理のしようがないのでdebug printして無視するしかありません。一般的にはハードウエアの故障を意味します。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-05-27 16:14:02
ゆたモン【非公式】🍅フォロバ100% @55_yutamon

デバイスドライバ(無線ラジオコントロールドライバ)を取り外す際、ヌルポでカーネルパニックするという問題が修正されています。ドライバの取り外しは非常に難しく、頭を抱えるところとして定番です。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-05-27 16:15:05
ゆたモン【非公式】🍅フォロバ100% @55_yutamon

カーネル関数のstrncpy_from_user()は、ANSI Cのstrncpy()に似せた仕様のため、バッファフルだとNULL終端されないことに対する修正です。strncpyはベテランでも落とし穴にはまることがあります。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-05-27 16:15:42
ゆたモン【非公式】🍅フォロバ100% @55_yutamon

Sambaのディレクトリに対するfsyncをエラーにさせないようにする修正ですが、そもそもディレクトリにfsyncする必要あるのかと思いましたが、manページにきちんと書いてありますね。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-05-27 16:16:11
ゆたモン【非公式】🍅フォロバ100% @55_yutamon

NVMeのドライバにIntelの方が修正されています。NVMeというのはSATAではなくPCI ExpressでつなぐSSDのことです。NVMeは不揮発性メモリのPCI Expressという意味で、SSDより高速と謳われています。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-05-27 16:16:47
ゆたモン【非公式】🍅フォロバ100% @55_yutamon

Exynos4210ってなんだろう思ったら、サムスンがARM系プロセッサを製造販売していたんですね。知りませんでした。Linuxカーネルへのパッチは温度センサのバグ修正です。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-05-27 16:19:17
ゆたモン【非公式】🍅フォロバ100% @55_yutamon

SO_BINDTODEVICEなんていうソケットオプションがあるんですね。ソケットとインターフェイスを結びつけることができます。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-05-27 16:19:48
ゆたモン【非公式】🍅フォロバ100% @55_yutamon

ボンディングドライバで受信ロードバランシング(RLB)の際、不正なMACアドレスを弾く修正です。ボンディングとチーミングは同義だと思っていたのですが、RHEL7にはそれぞれ機能が用意されているようです。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-05-27 16:20:15
ゆたモン【非公式】🍅フォロバ100% @55_yutamon

RTCデバイスの初期化中にデバイスファイルを有効化しているため、別コンテキストで割り込みが起こるとカーネルパニックするという問題の修正で、スタックトレースも含めて解説されていて大変わかりやすいです。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-05-27 16:20:39
ゆたモン【非公式】🍅フォロバ100% @55_yutamon

goldfish RTCドライバにライセンスが付与されていなかった問題の修正です。goldfishというのはAndroidエミュレータ用の仮想RTCデバイスのことで、通常のサーバやPCには搭載されていないデバイスです。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-05-28 17:07:56
ゆたモン【非公式】🍅フォロバ100% @55_yutamon

unsigned charの変数を24ビット左シフトすると、signed intとして扱われるので、それをそのままunsigned long(8バイト)に代入すると、上位4バイトがMSBで埋め尽くされるという問題修正ですが、C言語ベテランでもハマりそう。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-05-29 15:50:17
残りを読む(251)

コメント

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