Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp3231482imu; Sat, 24 Nov 2018 00:39:36 -0800 (PST) X-Google-Smtp-Source: AJdET5dtzJ507Bo4dqlcVMPtGqgkoloIdXtBsi27FwSDkz8v8ZoC2htyyfpLcotWu6VkeRY8y4Ve X-Received: by 2002:a62:9657:: with SMTP id c84mr19903350pfe.77.1543048776149; Sat, 24 Nov 2018 00:39:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543048776; cv=none; d=google.com; s=arc-20160816; b=s2Xq/C6Bar98d33yrZMoM9eEJ5idLr+8v9uY6q7hwluMZTKHYgVb6M7DhBILcj2QG3 AoVJ2Mg9ZHMHxN6jsQBRNDyqmS9k5Q4sw9Se9YAEOb3Nh9Q8AfwmWUifIMDruzC4tXzu UtAbQn8kOQagtKYRKbybq9rsFS0YtjyLPG+ZkYgBr11q8b0f4b5Nlyj6/Ffvcq/SGpdA hf6CPT9nn33X49hQ7kbjYMY0Mjkpar4ei9l+jtQ39WJ+sOWvdreY6DQYOhE6kTyYoWgx CUIIpOkXtXkzGkG+jNpFi4Tw6wk3PSEQaHRovXGoFhAzETYdw/VeEuSja9pPgQrQyoSP 0slA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:autocrypt:openpgp:from:references:cc:to:subject; bh=PKpr66zMVggsiNa+yzwf72XbkJ2lkih80RkGwCiX5u4=; b=BqrO4zcuE5kBaKka1iwJuM6yp9cntlN+2OqlVc0tzGsu7VC6jIZl+XFP/5Srs7Iw/K NZqmekW3dbMjB43tNHm6ASD+L8Fsg6+9wrTLAMBEReBkpXzE0qgsSPZZt1lGU/cmUKFf fc6Rq0znmj2OrF2CXQwUeYXXHZvHG2Vnbi39QXuvk3e0LyyhxfI2XkPUP6KiYcHRXVLg paojnaOSVGCSpJxb6fkjLGADxYnt2tHxXcPN3PcARW0YDeOBlE0nG2tFsCpzTfONfu1I slknp0xhCBoDRoCSFOpF6rVuXJe8lpu9S2i6Zxu5PO6gRZrIfRd0qTLrS2lAnv3lauDd zOnA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x5-v6si3217088pfx.74.2018.11.24.00.39.21; Sat, 24 Nov 2018 00:39:36 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2504772AbeKXBvq (ORCPT + 99 others); Fri, 23 Nov 2018 20:51:46 -0500 Received: from mx2.suse.de ([195.135.220.15]:55828 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1732166AbeKXBvp (ORCPT ); Fri, 23 Nov 2018 20:51:45 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id DA07DAE55; Fri, 23 Nov 2018 15:07:11 +0000 (UTC) Subject: Re: [RFC PATCH 2/3] mm, thp, proc: report THP eligibility for each vma To: Michal Hocko , linux-api@vger.kernel.org Cc: Andrew Morton , Alexey Dobriyan , linux-mm@kvack.org, LKML , Michal Hocko References: <20181120103515.25280-1-mhocko@kernel.org> <20181120103515.25280-3-mhocko@kernel.org> From: Vlastimil Babka Openpgp: preference=signencrypt Autocrypt: addr=vbabka@suse.cz; prefer-encrypt=mutual; keydata= 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 cqmP8roqufIAj+Ohhzs= Message-ID: <73b55240-d36c-cf97-d7fd-85e2ae1e9309@suse.cz> Date: Fri, 23 Nov 2018 16:07:06 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.3.0 MIME-Version: 1.0 In-Reply-To: <20181120103515.25280-3-mhocko@kernel.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 11/20/18 11:35 AM, Michal Hocko wrote: > From: Michal Hocko > > Userspace falls short when trying to find out whether a specific memory > range is eligible for THP. There are usecases that would like to know > that > http://lkml.kernel.org/r/alpine.DEB.2.21.1809251248450.50347@chino.kir.corp.google.com > : This is used to identify heap mappings that should be able to fault thp > : but do not, and they normally point to a low-on-memory or fragmentation > : issue. > > The only way to deduce this now is to query for hg resp. nh flags and > confronting the state with the global setting. Except that there is > also PR_SET_THP_DISABLE that might change the picture. So the final > logic is not trivial. Moreover the eligibility of the vma depends on > the type of VMA as well. In the past we have supported only anononymous > memory VMAs but things have changed and shmem based vmas are supported > as well these days and the query logic gets even more complicated > because the eligibility depends on the mount option and another global > configuration knob. > > Simplify the current state and report the THP eligibility in > /proc//smaps for each existing vma. Reuse transparent_hugepage_enabled > for this purpose. The original implementation of this function assumes > that the caller knows that the vma itself is supported for THP so make > the core checks into __transparent_hugepage_enabled and use it for > existing callers. __show_smap just use the new transparent_hugepage_enabled > which also checks the vma support status (please note that this one has > to be out of line due to include dependency issues). > > Signed-off-by: Michal Hocko Not thrilled by this, but kernel is always better suited to report this, than userspace piecing it together from multiple sources, relying on possibly outdated knowledge of kernel implementation details... Acked-by: Vlastimil Babka A nitpick: > --- > Documentation/filesystems/proc.txt | 3 +++ > fs/proc/task_mmu.c | 2 ++ > include/linux/huge_mm.h | 13 ++++++++++++- > mm/huge_memory.c | 12 +++++++++++- > mm/memory.c | 4 ++-- > 5 files changed, 30 insertions(+), 4 deletions(-) > > diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt > index b1fda309f067..06562bab509a 100644 > --- a/Documentation/filesystems/proc.txt > +++ b/Documentation/filesystems/proc.txt > @@ -425,6 +425,7 @@ SwapPss: 0 kB > KernelPageSize: 4 kB > MMUPageSize: 4 kB > Locked: 0 kB > +THPeligible: 0 I would use THP_Eligible. There are already fields with underscore in smaps.