[커널 17차] 51주차
2021.08.21 23:31
kasan_init_tags()
- for_each_possible_cpu() 매크로로 모든 possible cpu에 대해서 iteration 하면서 get_cycles() 함수로 현재 timer cycle 값을 읽어와서 percpu 변수인 prng_state에 저장한다
- 강력한 randomness는 비싸므로 적당한 pseudo-random number를 사용한다
- percpu를 setup을 안했는데 possible cpu에 대해서 percpu 변수를 업데이트하는 것은 의미가 없어 보임
get_cycles()
- 매크로로 arch_timer_read_counter()로 정의되어 있다
arch_timer_read_counter()
- CONFIG_ARM_ARCH_TIMER가 정의되어 있는 경우 함수 포인터 arch_timer_read_counter로 정의된다
- drivers/clocksource/arm_arch_timer.c 179 line에서 함수 arch_counter_get_cntvct()로 정의된다
arch_counter_get_cntvct()
- __arch_counter_get_cntvct() 함수로 정의됨
__arch_counter_get_cntvct()
- isb()로 배리어 수행
- cntvct_el0 레지스터 값을 읽어서 리턴
- 마지막에 함수 arch_counter_enforce_ordering()로 ordering을 강제함
- 최근에는 이 함수 대신 isb() 사용하는 패치를 올렸는데 반영은 안된듯함
- isb()가 비싸서 더 빠른 방법을 고수하기를 원하는 듯
- https://www.spinics.net/lists/arm-kernel/msg885662.html
- https://elixir.bootlin.com/linux/v5.14-rc6/source/arch/arm64/include/asm/arch_timer.h
- ARMv8 Generic Counter : CNTFRQ_EL0가 주파수를 나타내며 보통 부트로더나 EL3 펌웨어가 설정한다
- https://community.arm.com/developer/ip-products/processors/f/cortex-a-forum/46679/can-i-change-the-frequency-of-the-generic-timer-in-armv8
setup_arch()
- CONFIG_ARM64_SW_TTBR0_PAN on인 경우 init_task.thread_info.ttbr0 를 NULL 페이지로 만들어서 커널에서 user 영역 접근을 차단한다
- 부트로더가 커널에 넘겨준 x0, x1, x2, x3 중에 x1, x2, x3가 NULL이 아니면 경고를 출력한다
- setup_arch() 종료
나머지 시간은 head.S에서 시작하여 setup_machine_fdt()까지 복습
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | [공지] 스터디 정리 노트 공간입니다. | woos | 2016.05.14 | 629 |
247 | 커널 스터디 공개 노트 링크 [1] | 박동하 | 2016.05.20 | 233111 |
246 | [커널 17차] 41주차 | ㅇㅇㅇ | 2021.06.13 | 36551 |
245 | [커널 17차] 56주차 | ㅇㅇㅇ | 2021.10.03 | 27526 |
244 | [커널 18차] 1주차 | V4bel | 2021.05.29 | 3599 |
243 | [커널 17차 6조] 2주차 | 김정근 | 2020.08.31 | 2175 |
242 | [커널 17차 2조] 4주차 | wellbeing | 2020.09.12 | 1518 |
241 | 커널 스터디 13차 D조 스터디 로그 링크입니다. | 목태양 | 2016.05.15 | 1226 |
240 | 해킹&보안 1차 A팀 스터디로그 링크 | 수비니겨 | 2016.05.19 | 1185 |
239 | [커널 16차 B조] 1주차 [1] | kdy0252 | 2019.05.25 | 1084 |
238 | [커널 17차 A조] 20주차 | 주영 | 2021.01.11 | 1019 |
237 | [커널 20차] 24주차 | 이민찬 | 2023.10.22 | 787 |
236 | [커널 17차 2조] 5주차 | wellbeing | 2020.09.19 | 739 |
235 | [커널 17차 8조] 1주차 [3] | JSYoo5B | 2020.08.22 | 716 |
234 | [커널 19차] 0주차 - 오리엔테이션 | 리턴 | 2022.05.07 | 601 |
233 | [커널 17차] 26주차 | 주영 | 2021.03.01 | 540 |
232 | [커널 19차] 37 주차 | Min | 2023.02.04 | 479 |
231 | [커널 19차] 1주차 | 리턴 | 2022.05.16 | 456 |
230 | [커널 17차] 32주차 | ㅇㅇㅇ | 2021.04.11 | 443 |
229 | [커널 17차 A조] 12주차 | 주영 | 2020.11.16 | 410 |
.