From: Ira Weiny
Should a stray write in the kernel occur persistent memory is affected more
than regular memory. A write to the wrong area of memory could result in
latent data corruption which will will persist after a reboot. PKS provides a
nice way to restrict access to persistent memory ker
From: Ira Weiny
Some users, such as kmap(), sometimes requires PKS to be global.
However, updating all CPUs, and worse yet all threads is expensive.
Introduce a global PKRS state which is checked at critical times to
allow the state to enable access when global PKS is required. To
accomplish th
From: Ira Weiny
Now that PKS can be enabled globaly (for all threads) add a test which
spawns a thread and tests the same PKS functionality.
The test enables/disables PKS in 1 thread while attempting to access the
page in another thread. We use the same test array as in the 'local'
PKS testing.
From: Ira Weiny
Device managed pages may have additional protections. These protections
need to be removed prior to valid use by kernel users.
Check for special treatment of device managed pages in kmap and take
action if needed. We use kmap as an interface for generic kernel code
because unde
From: Ira Weiny
To correctly support the semantics of kmap() with Kernel protection keys
(PKS), kmap() may be required to set the protections on multiple
processors (globally). Enabling PKS globally can be very expensive
depending on the requested operation. Furthermore, enabling a domain
globa
From: Ira Weiny
The kmap() calls in this driver are localized to a single thread. To
avoid the over head of global PKRS updates use the new kmap_thread()
call.
Cc: Jens Axboe
Signed-off-by: Ira Weiny
---
drivers/block/drbd/drbd_main.c | 4 ++--
drivers/block/drbd/drbd_receiver.c | 12 ++
From: Ira Weiny
The kmap() calls in this driver are localized to a single thread. To
avoid the over head of global PKRS updates use the new kmap_thread()
call.
Cc: Luis Chamberlain
Signed-off-by: Ira Weiny
---
drivers/base/firmware_loader/fallback.c | 4 ++--
drivers/base/firmware_loader/mai
From: Ira Weiny
These kmap() calls in the gpu stack are localized to a single thread.
To avoid the over head of global PKRS updates use the new kmap_thread()
call.
Cc: David Airlie
Cc: Daniel Vetter
Cc: Patrik Jakobsson
Signed-off-by: Ira Weiny
---
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
From: Ira Weiny
The kmap() calls in this FS are localized to a single thread. To
avoid the over head of global PKRS updates use the new kmap_thread()
call.
Cc: David Howells
Signed-off-by: Ira Weiny
---
fs/afs/dir.c | 16
fs/afs/dir_edit.c | 16
fs/afs/
From: Ira Weiny
The kmap() calls in these drivers are localized to a single thread. To
avoid the over head of global PKRS updates use the new kmap_thread()
call.
Cc: "David S. Miller"
Cc: Jakub Kicinski
Cc: Jesse Brandeburg
Signed-off-by: Ira Weiny
---
drivers/net/ethernet/intel/igb/igb_et
From: Ira Weiny
The kmap() calls in this FS are localized to a single thread. To avoid
the over head of global PKRS updates use the new kmap_thread() call.
Cc: Chris Mason
Cc: Josef Bacik
Cc: David Sterba
Signed-off-by: Ira Weiny
---
fs/btrfs/check-integrity.c | 4 ++--
fs/btrfs/compressi
From: Ira Weiny
The kmap() calls in this FS are localized to a single thread. To avoid
the over head of global PKRS updates use the new kmap_thread() call.
Cc: Steve French
Signed-off-by: Ira Weiny
---
fs/cifs/cifsencrypt.c | 6 +++---
fs/cifs/file.c| 16
fs/cifs/sm
From: Ira Weiny
The kmap() calls in this FS are localized to a single thread. To avoid
the over head of global PKRS updates use the new kmap_thread() call.
Cc: Herbert Xu
Cc: Eric Biggers
Cc: Aditya Pakki
Signed-off-by: Ira Weiny
---
fs/ecryptfs/crypto.c | 8
fs/ecryptfs/read_
From: Ira Weiny
The kmap() calls in this FS are localized to a single thread. To avoid
the over head of global PKRS updates use the new kmap_thread() call.
Cc: Bob Peterson
Cc: Andreas Gruenbacher
Signed-off-by: Ira Weiny
---
fs/gfs2/bmap.c | 4 ++--
fs/gfs2/ops_fstype.c | 4 ++--
2 f
From: Ira Weiny
The kmap() calls in this FS are localized to a single thread. To avoid
the over head of global PKRS updates use the new kmap_thread() call.
Cc: Ryusuke Konishi
Signed-off-by: Ira Weiny
---
fs/nilfs2/alloc.c | 34 +-
fs/nilfs2/cpfile.c | 4 ++-
From: Ira Weiny
The kmap() calls in this FS are localized to a single thread. To avoid
the over head of global PKRS updates use the new kmap_thread() call.
Signed-off-by: Ira Weiny
---
fs/hfs/bnode.c | 14 +++---
fs/hfs/btree.c | 20 ++--
2 files changed, 17 insertions
From: Ira Weiny
The kmap() calls in this FS are localized to a single thread. To avoid
the over head of global PKRS updates use the new kmap_thread() call.
Signed-off-by: Ira Weiny
---
fs/hfsplus/bitmap.c | 20 -
fs/hfsplus/bnode.c | 102 ++--
From: Ira Weiny
The kmap() calls in this FS are localized to a single thread. To avoid
the over head of global PKRS updates use the new kmap_thread() call.
Cc: David Woodhouse
Cc: Richard Weinberger
Signed-off-by: Ira Weiny
---
fs/jffs2/file.c | 4 ++--
fs/jffs2/gc.c | 4 ++--
2 files cha
From: Ira Weiny
The kmap() calls in this FS are localized to a single thread. To avoid
the over head of global PKRS updates use the new kmap_thread() call.
Cc: Trond Myklebust
Cc: Anna Schumaker
Signed-off-by: Ira Weiny
---
fs/nfs/dir.c | 20 ++--
1 file changed, 10 insertio
From: Ira Weiny
The kmap() calls in this FS are localized to a single thread. To avoid
the over head of global PKRS updates use the new kmap_thread() call.
Cc: Jaegeuk Kim
Cc: Chao Yu
Signed-off-by: Ira Weiny
---
fs/f2fs/f2fs.h | 8
1 file changed, 4 insertions(+), 4 deletions(-)
From: Ira Weiny
The kmap() calls in this FS are localized to a single thread. To avoid
the over head of global PKRS updates use the new kmap_thread() call.
Cc: Miklos Szeredi
Signed-off-by: Ira Weiny
---
fs/fuse/readdir.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git
From: Ira Weiny
The kmap() calls in this FS are localized to a single thread. To avoid
the over head of global PKRS updates use the new kmap_thread() call.
Cc: Christoph Hellwig
Signed-off-by: Ira Weiny
---
fs/freevxfs/vxfs_immed.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
d
From: Ira Weiny
The kmap() calls in this FS are localized to a single thread. To avoid
the over head of global PKRS updates use the new kmap_thread() call.
Cc: Jan Kara
Cc: "Theodore Ts'o"
Cc: Randy Dunlap
Cc: Alex Shi
Signed-off-by: Ira Weiny
---
fs/reiserfs/journal.c | 4 ++--
1 file ch
From: Ira Weiny
The kmap() calls in this FS are localized to a single thread. To avoid
the over head of global PKRS updates use the new kmap_thread() call.
Cc: Damien Le Moal
Cc: Naohiro Aota
Signed-off-by: Ira Weiny
---
fs/zonefs/super.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletio
From: Ira Weiny
The kmap() calls in this FS are localized to a single thread. To avoid
the over head of global PKRS updates use the new kmap_thread() call.
Cc: Richard Weinberger
Signed-off-by: Ira Weiny
---
fs/ubifs/file.c | 16
1 file changed, 8 insertions(+), 8 deletions(
From: Ira Weiny
The kmap() calls in this FS are localized to a single thread. To avoid
the over head of global PKRS updates use the new kmap_thread() call.
Cc: David Howells
Signed-off-by: Ira Weiny
---
fs/cachefiles/rdwr.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --gi
From: Ira Weiny
The kmap() calls in this FS are localized to a single thread. To avoid
the over head of global PKRS updates use the new kmap_thread() call.
Cc: Anton Altaparmakov
Signed-off-by: Ira Weiny
---
fs/ntfs/aops.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git
From: Ira Weiny
The kmap() calls in this FS are localized to a single thread. To avoid
the over head of global PKRS updates use the new kmap_thread() call.
Signed-off-by: Ira Weiny
---
fs/romfs/super.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/fs/romfs/super.c b/
From: Ira Weiny
The kmap() calls in this FS are localized to a single thread. To avoid
the over head of global PKRS updates use the new kmap_thread() call.
Cc: Hans de Goede
Signed-off-by: Ira Weiny
---
fs/vboxsf/file.c | 12 ++--
1 file changed, 6 insertions(+), 6 deletions(-)
diff
From: Ira Weiny
The kmap() calls in this FS are localized to a single thread. To avoid
the over head of global PKRS updates use the new kmap_thread() call.
Cc: Jeff Dike
Cc: Richard Weinberger
Cc: Anton Ivanov
Signed-off-by: Ira Weiny
---
fs/hostfs/hostfs_kern.c | 12 ++--
1 file c
From: Ira Weiny
The kmap() calls in this FS are localized to a single thread. To avoid
the over head of global PKRS updates use the new kmap_thread() call.
Cc: Nicolas Pitre
Signed-off-by: Ira Weiny
---
fs/cramfs/inode.c | 10 +-
1 file changed, 5 insertions(+), 5 deletions(-)
diff
From: Ira Weiny
The kmap() calls in this FS are localized to a single thread. To avoid
the over head of global PKRS updates use the new kmap_thread() call.
Cc: Gao Xiang
Cc: Chao Yu
Signed-off-by: Ira Weiny
---
fs/erofs/super.c | 4 ++--
fs/erofs/xattr.c | 4 ++--
2 files changed, 4 inserti
From: Ira Weiny
These kmap() calls are localized to a single thread. To avoid the over
head of global PKRS updates use the new kmap_thread() call.
Cc: Alexander Viro
Cc: Jens Axboe
Signed-off-by: Ira Weiny
---
fs/aio.c | 4 ++--
fs/binfmt_elf.c | 4 ++--
fs/binfmt_elf_f
From: Ira Weiny
There are 3 places in namei.c where the equivalent of ext2_put_page() is
open coded. We want to use k[un]map_thread() instead of k[un]map() in
ext2_[get|put]_page().
Move ext2_put_page() to ext2.h and use it in namei.c in prep for
converting the k[un]map() code.
Cc: Jan Kara
S
From: Ira Weiny
These kmap() calls are localized to a single thread. To avoid the over
head of global PKRS update use the new kmap_thread() call instead.
Cc: Jan Kara
Signed-off-by: Ira Weiny
---
fs/ext2/dir.c | 2 +-
fs/ext2/ext2.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
From: Ira Weiny
These kmap() calls are localized to a single thread. To avoid the over head of
global PKRS updates use the new kmap_thread() call.
Signed-off-by: Ira Weiny
---
fs/isofs/compress.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/fs/isofs/compress.c b/fs/
From: Ira Weiny
These kmap() calls are localized to a single thread. To avoid the over head of
global PKRS updates use the new kmap_thread() call.
Signed-off-by: Ira Weiny
---
fs/jffs2/file.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/fs/jffs2/file.c b/fs/jffs2/fi
From: Ira Weiny
These kmap() calls in this driver are localized to a single thread. To
avoid the over head of global PKRS updates use the new kmap_thread()
call.
Signed-off-by: Ira Weiny
---
drivers/target/target_core_iblock.c| 4 ++--
drivers/target/target_core_rd.c| 4 ++--
driv
From: Ira Weiny
These kmap() calls are localized to a single thread. To avoid the over
head of global PKRS updates use the new kmap_thread() call.
Cc: Ulf Hansson
Cc: Sascha Sommer
Signed-off-by: Ira Weiny
---
drivers/mmc/host/mmc_spi.c| 4 ++--
drivers/mmc/host/sdricoh_cs.c | 4 ++--
2
From: Ira Weiny
These kmap() calls are localized to a single thread. To avoid the over
head of global PKRS updates use the new kmap_thread() call.
Cc: "James E.J. Bottomley"
Cc: "Martin K. Petersen"
Signed-off-by: Ira Weiny
---
drivers/scsi/ipr.c | 8
drivers/scsi/pmcraid.c | 8
From: Ira Weiny
These kmap() calls are localized to a single thread. To avoid the over
head of global PKRS updates use the new kmap_thread() call.
Cc: Stefano Stabellini
Signed-off-by: Ira Weiny
---
drivers/xen/gntalloc.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git
From: Ira Weiny
These kmap() calls are localized to a single thread. To avoid the over
head of global PKRS updates use the new kmap_thread() call.
Cc: Ard Biesheuvel
Signed-off-by: Ira Weiny
---
drivers/firmware/efi/capsule-loader.c | 6 +++---
drivers/firmware/efi/capsule.c| 4 ++--
From: Ira Weiny
These kmap() calls are localized to a single thread. To avoid the over
head of global PKRS updates use the new kmap_thread() call.
Cc: Greg Kroah-Hartman
Signed-off-by: Ira Weiny
---
drivers/staging/rts5208/rtsx_transport.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletio
From: Ira Weiny
These kmap() calls are localized to a single thread. To avoid the over
head of global PKRS updates use the new kmap_thread() call.
Cc: Miquel Raynal
Cc: Richard Weinberger
Cc: Vignesh Raghavendra
Signed-off-by: Ira Weiny
---
drivers/mtd/mtd_blkdevs.c | 12 ++--
1 fi
From: Ira Weiny
These kmap() calls are localized to a single thread. To avoid the over
head of global PKRS updates use the new kmap_thread() call.
Cc: Coly Li (maintainer:BCACHE (BLOCK LAYER CACHE))
Cc: Kent Overstreet (maintainer:BCACHE (BLOCK LAYER
CACHE))
Signed-off-by: Ira Weiny
---
dr
From: Ira Weiny
These kmap() calls are localized to a single thread. To avoid the over
head of global PKRS updates use the new kmap_thread() call.
Cc: Greg Kroah-Hartman
Signed-off-by: Ira Weiny
---
drivers/misc/vmw_vmci/vmci_queue_pair.c | 12 ++--
1 file changed, 6 insertions(+), 6
From: Ira Weiny
These kmap() calls are localized to a single thread. To avoid the over
head of global PKRS updates use the new kmap_thread() call.
Cc: Greg Kroah-Hartman
Signed-off-by: Ira Weiny
---
drivers/android/binder_alloc.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
dif
From: Ira Weiny
This kmap() call is localized to a single thread. To avoid the over
head of global PKRS updates use the new kmap_thread() call.
Cc: Eric Biederman
Signed-off-by: Ira Weiny
---
kernel/kexec_core.c | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/kern
From: Ira Weiny
These kmap() calls are localized to a single thread. To avoid the over
head of global PKRS updates use the new kmap_thread() call.
Signed-off-by: Ira Weiny
---
mm/memory.c | 8
mm/swapfile.c| 4 ++--
mm/userfaultfd.c | 4 ++--
3 files changed, 8 insertions(+)
From: Ira Weiny
These kmap() calls are localized to a single thread. To avoid the over
head of global PKRS updates use the new kmap_thread() call.
Cc: Benjamin Herrenschmidt
Cc: Paul Mackerras
Signed-off-by: Ira Weiny
---
arch/powerpc/mm/mem.c | 4 ++--
1 file changed, 2 insertions(+), 2 de
From: Ira Weiny
These kmap() calls are localized to a single thread. To avoid the over
head of global PKRS updates use the new kmap_thread() call.
Cc: Kirti Wankhede
Signed-off-by: Ira Weiny
---
samples/vfio-mdev/mbochs.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git
From: Ira Weiny
dax_direct_access() is a special case of accessing pmem via a page
offset and without a struct page.
Because the dax driver is well aware of the special protections it has
mapped memory with, call dev_access_[en|dis]able() directly instead of
the unnecessary overhead of trying to
From: Ira Weiny
The pmem driver uses a cached virtual address to access its memory
directly. Because the nvdimm driver is well aware of the special
protections it has mapped memory with, we call dev_access_[en|dis]able()
around the direct pmem->virt_addr (pmem_addr) usage instead of the
unnecess
From: Ira Weiny
Protecting against stray writes is particularly important for PMEM
because, unlike writes to anonymous memory, writes to PMEM persists
across a reboot. Thus data corruption could result in permanent loss of
data.
While stray writes are more serious than reads, protection is also
On Fri, Oct 09, 2020 at 12:49:57PM -0700, ira.we...@intel.com wrote:
> From: Ira Weiny
>
> The kmap() calls in this FS are localized to a single thread. To avoid
> the over head of global PKRS updates use the new kmap_thread() call.
>
> Cc: Jaegeuk Kim
> Cc: Chao Yu
> Signed-off-by: Ira Weiny
On Fri, Oct 09, 2020 at 12:49:44PM -0700, ira.we...@intel.com wrote:
> From: Ira Weiny
>
> These kmap() calls in the gpu stack are localized to a single thread.
> To avoid the over head of global PKRS updates use the new kmap_thread()
> call.
>
> Cc: David Airlie
> Cc: Daniel Vetter
> Cc: Patr
On Fri, Oct 02, 2020 at 09:27:09AM -0700, Linus Torvalds wrote:
> On Thu, Oct 1, 2020 at 3:41 PM Al Viro wrote:
> >
> > Better
> > loff_t dummy = 0;
> > ...
> > wr = __kernel_write(file, data, bytes, &dummy);
>
> No, just fix __kernel_write() to work correctly.
>
> The fa
On Fri, Oct 09, 2020 at 02:34:34PM -0700, Eric Biggers wrote:
> On Fri, Oct 09, 2020 at 12:49:57PM -0700, ira.we...@intel.com wrote:
> > The kmap() calls in this FS are localized to a single thread. To avoid
> > the over head of global PKRS updates use the new kmap_thread() call.
> >
> > @@ -2410,
On Fri, Oct 9, 2020 at 3:06 PM Eric Biggers wrote:
>
> It's a bit unintuitive that ppos=NULL means "use pos 0", not "use
> file->f_pos".
That's not at all what it means.
A NULL ppos means "this has no position at all", and is what we use
for FMODE_STREAM file descriptors (ie sockets, pipes, etc
On Fri, Oct 09, 2020 at 06:03:31PM -0700, Linus Torvalds wrote:
> On Fri, Oct 9, 2020 at 3:06 PM Eric Biggers wrote:
> >
> > It's a bit unintuitive that ppos=NULL means "use pos 0", not "use
> > file->f_pos".
>
> That's not at all what it means.
>
> A NULL ppos means "this has no position at al
On Fri, Oct 9, 2020 at 6:19 PM Eric Biggers wrote:
>
> Okay, that makes more sense. So the patchset from Matthew
> https://lkml.kernel.org/linux-fsdevel/20201003025534.21045-1-wi...@infradead.org/T/#u
> isn't what you had in mind.
No.
That first patch makes sense - it's just the "ppos can be NU
On Sat, Oct 10, 2020 at 01:39:54AM +0100, Matthew Wilcox wrote:
> On Fri, Oct 09, 2020 at 02:34:34PM -0700, Eric Biggers wrote:
> > On Fri, Oct 09, 2020 at 12:49:57PM -0700, ira.we...@intel.com wrote:
> > > The kmap() calls in this FS are localized to a single thread. To avoid
> > > the over head
From: Ira Weiny
Device managed memory exposes itself to the kernel direct map which
allows stray pointers to access these device memories.
Stray pointers to normal memory may result in a crash or other
undesirable behavior which, while unfortunate, are usually recoverable
with a reboot. Stray a
From: Ira Weiny
Most kmap() callers use the map within a single thread and have no need
for the protection domain to be enabled globally.
To differentiate these kmap users, new k[un]map_thread() calls were
introduced which are thread local.
To aid in debugging the new use of kmap_thread(), add
From: Ira Weiny
The kmap() calls in these drivers are localized to a single thread. To
avoid the over head of global PKRS updates use the new kmap_thread()
call.
Cc: Mike Marciniszyn
Cc: Dennis Dalessandro
Cc: Doug Ledford
Cc: Jason Gunthorpe
Cc: Faisal Latif
Cc: Shiraz Saleem
Cc: Bernard
From: Ira Weiny
These kmap() calls in these drivers are localized to a single thread.
To avoid the over head of global PKRS updates use the new kmap_thread()
call.
Cc: "David S. Miller"
Cc: Jakub Kicinski
Cc: Alexey Kuznetsov
Cc: Hideaki YOSHIFUJI
Cc: Trond Myklebust
Cc: Anna Schumaker
Cc:
From: Ira Weiny
These kmap() calls are localized to a single thread. To avoid the over
head of global PKRS updates use the new kmap_thread() call.
Cc: Alexander Viro
Cc: "Jérôme Glisse"
Cc: Martin KaFai Lau
Cc: Song Liu
Cc: Yonghong Song
Cc: Andrii Nakryiko
Cc: John Fastabend
Cc: KP Sing
Hi Rob,
On Tuesday, September 29, 2020 4:23 PM, Ran Wang wrote:
>
> From: Biwen Li
>
> The 'fsl,ippdexpcr1-alt-reg' property is used to handle an errata A-008646 on
> LS1021A.
>
> Signed-off-by: Biwen Li
> Signed-off-by: Ran Wang
> ---
> Change in v3:
> - Simplize related proterty definitio
On Fri, Oct 09, 2020 at 06:29:13PM -0700, Linus Torvalds wrote:
> On Fri, Oct 9, 2020 at 6:19 PM Eric Biggers wrote:
> >
> > Okay, that makes more sense. So the patchset from Matthew
> > https://lkml.kernel.org/linux-fsdevel/20201003025534.21045-1-wi...@infradead.org/T/#u
> > isn't what you had i
On 2020/10/10 03:50, ira.we...@intel.com wrote:
> From: Ira Weiny
>
> These kmap() calls are localized to a single thread. To avoid the over
> head of global PKRS updates use the new kmap_thread() call.
>
Hi Ira,
There were a number of options considered.
1) Attempt to change all the thread
On 10/9/20 12:50 PM, ira.we...@intel.com wrote:
From: Ira Weiny
The pmem driver uses a cached virtual address to access its memory
directly. Because the nvdimm driver is well aware of the special
protections it has mapped memory with, we call dev_access_[en|dis]able()
around the direct pmem->v
ira.we...@intel.com writes:
> From: Ira Weiny
>
> This kmap() call is localized to a single thread. To avoid the over
> head of global PKRS updates use the new kmap_thread() call.
Acked-by: "Eric W. Biederman"
>
> Cc: Eric Biederman
> Signed-off-by: Ira Weiny
> ---
> kernel/kexec_core.c |
On Fri, 2020-10-09 at 14:34 -0700, Eric Biggers wrote:
> On Fri, Oct 09, 2020 at 12:49:57PM -0700, ira.we...@intel.com wrote:
> > From: Ira Weiny
> >
> > The kmap() calls in this FS are localized to a single thread. To
> > avoid the over head of global PKRS updates use the new
> > kmap_thread()
73 matches
Mail list logo