<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in hugetlb_cgroup.h</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>59838b25 - mm, hugetlb: remove HUGETLB_CGROUP_MIN_ORDER</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/linux/hugetlb_cgroup.h#59838b25</link>
        <description>mm, hugetlb: remove HUGETLB_CGROUP_MIN_ORDEROriginally, hugetlb_cgroup was the only hugetlb user of tail pagestructure fields.  So, the code defined and checked againstHUGETLB_CGROUP_MIN_ORDER to make sure pages weren&apos;t too small to use.However, by now, tail page #2 is used to store hugetlb hwpoison andsubpool information as well.  In other words, without that tail pagehugetlb doesn&apos;t work.Acknowledge this fact by getting rid of HUGETLB_CGROUP_MIN_ORDER andchecks against it.  Instead, just check for the minimum viable page orderat hstate creation time.Link: https://lkml.kernel.org/r/20231004153248.3842997-1-fvdl@google.comSigned-off-by: Frank van der Linden &lt;fvdl@google.com&gt;Reviewed-by: Mike Kravetz &lt;mike.kravetz@oracle.com&gt;Cc: Muchun Song &lt;muchun.song@linux.dev&gt;Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;

            List of files:
            /linux-6.15/include/linux/hugetlb_cgroup.h</description>
        <pubDate>Wed, 04 Oct 2023 15:32:48 +0000</pubDate>
        <dc:creator>Frank van der Linden &lt;fvdl@google.com&gt;</dc:creator>
    </item>
<item>
        <title>ff7d853b - mm/hugetlb: increase use of folios in alloc_huge_page()</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/linux/hugetlb_cgroup.h#ff7d853b</link>
        <description>mm/hugetlb: increase use of folios in alloc_huge_page()Change hugetlb_cgroup_commit_charge{,_rsvd}(), dequeue_huge_page_vma() andalloc_buddy_huge_page_with_mpol() to use folios so alloc_huge_page() iscleaned by operating on folios until its return.Link: https://lkml.kernel.org/r/20230113223057.173292-6-sidhartha.kumar@oracle.comSigned-off-by: Sidhartha Kumar &lt;sidhartha.kumar@oracle.com&gt;Reviewed-by: Mike Kravetz &lt;mike.kravetz@oracle.com&gt;Cc: John Hubbard &lt;jhubbard@nvidia.com&gt;Cc: Matthew Wilcox &lt;willy@infradead.org&gt;Cc: Muchun Song &lt;songmuchun@bytedance.com&gt;Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;

            List of files:
            /linux-6.15/include/linux/hugetlb_cgroup.h</description>
        <pubDate>Fri, 13 Jan 2023 22:30:54 +0000</pubDate>
        <dc:creator>Sidhartha Kumar &lt;sidhartha.kumar@oracle.com&gt;</dc:creator>
    </item>
<item>
        <title>dad6a5eb - mm,hugetlb: use folio fields in second tail page</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/linux/hugetlb_cgroup.h#dad6a5eb</link>
        <description>mm,hugetlb: use folio fields in second tail pagePatch series &quot;mm,huge,rmap: unify and speed up compound mapcounts&quot;.This patch (of 3):We want to declare one more int in the first tail of a compound page: thatfirst tail page being valuable property, since every compound page has afirst tail, but perhaps no more than that.No problem on 64-bit: there is already space for it.  No problem with32-bit THPs: 5.18 commit 5232c63f46fd (&quot;mm: Make compound_pincount alwaysavailable&quot;) kindly cleared the space for it, apparently not realizing thatonly 64-bit architectures enable CONFIG_THP_SWAP (whose use of tailpage-&gt;private might conflict) - but make sure of that in its Kconfig.But hugetlb pages use tail page-&gt;private of the first tail page for asubpool pointer, which will conflict; and they also use page-&gt;private ofthe 2nd, 3rd and 4th tails.Undo &quot;mm: add private field of first tail to struct page and structfolio&quot;&apos;s recent addition of private_1 to the folio tail: instead addhugetlb_subpool, hugetlb_cgroup, hugetlb_cgroup_rsvd, hugetlb_hwpoison toa second tail page of the folio: THP has long been using several fields ofthat tail, so make better use of it for hugetlb too.  This is not how ageneric folio should be declared in future, but it is an effectivetransitional way to make use of it.Delete the SUBPAGE_INDEX stuff, but keep __NR_USED_SUBPAGE: now 3.[hughd@google.com: prefix folio&apos;s page_1 and page_2 with double underscore,  give folio&apos;s _flags_2 and _head_2 a line documentation each]  Link: https://lkml.kernel.org/r/9e2cb6b-5b58-d3f2-b5ee-5f8a14e8f10@google.comLink: https://lkml.kernel.org/r/5f52de70-975-e94f-f141-543765736181@google.comLink: https://lkml.kernel.org/r/3818cc9a-9999-d064-d778-9c94c5911e6@google.comSigned-off-by: Hugh Dickins &lt;hughd@google.com&gt;Acked-by: Kirill A. Shutemov &lt;kirill.shutemov@linux.intel.com&gt;Cc: David Hildenbrand &lt;david@redhat.com&gt;Cc: James Houghton &lt;jthoughton@google.com&gt;Cc: John Hubbard &lt;jhubbard@nvidia.com&gt;Cc: Matthew Wilcox (Oracle) &lt;willy@infradead.org&gt;Cc: Miaohe Lin &lt;linmiaohe@huawei.com&gt;Cc: Mike Kravetz &lt;mike.kravetz@oracle.com&gt;Cc: Mina Almasry &lt;almasrymina@google.com&gt;Cc: Muchun Song &lt;songmuchun@bytedance.com&gt;Cc: Naoya Horiguchi &lt;naoya.horiguchi@linux.dev&gt;Cc: Peter Xu &lt;peterx@redhat.com&gt;Cc: Sidhartha Kumar &lt;sidhartha.kumar@oracle.com&gt;Cc: Vlastimil Babka &lt;vbabka@suse.cz&gt;Cc: Yang Shi &lt;shy828301@gmail.com&gt;Cc: Zach O&apos;Keefe &lt;zokeefe@google.com&gt;Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;

            List of files:
            /linux-6.15/include/linux/hugetlb_cgroup.h</description>
        <pubDate>Thu, 03 Nov 2022 01:48:45 +0000</pubDate>
        <dc:creator>Hugh Dickins &lt;hughd@google.com&gt;</dc:creator>
    </item>
