라즈베리파이

포스트: 191|조회수: 0|ARTIFACT
Items

Posts

191 posts

[라즈베리파이] 커널 타이머 - msecs_to_jiffies 함수란

Guillermo Austin Kim|2018년 7월 30일

커널은 타이머를 HZ 단위 상대 시간을 나타내는 jiffies값을 기준으로 관리 합니다. 그리고 커널 타이머 함수는 HZ 단위 시간 정보를 받아 처리합니다. 그래서 커널이 이해할 수 있는 단위로 시간 정보를 변환시켜 줘야 합니다. msecs_to_jiffies() 함수가 이 역할을 수행합니다. 이 함수는 가독성도 높습니다. 함수 이름만 봐도 무슨 뜻인지 알기 쉽습니다. 실제 리눅스 커널에서 msecs_to_jiffies() 함수를 쓰는 코드를 살펴보겠습니다. 다음은 pstore 파일 시스템 코드 일부 조각입니다.[fs/pstore/platform.c]1 pstore_timer.expires = jiffies +2 msecs_to_jiffies(pstore_update_ms);3 add_time

샤프 X68000 XVI, 라즈베리 파이 케이스로 부활하다

샤프 X68000 XVI, 라즈베리 파이 케이스로 부활하다

80년말 90년대초에 소년 시절을 보낸 사람들에겐, 꿈 같은 컴퓨터가 몇 개 있습니다. 샤프에서 나온 X68000 도 그 중 하나였죠. 그래픽이 끝내주는 게임기... 같은 느낌도 있지만, 아무튼 뭔가 굉장히 비싸고 좋은 컴퓨터인 것 같은데 본 기억은 없는, 그럼 컴퓨터였습니다. 그 컴퓨터가, 라즈베리 파이 2/3용 케이스로 부활... 했다고 합니다. 부활이라고 하긴 뭐하지만, 라즈베리 파이라는 기종 특성상, 에뮬을 이용해 원판 느낌을 살려쓰는 것도 가능... 하겠죠. 아무튼 제가 이런 레트로 기기 미니어처를 좋아해서, 보자마자 이거 소개해야지! 하고 적어놨다가... 6개월만에 소개합니다. 아하하... 보시면 아시겠지만, 일종의 프라모델이기도 합니다. 여기저기 라즈베리 파이를 위한

[라즈베리파이] 커널 타이머(Kernel Timer) - jiffies란

Guillermo Austin Kim|2018년 7월 18일

jiffies는 커널 타이머를 실행하는 시간 단위입니다. 공학 용어로 Resolution이라고 합니다. jiffies를 지피스라고도 하는데 리눅스 커널에서 쓰는 jiffies란 용어를 그대로 쓰겠습니다. jiffies 개념을 이해하려면 HZ에 대해 배워야 합니다. 그럼 HZ는 뭘 의미할까요? HZ는 1초당 커널 타이머가 동적 타이머를 처리하는 횟수를 의미합니다. 그래서 커널 타이머의 실행 빈도는 HZ에 의해 정해집니다. 커널 타이머가 로컬 타이머를 처리하는 단위라고 말할 수 있습니다. HZ가 500이면 1초당 jiffies가 500번 +1만큼 증감하고 500번 커널 타이머가 실행합니다. 그럼 HZ가 크면 좋은 시스템일까요? 그렇지는 않습니다. HZ를 너무 큰 값으로 설정하면 시스템 과부하가 걸릴 수 있

[라즈베리파이] Soft IRQ 서비스는 누가 언제 처리하나? [2] - __do_softirq() 분석

[라즈베리파이] Soft IRQ 서비스는 누가 언제 처리하나? [2] - __do_softirq() 분석

Guillermo Austin Kim|2018년 7월 15일

이제 Soft IRQ 의 핵심 코드인 __do_softirq 함수를 분석할 차례입니다. 전체 코드는 다음과 같습니다.1 asmlinkage __visible void __softirq_entry __do_softirq(void)2{3unsigned long end = jiffies + MAX_SOFTIRQ_TIME;4unsigned long old_flags = current->flags;5int max_restart = MAX_SOFTIRQ_RESTART;6struct softirq_action *h;7bool in_hardirq;8__u32 pending;9int softirq_bit;10//...1112pending = local_softirq_pending();13account_