linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Michal Hocko <mhocko@suse.com>
To: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>
Cc: Andi Kleen <ak@linux.intel.com>,
	linux-mm@kvack.org, akpm@linux-foundation.org,
	Ben Widawsky <ben.widawsky@intel.com>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	Feng Tang <feng.tang@intel.com>,
	Andrea Arcangeli <aarcange@redhat.com>,
	Mel Gorman <mgorman@techsingularity.net>,
	Mike Kravetz <mike.kravetz@oracle.com>,
	Randy Dunlap <rdunlap@infradead.org>,
	Vlastimil Babka <vbabka@suse.cz>,
	Dan Williams <dan.j.williams@intel.com>,
	Huang Ying <ying.huang@intel.com>
Subject: Re: [RFC PATCH] mm/mempolicy: add MPOL_PREFERRED_STRICT memory policy
Date: Thu, 14 Oct 2021 16:56:20 +0200	[thread overview]
Message-ID: <YWhFFOtyVQ8Mespc@dhcp22.suse.cz> (raw)
In-Reply-To: <ec18483a-acae-8f7d-96c9-df493cc339fb@linux.ibm.com>

On Thu 14-10-21 18:59:14, Aneesh Kumar K.V wrote:
> On 10/14/21 17:11, Michal Hocko wrote:
> > On Thu 14-10-21 15:58:29, Aneesh Kumar K.V wrote:
> > > On 10/14/21 15:08, Michal Hocko wrote:
> > [...]
> > > > Besides that it would be really great to finish the discussion about the
> > > > usecase before suggesting a new userspace API.
> > > > 
> > > 
> > > Application would like to hint a preferred node for allocating memory
> > > backing a va range and at the same time wants to avoid fallback to some set
> > > of nodes (in the use case I am interested don't fall back to slow memory
> > > nodes).
> > 
> > We do have means for that, right? You can set your memory policy and
> > then set the cpu afffinity to the node you want to allocate from
> > initially. You can migrate to a different cpu/node if this is not the
> > preferred affinity. Why is that not usable?
> 
> For the same reason you mentioned earlier, these nodes can be cpu less
> nodes.

It would have been easier if you were explicit about the usecase rather
than let other guess.

> > Also think about extensibility. Say I want to allocate from a set of
> > nodes first before falling back to the rest of the nodemask? If you want
> > to add a new API then think of other potential usecases.
> > 
> 
> Describing the specific allocation details become hard with preferred node
> being a nodemask. With the below interface
> 
> SYSCALL_DEFINE5(preferred_mbind, unsigned long, start, unsigned long, len,
> 		const unsigned long __user *, preferred_nmask, const unsigned long __user
> *, fallback_nmask,
> 		unsigned long, maxnode)
> {
> 
> 
> 1. The preferred node is the first node in the preferred node mask
> 2. Then we try to allocate from nodes present in the preferred node mask
> which is closer to the first node in the preferred node mask
> 3. If the above fails, we try to allocate from nodes in the fallback node
> mask which is closer to the first node in the preferred nodemask.
> 
> Isn't that too complicated? Do we have a real usecase for that?

No, I think this is a suboptimal interface. AFAIU you really want to
define a "home" node(s) rather than any policy. Home node would
effectively override the default local node whatever policy you have as
it makes sense whether you have MPOL_PREFERRED_MANY or MPOL_BIND.

Another potential interface would be set_nodeorder which would
explicitly set the allocation fallback ordering. Again agnostic of the
underlying memory policy. This would be more generic but the question is
whether this is not too generic and whether there are usecases for that.

Makes sense?
-- 
Michal Hocko
SUSE Labs


  reply	other threads:[~2021-10-14 14:56 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-13  9:45 [RFC PATCH] mm/mempolicy: add MPOL_PREFERRED_STRICT memory policy Aneesh Kumar K.V
2021-10-13 10:42 ` Michal Hocko
2021-10-13 10:48   ` Michal Hocko
2021-10-13 12:35     ` Aneesh Kumar K.V
2021-10-13 12:50       ` Michal Hocko
2021-10-13 12:58         ` Aneesh Kumar K.V
2021-10-13 13:07           ` Michal Hocko
2021-10-13 13:10             ` Aneesh Kumar K.V
2021-10-13 14:22               ` Michal Hocko
2021-10-13 13:57           ` Aneesh Kumar K.V
2021-10-13 14:26             ` Michal Hocko
2021-10-13 13:16 ` Andi Kleen
2021-10-13 13:23   ` Aneesh Kumar K.V
2021-10-13 14:21     ` Michal Hocko
2021-10-14  9:30       ` Aneesh Kumar K.V
2021-10-14  9:38         ` Michal Hocko
2021-10-14 10:28           ` Aneesh Kumar K.V
2021-10-14 11:41             ` Michal Hocko
2021-10-14 13:29               ` Aneesh Kumar K.V
2021-10-14 14:56                 ` Michal Hocko [this message]
2021-10-14 15:50                   ` Aneesh Kumar K.V
2021-10-19  9:38                     ` Michal Hocko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YWhFFOtyVQ8Mespc@dhcp22.suse.cz \
    --to=mhocko@suse.com \
    --cc=aarcange@redhat.com \
    --cc=ak@linux.intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=aneesh.kumar@linux.ibm.com \
    --cc=ben.widawsky@intel.com \
    --cc=dan.j.williams@intel.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=feng.tang@intel.com \
    --cc=linux-mm@kvack.org \
    --cc=mgorman@techsingularity.net \
    --cc=mike.kravetz@oracle.com \
    --cc=rdunlap@infradead.org \
    --cc=vbabka@suse.cz \
    --cc=ying.huang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).