LINUX

포스트: 487|아이템:LINUX(477)
Tags

Posts

487 posts
[라즈베리파이] Soft IRQ 소개

[라즈베리파이] Soft IRQ 소개

Guillermo Austin Kim|2018년 6월 28일

Soft IRQ는 리눅스 커널 시스템 핵심 기능 중 하나입니다. 리눅스 커널의 타이머, 스케쥴링은 물론 네트워크 시스템과 연관돼 있죠. 그만큼 Soft IRQ는 구조가 복잡해서 전체적인 큰 그림을 그리며 개념을 익히기 힘듭니다. 하지만 Soft IRQ 핵심 개념은 뭐니해도 인터럽트 후반부 처리라고 할 수 있습니다. 그래서 이번 절에서는 Soft IRQ를 인터럽트 후반부 처리 중심으로 알아볼 예정입니다. 이 개념을 정확히 익힌 다음 Soft IRQ에서 프로세스, 타이머 혹은 네트워크 시스템을 어떻게 처리하는지 알아보는 것이 좋습니다. Soft IRQ에 대해 알아보기 전에 우선 Soft IRQ를 왜 알아야 하는지 생각해 봅시다.1. 리눅스 커널 입문자를 벗어나 중급 수준 개발자가 되려면 Soft IR

리눅스에서 ZFS 데이터 무결성 검사

반달가면|2018년 6월 26일

ZFS 설치, zpool 생성, 파일 시스템 생성 등 기본적인 작업은 이전 게시물을 참고하자. 여기로 ZFS에 저장된 데이터에 자주 접근할 경우에는 입출력 과정에서 오류를 자동으로 수정하기 때문에 별 문제가 없지만, 아주 가끔씩 접근하는 데이터의 경우에는 긴 시간동안 해당 데이터의 검증이 이루어지지 않은 채 방치될 수 있다. 이런 상황을 고려해서 수동으로 모든 데이터를 읽어서 무결성을 검증하고 오류를 수정하는 기능이 바로 scrub이다. 예를 들어 my_test_pool이라는 zpool에 대해 scrub 작업을 하려면 터미널창에서 아래와 같이 입력한다. 현재 사용중인 zpool에 대해 수행해도 문제가 없으므로 부담 없이 수행해도 된다. # my_test_pool에 scrub 작업 시작 su

[리눅스커널][Trace32] wakelock 디버깅 - container_of

Guillermo Austin Kim|2018년 6월 26일

[crash-utility] wakelock 디버깅(rbtree: wakelocks_tree)[crash-utility]wakelock - rbtree debugging(디버깅) [리눅스커널][Trace32] wakelock 디버깅 - container_of[Kernel] wakelock debug patch 이번 시간에는 wakeup_sources이란 링크드 리스트를 통해 wakelock 디버깅을 합시다.이전에는 crash-utility를 썻는데 이번에는 Trace32를 쓰겠습니다. 개발자는 다양한 툴을 써야 한 가지 툴에 종속된 노예 개발자가 되는 것을 피할 수 있습니다.또한 각 툴의 장점을 잘 활용할 수도 있습니다. 먼저, 다음 T32 명령어를 입력해서 offsetof와 container_of

[리눅스] printk 아규먼트 포멧

Guillermo Austin Kim|2018년 6월 25일

printk에 %로 어떤 형식을 지정할 지 헷갈릴 때가 많습니다.이럴 때는 다음 형식을 참고하면 됩니다.If variable is of Type, use printk format specifier:------------------------------------------------------------ int %d or %x unsigned int %u or %x long %ld or %lx unsigned long %lu or %lx long long %lld or %llx unsigned long long %llu or %llx size_t %zu or %zx ssize_t %zd or %zx s32 %d or %x u32 %u or %x s64 %lld or