Re: [PATCH 1/6] Generic radix trees

2018-05-25 Thread Kent Overstreet
On Sat, May 26, 2018 at 11:16:42AM +0800, Liu Bo wrote: > > +/* > > + * Returns pointer to the specified byte @offset within @radix, allocating > > it if > > + * necessary - newly allocated slots are always zeroed out: > > + */ > > +void *__genradix_ptr_alloc(struct __genradix *radix, size_t offse

Re: [RESEND PATCH V5 00/33] block: support multipage bvec

2018-05-24 Thread Kent Overstreet
On Fri, May 25, 2018 at 11:45:48AM +0800, Ming Lei wrote: > Hi, > > This patchset brings multipage bvec into block layer: patch series looks sane to me. goddamn that's a lot of renaming. Things are going to get interesting when we start sticking compound pages in the page cache, there'll be some

Re: [RESEND PATCH V5 12/33] block: introduce bio_segments()

2018-05-24 Thread Kent Overstreet
On Fri, May 25, 2018 at 11:46:00AM +0800, Ming Lei wrote: > There are still cases in which we need to use bio_segments() for get the > number of segment, so introduce it. > > Signed-off-by: Ming Lei > --- > include/linux/bio.h | 25 - > 1 file changed, 20 insertions(+), 5

Notes on locking for pagacache consistency (was: [PATCH 01/10] mm: pagecache add lock)

2018-05-23 Thread Kent Overstreet
On Fri, May 18, 2018 at 01:45:49PM -0400, Kent Overstreet wrote: > On Fri, May 18, 2018 at 08:53:30AM -0700, Christoph Hellwig wrote: > > On Fri, May 18, 2018 at 06:13:06AM -0700, Matthew Wilcox wrote: > > > > Historically, the only problematic case has been direct IO, and peo

Re: [PATCH 4/6] openvswitch: convert to genradix

2018-05-23 Thread Kent Overstreet
On Wed, May 23, 2018 at 05:34:01AM -0700, Matthew Wilcox wrote: > On Tue, May 22, 2018 at 09:18:19PM -0400, Kent Overstreet wrote: > > the new generic radix trees have a simpler API and implementation, and > > no limitations on number of elements, so all flex_array users are bein

Re: [PATCH 2/6] proc: commit to genradix

2018-05-23 Thread Kent Overstreet
On Wed, May 23, 2018 at 04:28:23AM -0700, Matthew Wilcox wrote: > On Tue, May 22, 2018 at 09:18:17PM -0400, Kent Overstreet wrote: > > @@ -2140,11 +2140,12 @@ proc_map_files_readdir(struct file *file, struct > > dir_context *ctx) > > struct task_struct *task; > &g

Re: [PATCH 6/6] Drop flex_arrays

2018-05-23 Thread Kent Overstreet
On Wed, May 23, 2018 at 10:24:18AM -0700, Dave Hansen wrote: > Thanks for the heads-up, Matthew! Sorry, I was just using scripts/get_maintainers, forgot to check the actual file for the original author :) > On 05/22/2018 06:18 PM, Kent Overstreet wrote: > > All existing users have be

Re: [PATCH 01/10] mm: pagecache add lock

2018-05-23 Thread Kent Overstreet
On Wed, May 23, 2018 at 08:22:39AM -0700, Christoph Hellwig wrote: > On Sun, May 20, 2018 at 06:45:24PM -0400, Kent Overstreet wrote: > > > > > > Honestly I think this probably should be in the core. But IFF we move > > > it to the core the existing users of

[PATCH 4/6] openvswitch: convert to genradix

2018-05-22 Thread Kent Overstreet
the new generic radix trees have a simpler API and implementation, and no limitations on number of elements, so all flex_array users are being converted Signed-off-by: Kent Overstreet --- net/openvswitch/flow.h | 1 - net/openvswitch/flow_netlink.h | 1 - net/openvswitch/flow_table.c

[PATCH 2/6] proc: commit to genradix

2018-05-22 Thread Kent Overstreet
the new generic radix trees have a simpler API and implementation, and no limitations on number of elements, so all flex_array users are being converted Signed-off-by: Kent Overstreet --- fs/proc/base.c | 48 +--- 1 file changed, 17 insertions(+), 31

[PATCH 6/6] Drop flex_arrays

2018-05-22 Thread Kent Overstreet
All existing users have been converted to generic radix trees Signed-off-by: Kent Overstreet --- Documentation/core-api/flexible-arrays.rst | 130 --- Documentation/flexible-arrays.txt | 123 --- include/linux/flex_array.h | 149 include/linux/poison.h

[PATCH 3/6] md: convert to genradix

2018-05-22 Thread Kent Overstreet
the new generic radix trees have a simpler API and implementation, and no limitations on number of elements, so all flex_array users are being converted Signed-off-by: Kent Overstreet --- drivers/md/raid5-ppl.c | 5 ++- drivers/md/raid5.c | 77

[PATCH 5/6] selinux: convert to genradix

2018-05-22 Thread Kent Overstreet
the new generic radix trees have a simpler API and implementation, and no limitations on number of elements, so all flex_array users are being converted Signed-off-by: Kent Overstreet --- security/selinux/ss/avtab.c | 44 +-- security/selinux/ss/avtab.h | 5 +- security

[PATCH 1/6] Generic radix trees

