일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- devicedriver
- blk-mq
- 카프카
- pmap
- page
- memory
- commit
- proc
- NDK
- mm_struct
- BLOCK
- slab
- slowpath
- kmalloc
- lruvec
- Android
- Kernel
- vm_area_struct
- vmalloc
- buddy_system
- Network
- multiqueue
- spinlock
- kafka
- strex
- Apache
- allocator
- fastpath
- Linux
- slub
- 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..