Arm Linux Kernel Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

493
557
422263


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

1

[리눅스커널] preempt_disable() 함수: 스케줄링을 지원하는 함수 실행 금지

preempt_disable()/preempt_enable() 함수를 사용할 때 주의해야 할 점이 있습니다. 그것은;   * preempt_disable()/preempt_enable() 함수를 사용하는 구간에서 스케줄링을 지원하는 함수가 호출되면 안된다.라는 점입니다. 다들 아시다시피, 커널 드라이버에서 preempt_disable(...

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

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

[리눅스커널][스케줄링] 선점 스케줄링 진입점은 어디인가?

여기서 중요한 질문을 던질 수 있습니다. 과연 "선점은 언제 일어날까?"란 의문입니다.선점 스케줄링은 언제든 발생할 수 있습니다.소스 코드를 보면서 선점 스케줄링이 언제 발생할 수 있는지 생각해 봅시다.[https://elixir.bootlin.com/linux/v4.14.70/source/fs/configfs/file.c]1 static ssize_t...

[Linux][Kernel] preempt_disable()/preempt_enable() 주의 사항!

preempt_disable() 함수를 쓸 때 주의해야 할 점이 있습니다.preempt_disable() 함수는 preempt_enable() 함수와 반드시 Pair로 써야 합니다.preempt_disable() 함수를 호출한 다음 스케줄링 동작을 수행하는 함수를 쓰면 리눅스 시스템은 오동작합니다.예를 들어 다음과 같은 드라이버를 초기화하는 코드를 예를...

ARM64 - 프로세스(Process) preempt_disable(), preemption 스케줄(Schedule) 조건 분석

아래 제 블로그에서 ARM32 아키텍처에서 preempt_disable() 매크로 함수를 호출하면 __irq_svc 벡터에서 svc_preempt 함수를 호출하지 않아, preemption이 수행되지 않는다고 확인했어요.http://rousalome.egloos.com/9964816이번에는 ARM64(Aarch64) 아키텍처에서는 어떤 코드로 ...

ARM32 - 프로세스(Process) preempt_disable(), preemption 스케줄(Schedule) 조건 분석

저번 시간에 preempt_disable() 함수 호출로 커널 패닉이 일어나는 문제가 있었는데요.이 매크로 함수와 preemption의 관계에 대해서 좀 더 알아보고자 해요.preemption은 리눅스 커널 핵심 개념 중의 핵심이죠.preempt_disable() 함수를 호출하면 스택 주소를 꺼내와서, current_thread_info에 있는 pree...

[Linux][Kernel] panic@___might_sleep!

#커널 크래시 디버깅 및 TroubleShootingRace로 mmc_wait_data_done() 함수에서 커널 패닉"cat /d/shrinker" 입력 시 커널 패닉함수 포인터 미지정으로 xfrm_local_error() 커널 패닉preempt 조건으로 ___might_sleep() 함수 크래시스택 카나리: __stack_chk_fail() 함수 크...
1