2018-05-22 Thread Kent Overstreet
like flex_array does. Signed-off-by: Kent Overstreet --- include/linux/generic-radix-tree.h | 222 + lib/Makefile | 3 +- lib/generic-radix-tree.c | 180 +++ 3 files changed, 404 insertions(+), 1 deletion(-) c

Re: [PATCH] [RFC] bcachefs: SIX locks (shared/intent/exclusive)

2018-05-21 Thread Kent Overstreet
On Mon, May 21, 2018 at 08:04:16PM -0700, Matthew Wilcox wrote: > On Mon, May 21, 2018 at 10:19:51PM -0400, Kent Overstreet wrote: > > New lock for bcachefs, like read/write locks but with a third state, > > intent. > > > > Intent locks conflict with each other, but no

[PATCH] [RFC] bcachefs: SIX locks (shared/intent/exclusive)

2018-05-21 Thread Kent Overstreet
r to it. This blocks not only lookups, but updates that would only touch unrelated leaf nodes. With intent locks, we can hold an intent lock on the parent node for the duration of the operation, only taking a write lock on it for the update to that specific node. Signed-off-by: Kent Overstreet ---

Re: [PATCH 00/13] convert block layer to bioset_init()/mempool_init()

2018-05-21 Thread Kent Overstreet
On Mon, May 21, 2018 at 02:24:32PM -0400, Mike Snitzer wrote: > Every single data structure change in this series should be reviewed for > unforeseen alignment consequences. Jens seemed to say that is > worthwhile. Not sure if he'll do it or we divide it up. If we divide > it up a temp topic bra

Re: [PATCH 00/13] convert block layer to bioset_init()/mempool_init()

2018-05-21 Thread Kent Overstreet
On Mon, May 21, 2018 at 12:09:14PM -0400, Mike Snitzer wrote: > On Mon, May 21 2018 at 11:36am -0400, > Jens Axboe wrote: > > > On 5/21/18 9:18 AM, Mike Snitzer wrote: > > > On Mon, May 21 2018 at 11:09am -0400, > > > Jens Axboe wrote: > > > > > >> On 5/21/18 9:04 AM, Mike Snitzer wrote: > > >>

Re: [PATCH 00/10] Misc block layer patches for bcachefs

2018-05-20 Thread Kent Overstreet
On Sun, May 20, 2018 at 11:40:45PM +, Bart Van Assche wrote: > On Sun, 2018-05-20 at 19:21 -0400, Kent Overstreet wrote: > > I really have better things to do than debug someone else's tests... > > [ ... ] > > ../run_tests: line 65: cd: /lib/modules/4.16.0+/kernel/b

Re: [PATCH 00/10] Misc block layer patches for bcachefs

2018-05-20 Thread Kent Overstreet
On Sun, May 20, 2018 at 10:35:29PM +, Bart Van Assche wrote: > On Sun, 2018-05-20 at 18:31 -0400, Kent Overstreet wrote: > > On Sun, May 20, 2018 at 10:19:13PM +, Bart Van Assche wrote: > > > On Sun, 2018-05-20 at 18:17 -0400, Kent Overstreet wrote: > > > >

Re: [PATCH 00/13] convert block layer to bioset_init()/mempool_init()

2018-05-20 Thread Kent Overstreet
Thanks - sending it to him On Sun, May 20, 2018 at 7:08 PM, NeilBrown wrote: > On Sun, May 20 2018, Kent Overstreet wrote: > >> Jens - this series does the rest of the conversions that Christoph wanted, >> and >> drops bioset_create(). >> >> Only lightl

[PATCH 06/12] md: convert to bioset_init()/mempool_init()

2018-05-20 Thread Kent Overstreet
Signed-off-by: Kent Overstreet --- Resend, including Shaohua Li: drivers/md/md-faulty.c| 2 +- drivers/md/md-linear.c| 2 +- drivers/md/md-multipath.c | 17 - drivers/md/md-multipath.h | 2 +- drivers/md/md.c | 61 +-- drivers/md/md.h

Re: [PATCH 00/10] Misc block layer patches for bcachefs

2018-05-20 Thread Kent Overstreet
On Sun, May 20, 2018 at 10:35:29PM +, Bart Van Assche wrote: > On Sun, 2018-05-20 at 18:31 -0400, Kent Overstreet wrote: > > On Sun, May 20, 2018 at 10:19:13PM +, Bart Van Assche wrote: > > > On Sun, 2018-05-20 at 18:17 -0400, Kent Overstreet wrote: > > > >

Re: [PATCH 01/10] mm: pagecache add lock

2018-05-20 Thread Kent Overstreet
On Fri, May 18, 2018 at 08:53:30AM -0700, Christoph Hellwig wrote: > On Fri, May 18, 2018 at 06:13:06AM -0700, Matthew Wilcox wrote: > > > Historically, the only problematic case has been direct IO, and people > > > have been willing to say "well, if you mix buffered and direct IO you > > > get wha

Re: [PATCH 00/10] Misc block layer patches for bcachefs

2018-05-20 Thread Kent Overstreet
On Sun, May 20, 2018 at 10:19:13PM +, Bart Van Assche wrote: > On Sun, 2018-05-20 at 18:17 -0400, Kent Overstreet wrote: > > On Fri, May 18, 2018 at 03:12:27PM +, Bart Van Assche wrote: > > > On Fri, 2018-05-18 at 05:06 -0400, Kent Overstreet wrote: > > > >

