수정한 커널 코드가 특정 조건에서만 동작하도록 도와주는 간단한 debugfs 드라이버 코드에 대해 분석 및 내 리눅스에서 정상적으로 동작하도록 수정한다.최종 동작은 /sys/kernel/debug/rpi_debu/val 라는 파일에 값을 생성하고 그것을 확인하는것인데,


"인터럽트가 자주 발생할때 후반부 처리 기법으로 Soft IRQ나 Tasklet 기법을 사용하는것이 좋다." 인터럽트가 매우 많이 발생하는 하드웨어는 어떤것이 있는가? 일반적으로 네트워크 인터페이스가 그 경우에 해당한다고 볼 수 있다. 그러면 저사양 임베디드 장비에

인터럽트의 발생 빈도가 매우 높거나 인터럽트가 발생한 후 바로 처리해야하는 경우 Soft IRQ를 사용한다. SoftIRQ (소프트웨어 인터럽트)하드웨어 인터럽트 처리가 끝나는 시점(irq_exit)에 인터럽트 컨텍스트의 연장선에서 지체 없이 바로 실행, 슬립 금지.

일반적인 패킷 처리는 SoftIRQ......2ms 이나 10번의 시도 이후 ksoftirqd thread로 처리, 이때는 일반적인 스케줄링 가능\-> 근데 왜 굳이 workqueue를 사용하는가?ksoftirqd 에서, \_\_do_softirq는 Real-Time

Submission queue (SQ): A user space process uses the submission queue to send asynchronous I/O requests to the kernel.Completion queue (CQ): The kerne

CFS 총 실행된 시간. vruntime가 가장 작은 프로세스를 실행시키는 것. 실행 요청을 한 프로세스의 vruntime과 이미 런큐에 등록된 프로세스들의 vruntime을 비교 한 후, Red-Black Tree에 삽입한다. 선점 스케줄링 선점 스케줄링은 인터럽

11개의 Order 순서대로 2^0, 2^1 ... 2^10 개의 연속된 4KB Page의 개수 즉, Normal zone같은 경우 2^6. 7번째를 보면 총 451개의 연속된 1MB 메모리가 free상태인것을 확인할 수 있다. include/linux/mmzone.h