首页 > 系统服务 > 详细

linux 巨页使用测试

时间:2017-10-23 10:21:11      阅读:482      评论:0      收藏:0      [点我收藏+]

这里记录测试巨页的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 巨页使用测试

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!