[리눅스커널] 워크큐: 워크 실행의 출발점인 worker_thread() 함수 분석
By 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
[Linux][Kernel] ftrace - Workqueue 워크큐 로그 분석 - 1
By Guillermo Austin Kim | 2017년 12월 13일 |
리눅스 커널의 매우 중요한 Subsystem인 워크큐. 이번에는 잠깐 ftrace 로그에서 workqueue에 대해 분석을 해보려고 해요.ftrace 세팅은 Appendix [1]을 참고하시구요. 아래 로그는 보자마자 느낄 수 있는 건 irq/225-touch-279란 irq_thread에서 워크 큐를 큐잉하고 이 후 워크큐가 실행된다는 걸 알 수 있죠. irq/225-touch-279 [006] 53516.537609: workqueue_queue_work: work struct=0xed845d58 function=touch_update_work workqueue=0xed80cc00 req_cpu=8 cpu=6 //<<--[1] irq/225-touch-279 [006] 53
[리눅스커널] 워크큐: 워커 스레드는 누가 언제 만들까
By Guillermo Austin Kim | 2019년 9월 25일 |
이번 챕터 앞 부분에서 워크큐에 대해 다음과 같이 소개했습니다. 워크를 처리하는 워커 스레드를 미리 생성해 놓고 워크 실행 요청이 오면 해당 워커 스레드가 이를 처리한다. 이번 시간에는 워커 스레드의 핸들인 워커를 언제 생성하는지 알아보겠습니다. 그렇다면 워커는 어느 함수를 실행할 때 생성할까요? 워커는 create_worker() 함수를 호출할 때 생성합니다. 워커를 생성하는 create_worker() 함수를 분석하기 전 이 함수를 호출하는 경로를 알아보겠습니다. maybe_create_worker() get_unbound_pool() workqueue_prepare_cpu() 커널 내부에서 워크를 사용해 후반부 처리를 하므로 커널은 워커 스레드를 미리
동방빙의화 ver1.04 갱신. 관전 기능, 동시입력키 설정, 밸런스 조정 등
By 심유경네 집의 책장 | 2018년 2월 17일 |
![동방빙의화 ver1.04 갱신. 관전 기능, 동시입력키 설정, 밸런스 조정 등](https://img.zoomtrend.com/2018/02/17/c0060635_5a8800a51c9a8.jpg)
○ 관련 : 동방빙의화 1.03 갱신, 버그 수정 및 밸런스 패치, 네크워크 대전 관련 기능 개선 + 메뉴얼 갱신 에… 심유경입니다. 안녕하세요? 오늘 오후경에 빙의화 갱신이 있었습니다. 예전부터 예고되었던 여러 기능들이 드디어 추가되는 모양이더군요. 자세한 내용은 아래를 참고해주세요. - 서클 측의 안내 【更新情報】 東方憑依華1.04を公開しました。一部キャラの調整、バグ修正、観戦機能追加、キーコンフィグ機能拡張等の内容となっています #憑依華 #AoCF pic.twitter.com/mHfFymrWGz— tasofro (@tasofro) 2018년 2월 17일 "[갱신정보] 동방빙의화 1.04 를 공개했습니다. 일부 캐릭터의 조정, 버그 수정, 관전 기능 추가