커널 프로그래밍 중...

show4682의 이미지

현재 다음과 같은 시스템에서 커널모듈프로그래밍 중입니다.

kernel version : kernel 2.6.29.3 x86_64
cpu 개수 : 2개(8코어) SMP

궁금한 점은 다음고 같습니다.
* 상황
1. A 전역변수가 있습니다.
2. 타이머 핸들러가 A1 스핀락을 잡고 빈번하게 A 전역변수를 접근합니다.
3. 워크큐가 B 전역변수를 모니터링하다가 변화가 있으면 A전역변수에 접근하기
위해 A1 스핀락을 잡고 A 전역변수에 접근합니다. 그러나 B 전역변수 상황에 따라 A1락을 잡고 있는 시간이
오래 걸립니다.(정확한 시간은 안 재 봤습니다.)
4. 위 같은 상황(락을 오래잡는 것)이 발생하면 데드락 걸립니다. 아마도 타이머 핸들러와 워크큐가 오버랩되면서
동기화 깨지는거 같습니다.

워크큐가 스케쥴링 당하는거 같아서 선점 잠그고 들어가면 워크큐루틴 오래걸리면 타이머 핸들러가 오래 걸린 시간 만큼
안 돕니다. ㅜㅜ

고수님들 워크큐에서 락을 오래 잡는 것 때문에 동기화가 깨지는 걸까요..
비슷한 경험 있으신 분들 꼭 답글 부탁드립니다.
수고하세요.. 꾸벅

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.