udevルールをテストするためにファイルを使用しています/etc/udev/rules.d/10-test.rules
。
この行は:
DEVPATH=="/devices/system/node/node0", ATTR{hugepages/hugepages-1048576kB/nr_hugepages}="4"
/sys/devices/system/node/node0/hugepages/hugepages-1048576kB/nr_hugepages
で作ってみてください4
。
しかし、この行は:
DEVPATH=="/kernel/mm", ATTR{hugepages/hugepages-1048576kB/nr_hugepages}="4"
影響はありません/sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages
。
次の行も同じです。
DEVPATH=="/kernel", ATTR{mm/hugepages/hugepages-1048576kB/nr_hugepages}="4"
(再起動しても動作しません。)
なぜ?
答え1
/sys/devices/system/node/node0
システムの残りの部分とは無関係にオフラインに切り替えるコマンドを受け入れることができるNUMAハードウェアノードを表します。テーマとして使えるようにudev イベント、これは以下に基づいて行うことができます。udevルール。
/sys/kernel/mm
ハードウェアに関する何も示していません。これはカーネルの一般的なメモリ管理パラメータのための場所です。カーネルが起動すると存在し、消えないため、udevイベントはそれを参照しません。 udevイベントがないと、udevルールはトリガーできません。
/sys/devices
あるいは、次のエントリにのみudevルールを関連付けることができると言うこともできます。/sys/kernel
それ以下ではありません/sys/devices
。
一般的なメモリ管理パラメータを操作するためにudevルールを使用することは非常に珍しいです。/etc/sysctl.conf[.d]
カスタマイズはより標準的な場所になります。