<item>
        <title>d4ab0316 - mm/hugetlb_cgroup: convert hugetlb_cgroup_uncharge_page() to folios</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/linux/hugetlb_cgroup.h#d4ab0316</link>
        <description>mm/hugetlb_cgroup: convert hugetlb_cgroup_uncharge_page() to foliosContinue to use a folio inside free_huge_page() by convertinghugetlb_cgroup_uncharge_page*() to folios.Link: https://lkml.kernel.org/r/20221101223059.460937-8-sidhartha.kumar@oracle.comSigned-off-by: Sidhartha Kumar &lt;sidhartha.kumar@oracle.com&gt;Reviewed-by: Mike Kravetz &lt;mike.kravetz@oracle.com&gt;Reviewed-by: Muchun Song &lt;songmuchun@bytedance.com&gt;Cc: Aneesh Kumar K.V &lt;aneesh.kumar@linux.ibm.com&gt;Cc: Bui Quang Minh &lt;minhquangbui99@gmail.com&gt;Cc: Matthew Wilcox (Oracle) &lt;willy@infradead.org&gt;Cc: Miaohe Lin &lt;linmiaohe@huawei.com&gt;Cc: Mina Almasry &lt;almasrymina@google.com&gt;Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;

            List of files:
            /linux-6.15/include/linux/hugetlb_cgroup.h</description>
        <pubDate>Tue, 01 Nov 2022 22:30:57 +0000</pubDate>
        <dc:creator>Sidhartha Kumar &lt;sidhartha.kumar@oracle.com&gt;</dc:creator>
    </item>
<item>
        <title>29f39430 - mm/hugetlb_cgroup: convert hugetlb_cgroup_migrate to folios</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/linux/hugetlb_cgroup.h#29f39430</link>
        <description>mm/hugetlb_cgroup: convert hugetlb_cgroup_migrate to foliosCleans up intermediate page to folio conversion code inhugetlb_cgroup_migrate() by changing its arguments from pages to folios.Link: https://lkml.kernel.org/r/20221101223059.460937-5-sidhartha.kumar@oracle.comSigned-off-by: Sidhartha Kumar &lt;sidhartha.kumar@oracle.com&gt;Reviewed-by: Mike Kravetz &lt;mike.kravetz@oracle.com&gt;Reviewed-by: Muchun Song &lt;songmuchun@bytedance.com&gt;Cc: Aneesh Kumar K.V &lt;aneesh.kumar@linux.ibm.com&gt;Cc: Bui Quang Minh &lt;minhquangbui99@gmail.com&gt;Cc: Matthew Wilcox (Oracle) &lt;willy@infradead.org&gt;Cc: Miaohe Lin &lt;linmiaohe@huawei.com&gt;Cc: Mina Almasry &lt;almasrymina@google.com&gt;Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;

            List of files:
            /linux-6.15/include/linux/hugetlb_cgroup.h</description>
        <pubDate>Tue, 01 Nov 2022 22:30:54 +0000</pubDate>
        <dc:creator>Sidhartha Kumar &lt;sidhartha.kumar@oracle.com&gt;</dc:creator>
    </item>
<item>
        <title>de656ed3 - mm/hugetlb_cgroup: convert set_hugetlb_cgroup*() to folios</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/linux/hugetlb_cgroup.h#de656ed3</link>
        <description>mm/hugetlb_cgroup: convert set_hugetlb_cgroup*() to foliosAllows __prep_new_huge_page() to operate on a folio by convertingset_hugetlb_cgroup*() to take in a folio.Link: https://lkml.kernel.org/r/20221101223059.460937-4-sidhartha.kumar@oracle.comSigned-off-by: Sidhartha Kumar &lt;sidhartha.kumar@oracle.com&gt;Reviewed-by: Mike Kravetz &lt;mike.kravetz@oracle.com&gt;Cc: Aneesh Kumar K.V &lt;aneesh.kumar@linux.ibm.com&gt;Cc: Bui Quang Minh &lt;minhquangbui99@gmail.com&gt;Cc: Matthew Wilcox (Oracle) &lt;willy@infradead.org&gt;Cc: Miaohe Lin &lt;linmiaohe@huawei.com&gt;Cc: Mina Almasry &lt;almasrymina@google.com&gt;Cc: Muchun Song &lt;songmuchun@bytedance.com&gt;Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;

            List of files:
            /linux-6.15/include/linux/hugetlb_cgroup.h</description>
        <pubDate>Tue, 01 Nov 2022 22:30:53 +0000</pubDate>
        <dc:creator>Sidhartha Kumar &lt;sidhartha.kumar@oracle.com&gt;</dc:creator>
    </item>
