> Il giorno 11 apr 2017, alle ore 20:31, Bart Van Assche
> ha scritto:
>
> On Tue, 2017-04-11 at 19:37 +0200, Paolo Valente wrote:
>> Just pushed:
>> https://github.com/Algodev-github/bfq-mq/tree/add-bfq-mq-logical
>
> Thanks!
>
> But are you aware that the code
> + if (sb->s_iflags & SB_I_DYNBDI) {
> + bdi_put(sb->s_bdi);
> + sb->s_bdi = _backing_dev_info;
At some point I'd really like to get rid of noop_backing_dev_info and
have a NULL here..
Otherwise this looks fine..
Reviewed-by: Christoph Hellwig
Looks fine,
Reviewed-by: Christoph Hellwig
Looks fine,
Reviewed-by: Christoph Hellwig
> On 12 Apr 2017, at 00.23, Bart Van Assche wrote:
>
> On Wed, 2017-04-12 at 00:13 +0200, Javier González wrote:
>> please point out to any other tools/concerns you may have.
>
> Hello Javier,
>
> Do you already have an account at https://scan.coverity.com/? Any
On Wed, Mar 29, 2017 at 12:56:01PM +0200, Jan Kara wrote:
> MTD will want to call bdi_alloc_node() and bdi_put() directly. Export
> these functions.
>
> Signed-off-by: Jan Kara
Looks fine,
Reviewed-by: Christoph Hellwig
On Wed, Mar 29, 2017 at 12:56:16PM +0200, Jan Kara wrote:
> Similarly to set_bdev_super() GFS2 just used block device reference to
> bdi. Convert it to properly getting bdi reference. The reference will
> get automatically dropped on superblock destruction.
Hmm, why iisn't gfs2 simply using the
On Mon, Apr 10, 2017 at 01:05:50PM -0500, Steve Wise wrote:
> I'll test cxgb4 if you convert it. :)
That will take a lot of work. The problem with cxgb4 is that it
allocatesd all the interrupts at device enable time, but then only
allocates them to ULDs when they attached, while this scheme
Looks fine,
Reviewed-by: Christoph Hellwig
Looks fine,
Reviewed-by: Christoph Hellwig
Looks good,
Reviewed-by: Christoph Hellwig
Looks good,
Reviewed-by: Christoph Hellwig
Looks fine,
Reviewed-by: Christoph Hellwig
> /*
> * Finish setting up an NFS2/3 superblock
> */
I was just looking why you didn't update the v4 variant, but it seems
like the comment above is simply incorrect..
Thus the patch looks fine:
Reviewed-by: Christoph Hellwig
Looks good,
Reviewed-by: Christoph Hellwig
Looks good,
Reviewed-by: Christoph Hellwig
On 04/12/2017 07:58 AM, Christoph Hellwig wrote:
> Any comments? Getting rid of this driver which was never wired up
> at all would help with some of the pending block work..
>
> On Thu, Apr 06, 2017 at 01:28:46PM +0200, Christoph Hellwig wrote:
>> This drivers was added in 2008, but as far as a
> + sb->s_bdi = bdi_get(mtd_bdi);
> + sb->s_iflags |= SB_I_DYNBDI;
FTI, while I think this is a faithful conversion of the existing code,
the single bdi for all MTD devices looks rather bogus to me..
Otherwise this looks good:
Reviewed-by: Christoph Hellwig
Looks good,
Reviewed-by: Christoph Hellwig
Looks good,
Reviewed-by: Christoph Hellwig
On Wed, Mar 29, 2017 at 12:56:17PM +0200, Jan Kara wrote:
> Similarly to set_bdev_super() NILFS2 just used block device reference to
> bdi. Convert it to properly getting bdi reference. The reference will
> get automatically dropped on superblock destruction.
I really wish we could get rid of
Looks good,
Reviewed-by: Christoph Hellwig
>
> + if (unlikely(iocb->aio_rw_flags & ~(RWF_HIPRI | RWF_DSYNC | RWF_SYNC)))
> {
> + pr_debug("EINVAL: aio_rw_flags set with incompatible flags\n");
> + return -EINVAL;
> + }
> + if (iocb->aio_rw_flags & RWF_HIPRI)
> + req->common.ki_flags |=
On Wed 12-04-17 01:14:06, Christoph Hellwig wrote:
> > + sb->s_bdi = bdi_get(mtd_bdi);
> > + sb->s_iflags |= SB_I_DYNBDI;
>
> FTI, while I think this is a faithful conversion of the existing code,
> the single bdi for all MTD devices looks rather bogus to me..
Yeah, I don't understand why
Similarly to set_bdev_super() GFS2 just used block device reference to
bdi. Convert it to properly getting bdi reference. The reference will
get automatically dropped on superblock destruction.
CC: Steven Whitehouse
CC: Bob Peterson
CC:
It is not needed anymore since bdi is initialized whenever superblock
exists.
CC: Miklos Szeredi
CC: linux-fsde...@vger.kernel.org
Suggested-by: Miklos Szeredi
Reviewed-by: Christoph Hellwig
Signed-off-by: Jan Kara
---
Allocate struct backing_dev_info separately instead of embedding it
inside the superblock. This unifies handling of bdi among users.
CC: Tyler Hicks
CC: ecryp...@vger.kernel.org
Acked-by: Tyler Hicks
Reviewed-by: Christoph Hellwig
Allocate struct backing_dev_info separately instead of embedding it
inside the superblock. This unifies handling of bdi among users.
CC: Boaz Harrosh
CC: Benny Halevy
Acked-by: Boaz Harrosh
Reviewed-by: Christoph Hellwig
Allocate struct backing_dev_info separately instead of embedding it
inside the superblock. This unifies handling of bdi among users.
CC: Jan Harkes
CC: c...@cs.cmu.edu
CC: codal...@coda.cs.cmu.edu
Reviewed-by: Christoph Hellwig
Signed-off-by: Jan Kara
Allocate struct backing_dev_info separately instead of embedding it
inside session. This unifies handling of bdi among users.
CC: Eric Van Hensbergen
CC: Ron Minnich
CC: Latchesar Ionkov
CC: v9fs-develo...@lists.sourceforge.net
Allocate struct backing_dev_info separately instead of embedding it
inside the superblock. This unifies handling of bdi among users.
CC: Petr Vandrovec
Acked-by: Petr Vandrovec
Reviewed-by: Christoph Hellwig
Signed-off-by: Jan Kara
Drop 'parent' argument of bdi_register() and bdi_register_va(). It is
always NULL.
Reviewed-by: Christoph Hellwig
Signed-off-by: Jan Kara
---
drivers/mtd/mtdcore.c | 2 +-
fs/super.c | 2 +-
include/linux/backing-dev.h | 9 -
Allocate struct backing_dev_info separately instead of embedding it
inside superblock. This unifies handling of bdi among users.
CC: Oleg Drokin
CC: Andreas Dilger
CC: James Simmons
CC: lustre-de...@lists.lustre.org
Now that all backing_dev_info structure are allocated separately, we can
drop some unused functions.
Reviewed-by: Christoph Hellwig
Signed-off-by: Jan Kara
---
include/linux/backing-dev.h | 5
mm/backing-dev.c| 56
Allocate struct backing_dev_info separately instead of embedding it
inside the superblock. This unifies handling of bdi among users.
CC: Miklos Szeredi
CC: linux-fsde...@vger.kernel.org
Acked-by: Miklos Szeredi
Reviewed-by: Christoph Hellwig
Now that all bdi structures filesystems use are properly refcounted, we
can remove the SB_I_DYNBDI flag.
Reviewed-by: Christoph Hellwig
Signed-off-by: Jan Kara
---
drivers/mtd/mtdsuper.c | 1 -
fs/gfs2/ops_fstype.c | 1 -
fs/nfs/super.c | 1 -
MTD already allocates backing_dev_info dynamically. Convert it to use
generic infrastructure for this including proper refcounting. We drop
mtd->backing_dev_info as its only use was to pass mtd_bdi pointer from
one file into another and if we wanted to keep that in a clean way, we'd
have to make
Just some trivial cleanup patches that I'd like to offload from
a big series in the pipe..
This function is not used anywhere in the kernel.
Signed-off-by: Christoph Hellwig
---
block/blk-core.c | 18 --
include/linux/blkdev.h | 1 -
2 files changed, 19 deletions(-)
diff --git a/block/blk-core.c b/block/blk-core.c
index 8aee417c1e4f..a01af9ca0455
blk_insert_flush should be using __blk_end_request to start with.
Signed-off-by: Christoph Hellwig
---
block/blk-core.c | 2 +-
block/blk-flush.c | 2 +-
block/blk.h | 2 --
3 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/block/blk-core.c b/block/blk-core.c
Both functions are entirely unused.
Signed-off-by: Christoph Hellwig
---
block/blk-core.c | 39 ---
include/linux/blkdev.h | 2 --
2 files changed, 41 deletions(-)
diff --git a/block/blk-core.c b/block/blk-core.c
index
On Fri, Apr 07, 2017 at 11:16:48AM -0700, Bart Van Assche wrote:
> Hello Jens,
>
> The six patches in this patch series fix the queue lockup I reported
> recently on the linux-block mailing list. Please consider these patches
> for inclusion in the upstream kernel.
>
Hey Bart,
just out of
Now that we don't have to support the odd Write Same special case
we can simply increment the iter if the bio has data, else just
manipulate bi_size directly.
Signed-off-by: Christoph Hellwig
---
include/linux/bio.h | 13 +++--
1 file changed, 3 insertions(+), 10
From: Nicholas Bellinger
The people who are actively using iblock_execute_write_same_direct() are
doing so in the context of ESX VAAI BlockZero, together with
EXTENDED_COPY and COMPARE_AND_WRITE primitives.
In practice though I've not seen any users of IBLOCK WRITE_SAME
There are no more end-users of REQ_OP_WRITE_SAME left, so we can start
deleting it.
Signed-off-by: Christoph Hellwig
---
drivers/scsi/sd.c | 70 ---
drivers/scsi/sd_zbc.c | 1 -
2 files changed, 71 deletions(-)
diff --git
Signed-off-by: Christoph Hellwig
---
drivers/md/dm-core.h | 1 -
drivers/md/dm-io.c| 21 +
drivers/md/dm-linear.c| 1 -
drivers/md/dm-mpath.c | 1 -
drivers/md/dm-rq.c| 3 ---
drivers/md/dm-stripe.c| 4
Linux only used it for zeroing, for which we have better methods now.
Signed-off-by: Christoph Hellwig
---
drivers/block/drbd/drbd_main.c | 28 ++
drivers/block/drbd/drbd_nl.c | 60 --
drivers/block/drbd/drbd_receiver.c
Signed-off-by: Christoph Hellwig
---
drivers/md/linear.c| 1 -
drivers/md/md.h| 7 ---
drivers/md/multipath.c | 1 -
drivers/md/raid0.c | 2 --
drivers/md/raid1.c | 4 +---
drivers/md/raid10.c| 1 -
drivers/md/raid5.c | 1 -
7 files changed, 1
Signed-off-by: Christoph Hellwig
---
block/bio.c | 3 --
block/blk-core.c| 11 +-
block/blk-lib.c | 90 -
block/blk-merge.c | 32
block/blk-settings.c| 16
Hi,
On 12/04/17 09:16, Christoph Hellwig wrote:
On Wed, Mar 29, 2017 at 12:56:16PM +0200, Jan Kara wrote:
Similarly to set_bdev_super() GFS2 just used block device reference to
bdi. Convert it to properly getting bdi reference. The reference will
get automatically dropped on superblock
Now that Write Same is gone and discard bios never have a payload we
can simply use bio_has_data as an indicator that the bio has bvecs
that need to be handled.
Signed-off-by: Christoph Hellwig
---
block/bio.c | 8 +---
block/blk-merge.c | 9 +
Now that we are using REQ_OP_WRITE_ZEROES for all zeroing needs in the
kernel there is very little use left for REQ_OP_WRITE_SAME. We only
have two callers left, and both just export optional protocol features
to remote systems: DRBD and the target code.
For the target code the only real use
On Wed 12-04-17 01:20:34, Christoph Hellwig wrote:
> > /*
> > * Finish setting up an NFS2/3 superblock
> > */
>
> I was just looking why you didn't update the v4 variant, but it seems
> like the comment above is simply incorrect..
Yes, it's used for NFS4 as well AFAICT.
> Thus the patch
Most users will want to unregister bdi when dropping last reference to a
bdi. Only a few users (like block devices) want to play more complex
tricks with bdi registration and unregistration. So unregister bdi when
the last reference to bdi is dropped and just make sure we don't
unregister the bdi
On Thu, Apr 06, 2017 at 05:39:29PM +0200, Christoph Hellwig wrote:
> In thruth I've just audited which blk-mq drivers don't currently have a
> complete callback, but I think this change is at least borderline useful.
>
> Signed-off-by: Christoph Hellwig
> ---
> drivers/block/loop.c
MTD will want to call bdi_alloc_node() and bdi_put() directly. Export
these functions.
Reviewed-by: Christoph Hellwig
Signed-off-by: Jan Kara
---
mm/backing-dev.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/mm/backing-dev.c b/mm/backing-dev.c
index
On 04/11, Paolo Valente wrote:
>
>> Il giorno 02 apr 2017, alle ore 12:02, kbuild test robot ha
>> scritto:
>>
>> Hi Paolo,
>>
>> [auto build test ERROR on block/for-next]
>> [also build test ERROR on v4.11-rc4 next-20170331]
>> [if your patch is applied to the wrong git tree,
As mentioned last time around, this should be a REQ_NOWAIT flag so
that it can be easily passed down to the request layer.
> +static inline void bio_wouldblock_error(struct bio *bio)
> +{
> + bio->bi_error = -EAGAIN;
> + bio_endio(bio);
> +}
Please skip this helper..
> +#define
This should go into the patch that introduces IOCB_NOWAIT.
On Thu, Apr 06, 2017 at 04:00:24PM -0400, Konrad Rzeszutek Wilk wrote:
> You wouldn't have a git tree to easily test it? Thanks.
Did you manage to give it a spin now that I pointed you to the git
tree?
Any more comments on these patches? I'd like to make some progress
on this work.
Provide helper functions for setting up dynamically allocated
backing_dev_info structures for filesystems and cleaning them up on
superblock destruction.
CC: linux-...@lists.infradead.org
CC: linux-...@vger.kernel.org
CC: Petr Vandrovec
CC: linux-ni...@vger.kernel.org
CC:
Allocate struct backing_dev_info separately instead of embedding it
inside client structure. This unifies handling of bdi among users.
CC: Ilya Dryomov
CC: "Yan, Zheng"
CC: Sage Weil
CC: ceph-de...@vger.kernel.org
Reviewed-by: Christoph
Allocate struct backing_dev_info separately instead of embedding it
inside the superblock. This unifies handling of bdi among users.
CC: David Howells
CC: linux-...@lists.infradead.org
Reviewed-by: Christoph Hellwig
Signed-off-by: Jan Kara
---
Hello,
this is the third revision of the patch series which converts all embedded
occurences of struct backing_dev_info to use standalone dynamically allocated
structures. This makes bdi handling unified across all bdi users and generally
removes some boilerplate code from filesystems setting up
Allocate struct backing_dev_info separately instead of embedding it
inside the superblock. This unifies handling of bdi among users.
CC: Trond Myklebust
CC: Anna Schumaker
CC: linux-...@vger.kernel.org
Reviewed-by: Christoph Hellwig
Similarly to set_bdev_super() NILFS2 just used block device reference to
bdi. Convert it to properly getting bdi reference. The reference will
get automatically dropped on superblock destruction.
CC: Ryusuke Konishi
CC: linux-ni...@vger.kernel.org
Reviewed-by:
Add function that registers bdi and takes va_list instead of variable
number of arguments.
Add bdi_alloc() as simple wrapper for NUMA-unaware users allocating BDI.
Reviewed-by: Christoph Hellwig
Signed-off-by: Jan Kara
---
include/linux/backing-dev.h | 6 ++
Allocate struct backing_dev_info separately instead of embedding it
inside the superblock. This unifies handling of bdi among users.
CC: Richard Weinberger
CC: Artem Bityutskiy
CC: Adrian Hunter
CC: linux-...@lists.infradead.org
Allocate struct backing_dev_info separately instead of embedding it
inside superblock. This unifies handling of bdi among users.
CC: Steve French
CC: linux-c...@vger.kernel.org
Reviewed-by: Christoph Hellwig
Signed-off-by: Jan Kara
---
So far we just relied on block device to hold a bdi reference for us
while the filesystem is mounted. While that works perfectly fine, it is
a bit awkward that we have a pointer to a refcounted structure in the
superblock without proper reference. So make s_bdi hold a proper
reference to block
On 2017/04/12 19:24, Jan Kara wrote:
Similarly to set_bdev_super() NILFS2 just used block device reference to
bdi. Convert it to properly getting bdi reference. The reference will
get automatically dropped on superblock destruction.
CC: Ryusuke Konishi
CC:
Looks fine,
Reviewed-by: Christoph Hellwig
Looks fine,
Reviewed-by: Christoph Hellwig
Looks fine,
Reviewed-by: Christoph Hellwig
Looks fine,
Reviewed-by: Christoph Hellwig
Hi Matias,
A last spin to fix a regression that I introduced yesterday on v4. This
should be the one.
Thanks,
Javier
Changes since v5:
* Fix regression on the erase scheduler introduced on v4
Changes since v4:
* Rebase on top of Matias' for-4.12/core
* Fix type implicit conversions reported by
The only real user of the T10 OSD protocol, the pNFS object layout
driver never went to the point of having shipping products, and the
other two users (osdblk and exofs) were simple example of it's usage.
The code has been mostly unmaintained for years and is getting in the
way of block / SCSI
To guarantee a low latency also to the I/O requests issued by soft
real-time applications, this patch introduces a further heuristic,
which weight-raises (in the sense explained in the previous patch)
also the queues associated to applications deemed as soft real-time.
To be deemed as soft
From: Arianna Avanzini
Many popular I/O-intensive services or applications spawn or
reactivate many parallel threads/processes during short time
intervals. Examples are systemd during boot or git grep. These
services or applications benefit mostly from a high
From: Arianna Avanzini
A seeky queue (i..e, a queue containing random requests) is assigned a
very small device-idling slice, for throughput issues. Unfortunately,
given the process associated with a seeky queue, this behavior causes
the following problem: if the
When a bfq queue is set in service and when it is merged, a reference
to the I/O context associated with the queue is taken. This reference
is then released when the queue is deselected from service or
split. More precisely, the release of the reference is postponed to
when the scheduler lock is
On Wed, 2017-04-12 at 08:01 +0200, Paolo Valente wrote:
> Where is my mistake?
I think in the Makefile. How about the patch below? Please note that I'm no
Kbuild expert.
diff --git a/block/Makefile b/block/Makefile
index 546066ee7fa6..b3711af6b637 100644
--- a/block/Makefile
+++ b/block/Makefile
The objlayout code has been in the tree, but it's been unmaintained and
no server product for it actually ever shipped.
Signed-off-by: Christoph Hellwig
---
Documentation/admin-guide/kernel-parameters.txt | 6 -
Documentation/filesystems/nfs/pnfs.txt | 37 --
This patch deals with two sources of unfairness, which can also cause
high latencies and throughput loss. The first source is related to
write requests. Write requests tend to starve read requests, basically
because, on one side, writes are slower than reads, whereas, on the
other side, storage
Unless the maximum budget B_max that BFQ can assign to a queue is set
explicitly by the user, BFQ automatically updates B_max. In
particular, BFQ dynamically sets B_max to the number of sectors that
can be read, at the current estimated peak rate, during the maximum
time, T_max, allowed before a
The feedback-loop algorithm used by BFQ to compute queue (process)
budgets is basically a set of three update rules, one for each of the
main reasons why a queue may be expired. If many processes suddenly
switch from sporadic I/O to greedy and sequential I/O, then these
rules are quite slow to
From: Gabriel Krisman Bertazi
[ Upstream commit 36e1f3d107867b25c616c2fd294f5a1c9d4e5d09 ]
While stressing memory and IO at the same time we changed SMT settings,
we were able to consistently trigger deadlocks in the mm system, which
froze the entire machine.
I
From: Gabriel Krisman Bertazi
[ Upstream commit 36e1f3d107867b25c616c2fd294f5a1c9d4e5d09 ]
While stressing memory and IO at the same time we changed SMT settings,
we were able to consistently trigger deadlocks in the mm system, which
froze the entire machine.
I
On 04/12/2017 03:36 AM, Christoph Hellwig wrote:
> As mentioned last time around, this should be a REQ_NOWAIT flag so
> that it can be easily passed dow? n to the request layer.
>
>> +static inline void bio_wouldblock_error(struct bio *bio)
>> +{
>> +bio->bi_error = -EAGAIN;
>> +
On Wed, 2017-04-12 at 12:55 +0200, Benjamin Block wrote:
> On Fri, Apr 07, 2017 at 11:16:48AM -0700, Bart Van Assche wrote:
> > The six patches in this patch series fix the queue lockup I reported
> > recently on the linux-block mailing list. Please consider these patches
> > for inclusion in the
On Wed, 2017-04-12 at 13:01 +0800, Ming Lei wrote:
> On Wed, Apr 12, 2017 at 7:58 AM, Bart Van Assche
> wrote:
> >
> > diff --git a/block/blk-exec.c b/block/blk-exec.c
> > index 8cd0e9bc8dc8..f7d9bed2cb15 100644
> > --- a/block/blk-exec.c
> > +++ b/block/blk-exec.c
>
On Wed, 2017-04-12 at 11:42 +0800, Ming Lei wrote:
> On Tue, Apr 11, 2017 at 06:18:36PM +, Bart Van Assche wrote:
> > On Tue, 2017-04-11 at 14:03 -0400, Mike Snitzer wrote:
> > > Rather than working so hard to use DM code against me, your argument
> > > should be: "blk-mq drivers X, Y and Z
Hi Paolo,
[auto build test ERROR on block/for-next]
[also build test ERROR on v4.11-rc6 next-20170412]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system]
url:
https://github.com/0day-ci/linux/commits/Paolo-Valente/Introduce-the-BFQ-I-O
Hi Paolo,
[auto build test ERROR on block/for-next]
[also build test ERROR on v4.11-rc6 next-20170412]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system]
url:
https://github.com/0day-ci/linux/commits/Paolo-Valente/Introduce-the-BFQ-I-O
On 04/12/2017 03:19 PM, Javier González wrote:
This patch introduces pblk, a host-side translation layer for
Open-Channel SSDs to expose them like block devices. The translation
layer allows data placement decisions, and I/O scheduling to be
managed by the host, enabling users to optimize the
Hi Arianna,
[auto build test ERROR on block/for-next]
[also build test ERROR on v4.11-rc6 next-20170412]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system]
url:
https://github.com/0day-ci/linux/commits/Paolo-Valente/Introduce-the-BFQ-I-O
On Wed, Apr 12, 2017 at 06:38:07PM +, Bart Van Assche wrote:
> On Wed, 2017-04-12 at 11:42 +0800, Ming Lei wrote:
> > On Tue, Apr 11, 2017 at 06:18:36PM +, Bart Van Assche wrote:
> > > On Tue, 2017-04-11 at 14:03 -0400, Mike Snitzer wrote:
> > > > Rather than working so hard to use DM code
On Thu, Apr 13, 2017 at 2:24 AM, Bart Van Assche
wrote:
> On Wed, 2017-04-12 at 13:01 +0800, Ming Lei wrote:
>> On Wed, Apr 12, 2017 at 7:58 AM, Bart Van Assche
>> wrote:
>> >
>> > diff --git a/block/blk-exec.c b/block/blk-exec.c
>> > index
99 matches
Mail list logo