udev 규칙이 `DEVPATH=="/kernel"`에서 작동하지 않는 이유는 무엇입니까?

udev 규칙이 `DEVPATH=="/kernel"`에서 작동하지 않는 이유는 무엇입니까?

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]맞춤화하는 것이 더 표준적인 장소가 될 것입니다.

관련 정보