<item>
        <title>f074732d - mm/hugetlb_cgroup: convert hugetlb_cgroup_from_page() to folios</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/linux/hugetlb_cgroup.h#f074732d</link>
        <description>mm/hugetlb_cgroup: convert hugetlb_cgroup_from_page() to foliosIntroduce folios in __remove_hugetlb_page() by convertinghugetlb_cgroup_from_page() to use folios.Also gets rid of unsed hugetlb_cgroup_from_page_resv() function.Link: https://lkml.kernel.org/r/20221101223059.460937-3-sidhartha.kumar@oracle.comSigned-off-by: Sidhartha Kumar &lt;sidhartha.kumar@oracle.com&gt;Reviewed-by: Muchun Song &lt;songmuchun@bytedance.com&gt;Cc: Aneesh Kumar K.V &lt;aneesh.kumar@linux.ibm.com&gt;Cc: Bui Quang Minh &lt;minhquangbui99@gmail.com&gt;Cc: Matthew Wilcox (Oracle) &lt;willy@infradead.org&gt;Cc: Miaohe Lin &lt;linmiaohe@huawei.com&gt;Cc: Mike Kravetz &lt;mike.kravetz@oracle.com&gt;Cc: Mina Almasry &lt;almasrymina@google.com&gt;Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;

            List of files:
            /linux-6.15/include/linux/hugetlb_cgroup.h</description>
        <pubDate>Tue, 01 Nov 2022 22:30:52 +0000</pubDate>
        <dc:creator>Sidhartha Kumar &lt;sidhartha.kumar@oracle.com&gt;</dc:creator>
    </item>
<item>
        <title>a098c977 - mm/hugetlb_cgroup: convert __set_hugetlb_cgroup() to folios</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/linux/hugetlb_cgroup.h#a098c977</link>
        <description>mm/hugetlb_cgroup: convert __set_hugetlb_cgroup() to foliosPatch series &quot;convert hugetlb_cgroup helper functions to folios&quot;, v2.This patch series continues the conversion of hugetlb code from beingmanaged in pages to folios by converting many of the hugetlb_cgroup helperfunctions to use folios.  This allows the core hugetlb functions to passin a folio to these helper functions.This patch (of 9);Change __set_hugetlb_cgroup() to use folios so it is explicit that thefunction operates on a head page.Link: https://lkml.kernel.org/r/20221101223059.460937-1-sidhartha.kumar@oracle.comLink: https://lkml.kernel.org/r/20221101223059.460937-2-sidhartha.kumar@oracle.comSigned-off-by: Sidhartha Kumar &lt;sidhartha.kumar@oracle.com&gt;Reviewed-by: Mike Kravetz &lt;mike.kravetz@oracle.com&gt;Reviewed-by: Muchun Song &lt;songmuchun@bytedance.com&gt;Cc: Aneesh Kumar K.V &lt;aneesh.kumar@linux.ibm.com&gt;Cc: Bui Quang Minh &lt;minhquangbui99@gmail.com&gt;Cc: Matthew Wilcox (Oracle) &lt;willy@infradead.org&gt;Cc: Miaohe Lin &lt;linmiaohe@huawei.com&gt;Cc: Mina Almasry &lt;almasrymina@google.com&gt;Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;

            List of files:
            /linux-6.15/include/linux/hugetlb_cgroup.h</description>
        <pubDate>Tue, 01 Nov 2022 22:30:51 +0000</pubDate>
        <dc:creator>Sidhartha Kumar &lt;sidhartha.kumar@oracle.com&gt;</dc:creator>
    </item>
<item>
        <title>736a8ccc - hugetlb_cgroup: remove unneeded return value</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/linux/hugetlb_cgroup.h#736a8ccc</link>
        <description>hugetlb_cgroup: remove unneeded return valueThe return value of set_hugetlb_cgroup and set_hugetlb_cgroup_rsvd arealways ignored. Remove them to clean up the code.Link: https://lkml.kernel.org/r/20220729080106.12752-4-linmiaohe@huawei.comSigned-off-by: Miaohe Lin &lt;linmiaohe@huawei.com&gt;Reviewed-by: Mike Kravetz &lt;mike.kravetz@oracle.com&gt;Cc: Mina Almasry &lt;almasrymina@google.com&gt;Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;

            List of files:
            /linux-6.15/include/linux/hugetlb_cgroup.h</description>
        <pubDate>Fri, 29 Jul 2022 08:01:04 +0000</pubDate>
        <dc:creator>Miaohe Lin &lt;linmiaohe@huawei.com&gt;</dc:creator>
    </item>