[PATCH 01/12] block: convert bounce, q->bio_split to bioset_init()/mempool_init()

2018-05-20 Thread Kent Overstreet
Signed-off-by: Kent Overstreet --- block/blk-core.c | 7 --- block/blk-merge.c | 8 +++ block/blk-sysfs.c | 3 +-- block/bounce.c | 47 ++ drivers/md/dm.c| 2 +- include/linux/bio.h| 5 + include/linux

[PATCH 04/12] lightnvm: convert to bioset_init()/mempool_init()

2018-05-20 Thread Kent Overstreet
Signed-off-by: Kent Overstreet --- drivers/lightnvm/pblk-core.c | 30 ++--- drivers/lightnvm/pblk-init.c | 72 drivers/lightnvm/pblk-read.c | 4 +- drivers/lightnvm/pblk-recovery.c | 2 +- drivers/lightnvm/pblk-write.c| 8 ++-- drivers

[PATCH 05/12] bcache: convert to bioset_init()/mempool_init()

2018-05-20 Thread Kent Overstreet
Signed-off-by: Kent Overstreet --- drivers/md/bcache/bcache.h | 10 +- drivers/md/bcache/bset.c| 13 - drivers/md/bcache/bset.h| 2 +- drivers/md/bcache/btree.c | 4 ++-- drivers/md/bcache/io.c | 4 ++-- drivers/md/bcache/request.c | 18

[PATCH 06/12] md: convert to bioset_init()/mempool_init()

2018-05-20 Thread Kent Overstreet
Signed-off-by: Kent Overstreet --- drivers/md/md-faulty.c| 2 +- drivers/md/md-linear.c| 2 +- drivers/md/md-multipath.c | 17 - drivers/md/md-multipath.h | 2 +- drivers/md/md.c | 61 +-- drivers/md/md.h | 4 +-- drivers/md

[PATCH 08/12] target: convert to bioset_init()/mempool_init()

2018-05-20 Thread Kent Overstreet
Signed-off-by: Kent Overstreet --- drivers/target/target_core_iblock.c | 14 ++ drivers/target/target_core_iblock.h | 2 +- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/drivers/target/target_core_iblock.c b/drivers/target/target_core_iblock.c index 44cacd001a

[PATCH 07/12] dm: convert to bioset_init()/mempool_init()

2018-05-20 Thread Kent Overstreet
Signed-off-by: Kent Overstreet --- drivers/md/dm-bio-prison-v1.c | 13 --- drivers/md/dm-bio-prison-v2.c | 13 --- drivers/md/dm-cache-target.c | 25 ++--- drivers/md/dm-core.h | 4 +- drivers/md/dm-crypt.c | 60

[PATCH 11/12] xfs: convert to bioset_init()/mempool_init()

2018-05-20 Thread Kent Overstreet
Signed-off-by: Kent Overstreet --- fs/xfs/xfs_aops.c | 2 +- fs/xfs/xfs_aops.h | 2 +- fs/xfs/xfs_super.c | 11 +-- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/fs/xfs/xfs_aops.c b/fs/xfs/xfs_aops.c index 0ab824f574..102463543d 100644 --- a/fs/xfs/xfs_aops.c +++ b

[PATCH 03/12] pktcdvd: convert to bioset_init()/mempool_init()

2018-05-20 Thread Kent Overstreet
Signed-off-by: Kent Overstreet --- drivers/block/pktcdvd.c | 50 - include/linux/pktcdvd.h | 2 +- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c index d8aff7f325..69875f5580 100644 --- a

[PATCH 12/12] block: Drop bioset_create()

2018-05-20 Thread Kent Overstreet
All users have been converted to bioset_init() Signed-off-by: Kent Overstreet --- block/bio.c | 61 ++--- include/linux/bio.h | 6 ++--- 2 files changed, 15 insertions(+), 52 deletions(-) diff --git a/block/bio.c b/block/bio.c index 0a4df92cd6

[PATCH 09/12] fs: convert block_dev.c to bioset_init()

