On Sun, Mar 7, 2021 at 4:19 PM Balbir Singh <bsingharora@xxxxxxxxx> wrote: > > On Thu, Feb 25, 2021 at 09:21:26PM +0800, Muchun Song wrote: > > Because we reuse the first tail vmemmap page frame and remap it > > with read-only, we cannot set the PageHWPosion on some tail pages. > > So we can use the head[4].private (There are at least 128 struct > > page structures associated with the optimized HugeTLB page, so > > using head[4].private is safe) to record the real error page index > > and set the raw error page PageHWPoison later. > > > > Does the hardcoding of 4 come from HUGETLB_CGROUP_MIN_ORDER, if so Yes. > do we need to hardcode 4? Also, I am not sure about the comment > on safety and 128 struct pages We can set head[4].private only if free_vmemmap_pages_per_hpage(h) returns true. In this case, there are 128 struct page structures (we reserve 2 pages as vmemmap pages, so 2 * 4KB / sizeof(struct page) == 128) that can be used. Instead of hardcode, I introduce another patch to make the code more readable. Please refer to patch #8 in this series. Thanks. > > Balbir >