[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
[linux-lvm] Re: [PATCH] per process request limits (was Re: IO scheduler, queuedepth, nr_requests)
- From: Andrew Morton <akpm osdl org>
- To: Nick Piggin <piggin cyberone com au>
- Cc: miquels cistron nl, axboe suse de, linux-lvm sistina com, linux-kernel vger kernel org, thornber redhat com
- Subject: [linux-lvm] Re: [PATCH] per process request limits (was Re: IO scheduler, queuedepth, nr_requests)
- Date: Thu Feb 19 21:32:00 2004
Nick Piggin <piggin cyberone com au> wrote:
>
>
>
> Andrew Morton wrote:
>
> >Nick Piggin <piggin cyberone com au> wrote:
> >
> >>Even with this patch, it might still be a good idea to allow
> >>pdflush to disregard the limits...
> >>
> >
> >Has it been confirmed that pdflush is blocking in get_request_wait()? I
> >guess that can happen very occasionally because we don't bother with any
> >locking around there but if it's happening a lot then something is bust.
> >
> >
>
> Miquel's analysis is pretty plausible, but I'm not sure if
> he's confirmed it or not, Miquel? Even if it isn't happening
> a lot, and something isn't bust it might be a good idea to
> do this.
Seems OK from a quick check. pdflush will block in get_request_wait()
occasionally, but not at all often. Perhaps we could move the
write_congested test into the mpage_writepages() inner loop but it hardly
seems worth the risk.
Maybe things are different on Miquel's clockwork controller.
drivers/block/ll_rw_blk.c | 2 ++
fs/fs-writeback.c | 2 ++
2 files changed, 4 insertions(+)
diff -puN drivers/block/ll_rw_blk.c~pdflush-blockage-check drivers/block/ll_rw_blk.c
--- 25/drivers/block/ll_rw_blk.c~pdflush-blockage-check 2004-02-19 18:16:33.000000000 -0800
+++ 25-akpm/drivers/block/ll_rw_blk.c 2004-02-19 18:16:33.000000000 -0800
@@ -1651,6 +1651,8 @@ static struct request *get_request_wait(
if (!rq) {
struct io_context *ioc;
+ WARN_ON(current_is_pdflush());
+
io_schedule();
/*
diff -puN fs/fs-writeback.c~pdflush-blockage-check fs/fs-writeback.c
--- 25/fs/fs-writeback.c~pdflush-blockage-check 2004-02-19 18:22:25.000000000 -0800
+++ 25-akpm/fs/fs-writeback.c 2004-02-19 18:22:43.000000000 -0800
@@ -279,6 +279,8 @@ sync_sb_inodes(struct super_block *sb, s
}
if (wbc->nonblocking && bdi_write_congested(bdi)) {
+ if (current_is_pdflush())
+ printk("saved pdflush\n");
wbc->encountered_congestion = 1;
if (sb != blockdev_superblock)
break; /* Skip a congested fs */
_
- References:
- [linux-lvm] Re: IO scheduler, queue depth, nr_requests
- [linux-lvm] Re: IO scheduler, queue depth, nr_requests
- From: Miquel van Smoorenburg
- [linux-lvm] Re: IO scheduler, queue depth, nr_requests
- From: Miquel van Smoorenburg
- [linux-lvm] Re: IO scheduler, queue depth, nr_requests
- [linux-lvm] Re: IO scheduler, queue depth, nr_requests
- From: Miquel van Smoorenburg
- [linux-lvm] Re: IO scheduler, queue depth, nr_requests
- [linux-lvm] Re: IO scheduler, queue depth, nr_requests
- From: Miquel van Smoorenburg
- [linux-lvm] Re: IO scheduler, queue depth, nr_requests
- [linux-lvm] Re: IO scheduler, queue depth, nr_requests
- From: Miquel van Smoorenburg
- [linux-lvm] Re: IO scheduler, queue depth, nr_requests
- [linux-lvm] Re: IO scheduler, queue depth, nr_requests
- From: Miquel van Smoorenburg
- [linux-lvm] [PATCH] per process request limits (was Re: IO scheduler, queue depth,nr_requests)
- [linux-lvm] Re: [PATCH] per process request limits (was Re: IO scheduler, queuedepth, nr_requests)
- [linux-lvm] Re: [PATCH] per process request limits (was Re: IO scheduler, queuedepth, nr_requests)
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]