Arm Linux Kernel Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

75261
1501
219117


태그 : 타이머 요약보기전체보기목록닫기

1 2

[리눅스커널] 시간관리: time_after()/time_before() 함수 사용 예시 알아보기

이번에는 time_after()/time_before() 함수를 써서 실행 시간 흐름을 제어하는 예제 코드를 살펴보겠습니다. .다음 소개할 코드는 워크큐 와치독 타이머인 wq_watchdog_timer_fn() 함수입니다.[https://github.com/raspberrypi/linux/blob/rpi-4.19.y/kernel/workqueue.c]0...

[리눅스커널] 시간관리: 라즈베리파이에서 동적 타이머 등록 및 실행 과정 ftrace로 확인하기

이전 시간에 소스 코드 분석으로 커널 시스템 타이머 동작에 대해 알아봤습니다. 코드를 읽고 이해하는 과정도 중요하지만 배운 내용을 자신의 것으로 만들려면 분석한 코드가 리눅스 시스템에서 실제 어떻게 실행하는지 확인해야 합니다. 한 걸음 나아가 코드를 수정하면서 라즈베리파이에서는 커널 타이머 자료구조 데이터가 어떤 값인지도 확인할 필요도 있습니다...

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

이어서 커널 시스템 타이머 처리 3단계를 알아봅시다. 다음 그림에서 검은색으로 된 부분입니다.    [그림 8.7] 커널 타이머 전체 흐름도에서 Soft IRQ 타이머 서비스 실행 단계 1~2 단계에서 타이머 인터럽트가 발생하면 TIMER_SOFTIRQ 아이디로 Soft IRQ 서비스 요청을 했습니다. 이후 타이머 인...

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

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

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

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

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

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

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

[리눅스커널] 시간관리: 동적 타이머 초기화

동적 타이머를 쓰려면 먼저 동적 타이머를 초기화해야 합니다. 다음 내용을 살펴보면서 동적 타이머 초기화 과정을 소개합니다. timer_setup() 함수 소개 동적 타이머 초기화 예제 코드 분석timer_setup() 함수 코드 분석하기동적 타이머를 초기화하려면 timer_setup() 함수를 호출해야 합니다.먼저 timer_setup() 함수 선언...

[리눅스커널] 시간관리: 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를 어느 함수에서 증감하는지 살펴보겠습니다. 분석할 함수 목...
1 2