<item>
        <title>f4776199 - hugetlb: add hugetlb.*.numa_stat file</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/linux/hugetlb_cgroup.h#f4776199</link>
        <description>hugetlb: add hugetlb.*.numa_stat fileFor hugetlb backed jobs/VMs it&apos;s critical to understand the numainformation for the memory backing these jobs to deliver optimalperformance.Currently this technically can be queried from /proc/self/numa_maps, butthere are significant issues with that.  Namely:1. Memory can be mapped or unmapped.2. numa_maps are per process and need to be aggregated across all   processes in the cgroup.  For shared memory this is more involved as   the userspace needs to make sure it doesn&apos;t double count shared   mappings.3. I believe querying numa_maps needs to hold the mmap_lock which adds   to the contention on this lock.For these reasons I propose simply adding hugetlb.*.numa_stat file,   which shows the numa information of the cgroup similarly to   memory.numa_stat.On cgroup-v2:   cat /sys/fs/cgroup/unified/test/hugetlb.2MB.numa_stat   total=2097152 N0=2097152 N1=0On cgroup-v1:   cat /sys/fs/cgroup/hugetlb/test/hugetlb.2MB.numa_stat   total=2097152 N0=2097152 N1=0   hierarichal_total=2097152 N0=2097152 N1=0This patch was tested manually by allocating hugetlb memory and queryingthe hugetlb.*.numa_stat file of the cgroup and its parents.[colin.i.king@googlemail.com: fix spelling mistake &quot;hierarichal&quot; -&gt; &quot;hierarchical&quot;]  Link: https://lkml.kernel.org/r/20211125090635.23508-1-colin.i.king@gmail.com[keescook@chromium.org: fix copy/paste array assignment]  Link: https://lkml.kernel.org/r/20211203065647.2819707-1-keescook@chromium.orgLink: https://lkml.kernel.org/r/20211123001020.4083653-1-almasrymina@google.comSigned-off-by: Mina Almasry &lt;almasrymina@google.com&gt;Signed-off-by: Colin Ian King &lt;colin.i.king@gmail.com&gt;Signed-off-by: Kees Cook &lt;keescook@chromium.org&gt;Reviewed-by: Shakeel Butt &lt;shakeelb@google.com&gt;Reviewed-by: Muchun Song &lt;songmuchun@bytedance.com&gt;Reviewed-by: Mike Kravetz &lt;mike.kravetz@oracle.com&gt;Cc: Shuah Khan &lt;shuah@kernel.org&gt;Cc: Miaohe Lin &lt;linmiaohe@huawei.com&gt;Cc: Oscar Salvador &lt;osalvador@suse.de&gt;Cc: Michal Hocko &lt;mhocko@suse.com&gt;Cc: David Rientjes &lt;rientjes@google.com&gt;Cc: Jue Wang &lt;juew@google.com&gt;Cc: Yang Yao &lt;ygyao@google.com&gt;Cc: Joanna Li &lt;joannali@google.com&gt;Cc: Cannon Matthews &lt;cannonmatthews@google.com&gt;Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;

            List of files:
            /linux-6.15/include/linux/hugetlb_cgroup.h</description>
        <pubDate>Fri, 14 Jan 2022 22:07:48 +0000</pubDate>
        <dc:creator>Mina Almasry &lt;almasrymina@google.com&gt;</dc:creator>
    </item>
