네트워크 인터럽트 핸들러에서 add_timer로 설정한 타임값이 만료되어
커널 타어머 인터럽트 발생시 실행되는 함수에서
spin_lock_irqsave()를 호출하면 다른 인터럽트는 비활성화 되는지
궁금합니다.
spin_lock_irqsave()를 호출한 이유는 너트워크 인터럽트 핸들러에서 사용하는 공유 데이터를
변경하기위함인데요. 이때 다시 네트워크 인터럽트에 의해 선점되는지 궁금하네요...
local_irq_disable() ... x86 으로 치면 cli 가 호출됩니다.
spin_lock_irqrestore() 에선 넘겨받은, 즉 이전에 save된 플래그에 따라 local_irq_enable() ... x86 으로 치면 sti 가 호출되던가 말던가 합니다.
텍스트 포맷에 대한 자세한 정보
<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]
local_irq_disable() ... x86
local_irq_disable() ... x86 으로 치면 cli 가 호출됩니다.
spin_lock_irqrestore() 에선 넘겨받은, 즉 이전에 save된 플래그에 따라 local_irq_enable() ... x86 으로 치면 sti 가 호출되던가 말던가 합니다.
댓글 달기