Arm Linux Kernel Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

74261
1501
219116


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

1

[리눅스커널] 시간관리: 커널 타이머 실행 시작 단계 코드 분석

먼저 커널 타이머 1단계 세부 동작을 살펴봅니다. 다음 그림은 커널 시스템 타이머 전체 흐름도 중 1단계 부분입니다.  [그림 8.6] 커널 타이머 전체 흐름도에서 동적 타이머 등록 단계  위 그림에서 [1]번 위쪽 화살표 방향으로 호출되는 함수 흐름을 살펴봅시다.타이머 인터럽트가 발생하면 인터럽트 핸들러 함수인 arch_t...

[리눅스커널] 시간관리: 커널 타이머 실행 전체 흐름도 알아보기

커널에서 동적 타이머 처리 과정을 이해하려면 Soft IRQ 전체 실행 흐름 과정을 알아야 합니다.다음 그림을 같이 볼까요?    [그림 8.5] 커널 타이머 전체 실행 흐름도위 그림에서 [1]~[4] 숫자가 보일 것입니다. 각 숫자는 Soft IRQ 전체 흐름도에서 동적 타이머를 처리하는 단계를 의미합니다. 동적 타이머 처...

[리눅스커널] 시간관리: 동적 타이머 등록 과정 주요 함수(add_timer/mod_timer/__mod_timer) 분석

[리눅스커널] 시간관리: 동적 타이머 등록 전체 흐름 소개

이전 절에서는 동적 타이머를 초기화하는 방법을 소개했습니다. 그런데 동적 타이머를 초기화만 하면 동적 타이머를 실행할 수 없습니다. 동적 타이머를 등록해야 동적 타이머를 실행할 수 있습니다.이번 절에서는 다음 내용을 다룹니다. 동적 타이머를 등록하는 예제 코드 동적 타이머를 등록하는 커널 내부 mod_timer() 함수 분석 동적 타이머 등...

[리눅스커널] 시간관리: timer_after()/timer_before() 함수 소개

리눅스 커널 내부 코드나 디바이스 드라이버에서 time_after()와 time_before() 함수를 써서 실행 시간과 타이밍을 제어합니다. 보통 함수 처리 시간 체크 실행 시간의 데드라인을 점검먼저 time_after() time_before() 함수 구현부를 살펴보겠습니다time_after()와 time_before() 함수 구현부time_af...

[라즈베리파이] 커널 타이머 - jiffies란 값은 누가 언제 증가하나

지금까지 jiffies는 1초에 진동수인 HZ 만큼 증감한다고 배웠습니다. HZ가 100이면 1초에 100번 jiffies는 증가할 것입니다. 여기서 한 가지 의문이 생깁니다.    그러면 jiffies는 누가 언제 +1만큼 증감시킬까? 이번 소절에서는 jiffies를 어느 함수에서 증감하는지 살펴보겠습니다. 분석할 함수 목...

[라즈베리파이] 커널 타이머 - jiffies와 jiffies_64 변수란

jiffies에 대해 알아보기 전에 jiffies와 jiffies_64 전역 변수에 대해 짚고 가겠습니다. 리눅스 커널 코드를 보면 두 개 변수를 많이 볼 수 있는데 어떤 변수가 jiffies인지 헷갈릴 때가 많습니다.예를 하나 들어보기 위해 다음 코드를 봅시다.1 void pm_wakeup_ws_event(struct wakeup_source *ws,...

[라즈베리파이] 커널 타이머(Kernel Timer) - jiffies란

jiffies는 커널 타이머를 실행하는 시간 단위입니다. 공학 용어로 Resolution이라고 합니다. jiffies를 지피스라고도 하는데 리눅스 커널에서 쓰는 jiffies란 용어를 그대로 쓰겠습니다.jiffies 개념을 이해하려면 HZ에 대해 배워야 합니다. 그럼 HZ는 뭘 의미할까요? HZ는 1초당 커널 타이머가 동적 타이머를 처리하는 횟수를 의미...

[Linux][Kernel] 타이머(Timer) Overview

리눅스 커널에서 아주 중요한 Subsystem 중 하나인 타이머에 대해서 간단히 짚어 볼께요.init_timer아래 함수 콜로 do_init_timer() 함수에서 struct timer_list *timer 초기화를 수행해요.__init_timer((timer), 0)init_timer_key((_timer), (_flags), #_timer, &am...
1