Linux Kernel(4.19) Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

120187
803
94449


태그 : 워크 요약보기전체보기목록닫기

1

[리눅스커널] 워크큐: 워크 실행의 출발점인 worker_thread() 함수 분석

워커 스레드가 깨어나면 스레드 핸들러인 worker_thread() 함수가 실행됩니다.worker_thread() 함수는 워커 스레드를 종료하거나 생성하는 기능을 수행하지만 핵심 동작은 워크를 실행하는 것입니다.이번 소절에서는 worker_thread() 함수에서 워크를 실행하는 동작에 초점을 맞춰 분석하겠습니다.worker_thread() 함수 세부 ...

[리눅스커널] 워크큐(Workqueue) - 딜레이워크(delayed_work)는 어떻게 실행하나?

딜레이 워크를 실행하려면 어떤 함수를 호출해야 할까요? schedule_delayed_work() 함수를 실행하면 됩니다.먼저 딜레이 워크를 실행하는 드라이버 코드를 예제로 열어 보겠습니다.[https://elixir.bootlin.com/linux/v4.14.43/source/drivers/mmc/host/bcm2835.c#L651]1 static2 ...

[리눅스커널] 워크큐(Workqueue) - 딜레이워크(delayed_work)는 어떻게 초기화하나?

딜레이 워크를 실행하기 위해서 먼저 딜레이 워크를 초기화해야 합니다. 이를 위해 INIT_DELAYED_WORK() 매크로 함수를 호출해야 합니다.먼저 딜레이 워크를 초기화하는 디바이스 드라이버 코드를 열어 봅시다.[https://elixir.bootlin.com/linux/v4.14.43/source/drivers/thermal/da9062-therm...

[라즈베리파이] 워크큐(Workqueue) - 딜레이워크(delayed_work) 소개

워크큐는 대표적인 커널 후반부 처리 기법으로 후반부 처리 코드를 워크 핸들러에서 실행합니다. 동기적으로 처리 할 필요가 없는 코드를 워크 핸들러에 위치시켜 비동기적으로 커널 쓰레드 레벨에서 처리하는 겁니다. 이런 구조로 드라이버를 설계하면 다양한 디바이스 드라이버 시나리오에 맞게 코드를 구성할 수 있습니다. 워크에서 유연성을 추가한 기법이 딜레이 워크입...

[리눅스커널] 워크큐: 워크를 워크큐에 큐잉하는 인터페이스 함수 분석하기

이번 소절에서는 워크를 워크큐에 큐잉할 때 진입하는 함수를 분석합니다. schedule_work() queue_work() queue_work_on()먼저 schedule_work() 함수를 분석해볼까요?schedule_work() 함수 분석하기schedule_work() 함수 구현부 코드는 다음과 같습니다.[https://github.com/ra...

[라즈베리파이] 워크큐(Workqueue) - 워크(struct work_struct) 란

리눅스 커널에서 work라고 부르나 워크(struct work_struct)로 명시 하겠습니다.워크란 무엇이고 어떤 동작을 할까요? 워크는 워크큐 실행 단위이며 워커 쓰레드에서 실행합니다. 커널 후반부 처리 기법으로 워크큐를 많이 쓴다고 했는데 워크가 바로 후반부 처리를 합니다. 워크가 어떻게 동작하는지 이번 장에서 코드를 분석하면서 상세히 알아볼 예정...

[리눅스커널]워크큐(Workqueue): 워크큐 주요 개념 알아보기

이번 소절에서는 워크큐를 이루는 주요 개념을 소개합니다. -   워크 -   워커스레드 -   워커풀 -   풀워크큐먼저 워크큐의 기본 실행 단위인 워크를 배워볼까요?워크란워크는 워크큐를 실행하는 단위입니다. 워크는 누가 실행할까요? 워크는 실행하...
1