Linux驱动开发杂记(0x0C) - SetPageReserved()


SetPageReserved()   随着linux的长时间运行,空闲页面会越来越少,为了防止linux内核进入请求页面的僵局中,Linux内核采用页面回收算法(PFRA)从用户进程和内核高速缓存中回收内存页框,并根据需要把要回收页框的内容交换到磁盘上的交换区。调用该函数可以使页面不被交换。

#define SetPageReserved(page) set_bit(PG_reserved,&(page)->flags)
PG_reserved 的标志说明如下。 + PG_reserved is set for special pages, which can nEVEr beswapped out. Some of them might not EVEn exist (eg empty_bad_page)…


文章作者: Vinx
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Vinx !
 上一篇
Linux驱动开发杂记(0x0D) - remap_pfn_range() Linux驱动开发杂记(0x0D) - remap_pfn_range()
驱动实现mmap主要是调用: int remap_pfn_range(struct vm_area_struct *, unsigned long addr, unsigned long pfn, unsigned
下一篇 
Linux驱动开发杂记(0x0B) - 内核计数 Linux驱动开发杂记(0x0B) - 内核计数
Linux内核和驱动开发时,由于各种结构体变量见相互引用,因此,当回收内存时,由于引用没有清理,很容易发生内存指向错误。因此,Linux使用引用计数方式来代替简单的malloc,free。不过由于Linux的内核是以C为开发语言,不是C+
  目录