mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-09 07:06:47 +00:00
doc: mm_stat文档
This commit is contained in:
parent
fb51b0dd6f
commit
16ad3e8719
@ -9,6 +9,7 @@ SLAB内存池提供小内存对象的分配功能。
|
|||||||
  获取小块的内存。
|
  获取小块的内存。
|
||||||
|
|
||||||
#### 描述
|
#### 描述
|
||||||
|
|
||||||
  kmalloc用于获取那些小于2M内存页大小的内存对象。可分配的内存对象大小为32bytes~1MBytes. 且分配的内存块大小、起始地址按照2的n次幂进行对齐。(比如,申请的是80bytes的内存空间,那么获得的内存对象大小为128bytes且内存地址按照128bytes对齐)
|
  kmalloc用于获取那些小于2M内存页大小的内存对象。可分配的内存对象大小为32bytes~1MBytes. 且分配的内存块大小、起始地址按照2的n次幂进行对齐。(比如,申请的是80bytes的内存空间,那么获得的内存对象大小为128bytes且内存地址按照128bytes对齐)
|
||||||
|
|
||||||
##### 参数
|
##### 参数
|
||||||
@ -26,6 +27,7 @@ SLAB内存池提供小内存对象的分配功能。
|
|||||||
  释放从slab分配的内存。
|
  释放从slab分配的内存。
|
||||||
|
|
||||||
#### 描述
|
#### 描述
|
||||||
|
|
||||||
  该函数用于释放通过kmalloc申请的内存。如果`address`为NULL,则函数被调用后,无事发生。
|
  该函数用于释放通过kmalloc申请的内存。如果`address`为NULL,则函数被调用后,无事发生。
|
||||||
|
|
||||||
  请不要通过这个函数释放那些不是从`kmalloc()`申请的内存,否则将会导致系统崩溃。
|
  请不要通过这个函数释放那些不是从`kmalloc()`申请的内存,否则将会导致系统崩溃。
|
||||||
@ -67,6 +69,7 @@ DragonOS支持对物理页的直接操作
|
|||||||
  分配的页面要被设置成的属性
|
  分配的页面要被设置成的属性
|
||||||
|
|
||||||
可选值:
|
可选值:
|
||||||
|
|
||||||
- `PAGE_PGT_MAPPED` 页面在页表中已被映射
|
- `PAGE_PGT_MAPPED` 页面在页表中已被映射
|
||||||
- `PAGE_KERNEL_INIT` 内核初始化所占用的页
|
- `PAGE_KERNEL_INIT` 内核初始化所占用的页
|
||||||
- `PAGE_DEVICE` 设备MMIO映射的内存
|
- `PAGE_DEVICE` 设备MMIO映射的内存
|
||||||
@ -83,7 +86,6 @@ DragonOS支持对物理页的直接操作
|
|||||||
|
|
||||||
  当ZONE错误或内存不足时,返回`NULL`
|
  当ZONE错误或内存不足时,返回`NULL`
|
||||||
|
|
||||||
|
|
||||||
### `void free_pages(struct Page *page, int number)`
|
### `void free_pages(struct Page *page, int number)`
|
||||||
|
|
||||||
#### 描述
|
#### 描述
|
||||||
@ -132,7 +134,6 @@ DragonOS支持对物理页的直接操作
|
|||||||
|
|
||||||
### `int mm_map_proc_page_table(ul proc_page_table_addr, bool is_phys, ul virt_addr_start, ul phys_addr_start, ul length, ul flags, bool user, bool flush, bool use4k)`
|
### `int mm_map_proc_page_table(ul proc_page_table_addr, bool is_phys, ul virt_addr_start, ul phys_addr_start, ul length, ul flags, bool user, bool flush, bool use4k)`
|
||||||
|
|
||||||
|
|
||||||
#### 描述
|
#### 描述
|
||||||
|
|
||||||
  将一段物理地址映射到指定页表的指定虚拟地址处
|
  将一段物理地址映射到指定页表的指定虚拟地址处
|
||||||
@ -219,3 +220,29 @@ DragonOS支持对物理页的直接操作
|
|||||||
**length**
|
**length**
|
||||||
|
|
||||||
  要取消映射的地址空间的长度
|
  要取消映射的地址空间的长度
|
||||||
|
|
||||||
|
## 内存信息获取
|
||||||
|
|
||||||
|
### `struct mm_stat_t mm_stat()`
|
||||||
|
|
||||||
|
#### 描述
|
||||||
|
|
||||||
|
  获取计算机目前的内存空间使用情况
|
||||||
|
|
||||||
|
#### 参数
|
||||||
|
|
||||||
|
无
|
||||||
|
|
||||||
|
#### 返回值
|
||||||
|
|
||||||
|
  返回值是一个`mm_mstat_t`结构体,该结构体定义于`mm/mm.h`中。其中包含了以下信息(单位均为字节):
|
||||||
|
|
||||||
|
| 参数名 | 解释 |
|
||||||
|
| ---------- | ----------------------- |
|
||||||
|
| total | 计算机的总内存数量大小 |
|
||||||
|
| used | 已使用的内存大小 |
|
||||||
|
| free | 空闲物理页所占的内存大小 |
|
||||||
|
| shared | 共享的内存大小 |
|
||||||
|
| cache_used | 位于slab缓冲区中的已使用的内存大小 |
|
||||||
|
| cache_free | 位于slab缓冲区中的空闲的内存大小 |
|
||||||
|
| available | 系统总空闲内存大小(包括kmalloc缓冲区) |
|
Loading…
x
Reference in New Issue
Block a user