일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- mm_struct
- NDK
- Apache
- multiqueue
- allocator
- fastpath
- Android
- lruvec
- Network
- Kernel
- proc
- vmalloc
- page
- 카프카
- kmalloc
- strex
- BLOCK
- devicedriver
- kafka
- slowpath
- Linux
- slab
- commit
- spinlock
- blk-mq
- vm_area_struct
- pmap
- slub
- memory
- buddy_system
- Today
- Total
목록allocator (2)
Art of Pr0gr4m
이번 포스트에서는 커널의 memory allocator 에 대해 알아본다. 1. Page Allocator 다음은 page allocator를 이용하여 페이지 단위로 메모리를 할당하는 API들이다. static inline void *page_address(const struct page *page); static inline void set_page_address(struct page *page, void *address); static inline struct page * alloc_pages(gfp_t gfp_mask, unsigned int order); #define alloc_page(gfp_mask) alloc_pages(gfp_mask, 0) unsigned long __get_free_p..
이번 포스트에서는 메모리 할당 정책의 기반이 되는 메모리 존에 대해서 알아본다. 1. Memory Zone 리눅스 커널은 물리 메모리의 주소 영역을 나눠 Zone으로 관리한다. Zone 타입은 다음과 같다. enum zone_type { /* * ZONE_DMA and ZONE_DMA32 are used when there are peripherals not able * to DMA to all of the addressable memory (ZONE_NORMAL). * On architectures where this area covers the whole 32 bit address * space ZONE_DMA32 is used. ZONE_DMA is left for the ones with smal..