메모리

포스트: 79|아이템:메모리(43)
Tags

Posts

79 posts

[리눅스커널] 메모리관리/디버깅: 가상주소를 물리주소로 변환 확인 실습

Guillermo Austin Kim|2019년 9월 2일

이번 소절에서는 가상주소를 물리주소로 변환하는 과정을 실습으로 알아봅시다. 3장 3.6 절에 소개한 rpi_debugfs.c 소스를 활용해 실습을 진행합니다. 먼저 rpi_debugfs.c 소스를 입력하고 커널 빌드를 하시기 바랍니다. 패치 코드 입력 방법 알아보기 먼저 입력할 패치 코드부터 소개합니다.[drivers/soc/bcm/rpi_debugfs.c] 01 static int rpi_kernel_debug_stat_set(void *data, u64 val)02 {03 int ret;04 05 raspbian_debug_state = (uint32_t)val;06 07 if ( raspbian_debug_state == 1402 ) {08 unsigned long ph

[리눅스커널] 메모리 관리: 슬럽 오브젝트 해제하는 kfree() 함수 분석하기

Guillermo Austin Kim|2019년 9월 1일

kmalloc() 함수로 동적 메모리를 할당하고 난 후 사용하지 않으면 메모리를 반환해야 합니다. 이 때 kfree() 함수를 사용하면 됩니다. 이번 시간에는 kfree() 함수를 분석하면서 커널 내부에서 반환하는 동적 메모리를 어떻게 처리하는지 살펴보겠습니다.[https://github.com/raspberrypi/linux/blob/rpi-4.19.y/source/mm/slub.c]01 void kfree(const void *x)02 {03 struct page *page;04 void *object = (void *)x;0506 trace_kfree(_RET_IP_, x);0708 if (unlikely(ZERO_OR_NULL_PTR(x)))09 return;1011 page = virt_to_h

HBM 메모리도 계속 발전 중이네요.

"풀HD 영화 124편 1초에 처리"…SK하이닉스, 'HBM2E' D램 개발 (전자신문) SK 하이닉스가 고대역폭 메모리(High Bandwidth Memory) 보통 HBM이라 말하는 메모리의 최신 제품을 개발 성공 했다고 합니다. HBM2E 라고 불리는 해당 메모리는 기존 HBM2대비 50%의 성능 향상을 가지고 있어서 기존 DDR5보다 11배나 빠르다고 합니다. 어디까지나 개인적인 생각으로는 그래픽 카드나 콘솔들의 전체적인 PCB가 복잡해지는 것보다 반도체 제조 과정에서 패키징을 할 때 옆에 HBM 메모리를 붙이는 쪽이 좋지 않는가? 라는 생각을 합니다만... 확장이나 조정의 유연성이 부족하고 발열이나 전력 문제도 있으니 참 쉽지가 않습니다. 양산은 2020년 정도로 보고 있고, A

[리눅스커널] 메모리관리: 슬랩(Slab) 메모리 할당자를 이루는 주요 개념

Guillermo Austin Kim|2019년 7월 30일

리눅스 커널 메모리 서브 시스템 개발자들은 다음과 같은 목표로 메모리 성능 개선을 해왔습니다.- 메모리 할당 속도- 메모리가 파편화 최소화 물론 메모리을 빨리 할당하고 되도록 잔여 메모리를 많이 남기려는 목적입니다. 슬랩(Slab)이란 필자가 언급했듯이 커널 메모리 관리의 핵심 중 하나인 '슬랩(Slab)의 개념'은 매우 어렵습니다. 그래서 이해를 돕기 위해 구내 식당을 예를 들면서 '슬랩(Slab)'을 설명하겠습니다. 구내 식당에 온 사람들은 먼저 무엇을 먹을지 선택합니다. 일일이 메뉴를 지정해 알려주면 식당은 이에 맞게 음식을 준비했습니다. 그런데 문제가 생겼습니다. 점심 시간에 손님이 많이 몰려오면 음식을 준비하는 시간이 오래 걸렸기 때문입니다. 그래서 식당 관리자들이 다음과 같은 주제로 궁