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

Guillermo Austin Kim|2019년 6월 19일
Posts

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

Guillermo Austin Kim|2019년 6월 19일

워커 스레드가 깨어나면 스레드 핸들러인 worker_thread() 함수가 실행됩니다.worker_thread() 함수는 워커 스레드를 종료하거나 생성하는 기능을 수행하지만 핵심 동작은 워크를 실행하는 것입니다. 이번 소절에서는 worker_thread() 함수에서 워크를 실행하는 동작에 초점을 맞춰 분석하겠습니다. worker_thread() 함수 세부 동작은 다음 워커 스레드 절에서 상세히 다룹니다. 다음은 worker_thread() 함수에서 워크 실행에 관련된 코드 조각입니다.[https://github.com/raspberrypi/linux/blob/rpi-4.19.y/kernel/workqueue.c]01 static int worker_thread(void *__worker)02 {03

Related Posts

3 posts
앱테크 추천 오락 만보기와 일상생활을 통해 포인트 적립

앱테크 추천 오락 만보기와 일상생활을 통해 포인트 적립

앱테크 추천 오락 만보기와 일상생활을 통해 포인트 적립 생활을 통해 포인트를 적립 받을 수 있는 앱테크 어플! 오락! 여러분들은 이용하고 계시나요? 저는 만보기 앱과 뉴스 읽기, 유튜브 보기, 기타 광고 등을 이용해서 포인트를 적립 받고 있는데요. 이렇게 적립 받은 포인트는 현금처럼 사용할 수 있어 매일매일 잘 이용하고 있습니다. 안드로이드 스마트폰에서 사용 가능한 오락은 OK캐쉬백 포인트로 적립 받을 수 있는데요. 오락에서 적립 받은 OK캐쉬백 포인트 및 내역은 OK캐쉬백 앱에서도 확인이 가능하다고 합니다. 이번에 오락 v1.9.0으로 업데이트되면서 오락 앱의 리워드가 확대되었다고 하는데요. 오락 사.......

[리눅스커널] 워크큐: struct worker 구조체 파악하기

Guillermo Austin Kim|2020년 3월 11일

워커를 관리하고 저장하는 자료구조는 worker 구조체입니다. 이번 절에서는 worker 구조체의 세부 필드를 분석하겠습니다. worker 구조체 분석 다음은 worker 구조체의 선언부입니다. struct worker {2 union {3 struct list_head entry; 4 struct hlist_node hentry; 5 };6 struct work_struct *current_work; 7 work_func_t current_func; 8 struct pool_workqueue *current_pwq; 9 bool desc_valid;10 struct list_head scheduled; 1112 struct task_struct *task; 13 struct worker_p

[리눅스커널] 딜레이 워크: 패치 코드 내용과 작성 방법 알아보기

Guillermo Austin Kim|2020년 2월 27일

이번 절에서는 딜레이 워크를 만들어보는 실습을 진행합니다. 실습할 패치 코드 시나리오는 다음과 같습니다.  인터럽트 핸들러에서 워크를 큐잉 워크 핸들러 실행  워크 핸들러에서 딜레이 워크를 실행 이번 장에서 배운 내용을 총복습하는 실습입니다. 먼저 패치 코드를 작성해 봅시다. 패치 코드의 내용과 작성 방법 먼저 패치 코드를 소개하겠습니다. diff --git a/drivers/mailbox/bcm2835-mailbox.c b/drivers/mailbox/bcm2835-mailbox.c--- a/drivers/mailbox/bcm2835-mailbox.c+++ b/drivers/mailbox/bcm2835-mailbox.c@@ -33,11 +33,23 @@1 #include