From: Tycho Andersen <tycho@docker.com>
To: Mark Rutland <mark.rutland@arm.com>
Cc: linux-kernel@vger.kernel.org,
Marco Benatto <marco.antonio.780@gmail.com>,
kernel-hardening@lists.openwall.com, linux-mm@kvack.org,
Juerg Haefliger <juerg.haefliger@canonical.com>,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v6 07/11] arm64/mm, xpfo: temporarily map dcache regions
Date: Mon, 18 Sep 2017 15:29:09 -0600 [thread overview]
Message-ID: <20170918212909.3x7i7pmh76a4l24s@docker> (raw)
In-Reply-To: <20170914182555.GB1711@remoulade>
On Thu, Sep 14, 2017 at 07:25:56PM +0100, Mark Rutland wrote:
> On Thu, Sep 07, 2017 at 11:36:05AM -0600, Tycho Andersen wrote:
> > From: Juerg Haefliger <juerg.haefliger@canonical.com>
> >
> > If the page is unmapped by XPFO, a data cache flush results in a fatal
> > page fault, so let's temporarily map the region, flush the cache, and then
> > unmap it.
> >
> > v6: actually flush in the face of xpfo, and temporarily map the underlying
> > memory so it can be flushed correctly
> >
> > CC: linux-arm-kernel@lists.infradead.org
> > Signed-off-by: Juerg Haefliger <juerg.haefliger@canonical.com>
> > Signed-off-by: Tycho Andersen <tycho@docker.com>
> > ---
> > arch/arm64/mm/flush.c | 7 +++++++
> > 1 file changed, 7 insertions(+)
> >
> > diff --git a/arch/arm64/mm/flush.c b/arch/arm64/mm/flush.c
> > index 21a8d828cbf4..e335e3fd4fca 100644
> > --- a/arch/arm64/mm/flush.c
> > +++ b/arch/arm64/mm/flush.c
> > @@ -20,6 +20,7 @@
> > #include <linux/export.h>
> > #include <linux/mm.h>
> > #include <linux/pagemap.h>
> > +#include <linux/xpfo.h>
> >
> > #include <asm/cacheflush.h>
> > #include <asm/cache.h>
> > @@ -28,9 +29,15 @@
> > void sync_icache_aliases(void *kaddr, unsigned long len)
> > {
> > unsigned long addr = (unsigned long)kaddr;
> > + unsigned long num_pages = XPFO_NUM_PAGES(addr, len);
> > + void *mapping[num_pages];
> >
> > if (icache_is_aliasing()) {
> > + xpfo_temp_map(kaddr, len, mapping,
> > + sizeof(mapping[0]) * num_pages);
> > __clean_dcache_area_pou(kaddr, len);
> > + xpfo_temp_unmap(kaddr, len, mapping,
> > + sizeof(mapping[0]) * num_pages);
>
> Does this create the mapping in-place?
>
> Can we not just kmap_atomic() an alias? Or is there a problem with that?
I think what we really want is something like vmap(), looking at
xpfo_temp_map() it seems like the implementation is completely wrong.
I wonder if what you mentioned at LSS is possible though: doing cache
management with userspace primitives instead of mapping the region
just to flush it.
Cheers,
Tycho
next prev parent reply other threads:[~2017-09-18 21:29 UTC|newest]
Thread overview: 76+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-07 17:35 [PATCH v6 00/11] Add support for eXclusive Page Frame Ownership Tycho Andersen
2017-09-07 17:35 ` [PATCH v6 01/11] mm: add MAP_HUGETLB support to vm_mmap Tycho Andersen
2017-09-08 7:42 ` Christoph Hellwig
2017-09-07 17:36 ` [PATCH v6 02/11] x86: always set IF before oopsing from page fault Tycho Andersen
2017-09-07 17:36 ` [PATCH v6 03/11] mm, x86: Add support for eXclusive Page Frame Ownership (XPFO) Tycho Andersen
2017-09-07 18:33 ` Ralph Campbell
2017-09-07 18:50 ` Tycho Andersen
2017-09-08 7:51 ` Christoph Hellwig
2017-09-08 14:58 ` Tycho Andersen
2017-09-09 15:35 ` Laura Abbott
2017-09-11 15:03 ` Tycho Andersen
2017-09-11 7:24 ` Yisheng Xie
2017-09-11 14:50 ` Tycho Andersen
2017-09-11 16:03 ` Juerg Haefliger
2017-09-11 16:59 ` Tycho Andersen
2017-09-12 8:05 ` Yisheng Xie
2017-09-12 14:36 ` Tycho Andersen
2017-09-12 18:13 ` Tycho Andersen
2017-09-14 6:15 ` Yisheng Xie
2017-09-20 23:46 ` Dave Hansen
2017-09-21 0:02 ` Tycho Andersen
2017-09-21 0:04 ` Dave Hansen
2017-09-11 18:32 ` Tycho Andersen
2017-09-11 21:54 ` Marco Benatto
2017-09-20 15:48 ` Dave Hansen
2017-09-20 22:34 ` Tycho Andersen
2017-09-20 23:21 ` Dave Hansen
2017-09-21 0:09 ` Tycho Andersen
2017-09-21 0:27 ` Dave Hansen
2017-09-21 1:37 ` Tycho Andersen
2017-11-10 1:09 ` Tycho Andersen
2017-11-13 22:20 ` Dave Hansen
2017-11-13 22:46 ` Dave Hansen
2017-11-15 0:33 ` [kernel-hardening] " Tycho Andersen
2017-11-15 0:37 ` Dave Hansen
2017-11-15 0:42 ` Tycho Andersen
2017-11-15 3:44 ` Matthew Wilcox
2017-11-15 7:00 ` Dave Hansen
2017-11-15 14:58 ` Matthew Wilcox
2017-11-15 16:20 ` [kernel-hardening] " Tycho Andersen
2017-11-15 21:34 ` Matthew Wilcox
2017-09-21 0:03 ` Dave Hansen
2017-09-21 0:28 ` Dave Hansen
2017-09-21 1:04 ` Tycho Andersen
2017-09-07 17:36 ` [PATCH v6 04/11] swiotlb: Map the buffer if it was unmapped by XPFO Tycho Andersen
2017-09-07 18:10 ` Christoph Hellwig
2017-09-07 18:44 ` Tycho Andersen
2017-09-08 7:13 ` Christoph Hellwig
2017-09-07 17:36 ` [PATCH v6 05/11] arm64/mm: Add support for XPFO Tycho Andersen
2017-09-08 7:53 ` Christoph Hellwig
2017-09-08 17:24 ` Tycho Andersen
2017-09-14 10:41 ` Julien Grall
2017-09-14 11:29 ` Juergen Gross
2017-09-14 18:22 ` [kernel-hardening] " Mark Rutland
2017-09-18 21:27 ` Tycho Andersen
2017-09-07 17:36 ` [PATCH v6 06/11] xpfo: add primitives for mapping underlying memory Tycho Andersen
2017-09-07 17:36 ` [PATCH v6 07/11] arm64/mm, xpfo: temporarily map dcache regions Tycho Andersen
2017-09-14 18:25 ` Mark Rutland
2017-09-18 21:29 ` Tycho Andersen [this message]
2017-09-07 17:36 ` [PATCH v6 08/11] arm64/mm: Add support for XPFO to swiotlb Tycho Andersen
2017-09-07 17:36 ` [PATCH v6 09/11] arm64/mm: disable section/contiguous mappings if XPFO is enabled Tycho Andersen
2017-09-09 15:38 ` Laura Abbott
2017-09-07 17:36 ` [PATCH v6 10/11] mm: add a user_virt_to_phys symbol Tycho Andersen
2017-09-08 7:55 ` Christoph Hellwig
2017-09-08 15:44 ` Kees Cook
2017-09-11 7:36 ` Christoph Hellwig
2017-09-14 18:34 ` [kernel-hardening] " Mark Rutland
2017-09-18 20:56 ` Tycho Andersen
2017-09-07 17:36 ` [PATCH v6 11/11] lkdtm: Add test for XPFO Tycho Andersen
2017-09-07 19:08 ` Kees Cook
2017-09-10 0:57 ` kbuild test robot
2017-09-11 10:34 ` [PATCH v6 00/11] Add support for eXclusive Page Frame Ownership Yisheng Xie
2017-09-11 15:02 ` Tycho Andersen
2017-09-12 7:07 ` Yisheng Xie
2017-09-12 7:40 ` Juerg Haefliger
2017-09-12 8:11 ` Yisheng Xie
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=20170918212909.3x7i7pmh76a4l24s@docker \
--to=tycho@docker.com \
--cc=juerg.haefliger@canonical.com \
--cc=kernel-hardening@lists.openwall.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=marco.antonio.780@gmail.com \
--cc=mark.rutland@arm.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).