Kernel

    Process Profiling

    1. Perf + FlameGraph Process의 FlameGraph를 뽑아내는 과정을 설명한다. Perf의 --call-graph 기능을 이용한다. 1) Kernel setting echo -1 > /proc/sys/kernel/perf_event_paranoid echo 0 > /proc/sys/kernel/kptr_restrict chmod a+r /proc/kallsyms echo 100 > /proc/sys/kernel/perf_cpu_time_max_percent echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 2) Get perf data perf record -o perf.data --call-graph=..

    [Tizen] 라즈베리파이3 기반 타이젠 커널 빌드하기.

    라즈베리파이3 기반 타이젠 커널 빌드하기. Kernel source download $ git clone git://git.tizen.org/platform/kernel/linux-rpi3 $ cd linux-rpi3 $ git checkout remotes/origin/tizen 필요한 Package 설치하기 아래 패키지들을 설치해줍니다. $sudo apt install bison gcc-aarch64-linux-gnu g++-aarch64-linux-gnu ccache flex 빌드하기! 빌드 스크립트를 실행하여 커널 소스를 빌드합니다. $./build-rpi3-arm64.sh 아래 스크립트를 사용하면 kernel/dtb(device tree blob) 바이너리와 부팅에 필요한 파일들이 포함된 boo..

    [ARMv8] aarch64 프로세서 상태 레지스터(PSTATE)

    [ARMv8] aarch64 프로세서 상태 레지스터(PSTATE)

    PSTATE는 프로세서 상태 레지스터입니다. 이 레지스터를 이용해 프로세서의 상태를 알수도 있고 설정할 수도 있습니다. 아래 그림은 ARM Developer 페이지에서 가져온 그림입니다. PSTATE field를 정의해 놓았습니다. (http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.den0024a/BABICCBC.html) PSTATE의 각 비트가 하나 씩 어떤 행위를 하는지 정리해보겠습니다. N(Negative Condition Flag) : 연산의 결과 값이 음수인 경우 설정되는 비트 Z(Zero Condition Flag) : 연산의 결과 값이 0인 경우 설정되는 비트C(Carry Condition Flag) : 캐리 발생 시 설정되는 비트..

    [커널분석] Architecture 별 분석을 위한 설정 (ctags & cscope)

    리눅스 커널 분석 시 많이 사용하는 툴로 ctags와 cscope를 많이 사용합니다. 하지만 분석 시 다양한 architecture에 따라 동일 네이밍의 함수나 매크로 등으로 인해 분석하기 쉽지 않은데요. 쉽게, 해결할 수 있는 방법을 알려드립니다. 리눅스 커널에서 스크립트 형태로 tags와 cscope란 옵션을 제공하고 있습니다.만약 arm64를 기반으로 분석한다고 하면 아래와 같이 설정해 주세요. $ make tags ARCH=arm64 $ make cscope ARCH=arm64 내부적으로 script를 작성해 놓았기 때문에 해당 Architecture에 해당하는 코드만 분석할 수 있습니다.

    [Linux] Writing udev rules, udev 규칙 작성법에 관하여..

    gitbook에서 보기 Writing udev rules (udev rules 작성 위한 참고문서) 2015. 10. 23 linuxias@gmail.com Introduction 이 문서를 읽기 전에.. 이 문서는 아래 문서를 번역하여 제공하는 것 입니다. 올바른 해석이 아닐 수도 잘못된 지식이 포함되어 있을 수 있으니 참고해 주시기 바랍니다. 내용 진행 상 불필요한 부분은 제거한 부분도 있으니 원문 또한 참고하면서 봐주시기 바랍니다. 잘못된 내용이나 수정이 필요한 내용이 있다면 linuxias@gmail.com 로 메일로 해당 내용 보내주시면 감사하겠습니다. 많은 도움이 되었으면 좋겠습니다. 원문 : http://www.reactivated.net/writing_udev_rules.html 이 문서에..