#カーネルパッチ勉強会

Linuxカーネルパッチについて、ゆたかさんによる一言解説をまとめているものです。 https://twitter.com/yutakakn > Linuxに関する勘所を忘れないようにするため、Linuxカーネルのコミット内容を毎日読むことにしました。
21
前へ 1 2 ・・ 12 次へ
平田豊@フォロバ100 @yutakakn

パッチ制作者はauthorの方になります。メールアドレスを見るとCanonicalの人で、Ubuntuの開発を行っている会社です。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-05-29 16:13:04
平田豊@フォロバ100 @yutakakn

32bitのLinuxで、RTCから読んだ値が32bit(signed int)を超えていた場合にエラーとしていない問題の修正です。最も、RHEL7では32bitはサポートなくなったので、32bit対応をどこまでやるのかという話もありますが、組み込みでは32bitが当分現役でしょう。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-05-29 22:37:10
平田豊@フォロバ100 @yutakakn

ちなみに、このビットシフトでの汎整数拡張(integer promotion)の問題は、32bit環境では問題にはならないです。なぜならば、unsigned longが4バイトだからです。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-05-29 23:41:39
平田豊@フォロバ100 @yutakakn

シリアルポートの受信割り込みが禁止の時にも受信処理をしていたという問題の修正です。シリアルポート(COM)はサーバや組み込み機器では標準で、現役のデバイスです。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-05-30 16:10:15
平田豊@フォロバ100 @yutakakn

KDBのmdrコマンドの改修です。KDBはLinuxカーネル内蔵のカーネルデバッガで、カーネルパニック時にKDBプロンプトからメモリダンプ等ができます。なお、KDBはソースコードレベルデバッガではないです。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-05-31 13:47:11
平田豊@フォロバ100 @yutakakn

組み込み(ARM)向けのボードを制御するDevice Treeで、HDMIの設定ミスの修正です。ハードウェアのリソースをDevice Treeで定義することで、その都度ロジックを実装しなくてもよくなります。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-06-01 19:42:39
平田豊@フォロバ100 @yutakakn

Device TreeのしくみはLinuxカーネル2.6の終盤で取り込まれたので、古い2.6を使うことが多い組み込み界隈だと、そのしくみを使わないですが、最近のカーネルでARMのドライバは全部Device Tree化されています。 #カーネルパッチ勉強会

2018-06-01 19:57:35
平田豊@フォロバ100 @yutakakn

Intelのネットワークコントローラーで、特定のファームウェアの場合のみ、ファームウェアの初期化完了を待つため、300msの待ちが追加されていますが、WAに近い修正のようです。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-06-03 21:28:14
平田豊@フォロバ100 @yutakakn

ネットワークカードにファームウェアが内蔵されていて、ファームウェアの更新は修理になるため、たいていはドライバの方を修正して、問題回避します。ドライバはユーザが更新することができるからです。 #カーネルパッチ勉強会

2018-06-03 21:30:50
平田豊@フォロバ100 @yutakakn

構造体のメンバー名をcache_typeとcacheを取り違えていた問題の修正ですが、cacheはvoidポインタで、右辺は列挙型なので、コンパイラの警告が出そうですが、たまたまゼロだったから? git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-06-04 13:47:40
平田豊@フォロバ100 @yutakakn

ファイルの先頭に「SPDX-License-Identifier: GPL-2.0」という行がありますが、ライセンスを明確にするための識別子で、SPDXはSoftware Package Data Exchangeの略です。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-06-05 13:10:43
平田豊@フォロバ100 @yutakakn

IPv6が指定されていて、パケット(ソケットバッファ)がIPv4だった場合、IPv4の処理に倒す修正で、この動きをフォールバックといいます。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-06-05 14:36:55
平田豊@フォロバ100 @yutakakn

drm_vblank_count関数で64bit変数を返しているのに、関数の返り値の型が32bitになっているという問題の修正ですが、こういうのはコンパイルエラーにはならないんですね。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-06-05 15:18:14
平田豊@フォロバ100 @yutakakn

page_mapping関数が無名ページの場合NULLを返すので、除外しないように修正されていますが、関数の仕様が明確でないので、修正が妥当なのかどうか。slabページの場合もNULLを返すようなので。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-06-06 14:16:46
平田豊@フォロバ100 @yutakakn

非同期I/Oで仕掛かり中の処理の終了待ちを行う時、誤ってリストを先に解放してしまっているという問題修正です。この手の問題はテストでも見つからないのでやっかいです。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-06-07 15:02:11
平田豊@フォロバ100 @yutakakn

LVDSというのはノートパソコンの液晶モニタの接続に使われるシリアルインターフェイス。Radiant P845というのはどんな製品か分かりませんが、Radiant Systems社はHospitalityとRetailの技術サポートの会社だそうです。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-06-08 15:01:18
平田豊@フォロバ100 @yutakakn

IB(インフィニバンド)は20年近く前からあるけど、いまひとつ流行らない技術のひとつ。Mellanoxという会社が頑張っていて、このパッチもその会社の人が出しています。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-06-09 17:34:49
平田豊@フォロバ100 @yutakakn

無線LANのバックオフというのは、フレームが衝突した時に再送処理を行うという意味です。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-06-10 13:29:03
平田豊@フォロバ100 @yutakakn

ヘッダファイルの記載漏れの修正です。水平展開や横展開で類似の修正はしてないようですが、そのような文化は日本だけ? git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-06-10 13:31:15
平田豊@フォロバ100 @yutakakn

IIO(Industrial I/O)というのは組み込み機器で使われる各種デバイスインターフェイスのことで、そのうちのひとつであるADCはアナログデジタル変換のことです。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-06-11 16:45:31
平田豊@フォロバ100 @yutakakn

PCIデバイスが抜去された場合、無限待ちではなくタイムアウト付きの待ちに修正されています。ドライバでは時限式ウェイトを使うのは定石です。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-06-12 13:11:48
平田豊@フォロバ100 @yutakakn

Broadcomのスイッチにフレームを送る時、MACアドレスとタイプの間に専用のタグを挿入するという修正です。Linux側でタグ挿入するので、ネットワークの性能(スループット)が落ちることがあります。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-06-12 13:30:57
平田豊@フォロバ100 @yutakakn

IPv6のフローラベルのビット参照ミスの修正ですが、ECMP(Equal Cost Multi Path)というのはレイヤ3スイッチで、ルーティングの負荷分散を行うしくみなんですね。勉強になります。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-06-14 14:33:25
平田豊@フォロバ100 @yutakakn

Linuxカーネルの暗号系APIでのメモリリークの修正です。カーネル空間でのメモリリーク検出は一発で問題箇所が特定できるわけではないので、地道な調査が必要で、結構大変です。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-06-17 14:06:51
平田豊@フォロバ100 @yutakakn

Atmelシリアルドライバの割り込み情報の表示が時々不正になるという問題修正で、use-after-free問題(解放メモリの参照)です。この問題はレビューでもテストでも見つけにくいので、エンジニア泣かせです。 git.kernel.org/pub/scm/linux/… #カーネルパッチ勉強会

2018-06-20 14:00:43
前へ 1 2 ・・ 12 次へ