On Thu, Sep 30, 2021 at 9:19 PM David Hildenbrand <david@xxxxxxxxxx> wrote: > > On 30.09.21 04:14, Hao Peng wrote: > > From: Peng Hao <flyingpeng@xxxxxxxxxxx> > > "disable thp if thp page size is too large" you disable thp if there is > not sufficient memory installed in the system (and for that, you use THP > size), something doesn't add up here. > In addition, if THP is enabled, min_free_kbytes will be recalculated. At this time, min_free_kbytes is calculated based on the size of THP. If the size of THP is too l arge, OOM will easily be triggered. > > > > After seting the page size to 64k on ARM64, the supported huge page > > s/seting/setting/ > > Fortunately, most distributions already switched to 4k, because 512MB > THP is pretty much useless, especially on any system that doesn't have > memory in the range of hundreds of megabytes or terrabytes. But the ARM64 Server distribution version I use, such as CentOS for ARM64, has a page size of 16KB or 64KB. Thanks. > > > size is 512M and 1TB. Therefore, if the thp is enabled, the size > > of the thp is 512M. In this case, min_free_kbytes will be too large. > > > > On an arm64 server with 64G memory, the page size is 64k, with thp > > enabled. > > cat /proc/sys/vm/min_free_kbytes > > 3335104 > > > > Therefore, when judging whether to enable thp by default, consider > > the size of thp. > > > > Signed-off-by: Peng Hao <flyingpeng@xxxxxxxxxxx> > > --- > > mm/huge_memory.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/mm/huge_memory.c b/mm/huge_memory.c > > index 5e9ef0fc261e..03c7f571b3ae 100644 > > --- a/mm/huge_memory.c > > +++ b/mm/huge_memory.c > > @@ -437,7 +437,7 @@ static int __init hugepage_init(void) > > * where the extra memory used could hurt more than TLB overhead > > * is likely to save. The admin can still enable it through /sys. > > */ > > - if (totalram_pages() < (512 << (20 - PAGE_SHIFT))) { > > + if (totalram_pages() < (512 << (HPAGE_PMD_SHIFT - PAGE_SHIFT))) { > > transparent_hugepage_flags = 0; > > return 0; > > } > > -- > > 2.27.0 > > > > > -- > Thanks, > > David / dhildenb >