* [dm-devel] switch the block layer to use kmap_local_page v3
@ 2021-07-27 5:56 Christoph Hellwig
2021-07-27 5:56 ` [dm-devel] [PATCH 01/15] MIPS: don't include <linux/genhd.h> in <asm/mach-rc32434/rb.h> Christoph Hellwig
` (15 more replies)
0 siblings, 16 replies; 17+ messages in thread
From: Christoph Hellwig @ 2021-07-27 5:56 UTC (permalink / raw)
To: Jens Axboe, Thomas Gleixner
Cc: linux-arch, linux-block, Thomas Bogendoerfer, Mike Snitzer,
Geoff Levand, linuxppc-dev, ceph-devel, linux-mips,
Dongsheng Yang, linux-kernel, James E.J. Bottomley, dm-devel,
Andrew Morton, Ira Weiny, Ilya Dryomov
Hi all,
this series switches the core block layer code and all users of the
existing bvec kmap helpers to use kmap_local_page. Drivers that
currently use open coded kmap_atomic calls will converted in a follow
on series.
To do so a new kunmap variant is added that calls
flush_kernel_dcache_page. I'm not entirely sure where to call
flush_dcache_page vs flush_kernel_dcache_page, so I've tried to follow
the documentation here, but additional feedback would be welcome.
Note that the ps3disk has a minir conflict with the
flush_kernel_dcache_page removal in linux-next through the -mm tree.
I had hoped that change would go into 5.14, but it seems like it is
being held for 5.15.
Changes since v2:
- rely on the flush_dcache_helpers in memcpy_to_page and memzero_page
that now hit mainline
Changes since v1:
- add more/better comments
- add a new kunmap_local_dirty helper to feal with
flush(_kernel)_dcache_page
Diffstat:
arch/mips/include/asm/mach-rc32434/rb.h | 2 -
block/bio-integrity.c | 14 +++-----
block/bio.c | 37 ++++++----------------
block/blk-map.c | 2 -
block/bounce.c | 39 +++++-------------------
block/t10-pi.c | 16 +++------
drivers/block/ps3disk.c | 19 +----------
drivers/block/rbd.c | 15 +--------
drivers/md/dm-writecache.c | 5 +--
include/linux/bio.h | 42 -------------------------
include/linux/bvec.h | 52 ++++++++++++++++++++++++++++++--
include/linux/highmem-internal.h | 7 ++++
include/linux/highmem.h | 10 ++++--
13 files changed, 102 insertions(+), 158 deletions(-)
--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel
^ permalink raw reply [flat|nested] 17+ messages in thread
* [dm-devel] [PATCH 01/15] MIPS: don't include <linux/genhd.h> in <asm/mach-rc32434/rb.h>
2021-07-27 5:56 [dm-devel] switch the block layer to use kmap_local_page v3 Christoph Hellwig
@ 2021-07-27 5:56 ` Christoph Hellwig
2021-07-27 5:56 ` [dm-devel] [PATCH 02/15] bvec: fix the include guards for bvec.h Christoph Hellwig
` (14 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Christoph Hellwig @ 2021-07-27 5:56 UTC (permalink / raw)
To: Jens Axboe, Thomas Gleixner
Cc: linux-arch, linux-block, Thomas Bogendoerfer, Chaitanya Kulkarni,
Mike Snitzer, Geoff Levand, linuxppc-dev, ceph-devel, linux-mips,
Dongsheng Yang, linux-kernel, James E.J. Bottomley, dm-devel,
Martin K . Petersen, Andrew Morton, Ira Weiny, Ilya Dryomov
There is no need to include genhd.h from a random arch header, and not
doing so prevents the possibility for nasty include loops.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Ira Weiny <ira.weiny@intel.com>
---
arch/mips/include/asm/mach-rc32434/rb.h | 2 --
1 file changed, 2 deletions(-)
diff --git a/arch/mips/include/asm/mach-rc32434/rb.h b/arch/mips/include/asm/mach-rc32434/rb.h
index d502673a4f6c..34d179ca020b 100644
--- a/arch/mips/include/asm/mach-rc32434/rb.h
+++ b/arch/mips/include/asm/mach-rc32434/rb.h
@@ -7,8 +7,6 @@
#ifndef __ASM_RC32434_RB_H
#define __ASM_RC32434_RB_H
-#include <linux/genhd.h>
-
#define REGBASE 0x18000000
#define IDT434_REG_BASE ((volatile void *) KSEG1ADDR(REGBASE))
#define UART0BASE 0x58000
--
2.30.2
--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [dm-devel] [PATCH 02/15] bvec: fix the include guards for bvec.h
2021-07-27 5:56 [dm-devel] switch the block layer to use kmap_local_page v3 Christoph Hellwig
2021-07-27 5:56 ` [dm-devel] [PATCH 01/15] MIPS: don't include <linux/genhd.h> in <asm/mach-rc32434/rb.h> Christoph Hellwig
@ 2021-07-27 5:56 ` Christoph Hellwig
2021-07-27 5:56 ` [dm-devel] [PATCH 03/15] bvec: add a bvec_kmap_local helper Christoph Hellwig
` (13 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Christoph Hellwig @ 2021-07-27 5:56 UTC (permalink / raw)
To: Jens Axboe, Thomas Gleixner
Cc: linux-arch, linux-block, Thomas Bogendoerfer, Bart Van Assche,
Mike Snitzer, Geoff Levand, linuxppc-dev, Chaitanya Kulkarni,
ceph-devel, linux-mips, Dongsheng Yang, linux-kernel,
James E.J. Bottomley, dm-devel, Martin K . Petersen,
Andrew Morton, Ira Weiny, Ilya Dryomov
Fix the include guards to match the file naming.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Ira Weiny <ira.weiny@intel.com>
---
include/linux/bvec.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/include/linux/bvec.h b/include/linux/bvec.h
index ff832e698efb..883faf5f1523 100644
--- a/include/linux/bvec.h
+++ b/include/linux/bvec.h
@@ -4,8 +4,8 @@
*
* Copyright (C) 2001 Ming Lei <ming.lei@canonical.com>
*/
-#ifndef __LINUX_BVEC_ITER_H
-#define __LINUX_BVEC_ITER_H
+#ifndef __LINUX_BVEC_H
+#define __LINUX_BVEC_H
#include <linux/bug.h>
#include <linux/errno.h>
@@ -183,4 +183,4 @@ static inline void bvec_advance(const struct bio_vec *bvec,
}
}
-#endif /* __LINUX_BVEC_ITER_H */
+#endif /* __LINUX_BVEC_H */
--
2.30.2
--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [dm-devel] [PATCH 03/15] bvec: add a bvec_kmap_local helper
2021-07-27 5:56 [dm-devel] switch the block layer to use kmap_local_page v3 Christoph Hellwig
2021-07-27 5:56 ` [dm-devel] [PATCH 01/15] MIPS: don't include <linux/genhd.h> in <asm/mach-rc32434/rb.h> Christoph Hellwig
2021-07-27 5:56 ` [dm-devel] [PATCH 02/15] bvec: fix the include guards for bvec.h Christoph Hellwig
@ 2021-07-27 5:56 ` Christoph Hellwig
2021-07-27 5:56 ` [dm-devel] [PATCH 04/15] bvec: add memcpy_{from, to}_bvec and memzero_bvec helper Christoph Hellwig
` (12 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Christoph Hellwig @ 2021-07-27 5:56 UTC (permalink / raw)
To: Jens Axboe, Thomas Gleixner
Cc: linux-arch, linux-block, Thomas Bogendoerfer, Chaitanya Kulkarni,
Mike Snitzer, Geoff Levand, linuxppc-dev, ceph-devel, linux-mips,
Dongsheng Yang, linux-kernel, James E.J. Bottomley, dm-devel,
Martin K . Petersen, Andrew Morton, Ira Weiny, Ilya Dryomov
Add a helper to call kmap_local_page on a bvec. There is no need for
an unmap helper given that kunmap_local accept any address in the mapped
page.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Ira Weiny <ira.weiny@intel.com>
---
include/linux/bvec.h | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/include/linux/bvec.h b/include/linux/bvec.h
index 883faf5f1523..f8710af18eef 100644
--- a/include/linux/bvec.h
+++ b/include/linux/bvec.h
@@ -7,6 +7,7 @@
#ifndef __LINUX_BVEC_H
#define __LINUX_BVEC_H
+#include <linux/highmem.h>
#include <linux/bug.h>
#include <linux/errno.h>
#include <linux/limits.h>
@@ -183,4 +184,16 @@ static inline void bvec_advance(const struct bio_vec *bvec,
}
}
+/**
+ * bvec_kmap_local - map a bvec into the kernel virtual address space
+ * @bvec: bvec to map
+ *
+ * Must be called on single-page bvecs only. Call kunmap_local on the returned
+ * address to unmap.
+ */
+static inline void *bvec_kmap_local(struct bio_vec *bvec)
+{
+ return kmap_local_page(bvec->bv_page) + bvec->bv_offset;
+}
+
#endif /* __LINUX_BVEC_H */
--
2.30.2
--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [dm-devel] [PATCH 04/15] bvec: add memcpy_{from, to}_bvec and memzero_bvec helper
2021-07-27 5:56 [dm-devel] switch the block layer to use kmap_local_page v3 Christoph Hellwig
` (2 preceding siblings ...)
2021-07-27 5:56 ` [dm-devel] [PATCH 03/15] bvec: add a bvec_kmap_local helper Christoph Hellwig
@ 2021-07-27 5:56 ` Christoph Hellwig
2021-07-27 5:56 ` [dm-devel] [PATCH 05/15] block: use memzero_page in zero_fill_bio Christoph Hellwig
` (11 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Christoph Hellwig @ 2021-07-27 5:56 UTC (permalink / raw)
To: Jens Axboe, Thomas Gleixner
Cc: linux-arch, linux-block, Thomas Bogendoerfer, Chaitanya Kulkarni,
Mike Snitzer, Geoff Levand, linuxppc-dev, ceph-devel, linux-mips,
Dongsheng Yang, linux-kernel, James E.J. Bottomley, dm-devel,
Martin K . Petersen, Andrew Morton, Ira Weiny, Ilya Dryomov
Add helpers to perform common memory operation on a bvec.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Ira Weiny <ira.weiny@intel.com>
---
include/linux/bvec.h | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/include/linux/bvec.h b/include/linux/bvec.h
index f8710af18eef..f9fa43b940ff 100644
--- a/include/linux/bvec.h
+++ b/include/linux/bvec.h
@@ -196,4 +196,37 @@ static inline void *bvec_kmap_local(struct bio_vec *bvec)
return kmap_local_page(bvec->bv_page) + bvec->bv_offset;
}
+/**
+ * memcpy_from_bvec - copy data from a bvec
+ * @bvec: bvec to copy from
+ *
+ * Must be called on single-page bvecs only.
+ */
+static inline void memcpy_from_bvec(char *to, struct bio_vec *bvec)
+{
+ memcpy_from_page(to, bvec->bv_page, bvec->bv_offset, bvec->bv_len);
+}
+
+/**
+ * memcpy_to_bvec - copy data to a bvec
+ * @bvec: bvec to copy to
+ *
+ * Must be called on single-page bvecs only.
+ */
+static inline void memcpy_to_bvec(struct bio_vec *bvec, const char *from)
+{
+ memcpy_to_page(bvec->bv_page, bvec->bv_offset, from, bvec->bv_len);
+}
+
+/**
+ * memzero_bvec - zero all data in a bvec
+ * @bvec: bvec to zero
+ *
+ * Must be called on single-page bvecs only.
+ */
+static inline void memzero_bvec(struct bio_vec *bvec)
+{
+ memzero_page(bvec->bv_page, bvec->bv_offset, bvec->bv_len);
+}
+
#endif /* __LINUX_BVEC_H */
--
2.30.2
--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [dm-devel] [PATCH 05/15] block: use memzero_page in zero_fill_bio
2021-07-27 5:56 [dm-devel] switch the block layer to use kmap_local_page v3 Christoph Hellwig
` (3 preceding siblings ...)
2021-07-27 5:56 ` [dm-devel] [PATCH 04/15] bvec: add memcpy_{from, to}_bvec and memzero_bvec helper Christoph Hellwig
@ 2021-07-27 5:56 ` Christoph Hellwig
2021-07-27 5:56 ` [dm-devel] [PATCH 06/15] rbd: use memzero_bvec Christoph Hellwig
` (10 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Christoph Hellwig @ 2021-07-27 5:56 UTC (permalink / raw)
To: Jens Axboe, Thomas Gleixner
Cc: linux-arch, linux-block, Thomas Bogendoerfer, Chaitanya Kulkarni,
Mike Snitzer, Geoff Levand, linuxppc-dev, ceph-devel, linux-mips,
Dongsheng Yang, linux-kernel, James E.J. Bottomley, dm-devel,
Martin K . Petersen, Andrew Morton, Ira Weiny, Ilya Dryomov
Use memzero_bvec to zero each segment in the bio instead of manually
mapping and zeroing the data.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Ira Weiny <ira.weiny@intel.com>
---
block/bio.c | 9 ++-------
1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/block/bio.c b/block/bio.c
index 1fab762e079b..2e436bccb1e2 100644
--- a/block/bio.c
+++ b/block/bio.c
@@ -495,16 +495,11 @@ EXPORT_SYMBOL(bio_kmalloc);
void zero_fill_bio(struct bio *bio)
{
- unsigned long flags;
struct bio_vec bv;
struct bvec_iter iter;
- bio_for_each_segment(bv, bio, iter) {
- char *data = bvec_kmap_irq(&bv, &flags);
- memset(data, 0, bv.bv_len);
- flush_dcache_page(bv.bv_page);
- bvec_kunmap_irq(data, &flags);
- }
+ bio_for_each_segment(bv, bio, iter)
+ memzero_bvec(&bv);
}
EXPORT_SYMBOL(zero_fill_bio);
--
2.30.2
--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [dm-devel] [PATCH 06/15] rbd: use memzero_bvec
2021-07-27 5:56 [dm-devel] switch the block layer to use kmap_local_page v3 Christoph Hellwig
` (4 preceding siblings ...)
2021-07-27 5:56 ` [dm-devel] [PATCH 05/15] block: use memzero_page in zero_fill_bio Christoph Hellwig
@ 2021-07-27 5:56 ` Christoph Hellwig
2021-07-27 5:56 ` [dm-devel] [PATCH 07/15] dm-writecache: use bvec_kmap_local instead of bvec_kmap_irq Christoph Hellwig
` (9 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Christoph Hellwig @ 2021-07-27 5:56 UTC (permalink / raw)
To: Jens Axboe, Thomas Gleixner
Cc: linux-arch, linux-block, Thomas Bogendoerfer,
Martin K . Petersen, Mike Snitzer, Geoff Levand, linuxppc-dev,
ceph-devel, linux-mips, Dongsheng Yang, linux-kernel,
James E.J. Bottomley, dm-devel, Andrew Morton, Ira Weiny,
Ilya Dryomov
Use memzero_bvec instead of reimplementing it.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Ira Weiny <ira.weiny@intel.com>
---
drivers/block/rbd.c | 15 ++-------------
1 file changed, 2 insertions(+), 13 deletions(-)
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
index 90b947c96402..6d596c2c2cd6 100644
--- a/drivers/block/rbd.c
+++ b/drivers/block/rbd.c
@@ -1219,24 +1219,13 @@ static void rbd_dev_mapping_clear(struct rbd_device *rbd_dev)
rbd_dev->mapping.size = 0;
}
-static void zero_bvec(struct bio_vec *bv)
-{
- void *buf;
- unsigned long flags;
-
- buf = bvec_kmap_irq(bv, &flags);
- memset(buf, 0, bv->bv_len);
- flush_dcache_page(bv->bv_page);
- bvec_kunmap_irq(buf, &flags);
-}
-
static void zero_bios(struct ceph_bio_iter *bio_pos, u32 off, u32 bytes)
{
struct ceph_bio_iter it = *bio_pos;
ceph_bio_iter_advance(&it, off);
ceph_bio_iter_advance_step(&it, bytes, ({
- zero_bvec(&bv);
+ memzero_bvec(&bv);
}));
}
@@ -1246,7 +1235,7 @@ static void zero_bvecs(struct ceph_bvec_iter *bvec_pos, u32 off, u32 bytes)
ceph_bvec_iter_advance(&it, off);
ceph_bvec_iter_advance_step(&it, bytes, ({
- zero_bvec(&bv);
+ memzero_bvec(&bv);
}));
}
--
2.30.2
--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [dm-devel] [PATCH 07/15] dm-writecache: use bvec_kmap_local instead of bvec_kmap_irq
2021-07-27 5:56 [dm-devel] switch the block layer to use kmap_local_page v3 Christoph Hellwig
` (5 preceding siblings ...)
2021-07-27 5:56 ` [dm-devel] [PATCH 06/15] rbd: use memzero_bvec Christoph Hellwig
@ 2021-07-27 5:56 ` Christoph Hellwig
2021-07-27 5:56 ` [dm-devel] [PATCH 08/15] ps3disk: use memcpy_{from,to}_bvec Christoph Hellwig
` (8 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Christoph Hellwig @ 2021-07-27 5:56 UTC (permalink / raw)
To: Jens Axboe, Thomas Gleixner
Cc: linux-arch, linux-block, Thomas Bogendoerfer,
Martin K . Petersen, Mike Snitzer, Geoff Levand, linuxppc-dev,
ceph-devel, linux-mips, Dongsheng Yang, linux-kernel,
James E.J. Bottomley, dm-devel, Andrew Morton, Ira Weiny,
Ilya Dryomov
There is no need to disable interrupts in bio_copy_block, and the local
only mappings helps to avoid any sort of problems with stray writes
into the bio data.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Ira Weiny <ira.weiny@intel.com>
---
drivers/md/dm-writecache.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/md/dm-writecache.c b/drivers/md/dm-writecache.c
index e21e29e81bbf..3d2cf811ec3e 100644
--- a/drivers/md/dm-writecache.c
+++ b/drivers/md/dm-writecache.c
@@ -1214,14 +1214,13 @@ static void memcpy_flushcache_optimized(void *dest, void *source, size_t size)
static void bio_copy_block(struct dm_writecache *wc, struct bio *bio, void *data)
{
void *buf;
- unsigned long flags;
unsigned size;
int rw = bio_data_dir(bio);
unsigned remaining_size = wc->block_size;
do {
struct bio_vec bv = bio_iter_iovec(bio, bio->bi_iter);
- buf = bvec_kmap_irq(&bv, &flags);
+ buf = bvec_kmap_local(&bv);
size = bv.bv_len;
if (unlikely(size > remaining_size))
size = remaining_size;
@@ -1239,7 +1238,7 @@ static void bio_copy_block(struct dm_writecache *wc, struct bio *bio, void *data
memcpy_flushcache_optimized(data, buf, size);
}
- bvec_kunmap_irq(buf, &flags);
+ kunmap_local(buf);
data = (char *)data + size;
remaining_size -= size;
--
2.30.2
--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [dm-devel] [PATCH 08/15] ps3disk: use memcpy_{from,to}_bvec
2021-07-27 5:56 [dm-devel] switch the block layer to use kmap_local_page v3 Christoph Hellwig
` (6 preceding siblings ...)
2021-07-27 5:56 ` [dm-devel] [PATCH 07/15] dm-writecache: use bvec_kmap_local instead of bvec_kmap_irq Christoph Hellwig
@ 2021-07-27 5:56 ` Christoph Hellwig
2021-07-27 5:56 ` [dm-devel] [PATCH 09/15] block: remove bvec_kmap_irq and bvec_kunmap_irq Christoph Hellwig
` (7 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Christoph Hellwig @ 2021-07-27 5:56 UTC (permalink / raw)
To: Jens Axboe, Thomas Gleixner
Cc: linux-arch, linux-block, Thomas Bogendoerfer,
Martin K . Petersen, Mike Snitzer, Geoff Levand, linuxppc-dev,
ceph-devel, linux-mips, Dongsheng Yang, linux-kernel,
James E.J. Bottomley, dm-devel, Andrew Morton, Ira Weiny,
Ilya Dryomov
Use the bvec helpers instead of open coding the copy.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Tested-by: Geoff Levand <geoff@infradead.org>
---
drivers/block/ps3disk.c | 18 ++----------------
1 file changed, 2 insertions(+), 16 deletions(-)
diff --git a/drivers/block/ps3disk.c b/drivers/block/ps3disk.c
index f374ea2c67ce..8d51efbe045d 100644
--- a/drivers/block/ps3disk.c
+++ b/drivers/block/ps3disk.c
@@ -83,26 +83,12 @@ static void ps3disk_scatter_gather(struct ps3_storage_device *dev,
unsigned int offset = 0;
struct req_iterator iter;
struct bio_vec bvec;
- unsigned int i = 0;
- size_t size;
- void *buf;
rq_for_each_segment(bvec, req, iter) {
- unsigned long flags;
- dev_dbg(&dev->sbd.core, "%s:%u: bio %u: %u sectors from %llu\n",
- __func__, __LINE__, i, bio_sectors(iter.bio),
- iter.bio->bi_iter.bi_sector);
-
- size = bvec.bv_len;
- buf = bvec_kmap_irq(&bvec, &flags);
if (gather)
- memcpy(dev->bounce_buf+offset, buf, size);
+ memcpy_from_bvec(dev->bounce_buf + offset, &bvec);
else
- memcpy(buf, dev->bounce_buf+offset, size);
- offset += size;
- flush_kernel_dcache_page(bvec.bv_page);
- bvec_kunmap_irq(buf, &flags);
- i++;
+ memcpy_to_bvec(&bvec, dev->bounce_buf + offset);
}
}
--
2.30.2
--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [dm-devel] [PATCH 09/15] block: remove bvec_kmap_irq and bvec_kunmap_irq
2021-07-27 5:56 [dm-devel] switch the block layer to use kmap_local_page v3 Christoph Hellwig
` (7 preceding siblings ...)
2021-07-27 5:56 ` [dm-devel] [PATCH 08/15] ps3disk: use memcpy_{from,to}_bvec Christoph Hellwig
@ 2021-07-27 5:56 ` Christoph Hellwig
2021-07-27 5:56 ` [dm-devel] [PATCH 10/15] block: rewrite bio_copy_data_iter to use bvec_kmap_local and memcpy_to_bvec Christoph Hellwig
` (6 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Christoph Hellwig @ 2021-07-27 5:56 UTC (permalink / raw)
To: Jens Axboe, Thomas Gleixner
Cc: linux-arch, linux-block, Thomas Bogendoerfer,
Martin K . Petersen, Mike Snitzer, Geoff Levand, linuxppc-dev,
ceph-devel, linux-mips, Dongsheng Yang, linux-kernel,
James E.J. Bottomley, dm-devel, Andrew Morton, Ira Weiny,
Ilya Dryomov
These two helpers are entirely unused now.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
---
include/linux/bio.h | 42 ------------------------------------------
1 file changed, 42 deletions(-)
diff --git a/include/linux/bio.h b/include/linux/bio.h
index 2203b686e1f0..7b5f65a81f2b 100644
--- a/include/linux/bio.h
+++ b/include/linux/bio.h
@@ -5,7 +5,6 @@
#ifndef __LINUX_BIO_H
#define __LINUX_BIO_H
-#include <linux/highmem.h>
#include <linux/mempool.h>
#include <linux/ioprio.h>
/* struct bio, bio_vec and BIO_* flags are defined in blk_types.h */
@@ -519,47 +518,6 @@ static inline void bio_clone_blkg_association(struct bio *dst,
struct bio *src) { }
#endif /* CONFIG_BLK_CGROUP */
-#ifdef CONFIG_HIGHMEM
-/*
- * remember never ever reenable interrupts between a bvec_kmap_irq and
- * bvec_kunmap_irq!
- */
-static inline char *bvec_kmap_irq(struct bio_vec *bvec, unsigned long *flags)
-{
- unsigned long addr;
-
- /*
- * might not be a highmem page, but the preempt/irq count
- * balancing is a lot nicer this way
- */
- local_irq_save(*flags);
- addr = (unsigned long) kmap_atomic(bvec->bv_page);
-
- BUG_ON(addr & ~PAGE_MASK);
-
- return (char *) addr + bvec->bv_offset;
-}
-
-static inline void bvec_kunmap_irq(char *buffer, unsigned long *flags)
-{
- unsigned long ptr = (unsigned long) buffer & PAGE_MASK;
-
- kunmap_atomic((void *) ptr);
- local_irq_restore(*flags);
-}
-
-#else
-static inline char *bvec_kmap_irq(struct bio_vec *bvec, unsigned long *flags)
-{
- return page_address(bvec->bv_page) + bvec->bv_offset;
-}
-
-static inline void bvec_kunmap_irq(char *buffer, unsigned long *flags)
-{
- *flags = 0;
-}
-#endif
-
/*
* BIO list management for use by remapping drivers (e.g. DM or MD) and loop.
*
--
2.30.2
--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [dm-devel] [PATCH 10/15] block: rewrite bio_copy_data_iter to use bvec_kmap_local and memcpy_to_bvec
2021-07-27 5:56 [dm-devel] switch the block layer to use kmap_local_page v3 Christoph Hellwig
` (8 preceding siblings ...)
2021-07-27 5:56 ` [dm-devel] [PATCH 09/15] block: remove bvec_kmap_irq and bvec_kunmap_irq Christoph Hellwig
@ 2021-07-27 5:56 ` Christoph Hellwig
2021-07-27 5:56 ` [dm-devel] [PATCH 11/15] block: use memcpy_to_bvec in copy_to_high_bio_irq Christoph Hellwig
` (5 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Christoph Hellwig @ 2021-07-27 5:56 UTC (permalink / raw)
To: Jens Axboe, Thomas Gleixner
Cc: linux-arch, linux-block, Thomas Bogendoerfer,
Martin K . Petersen, Mike Snitzer, Geoff Levand, linuxppc-dev,
ceph-devel, linux-mips, Dongsheng Yang, linux-kernel,
James E.J. Bottomley, dm-devel, Andrew Morton, Ira Weiny,
Ilya Dryomov
Use the proper helpers instead of open coding the copy.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
---
block/bio.c | 28 ++++++++--------------------
1 file changed, 8 insertions(+), 20 deletions(-)
diff --git a/block/bio.c b/block/bio.c
index 2e436bccb1e2..0c89fa2f7a85 100644
--- a/block/bio.c
+++ b/block/bio.c
@@ -1186,27 +1186,15 @@ EXPORT_SYMBOL(bio_advance);
void bio_copy_data_iter(struct bio *dst, struct bvec_iter *dst_iter,
struct bio *src, struct bvec_iter *src_iter)
{
- struct bio_vec src_bv, dst_bv;
- void *src_p, *dst_p;
- unsigned bytes;
-
while (src_iter->bi_size && dst_iter->bi_size) {
- src_bv = bio_iter_iovec(src, *src_iter);
- dst_bv = bio_iter_iovec(dst, *dst_iter);
-
- bytes = min(src_bv.bv_len, dst_bv.bv_len);
-
- src_p = kmap_atomic(src_bv.bv_page);
- dst_p = kmap_atomic(dst_bv.bv_page);
-
- memcpy(dst_p + dst_bv.bv_offset,
- src_p + src_bv.bv_offset,
- bytes);
-
- kunmap_atomic(dst_p);
- kunmap_atomic(src_p);
-
- flush_dcache_page(dst_bv.bv_page);
+ struct bio_vec src_bv = bio_iter_iovec(src, *src_iter);
+ struct bio_vec dst_bv = bio_iter_iovec(dst, *dst_iter);
+ unsigned int bytes = min(src_bv.bv_len, dst_bv.bv_len);
+ void *src_buf;
+
+ src_buf = bvec_kmap_local(&src_bv);
+ memcpy_to_bvec(&dst_bv, src_buf);
+ kunmap_local(src_buf);
bio_advance_iter_single(src, src_iter, bytes);
bio_advance_iter_single(dst, dst_iter, bytes);
--
2.30.2
--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [dm-devel] [PATCH 11/15] block: use memcpy_to_bvec in copy_to_high_bio_irq
2021-07-27 5:56 [dm-devel] switch the block layer to use kmap_local_page v3 Christoph Hellwig
` (9 preceding siblings ...)
2021-07-27 5:56 ` [dm-devel] [PATCH 10/15] block: rewrite bio_copy_data_iter to use bvec_kmap_local and memcpy_to_bvec Christoph Hellwig
@ 2021-07-27 5:56 ` Christoph Hellwig
2021-07-27 5:56 ` [dm-devel] [PATCH 12/15] block: use memcpy_from_bvec in bio_copy_kern_endio_read Christoph Hellwig
` (4 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Christoph Hellwig @ 2021-07-27 5:56 UTC (permalink / raw)
To: Jens Axboe, Thomas Gleixner
Cc: linux-arch, linux-block, Thomas Bogendoerfer,
Martin K . Petersen, Mike Snitzer, Geoff Levand, linuxppc-dev,
ceph-devel, linux-mips, Dongsheng Yang, linux-kernel,
James E.J. Bottomley, dm-devel, Andrew Morton, Ira Weiny,
Ilya Dryomov
Use memcpy_to_bvec instead of opencoding the logic.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
---
block/bounce.c | 20 ++------------------
1 file changed, 2 insertions(+), 18 deletions(-)
diff --git a/block/bounce.c b/block/bounce.c
index 94081e013c58..7e9e666c04dc 100644
--- a/block/bounce.c
+++ b/block/bounce.c
@@ -67,18 +67,6 @@ static __init int init_emergency_pool(void)
__initcall(init_emergency_pool);
-/*
- * highmem version, map in to vec
- */
-static void bounce_copy_vec(struct bio_vec *to, unsigned char *vfrom)
-{
- unsigned char *vto;
-
- vto = kmap_atomic(to->bv_page);
- memcpy(vto + to->bv_offset, vfrom, to->bv_len);
- kunmap_atomic(vto);
-}
-
/*
* Simple bounce buffer support for highmem pages. Depending on the
* queue gfp mask set, *to may or may not be a highmem page. kmap it
@@ -86,7 +74,6 @@ static void bounce_copy_vec(struct bio_vec *to, unsigned char *vfrom)
*/
static void copy_to_high_bio_irq(struct bio *to, struct bio *from)
{
- unsigned char *vfrom;
struct bio_vec tovec, fromvec;
struct bvec_iter iter;
/*
@@ -104,11 +91,8 @@ static void copy_to_high_bio_irq(struct bio *to, struct bio *from)
* been modified by the block layer, so use the original
* copy, bounce_copy_vec already uses tovec->bv_len
*/
- vfrom = page_address(fromvec.bv_page) +
- tovec.bv_offset;
-
- bounce_copy_vec(&tovec, vfrom);
- flush_dcache_page(tovec.bv_page);
+ memcpy_to_bvec(&tovec, page_address(fromvec.bv_page) +
+ tovec.bv_offset);
}
bio_advance_iter(from, &from_iter, tovec.bv_len);
}
--
2.30.2
--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [dm-devel] [PATCH 12/15] block: use memcpy_from_bvec in bio_copy_kern_endio_read
2021-07-27 5:56 [dm-devel] switch the block layer to use kmap_local_page v3 Christoph Hellwig
` (10 preceding siblings ...)
2021-07-27 5:56 ` [dm-devel] [PATCH 11/15] block: use memcpy_to_bvec in copy_to_high_bio_irq Christoph Hellwig
@ 2021-07-27 5:56 ` Christoph Hellwig
2021-07-27 5:56 ` [dm-devel] [PATCH 13/15] block: use memcpy_from_bvec in __blk_queue_bounce Christoph Hellwig
` (3 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Christoph Hellwig @ 2021-07-27 5:56 UTC (permalink / raw)
To: Jens Axboe, Thomas Gleixner
Cc: linux-arch, linux-block, Thomas Bogendoerfer,
Martin K . Petersen, Mike Snitzer, Geoff Levand, linuxppc-dev,
ceph-devel, linux-mips, Dongsheng Yang, linux-kernel,
James E.J. Bottomley, dm-devel, Andrew Morton, Ira Weiny,
Ilya Dryomov
Use memcpy_from_bvec instead of open coding the logic.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
---
block/blk-map.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/block/blk-map.c b/block/blk-map.c
index 3743158ddaeb..d1448aaad980 100644
--- a/block/blk-map.c
+++ b/block/blk-map.c
@@ -400,7 +400,7 @@ static void bio_copy_kern_endio_read(struct bio *bio)
struct bvec_iter_all iter_all;
bio_for_each_segment_all(bvec, bio, iter_all) {
- memcpy(p, page_address(bvec->bv_page), bvec->bv_len);
+ memcpy_from_bvec(p, bvec);
p += bvec->bv_len;
}
--
2.30.2
--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [dm-devel] [PATCH 13/15] block: use memcpy_from_bvec in __blk_queue_bounce
2021-07-27 5:56 [dm-devel] switch the block layer to use kmap_local_page v3 Christoph Hellwig
` (11 preceding siblings ...)
2021-07-27 5:56 ` [dm-devel] [PATCH 12/15] block: use memcpy_from_bvec in bio_copy_kern_endio_read Christoph Hellwig
@ 2021-07-27 5:56 ` Christoph Hellwig
2021-07-27 5:56 ` [dm-devel] [PATCH 14/15] block: use bvec_kmap_local in t10_pi_type1_{prepare, complete} Christoph Hellwig
` (2 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Christoph Hellwig @ 2021-07-27 5:56 UTC (permalink / raw)
To: Jens Axboe, Thomas Gleixner
Cc: linux-arch, linux-block, Thomas Bogendoerfer,
Martin K . Petersen, Mike Snitzer, Geoff Levand, linuxppc-dev,
ceph-devel, linux-mips, Dongsheng Yang, linux-kernel,
James E.J. Bottomley, dm-devel, Andrew Morton, Ira Weiny,
Ilya Dryomov
Rewrite the actual bounce buffering loop in __blk_queue_bounce to that
the memcpy_to_bvec helper can be used to perform the data copies.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
---
block/bounce.c | 19 +++++++------------
1 file changed, 7 insertions(+), 12 deletions(-)
diff --git a/block/bounce.c b/block/bounce.c
index 7e9e666c04dc..05fc7148489d 100644
--- a/block/bounce.c
+++ b/block/bounce.c
@@ -239,24 +239,19 @@ void __blk_queue_bounce(struct request_queue *q, struct bio **bio_orig)
* because the 'bio' is single-page bvec.
*/
for (i = 0, to = bio->bi_io_vec; i < bio->bi_vcnt; to++, i++) {
- struct page *page = to->bv_page;
+ struct page *bounce_page;
- if (!PageHighMem(page))
+ if (!PageHighMem(to->bv_page))
continue;
- to->bv_page = mempool_alloc(&page_pool, GFP_NOIO);
- inc_zone_page_state(to->bv_page, NR_BOUNCE);
+ bounce_page = mempool_alloc(&page_pool, GFP_NOIO);
+ inc_zone_page_state(bounce_page, NR_BOUNCE);
if (rw == WRITE) {
- char *vto, *vfrom;
-
- flush_dcache_page(page);
-
- vto = page_address(to->bv_page) + to->bv_offset;
- vfrom = kmap_atomic(page) + to->bv_offset;
- memcpy(vto, vfrom, to->bv_len);
- kunmap_atomic(vfrom);
+ flush_dcache_page(to->bv_page);
+ memcpy_from_bvec(page_address(bounce_page), to);
}
+ to->bv_page = bounce_page;
}
trace_block_bio_bounce(*bio_orig);
--
2.30.2
--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [dm-devel] [PATCH 14/15] block: use bvec_kmap_local in t10_pi_type1_{prepare, complete}
2021-07-27 5:56 [dm-devel] switch the block layer to use kmap_local_page v3 Christoph Hellwig
` (12 preceding siblings ...)
2021-07-27 5:56 ` [dm-devel] [PATCH 13/15] block: use memcpy_from_bvec in __blk_queue_bounce Christoph Hellwig
@ 2021-07-27 5:56 ` Christoph Hellwig
2021-07-27 5:56 ` [dm-devel] [PATCH 15/15] block: use bvec_kmap_local in bio_integrity_process Christoph Hellwig
2021-07-28 1:31 ` [dm-devel] switch the block layer to use kmap_local_page v3 Jens Axboe
15 siblings, 0 replies; 17+ messages in thread
From: Christoph Hellwig @ 2021-07-27 5:56 UTC (permalink / raw)
To: Jens Axboe, Thomas Gleixner
Cc: linux-arch, linux-block, Thomas Bogendoerfer,
Martin K . Petersen, Mike Snitzer, Geoff Levand, linuxppc-dev,
ceph-devel, linux-mips, Dongsheng Yang, linux-kernel,
James E.J. Bottomley, dm-devel, Andrew Morton, Ira Weiny,
Ilya Dryomov
Using local kmaps slightly reduces the chances to stray writes, and
the bvec interface cleans up the code a little bit.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
---
block/t10-pi.c | 16 ++++++----------
1 file changed, 6 insertions(+), 10 deletions(-)
diff --git a/block/t10-pi.c b/block/t10-pi.c
index d910534b3a41..00c203b2a921 100644
--- a/block/t10-pi.c
+++ b/block/t10-pi.c
@@ -147,11 +147,10 @@ static void t10_pi_type1_prepare(struct request *rq)
break;
bip_for_each_vec(iv, bip, iter) {
- void *p, *pmap;
unsigned int j;
+ void *p;
- pmap = kmap_atomic(iv.bv_page);
- p = pmap + iv.bv_offset;
+ p = bvec_kmap_local(&iv);
for (j = 0; j < iv.bv_len; j += tuple_sz) {
struct t10_pi_tuple *pi = p;
@@ -161,8 +160,7 @@ static void t10_pi_type1_prepare(struct request *rq)
ref_tag++;
p += tuple_sz;
}
-
- kunmap_atomic(pmap);
+ kunmap_local(p);
}
bip->bip_flags |= BIP_MAPPED_INTEGRITY;
@@ -195,11 +193,10 @@ static void t10_pi_type1_complete(struct request *rq, unsigned int nr_bytes)
struct bvec_iter iter;
bip_for_each_vec(iv, bip, iter) {
- void *p, *pmap;
unsigned int j;
+ void *p;
- pmap = kmap_atomic(iv.bv_page);
- p = pmap + iv.bv_offset;
+ p = bvec_kmap_local(&iv);
for (j = 0; j < iv.bv_len && intervals; j += tuple_sz) {
struct t10_pi_tuple *pi = p;
@@ -210,8 +207,7 @@ static void t10_pi_type1_complete(struct request *rq, unsigned int nr_bytes)
intervals--;
p += tuple_sz;
}
-
- kunmap_atomic(pmap);
+ kunmap_local(p);
}
}
}
--
2.30.2
--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [dm-devel] [PATCH 15/15] block: use bvec_kmap_local in bio_integrity_process
2021-07-27 5:56 [dm-devel] switch the block layer to use kmap_local_page v3 Christoph Hellwig
` (13 preceding siblings ...)
2021-07-27 5:56 ` [dm-devel] [PATCH 14/15] block: use bvec_kmap_local in t10_pi_type1_{prepare, complete} Christoph Hellwig
@ 2021-07-27 5:56 ` Christoph Hellwig
2021-07-28 1:31 ` [dm-devel] switch the block layer to use kmap_local_page v3 Jens Axboe
15 siblings, 0 replies; 17+ messages in thread
From: Christoph Hellwig @ 2021-07-27 5:56 UTC (permalink / raw)
To: Jens Axboe, Thomas Gleixner
Cc: linux-arch, linux-block, Thomas Bogendoerfer,
Martin K . Petersen, Mike Snitzer, Geoff Levand, linuxppc-dev,
ceph-devel, linux-mips, Dongsheng Yang, linux-kernel,
James E.J. Bottomley, dm-devel, Andrew Morton, Ira Weiny,
Ilya Dryomov
Using local kmaps slightly reduces the chances to stray writes, and
the bvec interface cleans up the code a little bit.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
---
block/bio-integrity.c | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/block/bio-integrity.c b/block/bio-integrity.c
index 4b4eb8964a6f..8f54d49dc500 100644
--- a/block/bio-integrity.c
+++ b/block/bio-integrity.c
@@ -172,18 +172,16 @@ static blk_status_t bio_integrity_process(struct bio *bio,
iter.prot_buf = prot_buf;
__bio_for_each_segment(bv, bio, bviter, *proc_iter) {
- void *kaddr = kmap_atomic(bv.bv_page);
+ void *kaddr = bvec_kmap_local(&bv);
- iter.data_buf = kaddr + bv.bv_offset;
+ iter.data_buf = kaddr;
iter.data_size = bv.bv_len;
-
ret = proc_fn(&iter);
- if (ret) {
- kunmap_atomic(kaddr);
- return ret;
- }
+ kunmap_local(kaddr);
+
+ if (ret)
+ break;
- kunmap_atomic(kaddr);
}
return ret;
}
--
2.30.2
--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel
^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [dm-devel] switch the block layer to use kmap_local_page v3
2021-07-27 5:56 [dm-devel] switch the block layer to use kmap_local_page v3 Christoph Hellwig
` (14 preceding siblings ...)
2021-07-27 5:56 ` [dm-devel] [PATCH 15/15] block: use bvec_kmap_local in bio_integrity_process Christoph Hellwig
@ 2021-07-28 1:31 ` Jens Axboe
15 siblings, 0 replies; 17+ messages in thread
From: Jens Axboe @ 2021-07-28 1:31 UTC (permalink / raw)
To: Christoph Hellwig, Thomas Gleixner
Cc: linux-arch, linux-block, Thomas Bogendoerfer, Mike Snitzer,
Geoff Levand, linuxppc-dev, ceph-devel, linux-mips,
Dongsheng Yang, linux-kernel, James E.J. Bottomley, dm-devel,
Andrew Morton, Ira Weiny, Ilya Dryomov
On 7/26/21 11:56 PM, Christoph Hellwig wrote:
> Hi all,
>
> this series switches the core block layer code and all users of the
> existing bvec kmap helpers to use kmap_local_page. Drivers that
> currently use open coded kmap_atomic calls will converted in a follow
> on series.
>
> To do so a new kunmap variant is added that calls
> flush_kernel_dcache_page. I'm not entirely sure where to call
> flush_dcache_page vs flush_kernel_dcache_page, so I've tried to follow
> the documentation here, but additional feedback would be welcome.
>
> Note that the ps3disk has a minir conflict with the
> flush_kernel_dcache_page removal in linux-next through the -mm tree.
> I had hoped that change would go into 5.14, but it seems like it is
> being held for 5.15.
Applied for 5.15, thanks.
--
Jens Axboe
--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2021-07-28 1:31 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-27 5:56 [dm-devel] switch the block layer to use kmap_local_page v3 Christoph Hellwig
2021-07-27 5:56 ` [dm-devel] [PATCH 01/15] MIPS: don't include <linux/genhd.h> in <asm/mach-rc32434/rb.h> Christoph Hellwig
2021-07-27 5:56 ` [dm-devel] [PATCH 02/15] bvec: fix the include guards for bvec.h Christoph Hellwig
2021-07-27 5:56 ` [dm-devel] [PATCH 03/15] bvec: add a bvec_kmap_local helper Christoph Hellwig
2021-07-27 5:56 ` [dm-devel] [PATCH 04/15] bvec: add memcpy_{from, to}_bvec and memzero_bvec helper Christoph Hellwig
2021-07-27 5:56 ` [dm-devel] [PATCH 05/15] block: use memzero_page in zero_fill_bio Christoph Hellwig
2021-07-27 5:56 ` [dm-devel] [PATCH 06/15] rbd: use memzero_bvec Christoph Hellwig
2021-07-27 5:56 ` [dm-devel] [PATCH 07/15] dm-writecache: use bvec_kmap_local instead of bvec_kmap_irq Christoph Hellwig
2021-07-27 5:56 ` [dm-devel] [PATCH 08/15] ps3disk: use memcpy_{from,to}_bvec Christoph Hellwig
2021-07-27 5:56 ` [dm-devel] [PATCH 09/15] block: remove bvec_kmap_irq and bvec_kunmap_irq Christoph Hellwig
2021-07-27 5:56 ` [dm-devel] [PATCH 10/15] block: rewrite bio_copy_data_iter to use bvec_kmap_local and memcpy_to_bvec Christoph Hellwig
2021-07-27 5:56 ` [dm-devel] [PATCH 11/15] block: use memcpy_to_bvec in copy_to_high_bio_irq Christoph Hellwig
2021-07-27 5:56 ` [dm-devel] [PATCH 12/15] block: use memcpy_from_bvec in bio_copy_kern_endio_read Christoph Hellwig
2021-07-27 5:56 ` [dm-devel] [PATCH 13/15] block: use memcpy_from_bvec in __blk_queue_bounce Christoph Hellwig
2021-07-27 5:56 ` [dm-devel] [PATCH 14/15] block: use bvec_kmap_local in t10_pi_type1_{prepare, complete} Christoph Hellwig
2021-07-27 5:56 ` [dm-devel] [PATCH 15/15] block: use bvec_kmap_local in bio_integrity_process Christoph Hellwig
2021-07-28 1:31 ` [dm-devel] switch the block layer to use kmap_local_page v3 Jens Axboe
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).