码迷,mamicode.com
首页 > 其他好文 > 详细

造成panic_oom问题的测试代码

时间:2019-08-27 15:47:06      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:vma   return   char   void   bsp   ret   exit   lin   函数   

写一个内核模块,来构造内核模块出现panic oom,主要采用vmalloc函数:

#include <linux/module.h>
#include <linux/mm.h>
#include <linux/vmalloc.h>

static int __init ko_test_init(void)
{
        int i;
        u64 size = 1024*1024*1024*2UL;
        for (i = 0; i < 500; i++) {
                char *p = vmalloc(size);
                memset(p, 0, size);
        }
        return 0;
}
static void __exit ko_test_exit(void)
{
}

module_init(ko_test_init);
module_exit(ko_test_exit);
MODULE_LICENSE("GPL");

对应的Makefile文件为:

MODULE := oom
KVER := $(shell uname -r)

ifdef CUSTOM_LINUX_SRC_PATH
        KDIR := $(CUSTOM_LINUX_SRC_PATH)
else
        KDIR ?= /usr/src/kernels/$(KVER)
endif

all: clean default

default:
        $(MAKE) -C $(KDIR) M=${shell pwd}   modules

clean:
        $(RM) -rf .*.cmd *.o .*.d .*.tmp .*.o *.mod.c *.ko .tmp_versions *.scc *.ld.script *.symvers *.order

install:
        cp *.ko $(DIR)

obj-m := $(MODULE).o

 

造成panic_oom问题的测试代码

标签:vma   return   char   void   bsp   ret   exit   lin   函数   

原文地址:https://www.cnblogs.com/xingmuxin/p/11418623.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!