포스트: 7|조회수: 0|ORGANIZATION
Items

Posts

7 posts

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

Guillermo Austin Kim|2018년 9월 26일

딜레이 워크를 실행하기 위해서 먼저 딜레이 워크를 초기화해야 합니다. 이를 위해 INIT_DELAYED_WORK() 매크로 함수를 호출해야 합니다. 먼저 딜레이 워크를 초기화하는 디바이스 드라이버 코드를 열어 봅시다.[https://elixir.bootlin.com/linux/v4.14.43/source/drivers/thermal/da9062-thermal.c#L248]1 static int da9062_thermal_probe(struct platform_device *pdev)2 {3 struct da9062 *chip = dev_get_drvdata(pdev->dev.parent);4 struct da9062_thermal *thermal;...5 INIT_DELAYED_WORK(&th

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

Guillermo Austin Kim|2018년 9월 22일

워크큐는 대표적인 커널 후반부 처리 기법으로 후반부 처리 코드를 워크 핸들러에서 실행합니다. 동기적으로 처리 할 필요가 없는 코드를 워크 핸들러에 위치시켜 비동기적으로 커널 쓰레드 레벨에서 처리하는 겁니다. 이런 구조로 드라이버를 설계하면 다양한 디바이스 드라이버 시나리오에 맞게 코드를 구성할 수 있습니다. 워크에서 유연성을 추가한 기법이 딜레이 워크입니다. 구체적으로 딜레이 워크란 무엇일까요? 딜레이 워크는 워크를 일정 시각(HZ 단위) 후에 지연시켜 실행합니다. 여기서 말하는 지연 시각은 디바이스 드라이버 시나리오에 맞게 변경할 수 있습니다. 예를 들어 다음 온도를 콘트롤하는 드라이버 시나리오를 생각해 봅시다.1. 온도가 높아지면 인터럽트가 발생2. 인터럽트 핸들러에서 워크를 워크큐에 큐잉3. 워크

[페그오] 문의 메일 보냄~

[페그오] 문의 메일 보냄~

블로그에! 숫자 아이디가! 있었음! 그래서 그 포스팅은 비공개 돌림요! 그리고 그 숫자아이디에 의거하여! 작성해서! 보냈습니다! 데이터 소실 내용은 아래와 같이! 과금 내역도 전부 구글플레이에서 끌어다가 파파팍! 결과를 기다려 봅시다.