vmap 은 주로 비연속적(non-contiguous)인 물리 페이지들을 연속적인 가상 주소 공간으로 매핑. 그러나 각 물리 페이지에 tlb 는 하나씩 mem_map 으로는 원래 두번 테이블을 타야했는데, vmemmap 으로 64비트에서는 조금더 빠르게 하는 것 같다 https://elixir.bootlin.com/linux/v4.9/source/include/asm-generic/memory_model.h#L53 sparse.c:sparse_init -> sparse_early_mem_map_alloc (each_section) -> sparse_init_one_sectionsparse_early_mem_map_alloc -> sparse_mem_map_populate -> if (vmemmap_pop..
sparse init P.269 pageblock_order가 큰 경우, 같은 타입의 페이지를 더 큰 블록 단위로 한꺼번에 할당하고, 이들을 물리 메모리에서 연속적인 공간에 몰아두려는 의도입니다. 이렇게 함으로써 여러 가지 이점이 있습니다. // 각 SECTION 수마다 만드네.size = sizeof(unsigned long *) * NR_MEM_SECTIONS;usemap_map = memblock_virt_alloc(size, 0);// section->section_mem_map 은 속성을 플래그로 가지고 있다.#define SECTION_MARKED_PRESENT (1ULsection_mem_map & SECTION_MARKED_PRESENTsection->section_mem_map & S..
3.4 I/O 메모리 매핑 paging init 이 되기전에 io mapping 이 되야 하는 경우? ACPI 테이블, EFI 테이블, 일부 디바이스 에 접근해서 설정 정보를 가져와야 하는 경우 early ioremap : early IO 매핑하기 IO mapping 전 먼저 처리 위해 fixmap 영역을 사용하는 early io mapping -> FIX_PAGE_IO early memremap: early 메모리 매핑하기 IO 가 아닌 normal 메모리인데, fixmap 영역을 사용 -> FIX_PAGE_NORMAL 4.1 early 메모리 할당자: memblock 커널의 메모리 할당 - memblock: 메인 메모리 할당자가 초기화 되기 전 사용 - 페이지 할당자 : 페이지 단위 할당 - 메모리 ..
tcr : translation control registert0sz : tfanslation table 0 size1:1 매핑 위해서 가상 메모리에서 쓰는 비트수 조정 ttbr 의 asid 와 페이지- https://developer.arm.com/documentation/ddi0406/cb/System-Level-Architecture/System-Control-Registers-in-a-VMSA-implementation/VMSA-System-control-registers-descriptions--in-register-order/TTBR0--Translation-Table-Base-Register-0--VMSA?lang=en extern pgd_t swapper_pg_dir[PTRS_PER_PGD..
하이퍼바이저하드웨어에서 시스템의 운영 체제와 리소스를 분리해 VM에 할당하여 가상 머신을 생성하고 구동하는 소프트웨어EL2, EL3 는 하드웨어에서 지원하며 각 Cpu 를 사용하는 곳에서 옵션으로 키고 끌수있음프로세서 상태 레지스터, 범용 레지스터, 특수목적 레지스터, ABI 레지스터가 따로 존재SCR_EL3 (Secure configuration register) 어떤 익셉션이 레벨 3으로 갈지 정의 (16p)adr & adrl assemblyadr -> pc 기준으로 +- 1MB 범위 내, adrl 더 넓게 (4kb 단위로 +-4gb adrp + 4kb offset).align는 정렬할 바이트 단위를 나타냅니다. 예를 들어, .align 12는 2^12 바이트(즉, 4096 바이트)의 배수로 정렬합니..
https://github.com/stephenh/ts-proto/pull/1034 docs: add OneofValue type helper by clucle · Pull Request #1034 · stephenh/ts-proto ref: #1023 In previous helper, it is not possible to construct a message with the oneof field passed as a function argument. This helper allows for strict type checking and construct message using ... github.com proto 파일을 typescript 로 변환해주는 ts-proto 프로젝트에 기여했습니다. pro..

최근 윈도우 개발 환경을 처음부터 만들던 중, ls 가 너무 아름답게 나와 zsh 에서 nu 로 갈아타보기로 했다. 이번 글에서는 wsl 과 nu 설치 그리고 $PATH 등록까지 알아보자. 모든걸 마치면 요렇게 사용 가능하다. 1. wsl 설치 wsl 은 Windows Subsystem for Linux 의 줄임말입니다. 윈도우 os 에서 리눅스 환경을 돌릴 수 있게 해줍니다. 윈도우 + R 키를 눌러 cmd 를 실행합니다. cmd 창에 아래와 같이 입력합니다. wsl --install 이후 재부팅합니다. 재부팅 후 사용할 Id, Password 를 이용하면 wsl 설치를 완료합니다. 2. nu shell 설치 2-1. brew 설치 nu shell 은 쉘의 종류 중 하나로, 개인적으로 생각하기엔 gui..
- Total
- Today
- Yesterday
- mysql
- 클래스 맴버 변수 출력하기
- shared_from_this
- 카카오
- 영상 픽셀화 하기
- Golang
- RVO
- print shared_ptr class member variable
- vrpit
- chrome-extension
- Quest2
- 면접
- Reciprocal n-body Collision Avoidance
- C++
- 코어 남기기
- 봄날에 스케치
- ad skip
- 잘못된 빨간줄
- 우리는 vr핏이라고 부릅니다
- SuffixArray
- Visual Studio
- Obstacle Avoidance
- cockroach db
- red underline
- vr핏
- set value
- it's called a vrpit
- boost
- hole-punching
- 에러 위치 찾기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |