[Kernel][Debug] 런큐에서 CFS 스케쥴러에 큐잉된 프로세스 찾기
By Guillermo Austin Kim | 2018년 4월 26일 |
런큐에 CFS 스케쥴러로 큐잉된 상태로 기다리는 프로세스 목록은 어디서 찾을 수 있을까요?per-cpu 타입의 runqueues.cfs_tasks 멤버를 찾으면 됩니다. 다음은 CPU4 runqueue의 예시입니다. (struct rq *) [-] (struct rq*)(((void*)&runqueues)+__per_cpu_offset[4]) = 0xFFFFFFC73E0F2900 -> ( (raw_spinlock_t) [D:0xFFFFFFC73E0F2900] lock = ((arch_spinlock_t) [D:0xFFFFFFC73E0F2900] raw_lock = ((u16) [D:0xFFFF (unsigned int) [D:0xFFFFFFC73E0F2918] nr_running
[라즈베리파이] 커널 타이머 - 동적 타이머 실행 코드
By Guillermo Austin Kim | 2018년 8월 8일 |
동적 타이머를 초기화만 하면 동적 타이머를 쓸 수 없습니다. 동적 타이머를 실행해야 합니다. 이를 위해 add_timer()/add_timer_on() 이나 mod_timer() 함수에 적절한 인자를 채워 호출해야 합니다. 보통 add_timer() 함수를 써서 동적 타이머를 실행하며 이후 동적 타이머 만료 시간을 다시 설정한 후 동적 타이머를 실행시킬 때 mod_timer() 함수를 씁니다. add_timer()와 mod_timer() 함수를 써서 로컬 타이머를 설정하는 코드를 살펴보겠습니다. 먼저 라즈비안에서 로컬 타이머를 실행하는 코드를 봅시다.1 bool bcm2835_sdhost_send_command(struct bcm2835_host *host,2 struct mmc_command
[임베디드] 강력한 꼰대 개발자가 되는 방법(1)
By Guillermo Austin Kim | 2020년 4월 5일 |
'꼰대 개발자가 되는 방법'이란 주제로 2개 포스팅을 올린 후 많은 개발자의 피드백을 받았습니다. [임베디드] 꼰대 개발자가 되는 방법(1) [임베디드] 꼰대 개발자가 되는 방법(2) 그 중 제가 생각하는 '꼰대 개발자'에게 이 글을 보여드리고 의견을 알려 달라고 부탁을 드렸습니다. 실제 꼰대 개발자들의 인터뷰를 한 내용을 바탕으로 '꼰대 개발자'가 되는 방법을 써야 좋은 글이 나오겠죠. 꼰대 개발자님께서 대부분 애정어린, 진심을 담은 후기를 주셨습니다. 그 내용을 잠깐 소개해드릴까요? * 글의 내용이 정말 부실하다. 넌 글을 정말 못 쓰는 구나! * 야, 꼰대 개발자가 되기 위한 조건이 맞는지 모르겠다. 조금 더 내용을 보강해야 할 것 같다. * 참, 글 쓰레기 같이 쓴다. 이게 뭐냐?
avconv / ffmpeg - 리눅스에서 동영상/음악 파일 변환
By 반달가면 | 2019년 2월 25일 |
avconv는 동영상이나 음악 파일 형식을 변환해 주는 프로그램이다. 우선 설치를 하려면 터미널창에서 아래와 같이 작업. 데비안/우분투 계열 배포판 기준이다. # S/W 저장소 갱신 sudo apt-get update # libav-tools 패키지 설치 sudo apt-get install libav-tools 변환은 -i 옵션으로 입력 파일을 지정하고 출력 파일을 지정하면 된다. 예를 들어 m4a 오디오 파일을 mp3 파일로 변환하고 싶다면 아래와 같이 할 수 있다. # m4a 파일을 mp3 파일로 변환 avconv -i my_audio.m4a my_audio.mp3 지원하는 코덱의 종류는 아래와 같이 확인 가능하다. # 코덱 목록 출력 avconv -codecs