gfp_atomic
gfp_user
gfp_highuser
gfp_noio, gfp_nofs
__gfp_dma
__gfp_highhem
__gfp_cold
__gfp_nowarn
__gfp_high
__gfp_repeat, __gfp_nofail, __gfp_noretry
記憶體區段
size引數
slab_hwcache_align
slab_cache_dma
mm/slab.c
可以使用同乙個函式同時作為constructor和destructor使用,當呼叫的是乙個constructor函式的時候,slab分配器總是傳遞slab_ctor_constructor標誌
void *kmem_cache_alloc(kmem_cache_t *cache, int flags);
void kmem_cache_free(kmem_cache_t *cache, const void *obj);
int kmem_cache_destroy(kmem_cache_t *cache);
快取記憶體的使用統計情況可以從/proc/slabinfo獲得
記憶體池
example
mempool會分配一些記憶體塊,空閒且不會真正得到使用
應盡量避免在驅動程式**中使用mempool
get_free_page和相關函式
__get_free_page(unsigned int flags);
__get_free_pages(unsigned int flags, unsigned int order);
void free_page(unsigned long addr);
void free_pages(unsigned long addr, unsigned long order);
alloc_pages介面
struct page *alloc_page(unsigned int flags, unsigned int order);
struct page *alloc_page(unsigned int flags);
void __free_page(struct page *page);
void __free_pages(struct page *page, unsigned int order);
void free_hot_page(struct page *page);
void free_code_page(struct page *page);
subtopic 7
vmalloc及其輔助函式
vmalloc可以獲得的位址在vmalloc_start到vmalloc_end的範圍中,這兩個符號都在中定義
使用vmalloc函式的正確場合是在分配一大塊連續的、只在軟體中存在的、用於緩衝的記憶體區域的時候
per-cpu變數
獲取大的緩衝區
這些函式要麼分配整個頁,要麼分配不在頁面邊界上對齊的記憶體區
除非使用具有_low字尾的版本,否則分配的記憶體可能會是高階記憶體
第八章 指標 第八章 指標
1 什麼是位址 include using namespace std int main 11 在堆中建立對像 我們既然可以在堆中儲存變數,那麼也就可以儲存對像,我們可以將對像儲存堆中,然後通過指標來訪問它 include using namespace std class human 14 在建構...
第八章(筆記)
能在 中進行記憶體單元的定址的暫存器只有4個,分別是bx si di bp 其中bx bp 是基址,bx對應的段位址是ds,bp對應的段位址是ss si di 是變址,單獨使用時段位址是ds,組合使用段位址是跟隨組合的基址對應的段位址 中進行記憶體單元定址彙總 si di bx bp 常量 si 常...
第八章 字典
d 空字典 d 這就是字典 d dict.fromkeys a b d dict zip keyslist,valslist d dict name bob age 22 建立字典的函式 d name 通過索引key獲取對應的value d.keys 返回d字典物件所有key,返回乙個列表 d.va...