cost 69 ms
vmalloc() 從 vm_struct 列表分配

[英]vmalloc() allocates from vm_struct list

Kernel 文檔https://www.kernel.org/doc/gorman/html/understand/understand010.html說,對於vmalloc -ing 它搜索 vm_structs 的線性鏈表並返回一個描述分配區域的新結構。 這是否意味着啟動時已經創建了vm_s ...

更改內核空間中的頁面順序

[英]change page order in kernel space

我有一個處理數據的內核模塊: 由內核分配頁面對齊數據“映射”是任意的我使用kvmalloc()在內核空間中分配內存。 對於用戶空間表示,我使用vm_insert_page()來創建正確的有序表示。 但是我找不到可以在內核空間中“插入”或“重新映射”或“重新排序”頁面映射的方法。 對於內核空間映射,是 ...

如何理解“你可以使用slab緩存分配器(即kmem_cache_create或kmem_cache_create_usercopy)來分配許多相同的對象”?

[英]How to comprehend “You can use the slab cache allocator(i.e. kmem_cache_create or kmem_cache_create_usercopy) to allocate many identical objects”?

根據文檔( https://www.kernel.org/doc/html/latest/core-api/memory-allocation.html ),它說[我的]: 如果你需要分配許多相同的對象,你可以使用slab cache allocator 。 在使用緩存之前,應該使用 kmem_c ...

linux kernel vfree()如何同步主內核頁表和進程的頁表?

[英]linux kernel vfree() how to synchronize master kernel page table and process's page table?

我知道vmalloc()的工作方式。當一個進程(在內核空間中)要訪問屬於vmalloc()的內存時,將發生頁面錯誤並進行同步。 但是當它調用vfree()時,進程如何更新其頁表以與主內核頁表同步?或者我對此有一些了解。 謝謝。 ...

為什么物理上連續的內存區域比虛擬上連續的內存更有效?

[英]Why physically contiguous memory region is more efficient than virtually contiguous memory.?

據說物理上連續的內存區域要比虛擬上連續的內存有效,因為羅伯特·洛夫(Robert Love)的書說內核不需要為物理上連續的內存設置頁表項。 但是內核不是在所有情況下都需要頁表嗎? 因此,在虛擬連續內存的情況下,需要創建哪些頁表條目。 ...

kmallc和vmalloc返回邏輯地址?

[英]kmallc and vmalloc return logical address?

雖然kmalloc和vmalloc上已經有很多線程在運行,但是我沒有得到確切的答案,因此將其放在此處。 據我所知 kmalloc:這是內核API,它在物理上以及實際上在連續地分配內存。 vmalloc:這是內核API,用於分配物理上不連續但實際上是連續的內存。 現在我的問 ...

將模塊移植到較新的Linux內核:無法分配內存

[英]Porting module to newer Linux kernel: Cannot allocate memory

我有一個非常大的驅動程序模塊,我正在嘗試編譯最近的Linux內核(3.4.4)。 我可以使用2.6.27.25內核成功編譯和insmod相同的模塊。 GCC版本也不同,4.7.0對4.3.0。 請注意,此模塊非常復雜,我不能簡單地瀏覽所有代碼和所有makefile。 當“插入”模塊時 ...

vmalloc_to_pfn在Linux 32系統上返回32位地址。 為什么它會切斷PAE物理地址的高位?

[英]vmalloc_to_pfn returns 32 bit address on Linux 32 system. Why does it chop off higher bits of PAE physical address?

我正在使用vmalloc_to_pfn()來獲取32位PAE Linux系統上的物理地址。 看起來vmalloc_to_pfn()返回“unsigned long”,這意味着它在32位系統上是32位,在64位系統上是64位。 在64位Linux上,unsigned long是64位,我沒有問 ...

32位x86中可以有多少VMALLOC空間?

[英]How large VMALLOC space can be in 32bit x86?

我的物理內存為4G,我使用的是32位的Android x86,已啟用HIGHMEM4G。 我想盡可能擴大vmalloc()空間。 如我所試,如果將VMsplit更改為2G / 2G,並使VMALLOC_RESERVED更大,則vmalloc()空間有望達到1G。 但是,如果我想獲得更大 ...

vmalloc()只能從32位x86上的ZONE_HIGHMEM獲取內存嗎?

[英]Does vmalloc() only get memory from ZONE_HIGHMEM on 32bit x86?

在32位x86平台上,如果vmalloc()可以從ZONE_NORMAL或ZONE_HIGHMEM分配內存,是否意味着即使我放大ZONE_HIGHMEM,vmalloc()可以使用的實際總范圍也不變? 我做了一個擴大ZONE_HIGHMEM的測試,vmalloc()的一次性分配可能比以前大得多 ...

從linux內核模塊中讀取大數組

[英]reading out large array from a linux kernel module

我已經搜索了很多東西,盡管我肯定可能錯過了一些東西,而我來自閱讀http://tldp.org/LDP/lkmpg/2.6/html/lkmpg.html和此http:/ /www.amazon.com/Essential-Device-Drivers-Sreekrishnan-Venkates ...

在 Mac 和 CentOS 上使用 vmalloc (libvmalloc.a) - 不能包含 vmalloc header

[英]Using vmalloc (libvmalloc.a) on Mac and CentOS- cannot include vmalloc header

我想分配幾乎連續的范圍 memory 以便在訪問數據時可以使用位置屬性(空間位置),同時考慮到更好的性能。 我在下一頁發現我需要使用 vmalloc 來獲得更好的 memory 本地訪問(如果我錯了,請糾正我並且必須改用 kmalloc)。 vmalloc 和 kmalloc 有什么區別? 我從 ...

linux中的kernel模塊有尺寸限制嗎?

[英]Is there a size limit for kernel module in linux?

我在加載 kernel 模塊時遇到問題,有一個大數據結構,大小約為 memory 的 2Gb - 我是否預先分配表(以便在我執行size -A module.ko或嘗試vmalloc()時顯示 in.bss vmalloc()它在加載時,模塊加載失敗insmod: error inserting ...

vmalloc 和 kmalloc 有什么區別?

[英]What is the difference between vmalloc and kmalloc?

我四處搜索,發現大多數人都提倡使用kmalloc ,因為您可以保證獲得連續的物理內存塊。 但是,如果找不到您想要的連續物理塊, kmalloc似乎也會失敗。 擁有連續的內存塊有什么好處? 具體來說,為什么我需要在系統調用中有一個連續的物理內存塊? 有什么理由我不能只使用vmalloc嗎? 最后,如 ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM