Linux Kernel(4.19) Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

102258
1323
114604


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

1 2 3 4 5 6 7 8 9 10 다음

[리눅스커널][시스템콜] 전처리 코드에서 시스템콜 핸들러 확인하기

이렇게 시스템 콜 핸들러 함수는 커널에서 제공하는 매크로 함수로 구현이 됐습니다. 이번에는 전처리 코드에서 시스템 콜 핸들러 구현부를 찾는 방법을 소개합니다. 먼저 커널 소스에서 sys_read() 시스템 콜 핸들러 함수를 찾는 방법을 알아볼까요?  다음 명령어를 입력해봅시다. root@raspberrypi:/home/pi/r...

[리눅스커널] 워크큐(workqueue): Trace32로 워크큐 자료 구조 디버깅하기

이번 시간에는 임베디드 디버깅 프로그램인 Trace32를 써서 워크큐 자료구조를 점검합니다. 리눅스 커널 시스템에서 커널 크래시가 나면 생성되는 vmcore를 올려 확인한 내용입니다.참고로, vmcore는 라즈베리파이가 아니라 다른 ARM64비트 아키텍처를 적용한 시스템에서 받았습니다.먼저 시스템 워크큐 전역 변수를 확인합니다.var.view %type...

[리눅스커널] 워크큐: 딜레이 워크는 누가 언제 큐잉할까?

이전 소절에서는 schedule_delayed_work() 함수를 호출하면 동적 타이머를 실행해서 지정한 지연 시각 후에 동적 타이머 핸들러인 delayed_work_timer_fn() 함수가 실행되도록 한다고 했습니다. 이번 소절에서는 delayed_work_timer_fn() 함수가 어떻게 호출되는지 살펴봅니다.delayed_work_tim...

[리눅스커널][스케줄링] 선점 스케줄링 지연 함수 preempt_enable()/preempt_disable() 소개

선점 스케줄링 지연 함수 preempt_enable()/preempt_disable() 소개리눅스 커널에서 선점 스케줄링을 동작을 잠시 지연할 수 있는 함수를 지원합니다. preempt_disable(): 선점 지연 활성화preempt_enable():  선점 지연 비활성화preempt_disable() 함수 이름은 "선점"을 의미하는...

[리눅스커널][인터럽트후반부] IRQ 스레드 전체 실행 흐름 정리하기

6.4.3 IRQ 스레드 전체 실행 흐름 정리하기여기까지 배운 내용을 다이어그램으로 정리하겠습니다.                  [그림 6.7] "irq/92-mmc1" IRQ Thread 실행 흐름도눈끔 화살표는 함수 실행 흐름 방향입니다. 위 그림에서 실행 순...

[리눅스커널] 인터럽트 후반부 처리 기법 종류 및 소개

인터럽트 후반부 처리 기법 종류 및 소개이번 장에서는 리눅스 커널이 Bottom Half을 처리하는 대표적인 기법인 IRQ 스레드와 Soft IRQ 기법을 다룹니다. 워크큐는 워크큐를 다루는 장에서 살펴볼 예정입니다. 세 가지 기법 인터럽트 후반부 처리하는 방식이 조금씩 다릅니다. 하지만 인터럽트 핸들러에서 해야 할 일을 2 단계로 나눈다는 점은 같습니...

[리눅스커널] 인터럽트 후반부 처리: Top Half/Bottom Half 란 무엇일까?

Top Half/Bottom Half 란 무엇일까?이전 소절에선 인터럽트 컨택스트에서 인터럽트 핸들링을 빠른 시간에 마무리해야 한다고 설명을 드렸습니다. 또한 시간이 오래 걸리는 함수를 호출하면 시스템은 커널 패닉과 같이 시스템이 오동작 할 수 있다고 소개했습니다.여기서 한 가지 의문이 생깁니다.인터럽트가 발생하면 인터럽트 핸들러에서 처리할 일이 많을 ...

[리눅스커널] 워크큐: 워커 쓰레드 핸들 worker_thread() 함수 분석

[리눅스커널] 워크큐: 워커 스레드란

워커 스레드는 워크를 실행하는 커널 스레드입니다. 이번 절에서는 워커 스레드가 무엇이고 이를 어떤 방식으로 생성하고 실행하는지 살펴보겠습니다.

[리눅스커널] 워크큐: 워커 쓰레드는 누가 언제 생성하나?

워커와 워커 쓰레드의 개념부터 정리하고 워커 쓰레드 생성에 대해 알아봅시다. 워커 쓰레드는 커널 쓰레드의 한 종류로 워크를 실행하는 쓰레드입니다. 쓰레드 핸들 함수는 worker_thread() 입니다.처음 커널 쓰레드를 분석할 때 먼저 쓰레드 핸들 함수를 분석해야 합니다. 쓰레드를 어떤 과정으로 실행 및 제어하는지 알 수 있기 때문입니다.워커...
1 2 3 4 5 6 7 8 9 10 다음