<item>
        <title>afe041c2 - hugetlb: fix hugetlb cgroup refcounting during mremap</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/linux/hugetlb_cgroup.h#afe041c2</link>
        <description>hugetlb: fix hugetlb cgroup refcounting during mremapWhen hugetlb_vm_op_open() is called during copy_vma(), we may take thereference to resv_map-&gt;css.  Later, when clearing the reservationpointer of old_vma after transferring it to new_vma, we forget to dropthe reference to resv_map-&gt;css.  This leads to a reference leak of css.Fixes this by adding a check to drop reservation css reference inclear_vma_resv_huge_pages()Link: https://lkml.kernel.org/r/20211113154412.91134-1-minhquangbui99@gmail.comFixes: 550a7d60bd5e35 (&quot;mm, hugepages: add mremap() support for hugepage backed vma&quot;)Signed-off-by: Bui Quang Minh &lt;minhquangbui99@gmail.com&gt;Reviewed-by: Mike Kravetz &lt;mike.kravetz@oracle.com&gt;Reviewed-by: Mina Almasry &lt;almasrymina@google.com&gt;Cc: Miaohe Lin &lt;linmiaohe@huawei.com&gt;Cc: Michal Hocko &lt;mhocko@suse.com&gt;Cc: Muchun Song &lt;songmuchun@bytedance.com&gt;Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;

            List of files:
            /linux-6.15/include/linux/hugetlb_cgroup.h</description>
        <pubDate>Sat, 20 Nov 2021 00:43:40 +0000</pubDate>
        <dc:creator>Bui Quang Minh &lt;minhquangbui99@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>09a26e83 - hugetlb: fix hugetlb cgroup refcounting during vma split</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/linux/hugetlb_cgroup.h#09a26e83</link>
        <description>hugetlb: fix hugetlb cgroup refcounting during vma splitGuillaume Morin reported hitting the following WARNING followed by GPF orNULL pointer deference either in cgroups_destroy or in the kill_css path.:    percpu ref (css_release) &lt;= 0 (-1) after switching to atomic    WARNING: CPU: 23 PID: 130 at lib/percpu-refcount.c:196 percpu_ref_switch_to_atomic_rcu+0x127/0x130    CPU: 23 PID: 130 Comm: ksoftirqd/23 Kdump: loaded Tainted: G           O      5.10.60 #1    RIP: 0010:percpu_ref_switch_to_atomic_rcu+0x127/0x130    Call Trace:       rcu_core+0x30f/0x530       rcu_core_si+0xe/0x10       __do_softirq+0x103/0x2a2       run_ksoftirqd+0x2b/0x40       smpboot_thread_fn+0x11a/0x170       kthread+0x10a/0x140       ret_from_fork+0x22/0x30Upon further examination, it was discovered that the css structure wasassociated with hugetlb reservations.For private hugetlb mappings the vma points to a reserve map thatcontains a pointer to the css.  At mmap time, reservations are set upand a reference to the css is taken.  This reference is dropped in thevma close operation; hugetlb_vm_op_close.  However, if a vma is split noadditional reference to the css is taken yet hugetlb_vm_op_close will becalled twice for the split vma resulting in an underflow.Fix by taking another reference in hugetlb_vm_op_open.  Note that thereference is only taken for the owner of the reserve map.  In the morecommon fork case, the pointer to the reserve map is cleared fornon-owning vmas.Link: https://lkml.kernel.org/r/20210830215015.155224-1-mike.kravetz@oracle.comFixes: e9fe92ae0cd2 (&quot;hugetlb_cgroup: add reservation accounting for private mappings&quot;)Signed-off-by: Mike Kravetz &lt;mike.kravetz@oracle.com&gt;Reported-by: Guillaume Morin &lt;guillaume@morinfr.org&gt;Suggested-by: Guillaume Morin &lt;guillaume@morinfr.org&gt;Tested-by: Guillaume Morin &lt;guillaume@morinfr.org&gt;Cc: &lt;stable@vger.kernel.org&gt;Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;

            List of files:
            /linux-6.15/include/linux/hugetlb_cgroup.h</description>
        <pubDate>Thu, 02 Sep 2021 21:58:53 +0000</pubDate>
        <dc:creator>Mike Kravetz &lt;mike.kravetz@oracle.com&gt;</dc:creator>
    </item>
<item>
        <title>cd39d4e9 - mm: hugetlb: gather discrete indexes of tail page</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/linux/hugetlb_cgroup.h#cd39d4e9</link>
        <description>mm: hugetlb: gather discrete indexes of tail pageFor HugeTLB page, there are more metadata to save in the struct page.  Butthe head struct page cannot meet our needs, so we have to abuse other tailstruct page to store the metadata.  In order to avoid conflicts caused bysubsequent use of more tail struct pages, we can gather these discreteindexes of tail struct page.  In this case, it will be easier to add a newtail page index later.Link: https://lkml.kernel.org/r/20210510030027.56044-4-songmuchun@bytedance.comSigned-off-by: Muchun Song &lt;songmuchun@bytedance.com&gt;Reviewed-by: Oscar Salvador &lt;osalvador@suse.de&gt;Reviewed-by: Miaohe Lin &lt;linmiaohe@huawei.com&gt;Tested-by: Chen Huang &lt;chenhuang5@huawei.com&gt;Tested-by: Bodeddula Balasubramaniam &lt;bodeddub@amazon.com&gt;Acked-by: Michal Hocko &lt;mhocko@suse.com&gt;Reviewed-by: Mike Kravetz &lt;mike.kravetz@oracle.com&gt;Cc: Alexander Viro &lt;viro@zeniv.linux.org.uk&gt;Cc: Andy Lutomirski &lt;luto@kernel.org&gt;Cc: Anshuman Khandual &lt;anshuman.khandual@arm.com&gt;Cc: Balbir Singh &lt;bsingharora@gmail.com&gt;Cc: Barry Song &lt;song.bao.hua@hisilicon.com&gt;Cc: Borislav Petkov &lt;bp@alien8.de&gt;Cc: Dave Hansen &lt;dave.hansen@linux.intel.com&gt;Cc: David Hildenbrand &lt;david@redhat.com&gt;Cc: David Rientjes &lt;rientjes@google.com&gt;Cc: HORIGUCHI NAOYA &lt;naoya.horiguchi@nec.com&gt;Cc: &quot;H. Peter Anvin&quot; &lt;hpa@zytor.com&gt;Cc: Ingo Molnar &lt;mingo@redhat.com&gt;Cc: Joao Martins &lt;joao.m.martins@oracle.com&gt;Cc: Joerg Roedel &lt;jroedel@suse.de&gt;Cc: Jonathan Corbet &lt;corbet@lwn.net&gt;Cc: Matthew Wilcox &lt;willy@infradead.org&gt;Cc: Mina Almasry &lt;almasrymina@google.com&gt;Cc: Oliver Neukum &lt;oneukum@suse.com&gt;Cc: Paul E. McKenney &lt;paulmck@kernel.org&gt;Cc: Pawan Gupta &lt;pawan.kumar.gupta@linux.intel.com&gt;Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;Cc: Randy Dunlap &lt;rdunlap@infradead.org&gt;Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;Cc: Xiongchun Duan &lt;duanxiongchun@bytedance.com&gt;Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;

            List of files:
            /linux-6.15/include/linux/hugetlb_cgroup.h</description>
        <pubDate>Thu, 01 Jul 2021 01:47:09 +0000</pubDate>
        <dc:creator>Muchun Song &lt;songmuchun@bytedance.com&gt;</dc:creator>
    </item>
