From: Christoph Hellwig <hch@lst.de>
To: Dan Williams <dan.j.williams@intel.com>
Cc: linux-kernel@vger.kernel.org, boaz@plexistor.com,
riel@redhat.com, linux-nvdimm@lists.01.org,
Dave Hansen <dave.hansen@linux.intel.com>,
david@fromorbit.com, mingo@kernel.org, linux-mm@kvack.org,
Ingo Molnar <mingo@redhat.com>,
mgorman@suse.de, "H. Peter Anvin" <hpa@zytor.com>,
ross.zwisler@linux.intel.com, torvalds@linux-foundation.org,
hch@lst.de
Subject: Re: [RFC PATCH 4/7] mm: register_dev_memmap()
Date: Sat, 15 Aug 2015 11:04:26 +0200 [thread overview]
Message-ID: <20150815090426.GE21033@lst.de> (raw)
In-Reply-To: <20150813035023.36913.56455.stgit@otcpl-skl-sds-2.jf.intel.com>
> #endif /* _LINUX_KMAP_PFN_H */
> diff --git a/include/linux/mm.h b/include/linux/mm.h
> index 8a4f24d7fdb0..07152a54b841 100644
> --- a/include/linux/mm.h
> +++ b/include/linux/mm.h
> @@ -939,6 +939,7 @@ typedef struct {
> * PFN_SG_CHAIN - pfn is a pointer to the next scatterlist entry
> * PFN_SG_LAST - pfn references a page and is the last scatterlist entry
> * PFN_DEV - pfn is not covered by system memmap
> + * PFN_MAP - pfn is covered by a device specific memmap
> */
> enum {
> PFN_MASK = (1UL << PAGE_SHIFT) - 1,
> @@ -949,6 +950,7 @@ enum {
> #else
> PFN_DEV = 0,
> #endif
> + PFN_MAP = (1UL << 3),
> };
>
> static inline __pfn_t pfn_to_pfn_t(unsigned long pfn, unsigned long flags)
> @@ -965,7 +967,7 @@ static inline __pfn_t phys_to_pfn_t(dma_addr_t addr, unsigned long flags)
>
> static inline bool __pfn_t_has_page(__pfn_t pfn)
> {
> - return (pfn.val & PFN_DEV) == 0;
> + return (pfn.val & PFN_DEV) == 0 || (pfn.val & PFN_MAP) == PFN_MAP;
Shouldn't we simply not set the PFN_DEV flag instead of needing another
one to cancel it out?
I also wonder if it might be better to not require the __pfn_t and
SG rework patches before this series.
--
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>
WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch@lst.de>
To: Dan Williams <dan.j.williams@intel.com>
Cc: linux-kernel@vger.kernel.org, boaz@plexistor.com,
riel@redhat.com, linux-nvdimm@ml01.01.org,
Dave Hansen <dave.hansen@linux.intel.com>,
david@fromorbit.com, mingo@kernel.org, linux-mm@kvack.org,
Ingo Molnar <mingo@redhat.com>,
mgorman@suse.de, "H. Peter Anvin" <hpa@zytor.com>,
ross.zwisler@linux.intel.com, torvalds@linux-foundation.org,
hch@lst.de
Subject: Re: [RFC PATCH 4/7] mm: register_dev_memmap()
Date: Sat, 15 Aug 2015 11:04:26 +0200 [thread overview]
Message-ID: <20150815090426.GE21033@lst.de> (raw)
In-Reply-To: <20150813035023.36913.56455.stgit@otcpl-skl-sds-2.jf.intel.com>
> #endif /* _LINUX_KMAP_PFN_H */
> diff --git a/include/linux/mm.h b/include/linux/mm.h
> index 8a4f24d7fdb0..07152a54b841 100644
> --- a/include/linux/mm.h
> +++ b/include/linux/mm.h
> @@ -939,6 +939,7 @@ typedef struct {
> * PFN_SG_CHAIN - pfn is a pointer to the next scatterlist entry
> * PFN_SG_LAST - pfn references a page and is the last scatterlist entry
> * PFN_DEV - pfn is not covered by system memmap
> + * PFN_MAP - pfn is covered by a device specific memmap
> */
> enum {
> PFN_MASK = (1UL << PAGE_SHIFT) - 1,
> @@ -949,6 +950,7 @@ enum {
> #else
> PFN_DEV = 0,
> #endif
> + PFN_MAP = (1UL << 3),
> };
>
> static inline __pfn_t pfn_to_pfn_t(unsigned long pfn, unsigned long flags)
> @@ -965,7 +967,7 @@ static inline __pfn_t phys_to_pfn_t(dma_addr_t addr, unsigned long flags)
>
> static inline bool __pfn_t_has_page(__pfn_t pfn)
> {
> - return (pfn.val & PFN_DEV) == 0;
> + return (pfn.val & PFN_DEV) == 0 || (pfn.val & PFN_MAP) == PFN_MAP;
Shouldn't we simply not set the PFN_DEV flag instead of needing another
one to cancel it out?
I also wonder if it might be better to not require the __pfn_t and
SG rework patches before this series.
next prev parent reply other threads:[~2015-08-15 9:04 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-13 3:50 [RFC PATCH 0/7] 'struct page' driver for persistent memory Dan Williams
2015-08-13 3:50 ` Dan Williams
2015-08-13 3:50 ` [RFC PATCH 1/7] x86, mm: ZONE_DEVICE for "device memory" Dan Williams
2015-08-13 3:50 ` Dan Williams
2015-08-14 21:37 ` Jerome Glisse
2015-08-14 21:37 ` Jerome Glisse
2015-08-14 21:37 ` Jerome Glisse
2015-08-14 21:52 ` Dan Williams
2015-08-14 21:52 ` Dan Williams
2015-08-14 22:06 ` Jerome Glisse
2015-08-14 22:06 ` Jerome Glisse
2015-08-14 22:06 ` Jerome Glisse
2015-08-14 22:33 ` Dan Williams
2015-08-14 22:33 ` Dan Williams
2015-08-15 2:11 ` Dan Williams
2015-08-15 2:11 ` Dan Williams
2015-08-17 21:45 ` Jerome Glisse
2015-08-17 21:45 ` Jerome Glisse
2015-08-17 21:45 ` Jerome Glisse
2015-08-18 0:46 ` Dan Williams
2015-08-18 0:46 ` Dan Williams
2015-08-18 16:55 ` Jerome Glisse
2015-08-18 16:55 ` Jerome Glisse
2015-08-18 16:55 ` Jerome Glisse
2015-08-18 17:23 ` Dan Williams
2015-08-18 17:23 ` Dan Williams
2015-08-18 19:06 ` Jerome Glisse
2015-08-18 19:06 ` Jerome Glisse
2015-08-18 19:06 ` Jerome Glisse
2015-08-20 0:49 ` Dan Williams
2015-08-20 0:49 ` Dan Williams
2015-08-15 8:59 ` Christoph Hellwig
2015-08-15 8:59 ` Christoph Hellwig
2015-08-21 15:02 ` Dan Williams
2015-08-21 15:02 ` Dan Williams
2015-08-21 15:15 ` Jerome Glisse
2015-08-21 15:15 ` Jerome Glisse
2015-08-21 15:15 ` Jerome Glisse
2015-08-15 13:33 ` Christoph Hellwig
2015-08-15 13:33 ` Christoph Hellwig
2015-08-13 3:50 ` [RFC PATCH 2/7] x86, mm: introduce struct vmem_altmap Dan Williams
2015-08-13 3:50 ` Dan Williams
2015-08-13 3:50 ` [RFC PATCH 3/7] x86, mm: arch_add_dev_memory() Dan Williams
2015-08-13 3:50 ` Dan Williams
2015-08-13 3:50 ` [RFC PATCH 4/7] mm: register_dev_memmap() Dan Williams
2015-08-13 3:50 ` Dan Williams
2015-08-15 9:04 ` Christoph Hellwig [this message]
2015-08-15 9:04 ` Christoph Hellwig
2015-08-13 3:50 ` [RFC PATCH 5/7] libnvdimm, e820: make CONFIG_X86_PMEM_LEGACY a tristate option Dan Williams
2015-08-13 3:50 ` Dan Williams
2015-08-15 9:06 ` Christoph Hellwig
2015-08-15 9:06 ` Christoph Hellwig
2015-08-15 15:28 ` Dan Williams
2015-08-15 15:28 ` Dan Williams
2015-08-15 15:58 ` Christoph Hellwig
2015-08-15 15:58 ` Christoph Hellwig
2015-08-15 16:04 ` Dan Williams
2015-08-15 16:04 ` Dan Williams
2015-08-17 15:01 ` Christoph Hellwig
2015-08-17 15:01 ` Christoph Hellwig
2015-08-17 15:32 ` Dan Williams
2015-08-17 15:32 ` Dan Williams
2015-08-13 3:50 ` [RFC PATCH 6/7] libnvdimm, pfn: 'struct page' provider infrastructure Dan Williams
2015-08-13 3:50 ` Dan Williams
2015-08-13 3:50 ` [RFC PATCH 7/7] libnvdimm, pmem: 'struct page' for pmem Dan Williams
2015-08-13 3:50 ` Dan Williams
2015-08-15 9:01 ` [RFC PATCH 0/7] 'struct page' driver for persistent memory Christoph Hellwig
2015-08-15 9:01 ` Christoph Hellwig
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=20150815090426.GE21033@lst.de \
--to=hch@lst.de \
--cc=boaz@plexistor.com \
--cc=dan.j.williams@intel.com \
--cc=dave.hansen@linux.intel.com \
--cc=david@fromorbit.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-nvdimm@lists.01.org \
--cc=mgorman@suse.de \
--cc=mingo@kernel.org \
--cc=mingo@redhat.com \
--cc=riel@redhat.com \
--cc=ross.zwisler@linux.intel.com \
--cc=torvalds@linux-foundation.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.