Jens, elapsed time for `mke2fs /dev/hdc5' with the anticipatory scheduler
(at least) has gone from nine seconds to sixty as a result of the recent
block merge.
This is the enty enth time that block code has been slammed into mainline
without having had exposure to -mm testers or even to me personally, and it
it the second time (at least) that obvious regressions have occurred as a
result. I have a New Year's resolution for you ;)
On Thu, Dec 21 2006, Andrew Morton wrote:
>
> Jens, elapsed time for `mke2fs /dev/hdc5' with the anticipatory scheduler
> (at least) has gone from nine seconds to sixty as a result of the recent
> block merge.
About when? I'll double check and test here, I'm assuming you mean since
2.6.19?
> This is the enty enth time that block code has been slammed into mainline
> without having had exposure to -mm testers or even to me personally, and it
> it the second time (at least) that obvious regressions have occurred as a
> result. I have a New Year's resolution for you ;)
I usually try and make sure that for-akpm is the same as for-linus, so
if you pull that then it'll go to -mm as well. Sometimes the window
isn't that big, I'll try and make sure it's seen at least one -mm before
going upstream.
--
Jens Axboe
On Thu, Dec 21 2006, Jens Axboe wrote:
> On Thu, Dec 21 2006, Andrew Morton wrote:
> >
> > Jens, elapsed time for `mke2fs /dev/hdc5' with the anticipatory scheduler
> > (at least) has gone from nine seconds to sixty as a result of the recent
> > block merge.
>
> About when? I'll double check and test here, I'm assuming you mean since
> 2.6.19?
Auch, brown paper bag time, I spotted an obvious typo in the recent
merge. Does this fix it? It should be safe to kill the ->special check,
but lets leave that for another time.
diff --git a/block/elevator.c b/block/elevator.c
index 62c7a30..536be74 100644
--- a/block/elevator.c
+++ b/block/elevator.c
@@ -82,7 +82,7 @@ inline int elv_rq_merge_ok(struct reques
/*
* must be same device and not a special request
*/
- if (rq->rq_disk != bio->bi_bdev->bd_disk || !rq->special)
+ if (rq->rq_disk != bio->bi_bdev->bd_disk || rq->special)
return 0;
if (!elv_iosched_allow_merge(rq, bio))
--
Jens Axboe
On Thu, 21 Dec 2006 20:47:41 +0100
Jens Axboe <[email protected]> wrote:
> On Thu, Dec 21 2006, Jens Axboe wrote:
> > On Thu, Dec 21 2006, Andrew Morton wrote:
> > >
> > > Jens, elapsed time for `mke2fs /dev/hdc5' with the anticipatory scheduler
> > > (at least) has gone from nine seconds to sixty as a result of the recent
> > > block merge.
> >
> > About when? I'll double check and test here, I'm assuming you mean since
> > 2.6.19?
In yesterday's merge. I double-checked by testing yesterday's-Linus versus
yesterday's-Linus-plus-yesterday's-git-block. The latter was slow.
> Auch, brown paper bag time, I spotted an obvious typo in the recent
> merge. Does this fix it? It should be safe to kill the ->special check,
> but lets leave that for another time.
>
> diff --git a/block/elevator.c b/block/elevator.c
> index 62c7a30..536be74 100644
> --- a/block/elevator.c
> +++ b/block/elevator.c
> @@ -82,7 +82,7 @@ inline int elv_rq_merge_ok(struct reques
> /*
> * must be same device and not a special request
> */
> - if (rq->rq_disk != bio->bi_bdev->bd_disk || !rq->special)
> + if (rq->rq_disk != bio->bi_bdev->bd_disk || rq->special)
> return 0;
>
> if (!elv_iosched_allow_merge(rq, bio))
>
I shan't be near that machine for eight hours or so; shall test then.
On Thu, Dec 21 2006, Andrew Morton wrote:
> On Thu, 21 Dec 2006 20:47:41 +0100
> Jens Axboe <[email protected]> wrote:
>
> > On Thu, Dec 21 2006, Jens Axboe wrote:
> > > On Thu, Dec 21 2006, Andrew Morton wrote:
> > > >
> > > > Jens, elapsed time for `mke2fs /dev/hdc5' with the anticipatory scheduler
> > > > (at least) has gone from nine seconds to sixty as a result of the recent
> > > > block merge.
> > >
> > > About when? I'll double check and test here, I'm assuming you mean since
> > > 2.6.19?
>
> In yesterday's merge. I double-checked by testing yesterday's-Linus versus
> yesterday's-Linus-plus-yesterday's-git-block. The latter was slow.
>
> > Auch, brown paper bag time, I spotted an obvious typo in the recent
> > merge. Does this fix it? It should be safe to kill the ->special check,
> > but lets leave that for another time.
> >
> > diff --git a/block/elevator.c b/block/elevator.c
> > index 62c7a30..536be74 100644
> > --- a/block/elevator.c
> > +++ b/block/elevator.c
> > @@ -82,7 +82,7 @@ inline int elv_rq_merge_ok(struct reques
> > /*
> > * must be same device and not a special request
> > */
> > - if (rq->rq_disk != bio->bi_bdev->bd_disk || !rq->special)
> > + if (rq->rq_disk != bio->bi_bdev->bd_disk || rq->special)
> > return 0;
> >
> > if (!elv_iosched_allow_merge(rq, bio))
> >
>
> I shan't be near that machine for eight hours or so; shall test then.
I already verified it, that was the bug! I'll send it upstream.
--
Jens Axboe