linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Jerome Glisse <jglisse@redhat.com>
To: Dan Williams <dan.j.williams@intel.com>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Linux MM <linux-mm@kvack.org>, John Hubbard <jhubbard@nvidia.com>,
	David Nellans <dnellans@nvidia.com>,
	Balbir Singh <bsingharora@gmail.com>,
	Ross Zwisler <ross.zwisler@linux.intel.com>
Subject: Re: [PATCH 1/5] mm/persistent-memory: match IORES_DESC name and enum memory_type one
Date: Wed, 5 Jul 2017 10:25:17 -0400	[thread overview]
Message-ID: <20170705142516.GA3305@redhat.com> (raw)
In-Reply-To: <CAPcyv4gXso2W0gxaeTsc7g9nTQnkO3WFNZfsdS95NvfYJupnxg@mail.gmail.com>

On Mon, Jul 03, 2017 at 04:49:18PM -0700, Dan Williams wrote:
> On Mon, Jul 3, 2017 at 2:14 PM, Jerome Glisse <jglisse@redhat.com> wrote:
> > Use consistent name between IORES_DESC and enum memory_type, rename
> > MEMORY_DEVICE_PUBLIC to MEMORY_DEVICE_PERSISTENT. This is to free up
> > the public name for CDM (cache coherent device memory) for which the
> > term public is a better match.
> >
> > Signed-off-by: Jerome Glisse <jglisse@redhat.com>
> > Cc: Dan Williams <dan.j.williams@intel.com>
> > Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
> > ---
> >  include/linux/memremap.h | 4 ++--
> >  kernel/memremap.c        | 2 +-
> >  2 files changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/include/linux/memremap.h b/include/linux/memremap.h
> > index 57546a07a558..2299cc2d387d 100644
> > --- a/include/linux/memremap.h
> > +++ b/include/linux/memremap.h
> > @@ -41,7 +41,7 @@ static inline struct vmem_altmap *to_vmem_altmap(unsigned long memmap_start)
> >   * Specialize ZONE_DEVICE memory into multiple types each having differents
> >   * usage.
> >   *
> > - * MEMORY_DEVICE_PUBLIC:
> > + * MEMORY_DEVICE_PERSISTENT:
> >   * Persistent device memory (pmem): struct page might be allocated in different
> >   * memory and architecture might want to perform special actions. It is similar
> >   * to regular memory, in that the CPU can access it transparently. However,
> > @@ -59,7 +59,7 @@ static inline struct vmem_altmap *to_vmem_altmap(unsigned long memmap_start)
> >   * include/linux/hmm.h and Documentation/vm/hmm.txt.
> >   */
> >  enum memory_type {
> > -       MEMORY_DEVICE_PUBLIC = 0,
> > +       MEMORY_DEVICE_PERSISTENT = 0,
> >         MEMORY_DEVICE_PRIVATE,
> >  };
> >
> > diff --git a/kernel/memremap.c b/kernel/memremap.c
> > index b9baa6c07918..e82456c39a6a 100644
> > --- a/kernel/memremap.c
> > +++ b/kernel/memremap.c
> > @@ -350,7 +350,7 @@ void *devm_memremap_pages(struct device *dev, struct resource *res,
> >         }
> >         pgmap->ref = ref;
> >         pgmap->res = &page_map->res;
> > -       pgmap->type = MEMORY_DEVICE_PUBLIC;
> > +       pgmap->type = MEMORY_DEVICE_PERSISTENT;
> >         pgmap->page_fault = NULL;
> >         pgmap->page_free = NULL;
> >         pgmap->data = NULL;
> 
> I think we need a different name. There's nothing "persistent" about
> the devm_memremap_pages() path. Why can't they share name, is the only
> difference coherence? I'm thinking something like:
> 
> MEMORY_DEVICE_PRIVATE
> MEMORY_DEVICE_COHERENT /* persistent memory and coherent devices */
> MEMORY_DEVICE_IO /* "public", but not coherent */

No that would not work. Device public (in the context of this patchset)
is like device private ie device public page can be anywhere inside a
process address space either as anonymous memory page or as file back
page of regular filesystem (ie vma->ops is not pointing to anything
specific to the device memory).

As such device public is different from how persistent memory is use
and those the cache coherency being the same between the two kind of
memory is not a discerning factor. So i need to distinguish between
persistent memory and device public memory.

I believe keeping enum memory_type close to IORES_DESC naming is the
cleanest way to do that but i am open to other name suggestion.

Cheers,
Jerome

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2017-07-05 14:25 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-03 21:14 [PATCH 0/5] Cache coherent device memory (CDM) with HMM v3 Jérôme Glisse
2017-07-03 21:14 ` [PATCH 1/5] mm/persistent-memory: match IORES_DESC name and enum memory_type one Jérôme Glisse
2017-07-03 23:49   ` Dan Williams
2017-07-05 14:25     ` Jerome Glisse [this message]
2017-07-05 16:15       ` Dan Williams
2017-07-05 18:49         ` Jerome Glisse
2017-07-11  3:48           ` Balbir Singh
2017-07-11  7:31           ` Dan Williams
2017-07-11 15:05             ` Jerome Glisse
2017-07-11 16:49               ` Dan Williams
2017-07-03 21:14 ` [PATCH 2/5] mm/device-public-memory: device memory cache coherent with CPU v2 Jérôme Glisse
2017-07-11  4:12   ` Balbir Singh
2017-07-11 14:57     ` Jerome Glisse
2017-07-12  5:50       ` Balbir Singh
2017-07-03 21:14 ` [PATCH 3/5] mm/hmm: add new helper to hotplug CDM memory region Jérôme Glisse
2017-07-03 21:14 ` [PATCH 4/5] mm/memcontrol: allow to uncharge page without using page->lru field Jérôme Glisse
2017-07-04 12:51   ` Michal Hocko
2017-07-05  3:18     ` Balbir Singh
2017-07-05  6:38       ` Michal Hocko
2017-07-05 10:22         ` Balbir Singh
2017-07-05 14:35     ` Jerome Glisse
2017-07-10  8:28       ` Michal Hocko
2017-07-10 15:32         ` Jerome Glisse
2017-07-10 16:04           ` Michal Hocko
2017-07-10 16:25             ` Jerome Glisse
2017-07-10 16:36               ` Michal Hocko
2017-07-10 16:54                 ` Jerome Glisse
2017-07-10 17:48                   ` Michal Hocko
2017-07-10 18:10                     ` Jerome Glisse
2017-07-03 21:14 ` [PATCH 5/5] mm/memcontrol: support MEMORY_DEVICE_PRIVATE and MEMORY_DEVICE_PUBLIC Jérôme Glisse

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=20170705142516.GA3305@redhat.com \
    --to=jglisse@redhat.com \
    --cc=bsingharora@gmail.com \
    --cc=dan.j.williams@intel.com \
    --cc=dnellans@nvidia.com \
    --cc=jhubbard@nvidia.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=ross.zwisler@linux.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).