<item>
        <title>d85aecf2 - hugetlb_cgroup: fix imbalanced css_get and css_put pair for shared mappings</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/linux/hugetlb_cgroup.h#d85aecf2</link>
        <description>hugetlb_cgroup: fix imbalanced css_get and css_put pair for shared mappingsThe current implementation of hugetlb_cgroup for shared mappings couldhave different behavior.  Consider the following two scenarios: 1.Assume initial css reference count of hugetlb_cgroup is 1:  1.1 Call hugetlb_reserve_pages with from = 1, to = 2. So css reference      count is 2 associated with 1 file_region.  1.2 Call hugetlb_reserve_pages with from = 2, to = 3. So css reference      count is 3 associated with 2 file_region.  1.3 coalesce_file_region will coalesce these two file_regions into      one. So css reference count is 3 associated with 1 file_region      now. 2.Assume initial css reference count of hugetlb_cgroup is 1 again:  2.1 Call hugetlb_reserve_pages with from = 1, to = 3. So css reference      count is 2 associated with 1 file_region.Therefore, we might have one file_region while holding one or more cssreference counts. This inconsistency could lead to imbalanced css_get()and css_put() pair. If we do css_put one by one (i.g. hole punch case),scenario 2 would put one more css reference. If we do css_put alltogether (i.g. truncate case), scenario 1 will leak one css reference.The imbalanced css_get() and css_put() pair would result in a non-zeroreference when we try to destroy the hugetlb cgroup. The hugetlb cgroupdirectory is removed __but__ associated resource is not freed. Thismight result in OOM or can not create a new hugetlb cgroup in a busyworkload ultimately.In order to fix this, we have to make sure that one file_region musthold exactly one css reference. So in coalesce_file_region case, weshould release one css reference before coalescence. Also only put cssreference when the entire file_region is removed.The last thing to note is that the caller of region_add() will only holdone reference to h_cg-&gt;css for the whole contiguous reservation region.But this area might be scattered when there are already somefile_regions reside in it. As a result, many file_regions may share onlyone h_cg-&gt;css reference. In order to ensure that one file_region musthold exactly one css reference, we should do css_get() for eachfile_region and release the reference held by caller when they are done.[linmiaohe@huawei.com: fix imbalanced css_get and css_put pair for shared mappings]  Link: https://lkml.kernel.org/r/20210316023002.53921-1-linmiaohe@huawei.comLink: https://lkml.kernel.org/r/20210301120540.37076-1-linmiaohe@huawei.comFixes: 075a61d07a8e (&quot;hugetlb_cgroup: add accounting for shared mappings&quot;)Reported-by: kernel test robot &lt;lkp@intel.com&gt; (auto build test ERROR)Signed-off-by: Miaohe Lin &lt;linmiaohe@huawei.com&gt;Reviewed-by: Mike Kravetz &lt;mike.kravetz@oracle.com&gt;Cc: Aneesh Kumar K.V &lt;aneesh.kumar@linux.vnet.ibm.com&gt;Cc: Wanpeng Li &lt;liwp.linux@gmail.com&gt;Cc: Mina Almasry &lt;almasrymina@google.com&gt;Cc: &lt;stable@vger.kernel.org&gt;Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;

            List of files:
            /linux-6.15/include/linux/hugetlb_cgroup.h</description>
        <pubDate>Thu, 25 Mar 2021 04:37:17 +0000</pubDate>
        <dc:creator>Miaohe Lin &lt;linmiaohe@huawei.com&gt;</dc:creator>
    </item>
