Linux Kernel(4.19) Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

0112
737
82110


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

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

[리눅스커널][가상파일시스템] 수퍼블록: 슈퍼블록 정보를 statfs 시스템 콜로 읽는 과정 살펴보기

슈퍼블록 각 멤버들은 파일시스템에 대한 메타 정보를 저장합니다.유저 공간에서 파일시스템 정보를 알려면 어떤 함수를 호출해야 할까요?유저 공간에서 statfs() 함수를 호출하면 커널 공간에서 해당 시스템 콜 핸들러 함수인 sys_statfs() 함수를 실행합니다.예제 코드는 다음과 같습니다.1 #define FILENAME_NAME "/home/pi"2...

[리눅스커널]Soft IRQ 서비스는 누가 언제 처리하나?(2/2): __do_softirq() 분석

6.8.3 Soft IRQ 서비스 실행이어서 Soft IRQ 서비스를 실행하는 세부 코드를 살펴보겠습니다.__do_softirq() 함수 분석하기이제 Soft IRQ 의 핵심 코드인 __do_softirq() 함수를 분석할 차례입니다. 분석할 전체 코드는 다음과 같습니다.1 asmlinkage __visible void __softirq_ent...

[리눅스커널][SoftIRQ] Soft IRQ 서비스는 누가 언제 처리하나?(1/2)

6.8 Soft IRQ 서비스는 누가 언제 처리하나?이제 Soft IRQ 기법의 핵심인 Soft IRQ 서비스를 처리하는 흐름을 살펴볼 차례입니다. Soft IRQ 서비스는 언제 처리할까요? 아래 그림과 같이 인터럽트 핸들러를 처리하는 인터럽트 서비스 루틴이 끝나는 시점에 Soft IRQ 서비스 처리를 시작합니다.   [그...

[리눅스커널] Soft IRQ 소개

6.5 Soft IRQ 소개Soft IRQ는 리눅스 커널을 이루는 핵심 기능 중 하나입니다. Soft IRQ 서비스 형태로 커널의 타이머, 스케줄링은 물론 네트워크 시스템에서 사용합니다. Soft IRQ 은 인터럽트 후반부 기법으로 씁니다. 이번 절에서는 Soft IRQ를 인터럽트 후반부 처리 중심으로 살펴봅니다. Soft IRQ 전체 구조를 익힌 다음...

[리눅스커널][인터럽트후반부] ftrace로 IRQ 스레드 핸들러 실행 시각 측정하기

6.5.3 IRQ 스레드 핸들러 실행 시각 측정하기이전 절에서는 ftrace 로 콜스택과 함께 인터럽트가 언제 발생하고 언제 IRQ 스레드를 깨우는지 알아봤습니다. 이번에는 실제 인터럽트 핸들러와 IRQ 스레드 핸들러 함수 실행 시간을 측정하는 방법을 소개합니다. 각 함수의 실행 시간을 측정한 결과 인터럽트 핸들러 실행 시간이 길면 인터럽트 핸들러 함수...

[리눅스커널] 인터럽트 후반부 처리: IRQ 스레드를 깨우는 코드 분석

6.4 IRQ 스레드는 누가 언제 실행할까?이번 절에서는 IRQ 스레드가 어떤 과정으로 실행하는지 살펴보겠습니다. IRQ 스레드는 크게 다음 단계로 실행합니다. 1. 인터럽트 핸들러에서 IRQ_WAKE_THREAD 반환 2. IRQ 스레드 깨움 3. IRQ 스레드 핸들러 실행IRQ 스레드를 실행하는 출발점은 인터럽트 ...

[리눅스커널] 라즈베리파이에서 IRQ 스레드 생성 과정 디버깅하기

6.3.4 라즈베리파이에서 IRQ 스레드 생성 과정 디버깅하기이제까지 request_threaded_irq() 함수를 호출하면 kthread_create() 함수를 실행해서 IRQ 스레드를 생성하는 과정까지 짚어 봤습니다. 이제 디버깅 실습으로 배운 내용을 다지는 시간을 갖겠습니다.패치 코드 소개먼저 디버깅을 위한 패치 코드를 소개합니다.diff --g...

[리눅스커널] IRQ 스레드 생성 예제 코드 분석 - 다른 리눅스 시스템

6.3.3 다른 리눅스 시스템에서 IRQ 스레드 생성 예제 코드 분석라즈비안에선 92번 인터럽트를 처리할 한 개 IRQ 스레드만 생성합니다. 1개 IRQ 스레드만 생성하는 코드 밖에 없으니 이번에는 다른 리눅스 시스템에서 IRQ 스레드를 생성하는 예제 코드를 소개합니다이번에는 request_threaded_irq() 함수를 호출해서 IRQ 스레드를 생성...

[리눅스커널] 인터럽트 후반부 처리: IRQ 스레드 소개

6.2. IRQ 스레드(threaded IRQ) 소개리눅스 커널을 익히는 과정에서 만나는 걸림돌 중 하나가 어려운 용어입니다. 어려운 개념을 낯선 용어로 설명하니 이해하기 어려운 것 같습니다. IRQ Thread에 대해 소개하기 전 IRQ란 용어부터 알아볼까요? 6.2.1 IRQ 스레드(threaded IRQ)란IRQ는 Interrupt Req...

[리눅스커널][인터럽트] 인터럽트 발생은 언제 지연해야 할까?

5.6 인터럽트 발생은 언제 지연해야 할까?이번 장에서 인터럽트가 발생하면 프로세스는 하던 일을 멈추고 인터럽트 벡터를 실행하여 인터럽트를 처리한다고 배웠습니다. 하지만 다음과 같은 특정 코드 구간에서 인터럽트가 발생하면 안 될 때가 있습니다. 1. SoC에서 정의한 하드웨어 블록에 정확한 시퀀스(Sequence)을 줘야 할 경우&nb...
1 2 3 4 5 6 7 8 9 10 다음