On Tue, Feb 4, 2020 at 12:36 PM Mina Almasry almasrymina@google.com wrote:
On Tue, Feb 4, 2020 at 8:26 AM Sandipan Das sandipan@linux.ibm.com wrote:
There are still a couple of places where 2MB page size is being used. These are my workarounds to get the tests running on ppc64.
Thanks for the changes!
Also I had missed running charge_reserved_hugetlb.sh the last time. Right now, it stops at the following scenario.
Test normal case with write. private=, populate=, method=2, reserve= nr hugepages = 10 writing cgroup limit: 83886080 writing reseravation limit: 83886080
Starting: hugetlb_usage=0 reserved_usage=0 expect_failure is 0 Putting task in cgroup 'hugetlb_cgroup_test' Method is 2 Executing ./write_to_hugetlbfs -p /mnt/huge/test -s 83886080 -w -m 2 -l Writing to this path: /mnt/huge/test Writing this size: 83886080 Not populating. Using method=2 Shared mapping. RESERVE mapping. Allocating using SHM. shmid: 0x5, shmget key:0 shmaddr: 0x7dfffb000000 Writing to memory. Starting the writes: .write_result is 0 .After write: hugetlb_usage=16777216 reserved_usage=83886080 ....kiling write_to_hugetlbfs ...Received 2. Deleting the memory Done deleting the memory 16777216 83886080 Memory charged to hugtlb=16777216 Memory charged to reservation=83886080 expected (83886080) != actual (16777216): Reserved memory charged to hugetlb cgroup. CLEANUP DONE
So the problem in this log seems to be that this log line is missing: echo Waiting for hugetlb memory to reach size $size.
The way the test works is that it starts a process that writes the hugetlb memory, then it *should* wait until the memory is written, then it should record the cgroup accounting and kill the process. It seems from your log that the wait doesn't happen, so the test continues before the background process has had time to write the memory properly. Essentially wait_for_hugetlb_memory_to_get_written() never gets called in your log.
Can you try this additional attached diff on top of your changes? I attached the diff and pasted the same here, hopefully one works for you:
I got my hands on a machine with 16MB default hugepage size and charge_reserved_hugetlb.sh passes now after my changes. Please let me know if you still run into issues.