<item>
        <title>075a61d0 - hugetlb_cgroup: add accounting for shared mappings</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/linux/hugetlb_cgroup.h#075a61d0</link>
        <description>hugetlb_cgroup: add accounting for shared mappingsFor shared mappings, the pointer to the hugetlb_cgroup to uncharge livesin the resv_map entries, in file_region-&gt;reservation_counter.After a call to region_chg, we charge the approprate hugetlb_cgroup, andif successful, we pass on the hugetlb_cgroup info to a follow upregion_add call.  When a file_region entry is added to the resv_map viaregion_add, we put the pointer to that cgroup infile_region-&gt;reservation_counter.  If charging doesn&apos;t succeed, we reportthe error to the caller, so that the kernel fails the reservation.On region_del, which is when the hugetlb memory is unreserved, we alsouncharge the file_region-&gt;reservation_counter.[akpm@linux-foundation.org: forward declare struct file_region]Signed-off-by: Mina Almasry &lt;almasrymina@google.com&gt;Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;Reviewed-by: Mike Kravetz &lt;mike.kravetz@oracle.com&gt;Cc: David Rientjes &lt;rientjes@google.com&gt;Cc: Greg Thelen &lt;gthelen@google.com&gt;Cc: Mike Kravetz &lt;mike.kravetz@oracle.com&gt;Cc: Sandipan Das &lt;sandipan@linux.ibm.com&gt;Cc: Shakeel Butt &lt;shakeelb@google.com&gt;Cc: Shuah Khan &lt;shuah@kernel.org&gt;Link: http://lkml.kernel.org/r/20200211213128.73302-5-almasrymina@google.comSigned-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;

            List of files:
            /linux-6.15/include/linux/hugetlb_cgroup.h</description>
        <pubDate>Thu, 02 Apr 2020 04:11:28 +0000</pubDate>
        <dc:creator>Mina Almasry &lt;almasrymina@google.com&gt;</dc:creator>
    </item>
<item>
        <title>e9fe92ae - hugetlb_cgroup: add reservation accounting for private mappings</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/linux/hugetlb_cgroup.h#e9fe92ae</link>
        <description>hugetlb_cgroup: add reservation accounting for private mappingsNormally the pointer to the cgroup to uncharge hangs off the struct page,and gets queried when it&apos;s time to free the page.  With hugetlb_cgroupreservations, this is not possible.  Because it&apos;s possible for a page tobe reserved by one task and actually faulted in by another task.The best place to put the hugetlb_cgroup pointer to uncharge forreservations is in the resv_map.  But, because the resv_map has differentsemantics for private and shared mappings, the code patch tocharge/uncharge shared and private mappings is different.  This patchimplements charging and uncharging for private mappings.For private mappings, the counter to uncharge is inresv_map-&gt;reservation_counter.  On initializing the resv_map this is setto NULL.  On reservation of a region in private mapping, the taskshugetlb_cgroup is charged and the hugetlb_cgroup is placed isresv_map-&gt;reservation_counter.On hugetlb_vm_op_close, we uncharge resv_map-&gt;reservation_counter.[akpm@linux-foundation.org: forward declare struct resv_map]Signed-off-by: Mina Almasry &lt;almasrymina@google.com&gt;Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;Reviewed-by: Mike Kravetz &lt;mike.kravetz@oracle.com&gt;Acked-by: David Rientjes &lt;rientjes@google.com&gt;Cc: Greg Thelen &lt;gthelen@google.com&gt;Cc: Sandipan Das &lt;sandipan@linux.ibm.com&gt;Cc: Shakeel Butt &lt;shakeelb@google.com&gt;Cc: Shuah Khan &lt;shuah@kernel.org&gt;Link: http://lkml.kernel.org/r/20200211213128.73302-3-almasrymina@google.comSigned-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;

            List of files:
            /linux-6.15/include/linux/hugetlb_cgroup.h</description>
        <pubDate>Thu, 02 Apr 2020 04:11:21 +0000</pubDate>
        <dc:creator>Mina Almasry &lt;almasrymina@google.com&gt;</dc:creator>
    </item>
<item>
        <title>1adc4d41 - hugetlb_cgroup: add interface for charge/uncharge hugetlb reservations</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/linux/hugetlb_cgroup.h#1adc4d41</link>
        <description>hugetlb_cgroup: add interface for charge/uncharge hugetlb reservationsAugments hugetlb_cgroup_charge_cgroup to be able to charge hugetlb usageor hugetlb reservation counter.Adds a new interface to uncharge a hugetlb_cgroup counter viahugetlb_cgroup_uncharge_counter.Integrates the counter with hugetlb_cgroup, via hugetlb_cgroup_init,hugetlb_cgroup_have_usage, and hugetlb_cgroup_css_offline.Signed-off-by: Mina Almasry &lt;almasrymina@google.com&gt;Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;Acked-by: Mike Kravetz &lt;mike.kravetz@oracle.com&gt;Acked-by: David Rientjes &lt;rientjes@google.com&gt;Cc: Greg Thelen &lt;gthelen@google.com&gt;Cc: Sandipan Das &lt;sandipan@linux.ibm.com&gt;Cc: Shakeel Butt &lt;shakeelb@google.com&gt;Cc: Shuah Khan &lt;shuah@kernel.org&gt;Link: http://lkml.kernel.org/r/20200211213128.73302-2-almasrymina@google.comSigned-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;

            List of files:
            /linux-6.15/include/linux/hugetlb_cgroup.h</description>
        <pubDate>Thu, 02 Apr 2020 04:11:15 +0000</pubDate>
        <dc:creator>Mina Almasry &lt;almasrymina@google.com&gt;</dc:creator>
    </item>
