前書き
細かいpatchも見ているとなるほどーなとか勉強になりますね
今週のpatch
2038年問題対応
[PATCH 0/6] Transition vfs to 64-bit timestampsです。VFSがstruct timespecを使っているところで、この構造体は2038年問題があるのでstruct timespec64に置き換え。
typo修正
[PATCH] cramfs: Fix IS_ENABLED typoです。 fs/cramfs/inode.cで4.15からtypoってたようです。利用者数とかもあるんでしょうけど、意外と気付かれないものですね。
boot初期のhashed pointer表示
[PATCH] vsprintf: Add command line option debug_boot_weak_hashです。早い段階だと十分なエントロピーがないため、ポインタのアドレスをhash値で表現できずに固定の文字列表示になってしまうのですが、これだとデバッグが難しいということで、bootの初期段階でもhash値を作れるようにするpatchです。
空の/proc//cmdlineは許可しない
[PATCH] proc: Don't allow empty /proc/PID/cmdline for user tasksです。カーネルスレッドがの場合、/proc/
secompのフィルターに引っかかったらユーザ空間に通知
[PATCH v2 0/4] seccomp trap to userspaceです。secompでフィルターに引っかかったらそれをユーザーランド側に通知する仕組みの追加です。カーネル側に色々と処理を持たすよりもユーザーランド側で処理するようにしたほうが柔軟にもなりますね。
その他
UPのシステムでfor_each_cpu()がバグってる?
for_each_cpu() is buggy for UP kernel?です。
以下のイテレータで、システムがUni Processorな場合でmaskに0が設定されていてもmaskの値が無視されているからループが一回走ってしまって良くないということです。
#define for_each_cpu(cpu, mask) \ for ((cpu) = 0; (cpu) < 1; (cpu)++, (void)mask)
4.16.10だとUPでない場合はfor_each_cpu()はこのようになっていて、maskの値が使われます。
/** * for_each_cpu - iterate over every cpu in a mask * @cpu: the (optionally unsigned) integer iterator * @mask: the cpumask pointer * * After the loop, cpu is >= nr_cpu_ids. */ #define for_each_cpu(cpu, mask) \ for ((cpu) = -1; \ (cpu) = cpumask_next((cpu), (mask)), \ (cpu) < nr_cpu_ids;)
これについては過去に議論されたけど、結論はでてないとのことでした。
あとがき
(´-`).。oO(遅れましたがなんとか
- 作者: 西餅
- 出版社/メーカー: 講談社
- 発売日: 2014/07/23
- メディア: Kindle版
- この商品を含むブログ (6件) を見る