2018-05-20 Thread Kent Overstreet
Signed-off-by: Kent Overstreet --- fs/block_dev.c | 9 +++-- 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/fs/block_dev.c b/fs/block_dev.c index 7ec920e270..b550ae280f 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c @@ -272,7 +272,7 @@ struct blkdev_dio { struct bio

[PATCH 02/12] drbd: convert to bioset_init()/mempool_init()

2018-05-20 Thread Kent Overstreet
Signed-off-by: Kent Overstreet --- drivers/block/drbd/drbd_bitmap.c | 4 +- drivers/block/drbd/drbd_int.h | 10 ++--- drivers/block/drbd/drbd_main.c | 71 +++--- drivers/block/drbd/drbd_receiver.c | 6 +-- drivers/block/drbd/drbd_req.c | 4 +- drivers

[PATCH 10/12] btrfs: convert to bioset_init()/mempool_init()

2018-05-20 Thread Kent Overstreet
Signed-off-by: Kent Overstreet --- fs/btrfs/extent_io.c | 25 +++-- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index e99b329002..56d32bb462 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c @@ -26,7

[PATCH 00/13] convert block layer to bioset_init()/mempool_init()

2018-05-20 Thread Kent Overstreet
Jens - this series does the rest of the conversions that Christoph wanted, and drops bioset_create(). Only lightly tested, but the changes are pretty mechanical. Based on your for-next tree. It's also in the for-jens branch at https://evilpiepirate.org/git/bcachefs.git Kent Overstree

Re: [PATCH 00/10] Misc block layer patches for bcachefs

2018-05-20 Thread Kent Overstreet
On Fri, May 18, 2018 at 03:12:27PM +, Bart Van Assche wrote: > On Fri, 2018-05-18 at 05:06 -0400, Kent Overstreet wrote: > > On Thu, May 17, 2018 at 08:54:57PM +, Bart Van Assche wrote: > > > With Jens' latest for-next branch I hit the kernel warning shown below. &

Re: [PATCH 10/10] Dynamic fault injection

2018-05-18 Thread Kent Overstreet
On Fri, May 18, 2018 at 01:05:20PM -0600, Andreas Dilger wrote: > On May 18, 2018, at 1:49 AM, Kent Overstreet > wrote: > > > > Signed-off-by: Kent Overstreet > > I agree with Christoph that even if there was some explanation in the cover > letter, there should be

Re: [PATCH 00/10] RFC: assorted bcachefs patches

2018-05-18 Thread Kent Overstreet
On Fri, May 18, 2018 at 02:03:25PM -0400, Josef Bacik wrote: > There's nothing stopping us from doing that, it just uses a kprobe to override > the function with our helper, so we could conceivably put it anywhere in the > function. The reason I limited it to individual functions was because it wa

Re: [PATCH 00/10] RFC: assorted bcachefs patches

2018-05-18 Thread Kent Overstreet
On Fri, May 18, 2018 at 01:45:36PM -0400, Josef Bacik wrote: > On Fri, May 18, 2018 at 03:48:58AM -0400, Kent Overstreet wrote: > > These are all the remaining patches in my bcachefs tree that touch stuff > > outside > > fs/bcachefs. Not all of them are suitable for inclusi

Re: [PATCH 01/10] mm: pagecache add lock

2018-05-18 Thread Kent Overstreet
On Fri, May 18, 2018 at 08:53:30AM -0700, Christoph Hellwig wrote: > On Fri, May 18, 2018 at 06:13:06AM -0700, Matthew Wilcox wrote: > > > Historically, the only problematic case has been direct IO, and people > > > have been willing to say "well, if you mix buffered and direct IO you > > > get wha

Re: [PATCH 06/10] Generic radix trees

2018-05-18 Thread Kent Overstreet
On Fri, May 18, 2018 at 09:02:03AM -0700, Christoph Hellwig wrote: > Completely lacks any explanation, including why this should be > in lib/. Also should come in the same series with actual users > of the infrastructure. Also in the cover letter... * Generic radix trees This is a very simple

Re: [PATCH 10/10] Dynamic fault injection

2018-05-18 Thread Kent Overstreet
On Fri, May 18, 2018 at 09:02:45AM -0700, Christoph Hellwig wrote: > On Fri, May 18, 2018 at 03:49:18AM -0400, Kent Overstreet wrote: > > Signed-off-by: Kent Overstreet > > Completely lacks any explanation or argument why it would be useful. It's in the cover letter..

Re: [PATCH 02/10] block: Convert bio_set to mempool_init()

2018-05-18 Thread Kent Overstreet
On Fri, May 18, 2018 at 09:20:28AM -0700, Christoph Hellwig wrote: > On Tue, May 08, 2018 at 09:33:50PM -0400, Kent Overstreet wrote: > > Minor performance improvement by getting rid of pointer indirections > > from allocation/freeing fastpaths. > > Can you please also send

Re: [PATCH 04/10] locking: export osq_lock()/osq_unlock()

2018-05-18 Thread Kent Overstreet
On Fri, May 18, 2018 at 01:40:54PM +0200, Peter Zijlstra wrote: > On Fri, May 18, 2018 at 07:32:05AM -0400, Kent Overstreet wrote: > > It does strike me that the whole optimistic spin algorithm > > (mutex_optimistic_spin() and rwsem_optimistic_spin()) are ripe for factoring > &

Re: [PATCH 03/10] locking: bring back lglocks

2018-05-18 Thread Kent Overstreet
On Fri, May 18, 2018 at 01:03:39PM +0200, Peter Zijlstra wrote: > On Fri, May 18, 2018 at 06:13:53AM -0400, Kent Overstreet wrote: > > On Fri, May 18, 2018 at 11:51:02AM +0200, Peter Zijlstra wrote: > > > On Fri, May 18, 2018 at 03:49:04AM -0400, Kent Overstreet wrote: > >

Re: [PATCH 04/10] locking: export osq_lock()/osq_unlock()

2018-05-18 Thread Kent Overstreet
On Fri, May 18, 2018 at 01:08:08PM +0200, Peter Zijlstra wrote: > On Fri, May 18, 2018 at 06:18:04AM -0400, Kent Overstreet wrote: > > On Fri, May 18, 2018 at 11:52:04AM +0200, Peter Zijlstra wrote: > > > On Fri, May 18, 2018 at 03:49:06AM -0400, Kent Overstreet wrote: > >

Re: [PATCH 04/10] locking: export osq_lock()/osq_unlock()

2018-05-18 Thread Kent Overstreet
On Fri, May 18, 2018 at 11:52:04AM +0200, Peter Zijlstra wrote: > On Fri, May 18, 2018 at 03:49:06AM -0400, Kent Overstreet wrote: > > No.. and most certainly not without a _very_ good reason. Ok, can I ask why? Here's what it's for: commit 61782bf71eef83919af100a9747d8d86df

Re: [PATCH 03/10] locking: bring back lglocks

2018-05-18 Thread Kent Overstreet
On Fri, May 18, 2018 at 11:51:02AM +0200, Peter Zijlstra wrote: > On Fri, May 18, 2018 at 03:49:04AM -0400, Kent Overstreet wrote: > > bcachefs makes use of them - also, add a proper lg_lock_init() > > Why?! lglocks are horrid things, we got rid of them for a reason. They > hav

Re: [PATCH 00/10] Misc block layer patches for bcachefs

2018-05-18 Thread Kent Overstreet
On Thu, May 17, 2018 at 08:54:57PM +, Bart Van Assche wrote: > On Tue, 2018-05-08 at 21:33 -0400, Kent Overstreet wrote: > > [ ... ] > > Hello Kent, > > With Jens' latest for-next branch I hit the kernel warning shown below. Can > you have a look? Any hints on h

[PATCH 01/10] mempool: Add mempool_init()/mempool_exit()

2018-05-18 Thread Kent Overstreet
Allows mempools to be embedded in other structs, getting rid of a pointer indirection from allocation fastpaths. mempool_exit() is safe to call on an uninitialized but zeroed mempool. Signed-off-by: Kent Overstreet --- include/linux/mempool.h | 34 + mm/mempool.c| 108

Re: [PATCH 00/10] RFC: assorted bcachefs patches

2018-05-18 Thread Kent Overstreet
shit, git send-email pebkac error - disregard all the block patches in the thread

[PATCH 02/10] block: Convert bio_set to mempool_init()

2018-05-18 Thread Kent Overstreet
Minor performance improvement by getting rid of pointer indirections from allocation/freeing fastpaths. Signed-off-by: Kent Overstreet --- block/bio-integrity.c | 29 ++--- block/bio.c | 36 +--- include/linux/bio.h | 10

[PATCH 03/10] block: Add bioset_init()/bioset_exit()

2018-05-18 Thread Kent Overstreet
Similarly to mempool_init()/mempool_exit(), take a pointer indirection out of allocation/freeing by allowing biosets to be embedded in other structs. Signed-off-by: Kent Overstreet --- block/bio.c | 93 +++-- include/linux/bio.h | 2 + 2 files

[PATCH 03/10] locking: bring back lglocks

2018-05-18 Thread Kent Overstreet
bcachefs makes use of them - also, add a proper lg_lock_init() Signed-off-by: Kent Overstreet --- include/linux/lglock.h | 97 + kernel/locking/Makefile | 1 + kernel/locking/lglock.c | 105 3 files changed, 203

[PATCH 05/10] block: Add bio_copy_data_iter(), zero_fill_bio_iter()

2018-05-18 Thread Kent Overstreet
Add versions that take bvec_iter args instead of using bio->bi_iter - to be used by bcachefs. Signed-off-by: Kent Overstreet --- block/bio.c | 44 include/linux/bio.h | 18 +++--- 2 files changed, 39 insertions(+), 23 deleti

[PATCH 04/10] block: Use bioset_init() for fs_bio_set

2018-05-18 Thread Kent Overstreet
Minor optimization - remove a pointer indirection when using fs_bio_set. Signed-off-by: Kent Overstreet --- block/bio.c | 7 +++ block/blk-core.c| 2 +- drivers/target/target_core_iblock.c | 2 +- include/linux/bio.h | 4 ++-- 4

[PATCH 05/10] don't use spin_lock_irqsave() unnecessarily

2018-05-18 Thread Kent Overstreet
Signed-off-by: Kent Overstreet --- mm/page-writeback.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/mm/page-writeback.c b/mm/page-writeback.c index 586f31261c..17ccc294c9 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c @@ -2460,20 +2460,19 @@ int

[PATCH 06/10] Generic radix trees

2018-05-18 Thread Kent Overstreet
Signed-off-by: Kent Overstreet --- include/linux/generic-radix-tree.h | 131 ++ lib/Makefile | 3 +- lib/generic-radix-tree.c | 167 + 3 files changed, 300 insertions(+), 1 deletion(-) create mode 100644 include

[PATCH 07/10] block: Add missing flush_dcache_page() call

2018-05-18 Thread Kent Overstreet
Since a bio can point to userspace pages (e.g. direct IO), this is generally necessary. Signed-off-by: Kent Overstreet --- block/bio.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/block/bio.c b/block/bio.c index c58544d4bc..ce8e259f9a 100644 --- a/block/bio.c +++ b/block/bio.c

[PATCH 07/10] bcache: optimize continue_at_nobarrier()

2018-05-18 Thread Kent Overstreet
Signed-off-by: Kent Overstreet --- drivers/md/bcache/closure.h | 11 --- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/md/bcache/closure.h b/drivers/md/bcache/closure.h index 3b9dfc9962..2392a46bcd 100644 --- a/drivers/md/bcache/closure.h +++ b/drivers/md/bcache

[PATCH 09/10] block: Export bio check/set pages_dirty

2018-05-18 Thread Kent Overstreet
Signed-off-by: Kent Overstreet --- block/bio.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/block/bio.c b/block/bio.c index 5c81391100..6689102f5d 100644 --- a/block/bio.c +++ b/block/bio.c @@ -1610,6 +1610,7 @@ void bio_set_pages_dirty(struct bio *bio

[PATCH 08/10] block: Add warning for bi_next not NULL in bio_endio()

2018-05-18 Thread Kent Overstreet
weird ways, add a warning to help avoid more bugs like that in the future. Signed-off-by: Kent Overstreet --- block/bio.c | 3 +++ block/blk-core.c | 8 +++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/block/bio.c b/block/bio.c index ce8e259f9a..5c81391100 100644

[PATCH 10/10] block: Add sysfs entry for fua support

2018-05-18 Thread Kent Overstreet
Signed-off-by: Kent Overstreet --- block/blk-sysfs.c | 11 +++ 1 file changed, 11 insertions(+) diff --git a/block/blk-sysfs.c b/block/blk-sysfs.c index cbea895a55..d6dd7d8198 100644 --- a/block/blk-sysfs.c +++ b/block/blk-sysfs.c @@ -497,6 +497,11 @@ static ssize_t queue_wc_store

[PATCH 09/10] closures: closure_wait_event()

2018-05-18 Thread Kent Overstreet
Signed-off-by: Kent Overstreet --- include/linux/closure.h | 22 ++ 1 file changed, 22 insertions(+) diff --git a/include/linux/closure.h b/include/linux/closure.h index 1072bf2c13..ef22d18f7c 100644 --- a/include/linux/closure.h +++ b/include/linux/closure.h @@ -375,4

[PATCH 10/10] Dynamic fault injection

2018-05-18 Thread Kent Overstreet
Signed-off-by: Kent Overstreet --- include/asm-generic/vmlinux.lds.h | 4 + include/linux/dynamic_fault.h | 117 + lib/Kconfig.debug | 5 + lib/Makefile | 2 + lib/dynamic_fault.c | 760 ++ 5 files

[PATCH 08/10] bcache: move closures to lib/

2018-05-18 Thread Kent Overstreet
Prep work for bcachefs - being a fork of bcache it also uses closures Signed-off-by: Kent Overstreet --- drivers/md/bcache/Kconfig | 10 +- drivers/md/bcache/Makefile | 6 +++--- drivers/md/bcache/bcache.h | 2 +- drivers/md

[PATCH 04/10] locking: export osq_lock()/osq_unlock()

2018-05-18 Thread Kent Overstreet
Signed-off-by: Kent Overstreet --- kernel/locking/osq_lock.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kernel/locking/osq_lock.c b/kernel/locking/osq_lock.c index 6ef600aa0f..dfa71347b0 100644 --- a/kernel/locking/osq_lock.c +++ b/kernel/locking/osq_lock.c @@ -202,6 +202,7 @@ bool

[PATCH 06/10] block: Split out bio_list_copy_data()

2018-05-18 Thread Kent Overstreet
this in the future. Signed-off-by: Kent Overstreet --- block/bio.c | 83 + drivers/block/pktcdvd.c | 2 +- include/linux/bio.h | 5 ++- 3 files changed, 55 insertions(+), 35 deletions(-) diff --git a/block/bio.c b/block/bio.c index

[PATCH 00/10] RFC: assorted bcachefs patches

2018-05-18 Thread Kent Overstreet
an see in debugfs every place you're allocating memory and fail all of them or just individually (I have tests that iterate over all the faults and flip them on one by one). I also use it in bcachefs to add fault injection points for uncommon error paths in the filesystem startup/recovery path, and

[PATCH 02/10] mm: export find_get_pages()

2018-05-18 Thread Kent Overstreet
Signed-off-by: Kent Overstreet --- mm/filemap.c | 1 + 1 file changed, 1 insertion(+) diff --git a/mm/filemap.c b/mm/filemap.c index 31dd888785..78b99019bf 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -1845,6 +1845,7 @@ unsigned find_get_pages_range(struct address_space *mapping, pgoff_t

[PATCH 01/10] mm: pagecache add lock

2018-05-18 Thread Kent Overstreet
Add a per address space lock around adding pages to the pagecache - making it possible for fallocate INSERT_RANGE/COLLAPSE_RANGE to work correctly, and also hopefully making truncate and dio a bit saner. Signed-off-by: Kent Overstreet --- fs/inode.c| 1 + include/linux/fs.h| 23

Re: [PATCH 00/10] Misc block layer patches for bcachefs

2018-05-14 Thread Kent Overstreet
Thanks! On Mon, May 14, 2018 at 3:24 PM, Jens Axboe wrote: > On 5/8/18 7:33 PM, Kent Overstreet wrote: >> - Add separately allowed mempools, biosets: bcachefs uses both all over the >>place >> >> - Bit of utility code - bio_copy_data_iter(), zero_fill_bio_iter()

Re: [PATCH 01/10] mempool: Add mempool_init()/mempool_exit()

2018-05-14 Thread Kent Overstreet
On Fri, May 11, 2018 at 03:11:45PM -0600, Jens Axboe wrote: > On 5/8/18 7:33 PM, Kent Overstreet wrote: > > Allows mempools to be embedded in other structs, getting rid of a > > pointer indirection from allocation fastpaths. > > > > mempool_exit() is safe to call on

Re: [PATCH 1/2] bcachefs: On disk data structures

2018-05-13 Thread Kent Overstreet
On Sun, May 13, 2018 at 01:30:06PM -0700, Randy Dunlap wrote: > On 05/08/2018 03:17 PM, Kent Overstreet wrote: > > + * The btree is the primary structure, most metadata exists as keys in the > > s/,/;/ nitpicky, but ok :P > > + * various btrees. There are only a small numb

Re: [PATCH 1/2] bcachefs: On disk data structures

2018-05-11 Thread Kent Overstreet
On Fri, May 11, 2018 at 06:32:33PM +1000, Dave Chinner wrote: > Hi Kent, > > I haven't really had time to digest this in any real detail, > but I've noticed a couple of things that worry me... > > On Tue, May 08, 2018 at 06:17:59PM -0400, Kent Overstreet wrote: > &

[PATCH 00/10] Misc block layer patches for bcachefs

2018-05-08 Thread Kent Overstreet
, because bcachefs does dio its own way - show whether fua is supported in sysfs, because I don't know of anything that exports whether the _block layer_ specifically thinks fua is supported. Kent Overstreet (10): mempool: Add mempool_init()/mempool_exit() block: Convert bio_set to mempool

[PATCH 03/10] block: Add bioset_init()/bioset_exit()

2018-05-08 Thread Kent Overstreet
Similarly to mempool_init()/mempool_exit(), take a pointer indirection out of allocation/freeing by allowing biosets to be embedded in other structs. Signed-off-by: Kent Overstreet --- block/bio.c | 93 +++-- include/linux/bio.h | 2 + 2 files

[PATCH 04/10] block: Use bioset_init() for fs_bio_set

2018-05-08 Thread Kent Overstreet
Minor optimization - remove a pointer indirection when using fs_bio_set. Signed-off-by: Kent Overstreet --- block/bio.c | 7 +++ block/blk-core.c| 2 +- drivers/target/target_core_iblock.c | 2 +- include/linux/bio.h | 4 ++-- 4

[PATCH 01/10] mempool: Add mempool_init()/mempool_exit()

2018-05-08 Thread Kent Overstreet
Allows mempools to be embedded in other structs, getting rid of a pointer indirection from allocation fastpaths. mempool_exit() is safe to call on an uninitialized but zeroed mempool. Signed-off-by: Kent Overstreet --- include/linux/mempool.h | 34 + mm/mempool.c| 108

[PATCH 05/10] block: Add bio_copy_data_iter(), zero_fill_bio_iter()

2018-05-08 Thread Kent Overstreet
Add versions that take bvec_iter args instead of using bio->bi_iter - to be used by bcachefs. Signed-off-by: Kent Overstreet --- block/bio.c | 44 include/linux/bio.h | 18 +++--- 2 files changed, 39 insertions(+), 23 deleti

[PATCH 06/10] block: Split out bio_list_copy_data()

2018-05-08 Thread Kent Overstreet
this in the future. Signed-off-by: Kent Overstreet --- block/bio.c | 83 + drivers/block/pktcdvd.c | 2 +- include/linux/bio.h | 5 ++- 3 files changed, 55 insertions(+), 35 deletions(-) diff --git a/block/bio.c b/block/bio.c index

[PATCH 08/10] block: Add warning for bi_next not NULL in bio_endio()

2018-05-08 Thread Kent Overstreet
weird ways, add a warning to help avoid more bugs like that in the future. Signed-off-by: Kent Overstreet --- block/bio.c | 3 +++ block/blk-core.c | 8 +++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/block/bio.c b/block/bio.c index ce8e259f9a..5c81391100 100644

[PATCH 09/10] block: Export bio check/set pages_dirty

2018-05-08 Thread Kent Overstreet
Signed-off-by: Kent Overstreet --- block/bio.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/block/bio.c b/block/bio.c index 5c81391100..6689102f5d 100644 --- a/block/bio.c +++ b/block/bio.c @@ -1610,6 +1610,7 @@ void bio_set_pages_dirty(struct bio *bio

[PATCH 10/10] block: Add sysfs entry for fua support

2018-05-08 Thread Kent Overstreet
Signed-off-by: Kent Overstreet --- block/blk-sysfs.c | 11 +++ 1 file changed, 11 insertions(+) diff --git a/block/blk-sysfs.c b/block/blk-sysfs.c index cbea895a55..d6dd7d8198 100644 --- a/block/blk-sysfs.c +++ b/block/blk-sysfs.c @@ -497,6 +497,11 @@ static ssize_t queue_wc_store

[PATCH 07/10] block: Add missing flush_dcache_page() call

2018-05-08 Thread Kent Overstreet
Since a bio can point to userspace pages (e.g. direct IO), this is generally necessary. Signed-off-by: Kent Overstreet --- block/bio.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/block/bio.c b/block/bio.c index c58544d4bc..ce8e259f9a 100644 --- a/block/bio.c +++ b/block/bio.c

[PATCH 02/10] block: Convert bio_set to mempool_init()

2018-05-08 Thread Kent Overstreet
Minor performance improvement by getting rid of pointer indirections from allocation/freeing fastpaths. Signed-off-by: Kent Overstreet --- block/bio-integrity.c | 29 ++--- block/bio.c | 36 +--- include/linux/bio.h | 10

[PATCH 2/2] bcachefs: Ioctl interface

2018-05-08 Thread Kent Overstreet
Signed-off-by: Kent Overstreet --- fs/bcachefs/bcachefs_ioctl.h | 182 +++ 1 file changed, 182 insertions(+) create mode 100644 fs/bcachefs/bcachefs_ioctl.h diff --git a/fs/bcachefs/bcachefs_ioctl.h b/fs/bcachefs/bcachefs_ioctl.h new file mode 100644 index

[PATCH 1/2] bcachefs: On disk data structures

2018-05-08 Thread Kent Overstreet
Signed-off-by: Kent Overstreet --- fs/bcachefs/bcachefs_format.h | 1448 + 1 file changed, 1448 insertions(+) create mode 100644 fs/bcachefs/bcachefs_format.h diff --git a/fs/bcachefs/bcachefs_format.h b/fs/bcachefs/bcachefs_format.h new file mode 100644 index

[PATCH 0/2] bcachefs: on disk data structures, ioctl interface - review requested for upstreaming

2018-05-08 Thread Kent Overstreet
untime, we don't actually have to teach bcachefs to read the bcache on disk format, except for the backing device superblock (which be really hard). Kent Overstreet (2): bcachefs: On disk data structures bcachefs: Ioctl interface fs/bcachefs/bcachefs_format.h | 1448

Re: [PATCH] bcache: Fix a sleep-in-atomic bug

2017-05-31 Thread Kent Overstreet
On Wed, May 31, 2017 at 03:23:40PM +0800, Jia-Ju Bai wrote: > The driver may sleep under a spin lock, and the function call path is: > journal_wait_for_write (acquire the lock by spin_lock) > closure_sync > schedule --> may sleep This patch is incorrect, you've introduced a double unlock. D

Re: [PATCH 09/11] bcache: use kmalloc to allocate bio in bch_data_verify()

2017-04-21 Thread Kent Overstreet
s, so the usage is inconsistent. > > Change the bio_clone() to bio_clone_kmalloc() > so that no pool is used either for the bio or the pages. > > Signed-off-by: NeilBrown Acked-by: Kent Overstreet ` > --- > drivers/md/bcache/debug.c |2 +- > 1 file changed, 1 insertion(+

Bcachefs - encryption, fsck, and more

2017-03-15 Thread Kent Overstreet
It's been far too long since the last announcement - lots of stuff has been happening. The biggest milestone has been all the breaking on disk format changes finally landing, but there's been lots of other stuff going on, too. On the subject of the breaking on disk format changes - there's an exce

Re: v4.9, 4.4-final: 28 bioset threads on small notebook, 36 threads on cellphone

2017-02-09 Thread Kent Overstreet
On Wed, Feb 08, 2017 at 11:34:07AM -0500, Mike Snitzer wrote: > On Tue, Feb 07 2017 at 11:58pm -0500, > Kent Overstreet wrote: > > > On Tue, Feb 07, 2017 at 09:39:11PM +0100, Pavel Machek wrote: > > > On Mon 2017-02-06 17:49:06, Kent Overstreet wrote: > > > >

Re: v4.9, 4.4-final: 28 bioset threads on small notebook, 36 threads on cellphone

2017-02-07 Thread Kent Overstreet
On Tue, Feb 07, 2017 at 09:39:11PM +0100, Pavel Machek wrote: > On Mon 2017-02-06 17:49:06, Kent Overstreet wrote: > > On Mon, Feb 06, 2017 at 04:47:24PM -0900, Kent Overstreet wrote: > > > On Mon, Feb 06, 2017 at 01:53:09PM +0100, Pavel Machek wrote: > > > > Stil

Re: v4.9, 4.4-final: 28 bioset threads on small notebook, 36 threads on cellphone

2017-02-06 Thread Kent Overstreet
On Mon, Feb 06, 2017 at 04:47:24PM -0900, Kent Overstreet wrote: > On Mon, Feb 06, 2017 at 01:53:09PM +0100, Pavel Machek wrote: > > Still there on v4.9, 36 threads on nokia n900 cellphone. > > > > So.. what needs to be done there? > But, I just got an idea for how to h

Re: v4.9, 4.4-final: 28 bioset threads on small notebook, 36 threads on cellphone

2017-02-06 Thread Kent Overstreet
; > > > ...and still there in 4.5-rc4 :-(. > > > > > > You're directing this concern to the wrong person. > > > > > > I already told you DM is _not_ contributing any extra "bioset" threads > > > (ever since commit dbba42d8a). > > > > Well, sorry about that.

Re: 4.8.8 kernel trigger OOM killer repeatedly when I have lots of RAM that should be free

2016-12-01 Thread Kent Overstreet
On Wed, Nov 30, 2016 at 03:30:11PM -0500, Tejun Heo wrote: > Hello, > > On Wed, Nov 30, 2016 at 10:14:50AM -0800, Linus Torvalds wrote: > > Tejun/Kent - any way to just limit the workqueue depth for bcache? > > Because that really isn't helping, and things *will* time out and > > cause those probl

<    1   2   3   4   5   6   7   8   9   10   >