메일링 리스트에서 패치 적용해서 빌드하기
$ git clone --branch v6.9-rc7 --depth 1 https://github.com/torvalds/linux.git linux-v6.9-rc7-dept
$ sudo apt install b4
Analyzing 29 messages in the thread
Analyzing 591 code-review messages
Checking attestation on all messages, may take a moment...
---
[PATCH v14 1/28] llist: Move llist_{head,node} definition to types.h
[PATCH v14 2/28] dept: Implement Dept(Dependency Tracker)
[PATCH v14 3/28] dept: Add single event dependency tracker APIs
....
---
Total patches: 28
---
Cover: ./v14_20240508_byungchul_dept_dependency_tracker.cover
Base: using specified base-commit dd5a440a31fae6e459c0d6271dddd62825505361
git checkout -b v14_20240508_byungchul_sk_com dd5a440a31fae6e459c0d6271dddd62825505361
git am ./v14_20240508_byungchul_dept_dependency_tracker.mbx
$ git checkout -b v14_20240508_byungchul_sk_com dd5a440a31fae6e459c0d6271dddd62825505361
새로 만든 'v14_20240508_byungchul_sk_com' 브랜치로 전환합니다
$ git am ./v14_20240508_byungchul_dept_dependency_tracker.mbx
적용하는 중: llist: Move llist_{head,node} definition to types.h
적용하는 중: dept: Implement Dept(Dependency Tracker)
적용하는 중: dept: Add single event dependency tracker APIs
$ git shortlog
Byungchul Park (28):
llist: Move llist_{head,node} definition to types.h
dept: Implement Dept(Dependency Tracker)
dept: Add single event dependency tracker APIs
dept: Add lock dependency tracker APIs
이제 kernel hacking -> Lock debugging 항목에서 Dependency Tracking 항목을 켠다.
커널을 빌드해주면 된다.
QEMU 가상 머신 만들기
ubuntu 24.04 배포판 이미지와 컴파일한 커널을 이용해서 DEPT 를 시험해 볼 VM 을 만들어 보자.
이번 포스팅에서는 x86_64 기반으로 만들어볼 예정이다.
아래처럼 데일리 빌드의 우분투 이미지를 다운로드 받는다. 아래의 예시는 24.10 버전의 우분투 메이트를 다운로드 받았다.
그리고 QEMU 디스크를 생성한다.
$ qemu-img create -f qcow2 ubuntu2410.qcow 32G
그리고 QEMU 디스크에 다운로드 받은 우분투를 설치한다.
$ qemu-system-x86_64 -smp 8 -m 8G -enable-kvm --cdrom oracular-desktop-amd64.iso -drive file=ubuntu2410.qcow,format=qcow2
기존에 빌드한 DEPT 커널과 리눅스의 설치가 끝난 디스크를 이용해서 부팅하면 된다.
$ qemu-system-x86_64 -smp 8 -m 8G -enable-kvm -nographic -kernel linux-v6.9-rc7-dept/arch/x86/boot/bzImage -hda ubuntu2410.qcow -append 'root=/dev/sda2 quiet splash oops=panic panic=-1 ftrace_dump_on_oops=orig_cpu slub_debug=UZ nokaslr'
Arm64 버전은 아래 문서를 참고하자
Comments