[리눅스커널] 스케줄링: 우선순위(nice)란
By Guillermo Austin Kim | 2019년 2월 7일 |
nice는 유저 공간에서 설정한 프로세스 실행 우선 순위를 뜻합니다. 정수형인 nice 범위는 -20~19인데 이 값은 커널 공간에서 100~139 사이 값으로 변환되어 관리합니다. 이해를 돕기 위해 다음 그림을 함께 봅시다. 유저 공간에서 설정한 nice 값의 범위는 -20~19인데 커널 공간에서 100~139 사이 우선 순위로 변환됩니다. 커널 공간에서 RT 스케줄러 클래스에 등록한 RT 프로세스 우선 순위 범위는 0~99이고, CFS 스케줄러 클래스에서 구동하는 일반 프로세스 우선 순위 범위는 100~139입니다. 위 그림에서 유저 공간 Normal와 커널 공간 Normal 우선순위 사이에 NICE_TO_PRIO() 함수를 볼 수 있습니다. NICE_TO_PRIO() 함수는 유저 공간에서 설정된
[라즈베리파이] 인터럽트 디버깅 - ftrace 인터럽트 이벤트 #CS
By Guillermo Austin Kim | 2018년 5월 28일 |
라즈베리안 리눅스 커널은 아래 ftrace 로그를 볼 수 있는 컨피그가 기본 설정돼 있습니다. 그래서 ftrace만 설정하면 됩니다. 그럼ftrace로 인터럽트 동작을 어떻게 확인할 수 있을까요? ftrace event 중에 인터럽트가 있으니 다음 명령어로 해당 event를 키면 됩니다. echo 1 > /sys/kernel/debug/tracing/events/irq/irq_handler_entry/enableecho 1 > /sys/kernel/debug/tracing/events/irq/irq_handler_exit/enable 다음과 같은 코드를 작성하고 irq_ftrace.sh란 스크립트로 저장한 후 이 스크립트를 실행하면 ftrace로 인터럽트를 로그를 볼 수 있습니다. [irq_ft
프로덕트오너 생존기 - 03. 애매한 시간을 견디며 해야하는 일에 집중하기
By 눈감으면 섬 | 2021년 1월 18일 |
💪항상 마음졸이는 유노윤호들에게 유노윤호형 일꾼들은 항상 마음이 불편하다. 안그래도 마음이 불편해져서 조직을 바꿨는데도 적응하면서 또 마음이 불편한거다. 이건 내 마음의 구조적 문제라고 생각하고 그 마음을 떨쳐벌버리기 위한 여정에 나섰다. 방향을 정하는 게 일이라 그 전까지 어쩔줄몰라하는 마음이 가장 컸다. 방향을 세우려면 여기저기 도움을 구하면서 조각모음을 해야하는데, 그게 정해질 때까지는 파악에 집중하되 다른 일은 안하는 게 정신건강에 좋다. 파악만으로도 진이 빠지기 때문. 그러다가 이런 글을 봤다. 나한테 잘 하는 회사의 공통점 하나만 지목하라고 하면 나는 바로 “하지 말아야 할 일을 가차 없이 쳐내는” 결단력이라고 할 것이다. 실은 많은 사람이 세상은 넓고 할 일은 많다고 생각하지
[리눅스커널] 워크큐(workqueue): 딜레이 워크 실행는 어디서 실행을 시작할까?
By Guillermo Austin Kim | 2019년 2월 13일 |
딜레이 워크를 실행하려면 어떤 함수를 호출해야 할까요? schedule_delayed_work() 함수를 실행하면 됩니다. 먼저 딜레이 워크를 실행하는 드라이버 코드를 소개하겠습니다.[https://elixir.bootlin.com/linux/v4.14.43/source/drivers/mmc/host/bcm2835.c]1 static2 bool bcm2835_send_command(struct bcm2835_host *host, struct mmc_command *cmd)3 {...3 if (!cmd->data && cmd->busy_timeout > 9000)4 timeout = DIV_ROUND_UP(cmd->busy_timeout, 1000) * HZ + HZ;5