2011-04-14 3 views
0

/sys/power/state에 대한 쓰기를 처리하는 리눅스 커널 (x86, 2.6.18 또는 유사)의 소스 파일을 찾고 싶습니다. 검색 좀하고 sysfs_create_file (및 dir) 소스 코드를 검색하려고합니다. 하지만 지금까지 아무 것도 발견하지 못했습니다. 누구든지 그것을 압니까? 감사!리눅스 커널이/sys/power/state에 쓰기 처리하는 방법

답변

5

커널에 대한 호출이 끝나는 곳을 찾으려면 Ftrace이 편리한 도구가 될 수 있습니다.

: 당신의 특별한 경우를 들어

, 나는 /sys/power/state에서 읽기 함수 그래프를 얻기 위해 다음 명령을 사용 (I는 읽기 기능은 너무 멀리 당신이 찾고있는 함수를 작성에서되지 않을 것 생각)
trace-cmd record -p function_graph -F cat /sys/power/state 

이것은 trace.dat라는 바이너리 파일로 추적을 덤프

(이 작업을 실행하려면 루트 필요). 이 파일을 읽으려면 (다시 루트로) 다음을 수행하십시오

trace-cmd report 

가 그럼 난 "전원"또는 "상태"같은 것들에 출력을 필터링하는 grep을 사용하고 결국만을 보여주는 (다음을 찾을 수 있었다 관련 부분) :

sysfs_read_file() { 
    ... 
    state_show() { 
    valid_state() { 
     acpi_suspend_state_valid(); 
    } 
    } 
    ... 
} 

그래서 /sys/power/state을 읽는 것은 state_show에 끝납니다. 그 함수 아래에서, 당신은 state_store을 찾을 수 있습니다.

+0

매우 흥미 롭습니다. 나는 전에 Ftrace를 몰랐다. 고맙습니다. – Jiang