본문 바로가기

분류 전체보기

(507)
[Linux kernel] Enable CONFIG_DEBUG_INFO by reverting CONFIG_DEBUG_INFO_NONE The patchset to enable CONFIG_DEBUG_INFO_NONE is proposed to speed-up the compilation time. In real project, the CONFIG_DEBUG_INFO_NONE is not used because the build-server that we are using support powerful performance. When applying the following patch, you will see that CONFIG_DEBUG_INFO is included in the .config file.diff --git a/lib/Kconfig.debug b/lib/Kconfig.debugindex bf0995d328b3..a2f9..
[리눅스 커널] 전처리 파일 생성 (v6.10) During compilation, the compiler may generate various files, such as object file, libraray file and preprocessed file. Among these, preprocessed file contain the valuable information because the compiler parses the representation macro into the readable statement. To get preprocessed in the Linux kernel, we have to modify Makefile. The following is the patchset to generate preprocessed in the Li..
[RISC-V] CSR (Control and Status) 레지스터 소개 RISC-V 아키텍처는 시스템의 세부 속성을 설정할 수 있는 CSR(Control and Status) 레지스터를 제공합니다. 다음과 같은 모든 속성은 CSR 레지스터를 통해 설정합니다:익셉션 벡터 베이스 주소 설정MMU를 통한 가상 메모리 설정주요 Privilege Mode에서 트랩되는 방식CSR(Control and Status) 레지스터는 시스템의 주요 속성을 설정하므로 부팅 과정에서 대부분 설정됩니다. CSR 레지스터를 소개했으니 CSR 레지스터에 접근할 수 있는 Privilege Mode에 대해 알아봅시다. Privilege Mode과 CSR 레지스터 CSR 레지스터의 이름을 보면 접두사로 m 혹은 s가 보입니다. 주요 CSR 레지스터의 목록은 아래와 같습니다: Machine Mode: msta..
[인프런-로드맵] 'Arm 아키텍처의 구조와 원리 저자 직강 강의'- 모두 업로드 완료! (Arm 강의, Arm 교육) 작년부터 제가 쓴 '시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리' 책의 저자 직강 강의를 제작했습니다. 모든 강의가 마무리됐다는 소식을 전하기 위해 영상을 만들어 올립니다. 인프런에 로드맵 형태로 강의가 업로드됐는데요. 인프런 배너로 로드맵을 프로모션해주신 인프런 매니저님께 감사의 말씀드리고 싶습니다. 현재 30% 할인 쿠폰이 적용되어 프로모션 중이니 참고하세요. 시스템 소프트웨어 개발자를 위한 Arm - basic course https://www.inflearn.com/roadmaps/763'시스템 소프트웨어 개발의 모든 것 - 시스템 반도체와 전기 자동차 중심'  '시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강' '시스템 소프트웨어 개발을 위한 Ar..
[RISC-V] 레지스터: 범용 레지스터 RISC-V 아키텍처에서 레지스터를 배우려면 어떤 내용을 알아야 할까요? RISC-V 아키텍처에서는 다음과 같은 레지스터를 제공합니다.범용 레지스터CSRs(Control and Status) 레지스터범용 레지스터먼저 범용 레지스터에 대해 알아 봅시다. 범용 레지스터는 어셈블리 명령어의 입력과 출력을 저장하는 용도로 사용됩니다. 개념 상 C 언어의 변수와 비슷한 개념입니다. 어셈블리 명령어를 분석하실 때 반드시 레지스터를 알아야 합니다. RISC-V 아키텍처에서 정의된 범용 레지스터의 목록은 다음과 같습니다.  Armv8 아키텍처와 비슷하게 레지스터의 갯수는 X0에서 X31까지 있습니다. 레지스터의 갯수가 많은 편입니다. 대부분 어셈블리 명령어의 인풋과 출력 결과를 저장하기 위해 사용되는데, 함수가 호출될..
[syzbot] Tons of crash issue with vmlinux and kernel log ([riscv] kernel panic) [syzbot] Tons of crash issue with vmlinux and kernel log ([riscv] kernel panic) Some of my friends asked me about how to find kernel crash signatures with kernel log. Because they would like to improve troubleshooting ability as Linux system software engineer. If you are eager to know about the pattern of __kernel crash__ signature, you can visit the following links:   1) syzbot weblink: The fol..
[리눅스커널] 커널이 실행 시각을 관리하는 방식을 왜 잘 알아야 할까? 커널이 실행 시각을 관리하는 방식을 왜 잘 알아야 하는지 생각해봅시다. 첫째, 코드를 읽는 능력을 더 키울 수 있습니다. 리눅스 커널 세부 함수나 드라이버 코드에서 실행 시간을 기준으로 흐름을 제어하는 경우가 많습니다. 커널 코드를 읽으면 타이머 관련 함수를 써서 실행 시간을 제어하는 루틴을 만날 가능성이 높습니다. 드라이버 코드를 읽다가 타이머 관련 함수를 만나면 바로 이해해야 드라이버 구조를 이해할 수 있습니다. 둘째, 커널 타이머 구조를 알면 안정적인 타이머 코드를 입력해 시간 흐름을 제어할 수 있습니다.  다른 드라이버 코드를 참고해 타이머 코드 작성하는 작업은 누구나 할 수 있습니다. 하지만 커널 타이머 전체 실행 흐름을 아는 분은 커널 타이머가 Soft IRQ 서비스로 실행한다는 사실을 알기에..
[Debug] Simple slub configuration If you enable the following configuration, the slub debugging feature is enabled without using SLUB_DEBUG. CONFIG_POMPEII_SLUB_SIMPLE_DEBUG=y CONFIG_POMPEII_SLUB_FREEPOINTER_DEBUG=y The advantage of this patch is that you are not going through any performance degradation.  This patch is generated based on v4.9.[Part.1]slub: simple debug feature added---diff --git a/arch/arm64/mm/pageattr.c b/arc..