Re: [git patches] IDE update

From: Jens Axboe (axboe_at_suse.de)
Date: 07/08/05

  • Next message: Steven Rostedt: "Re: Real-Time Preemption, -RT-2.6.12-final-V0.7.50-45"
    Date:	Fri, 8 Jul 2005 11:53:48 +0200
    To: Andrew Morton <akpm@osdl.org>
    
    

    On Fri, Jul 08 2005, Andrew Morton wrote:
    > Jens Axboe <axboe@suse.de> wrote:
    > >
    > > Some more investigation - it appears to be broken read-ahead, actually.
    > > hdparm does repeated read(), lseek() loops which causes the read-ahead
    > > logic to mark the file as being in cache (since it reads the same chunk
    > > every time). Killing the INCACHE check (attached) makes it work fine for
    > > me, Grant can you test if it "fixes" it for you as well?
    > >
    > > No ideas how to fix the read-ahead logic right now, I pondered some
    > > depedency on sequential but I don't see how it can work correctly for
    > > other cases. Perhaps handle_ra_miss() just isn't being called
    > > appropriately everywhere?
    > >
    > > --- mm/readahead.c~ 2005-07-08 11:16:14.000000000 +0200
    > > +++ mm/readahead.c 2005-07-08 11:17:49.000000000 +0200
    > > @@ -351,7 +351,9 @@
    > > ra->cache_hit += nr_to_read;
    > > if (ra->cache_hit >= VM_MAX_CACHE_HIT) {
    > > ra_off(ra);
    > > +#if 0
    > > ra->flags |= RA_FLAG_INCACHE;
    > > +#endif
    > > return 0;
    > > }
    > > } else {
    >
    > Interesting. We should be turning that back off in handle_ra_miss() as
    > soon as hdparm seeks away. I'd be suspecting that we're not correctly
    > undoing the resutls of ra_off() within handle_ra_miss(), except you didn't
    > comment that bit out.
    >
    > Or the readahead code is working as intended, and hdparm is doing something
    > really weird which trips it up.
    >
    > hdparm should also be misbehaving when run against a regular file, but it
    > looks like hdparm would need some alterations to test that.

    Just use the test app I posted, it shows the problem just fine. If I use
    a regular file, behaviour is identical as expected (ie equally broken
    :-).

    bart:/data1 # ./read_disk ./test 1
    Mem Throughput: 101 MiB/sec
    Mem Throughput: 103 MiB/sec
    Disk Throughput: 22 MiB/sec

    bart:/data1 # ./read_disk ./test
    Disk Throughput: 29 MiB/sec

    -- 
    Jens Axboe
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at  http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at  http://www.tux.org/lkml/
    

  • Next message: Steven Rostedt: "Re: Real-Time Preemption, -RT-2.6.12-final-V0.7.50-45"