Re: hugepage test failures

Nish Aravamudan
2007-07-23T20:18:52Z

> Hi,
>
> I'm a few hundred linux-mm emails behind, so maybe this has been
> addressed already. I hope so.
>
> I run hugepage-mmap and hugepage-shm tests (from Doc/vm/hugetlbpage.txt)
> on a regular basis. Lately they have been failing, usually with -ENOMEM,
> but sometimes the mmap() succeeds and hugepage-mmap gets a SIGBUS:

Would it be possible for you instead to run the libhugetlbfs tests?
They are kept uptodate, at least.

> open("/mnt/hugetlbfs/hugepagefile", O_RDWR|O_CREAT, 0755) = 3
> mmap(NULL, 268435456, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0) = 0x2af31d2c3000
> fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
> mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2af32d2c3000
> write(1, "Returned address is 0x2af31d2c30"..., 35) = 35
> --- SIGBUS (Bus error) @ 0 (0) ---
> +++ killed by SIGBUS +++
>
>
> and:
>
> # ./hugepage-shm
> shmget: Cannot allocate memory
>
>
> I added printk()s in many mm/mmap.c and mm/hugetlb.c error return
> locations and got this:
>
> hugetlb_reserve_pages: -ENOMEM
>
> which comes from mm/hugetlb.c::hugetlb_reserve_pages():
>
> if (chg > cpuset_mems_nr(free_huge_pages_node)) {
> printk(KERN_DEBUG "%s: -ENOMEM\n", __func__);
> return -ENOMEM;
> }
>
> I had CONFIG_CPUSETS=y so I disabled it, but the same error
> still happens.

As in the same cpusets_mems_nr() check fails?

> Suggestions? Fixex?

Which kernel is this?

Thanks,
Nish