Open kooyunmo opened 4 years ago
네, 안녕하세요. 일단은 알려주신 정보로만은 정확한 문제 파악이 어렵습니다. 지금 타이젠 커널이 아닌, 로컬 커널에 모듈을 삽입해서 테스트하시려는 상황이신가요? 관련해서 예상되는 문제/해결방법은 다음과 같습니다.
추가로, 커널 모듈 빌드 시 참고하실만한 링크이니 참고하시길 바랍니다.
답변 감사합니다.
MODULE_LICENSE("GPL");
은 추가한 상태였으나 에러가 발생했고 다른 방법들을 시도해봤는데 symbol을 찾지 못하는 문제가 반복됩니다.
그래서 read_lock(&tasklist_lock);
대신에 rcu_read_lock()
을 사용해봤는데 synchronize가 문제없이 잘 수행되는 걸로 보입니다. 혹시 read_lock을 사용하는 것이 필수조건이 아니라면 rcu_read_lock을 사용해도 무방할까요?
네, 무방합니다만, 로컬의 리눅스커널 배포판 (올려주신 스크린샷에 보이듯 버전 5.0.0)이 아닌 타이젠 커널에 테스트하셔야합니다. 해당 모듈을 위한 Makefile에 쓰여있는 커널 path를 다시 한 번 확인해보시길 바랍니다.
네 감사합니다!
안녕하세요 조교님, tasklist_lock 관련해서 질문을 드립니다.
현재 시스템콜을 등록하고 커널을 컴파일 하기 전에 debugfs로 코드를 작성하고 있는데요, 다음과 같이 tasklist_lock을 사용하면 unknown symbol이라는 에러가 발생합니다.
locking 부분을 제거하고 코드를 실행하면 에러 없이 제대로 동작하는데 read_lock을 넣으면 다음과 같은 에러 메세지가 뜹니다.
dmesg에서 뜨는 에러 문구는
Unknown symbol tasklist_lock (err -2)
입니다.문제가 발생하는 원인이 무엇일까요?