본문 바로가기 메뉴 바로가기

두찡의 일상

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

두찡의 일상

검색하기 폼
  • 분류 전체보기 (131)
    • 개발 (120)
      • 알고리즘 (6)
      • 일상 (51)
      • 병렬프로그래밍 (8)
      • 도트도전기 (12)
      • 코드로 알아보는 ARM 리눅스 커널 TIL (33)
      • arm64 linux 6 분석 (10)
    • 게임근황 (7)
    • 개발 외 일상 (2)
  • 방명록

2025/05/31 (4)
local_daif_restore (setup_arch)

primary cpu 는 커널에 진입할때 모든 exception 이 마스크된 채로 들어옵니다. DAIF = 1111디버깅과(D) SError(A) 를 마스킹 해제 해야 합니다.IF 는 irqchip (gic) 초기화 후 열수 있기 때문에 마스킹 합니다.#define DAIF_PROCCTX_NOIRQ (PSR_I_BIT | PSR_F_BIT)void __init __no_sanitize_address setup_arch(char **cmdline_p){ /* * The primary CPU enters the kernel with all DAIF exceptions masked. * * We must unmask Debug and SError before preemption..

개발/arm64 linux 6 분석 2025. 5. 31. 19:55
SHADOW_CALL_STACK [SCS] (setup_arch)

https://clucle.tistory.com/entry/procS-primaryswitchedhttps://clucle.tistory.com/entry/jumplabel 이전 포스팅에서 다뤘던 scs, jump label 을 사용하여 shadow call stack 을 초기화 합니다.void __init __no_sanitize_address setup_arch(char **cmdline_p){ // scs 초기화 dynamic_scs_init();scs 는 stack pointer 를 레지스터 뿐 아니라, task 구조체에 저장하고 불러옵니다.#ifdef CONFIG_DYNAMIC_SCSDEFINE_STATIC_KEY_FALSE(dynamic_scs_enabled);#endif#ifdef..

개발/arm64 linux 6 분석 2025. 5. 31. 19:42
early_param (setup_arch)

void __init __no_sanitize_address setup_arch(char **cmdline_p){ parse_early_param();early param 이란 어떤것이고, 어떻게 사용하는지 알아보자.early param.init.setup 섹션에 미리 등록한 parameter 가 early param 으로 사용 가능합니다.__setup_start 에 들어갈 수 있도록 매크로로 정의합니다.extern const struct obs_kernel_param __setup_start[], __setup_end[];/* * Only for really core code. See moduleparam.h for the normal way. * * Force the alignment so t..

개발/arm64 linux 6 분석 2025. 5. 31. 19:06
jump_label (setup_arch)

setup_arch jump_label_init 분석// arch/arm64/kernel/setup.cvoid __init __no_sanitize_address setup_arch(char **cmdline_p){ jump_label_init();}jump_label_init구조체 정의// arch/arm/include/asm/jump_label.htypedef u32 jump_label_t;struct jump_entry { jump_label_t code; jump_label_t target; jump_label_t key; };struct static_key { atomic_t enabled;#ifdef CONFIG_JUMP_LABEL/* * Note: * To ma..

개발/arm64 linux 6 분석 2025. 5. 31. 17:00
이전 1 다음
이전 다음
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
  • 링크드인
  • 깃허브
TAG
  • set value
  • red underline
  • 클래스 맴버 변수 출력하기
  • mysql
  • vrpit
  • it's called a vrpit
  • print shared_ptr class member variable
  • SuffixArray
  • Obstacle Avoidance
  • 봄날에 스케치
  • boost
  • 면접
  • Visual Studio
  • 카카오
  • cockroach db
  • Golang
  • C++
  • vr핏
  • 우리는 vr핏이라고 부릅니다
  • chrome-extension
  • ad skip
  • 영상 픽셀화 하기
  • 잘못된 빨간줄
  • 에러 위치 찾기
  • 코어 남기기
  • Reciprocal n-body Collision Avoidance
  • shared_from_this
  • RVO
  • Quest2
  • hole-punching
more
«   2025/05   »
일 월 화 수 목 금 토
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바