码迷,mamicode.com
首页 > 系统相关 > 详细

linux 巨页使用测试

时间:2017-10-23 13:00:02      阅读:833      评论:0      收藏:0      [点我收藏+]

标签:memory   tlb   int   cti   page   失败   func   back   pid   

这里记录测试巨页的mmap使用,测试代码和《linux 巨页使用测试以及勘误1》类似。

跟踪脚本如下:

probe kernel.function("hugetlb_reserve_pages").return
{
printf("hugetlb_reserve_pages pid=%d,ret=%d\r\n",pid(),$return);
}
probe kernel.function("hugetlb_acct_memory").return
{
print_backtrace();
printf("hugetlb_acct_memory pid=%d,ret=%d\r\n",pid(),$return);
}
probe kernel.function("gather_surplus_pages").inline
{
print_backtrace();
printf("gather_surplus_pages pid=%d,resv_huge_pages=%d,delta=%d,free_=%d,order=%d\r\n",pid(),$h->resv_huge_pages,$delta,$h->free_huge_pages,$h->order);
}
probe kernel.function("__alloc_buddy_huge_page").return
{
print_backtrace();
printf("gather_surplus_pages pid=%d\r\n,nr_huge_pages=%d,surplus_huge_pages=%d,order=%d,nr_overcommit_huge_pages=%d,ret=%d\r\n",pid(),$h->nr_huge_pages,$h->surplus_huge_pages,$h->order,$h->nr_overcommit_huge_pages,$return);
}

 

跟踪结果如下:

当/proc/sys/vm/nr_hugepages设置为0,则由于__alloc_buddy_huge_page分配内存失败而报内存不足,将其设置为我们测试代码想要分配的内存除以2M,圆整再加1,则可以分配到内存。

当mmap分配成功之后的addr,则可以使用memcpy或者read系统调用去使用。但write调用因为没有实现,而不能执行。

linux 巨页使用测试

标签:memory   tlb   int   cti   page   失败   func   back   pid   

原文地址:http://www.cnblogs.com/10087622blog/p/7714803.html

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