<item>
        <title>7fab358d - include/linux/hugetlb*.h: clean up code</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/linux/hugetlb_cgroup.h#7fab358d</link>
        <description>include/linux/hugetlb*.h: clean up codeMacro HUGETLBFS_SB is clear enough, so one statement is clearer than 3lines statements.Remove redundant return statements for non-return functions, which cansave lines, at least.Signed-off-by: Chen Gang &lt;gang.chen.5i5j@gmail.com&gt;Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;

            List of files:
            /linux-6.15/include/linux/hugetlb_cgroup.h</description>
        <pubDate>Fri, 20 May 2016 23:57:59 +0000</pubDate>
        <dc:creator>Chen Gang &lt;gang.chen.5i5j@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>1d798ca3 - mm: make compound_head() robust</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/linux/hugetlb_cgroup.h#1d798ca3</link>
        <description>mm: make compound_head() robustHugh has pointed that compound_head() call can be unsafe in somecontext. There&apos;s one example:	CPU0					CPU1isolate_migratepages_block()  page_count()    compound_head()      !!PageTail() == true					put_page()					  tail-&gt;first_page = NULL      head = tail-&gt;first_page					alloc_pages(__GFP_COMP)					   prep_compound_page()					     tail-&gt;first_page = head					     __SetPageTail(p);      !!PageTail() == true    &lt;head == NULL dereferencing&gt;The race is pure theoretical. I don&apos;t it&apos;s possible to trigger it inpractice. But who knows.We can fix the race by changing how encode PageTail() and compound_head()within struct page to be able to update them in one shot.The patch introduces page-&gt;compound_head into third double word block infront of compound_dtor and compound_order. Bit 0 encodes PageTail() andthe rest bits are pointer to head page if bit zero is set.The patch moves page-&gt;pmd_huge_pte out of word, just in case if anarchitecture defines pgtable_t into something what can have the bit 0set.hugetlb_cgroup uses page-&gt;lru.next in the second tail page to storepointer struct hugetlb_cgroup. The patch switch it to use page-&gt;privatein the second tail page instead. The space is free since -&gt;first_page isremoved from the union.The patch also opens possibility to remove HUGETLB_CGROUP_MIN_ORDERlimitation, since there&apos;s now space in first tail page to store structhugetlb_cgroup pointer. But that&apos;s out of scope of the patch.That means page-&gt;compound_head shares storage space with: - page-&gt;lru.next; - page-&gt;next; - page-&gt;rcu_head.next;That&apos;s too long list to be absolutely sure, but looks like nobody usesbit 0 of the word.page-&gt;rcu_head.next guaranteed[1] to have bit 0 clean as long as we usecall_rcu(), call_rcu_bh(), call_rcu_sched(), or call_srcu(). But futurecall_rcu_lazy() is not allowed as it makes use of the bit and we canget false positive PageTail().[1] http://lkml.kernel.org/g/20150827163634.GD4029@linux.vnet.ibm.comSigned-off-by: Kirill A. Shutemov &lt;kirill.shutemov@linux.intel.com&gt;Acked-by: Michal Hocko &lt;mhocko@suse.com&gt;Reviewed-by: Andrea Arcangeli &lt;aarcange@redhat.com&gt;Cc: Hugh Dickins &lt;hughd@google.com&gt;Cc: David Rientjes &lt;rientjes@google.com&gt;Cc: Vlastimil Babka &lt;vbabka@suse.cz&gt;Acked-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;Cc: Aneesh Kumar K.V &lt;aneesh.kumar@linux.vnet.ibm.com&gt;Cc: Andi Kleen &lt;ak@linux.intel.com&gt;Cc: Christoph Lameter &lt;cl@linux.com&gt;Cc: Joonsoo Kim &lt;iamjoonsoo.kim@lge.com&gt;Cc: Sergey Senozhatsky &lt;sergey.senozhatsky@gmail.com&gt;Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;

            List of files:
            /linux-6.15/include/linux/hugetlb_cgroup.h</description>
        <pubDate>Sat, 07 Nov 2015 00:29:54 +0000</pubDate>
        <dc:creator>Kirill A. Shutemov &lt;kirill.shutemov@linux.intel.com&gt;</dc:creator>
    </item>
<item>
        <title>fc5ed1e9 - cgroup: replace cgroup_subsys-&gt;disabled tests with cgroup_subsys_enabled()</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/linux/hugetlb_cgroup.h#fc5ed1e9</link>
        <description>cgroup: replace cgroup_subsys-&gt;disabled tests with cgroup_subsys_enabled()Replace cgroup_subsys-&gt;disabled tests in controllers withcgroup_subsys_enabled().  cgroup_subsys_enabled() requires literalsubsys name as its parameter and thus can&apos;t be used for cgroup corewhich iterates through controllers.  For cgroup core, introduce anduse cgroup_ssid_enabled() which uses slower static_key_enabled() testand can be indexed by subsys ID.This leaves cgroup_subsys-&gt;disabled unused.  Removed.Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;Acked-by: Zefan Li &lt;lizefan@huawei.com&gt;Cc: Johannes Weiner &lt;hannes@cmpxchg.org&gt;Cc: Michal Hocko &lt;mhocko@kernel.org&gt;

            List of files:
            /linux-6.15/include/linux/hugetlb_cgroup.h</description>
        <pubDate>Fri, 18 Sep 2015 15:56:28 +0000</pubDate>
        <dc:creator>Tejun Heo &lt;tj@kernel.org&gt;</dc:creator>
    </item>
</channel>
</rss>
