리눅스

포스트: 554|조회수: 0|TERM
Items

Posts

554 posts

spin_lock() vs spin_lock_irq() vs spin_lock_irqsave() - 분석

Guillermo Austin Kim|2017년 12월 26일

자 그 동안 궁금해왔던 아래 API들의 차이점에 대해서 알아보는 시간을 갖도록 하겠습니다.spin_lock(), spin_lock_irq(), spin_lock_irqsave() 리눅스 커널 책에서 마르고 닳도록 설명을 많이 하고 있는데요. 직접 소스를 열어서 분석하는게 가장 좋은 리눅스 커널을 마스터하는 길인 것 같아요. 소스 코드가 오픈되어 있잖아요. 1> spin_lock()아래 순서로 실제 구현부는 __raw_spin_lock() 함수 라는 걸 알 수 있어요. spin_lock -> raw_spin_lock -> __raw_spin_lockstatic inline void spin_lock(spinlock_t *lock){ raw_spin_lock(&lock->rlo

Runqueue(런큐) Timestamp(실행 시간) 확인

Guillermo Austin Kim|2017년 12월 24일

보통 커널 크래시나 와치독 리셋으로 시스템이 다운된 경우 세밀하게 디버깅해야 할 때가 있어요.그런데 가끔 각 프로세스가 마지막에 어떤 순서로 실행이 됐는지 확인하고 싶을 경우가 가끔 있거든요.이 순서가 가끔 정말 중요한 순간이 가끔 있어요. 아래는 런큐에서 돌고 있는 프로세스 목록이거든요. 그럼 각각 프로세스가 어떤 순서로 실행이 되었는지 알 수 있을까요?crash64> runq -m CPU 0: [0 07:36:22.901] PID: 585 TASK: ffffffc071eb8b80 COMMAND: "android.hardwar" CPU 1: [0 07:36:22.901] PID: 726 TASK: ffffffc0f6e3f300 COMMAND: "DispSync" CPU 2: [0

주분투 14.04 LTS -> 16.04 LTS 업그레이드

반달가면|2017년 12월 23일

레노버 S435 노트북에 주분투(Xubuntu) 14.04 LTS 버전을 설치해서 그동안 잘 사용해 오다가, 이번에 16.04 LTS 버전으로 업그레이드를 했다. 업그레이드 과정은 그리 복잡하지 않았다. 터미널창에서 아래와 같이 입력 sudo do-release-upgrade 시간이 꽤나 많이 걸리므로, 노트북에서 업그레이드한다면 반드시 전원 아답터를 연결한 상태에서 진행하는 것이 좋겠다. 진행할 것이냐고 물으면 "y"라고 입력해서 진행. 업그레이드하는 중간에 "Configuring unattended-upgrades"라는 제목의 창이 나오고 사용자가 선택을 해야 하는 과정이 있었다. /etc/apt/apt.conf.d/50unattended-upgrades라는 설정 파일을 어떻게

fd - file descriptor(파일 디스크립터) 갯수 확인 및 업데이트 방법

Guillermo Austin Kim|2017년 12월 23일

리눅스 커널에서는 하나의 프로세스가 소유할 수 있는 파일 디스크립터의 갯수를 정해 놓았는데요.그럼 이 갯수를 어떻게 알 수 있을까요? 아래 명령어로 확인할 수 있어요.ulimit -a 결과를 보니 "nofiles(descriptors) 1024" fd의 갯수는 1024이네요.adb shell ulimit -atime(cpu-seconds) unlimitedfile(blocks) unlimitedcoredump(blocks) 0data(KiB) unlimitedstack(KiB) 8192lockedmem(KiB) 64nofiles(descriptors) 1024processes 6609flocks