public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Steven Pratt <slpratt@austin.ibm.com>
To: Jens Axboe <axboe@suse.de>
Cc: Andrew Morton <akpm@osdl.org>,
	torvalds@osdl.org, grant_lkml@dodo.com.au,
	linux@rainbow-software.org, andre@tomt.net, a1426z@gawab.com,
	linux-kernel@vger.kernel.org
Subject: Re: [git patches] IDE update
Date: Fri, 08 Jul 2005 17:25:21 -0500	[thread overview]
Message-ID: <42CEFD51.5030807@austin.ibm.com> (raw)
In-Reply-To: <20050708095335.GD7050@suse.de>

Jens Axboe wrote:

>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
>  
>

I don't see how this is broken.  The INCACHE flag should be cleared on 
the first miss.  We will start up I/O slightly slower in this case since 
it is not 1st IO, but within about 5 or 6 reads we should be back to 
normal max_readahead behavior.  This is what I see on my old laptop.


patches:/home/slpratt # ./readdisk /dev/hda
Disk Throughput: 16 MiB/sec
patches:/home/slpratt # ./readdisk /dev/hda 1
Mem Throughput: 145 MiB/sec
Mem Throughput: 153 MiB/sec
Disk Throughput: 16 MiB/sec


Can you post iostat -x output from your runs.  Are we doing the right 
sized IO?

Steve




  reply	other threads:[~2005-07-08 22:28 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-07-03 16:52 [git patches] IDE update Bartlomiej Zolnierkiewicz
2005-07-04 12:01 ` Al Boldi
2005-07-04 12:30   ` Bartlomiej Zolnierkiewicz
2005-07-04 15:30     ` Al Boldi
2005-07-04 15:41       ` Bartlomiej Zolnierkiewicz
2005-07-04 17:06         ` Al Boldi
2005-07-04 17:38           ` Ondrej Zary
2005-07-04 19:51             ` Bartlomiej Zolnierkiewicz
2005-07-04 20:32               ` Al Boldi
2005-07-04 20:47                 ` Bartlomiej Zolnierkiewicz
2005-07-04 23:25                 ` André Tomt
2005-07-05  3:43                   ` IOWAIT block layer problem Al Boldi
2005-07-05 10:01                   ` [git patches] IDE update Ondrej Zary
2005-07-05 10:14                     ` Jens Axboe
2005-07-05 10:19                       ` Ondrej Zary
2005-07-05 10:42                         ` Jens Axboe
2005-07-05 12:35                           ` Ondrej Zary
2005-07-05 12:51                             ` Jens Axboe
2005-07-05 13:02                               ` Ondrej Zary
2005-07-05 13:11                                 ` Jens Axboe
2005-07-05 15:51                                   ` Ondrej Zary
2005-07-05 14:21                                     ` Jens Axboe
2005-07-05 15:00                                       ` Ondrej Zary
2005-07-05 19:18                                         ` Jens Axboe
2005-07-05 19:25                                         ` Jens Axboe
2005-07-05 21:36                                           ` Ondrej Zary
2005-07-05 17:27                                       ` Linus Torvalds
2005-07-05 19:14                                         ` Jens Axboe
2005-07-05 21:39                                           ` Ondrej Zary
2005-07-11 14:21                                           ` Alan Cox
2005-07-06  0:35                                       ` Grant Coady
2005-07-06  0:51                                         ` Linus Torvalds
2005-07-06  3:26                                           ` Al Boldi
2005-07-06  4:56                                           ` Grant Coady
2005-07-06  5:22                                             ` Linus Torvalds
2005-07-08  8:48                                               ` Jens Axboe
2005-07-08  9:24                                                 ` Jens Axboe
2005-07-08  9:34                                                   ` Andrew Morton
2005-07-08  9:53                                                     ` Jens Axboe
2005-07-08 22:25                                                       ` Steven Pratt [this message]
2005-07-09  5:40                                                         ` Jens Axboe
2005-07-09 21:39                                                           ` Al Boldi
2005-07-08 10:20                                                 ` Ingo Molnar
2005-07-08 11:45                                                   ` Jens Axboe
2005-07-07 22:32                                         ` Mark Lord
2005-07-08  0:06                                           ` Grant Coady
2005-07-08 11:37                                             ` Erik Slagter
2005-07-06 20:56                         ` Bill Davidsen
2005-07-07 13:47                           ` Ondrej Zary
2005-07-07 13:48                           ` Bartlomiej Zolnierkiewicz
2005-07-07 19:34                             ` Bill Davidsen
2005-07-05  2:47 ` Jeff Garzik
  -- strict thread matches above, loose matches on Subject: below --
2005-08-18 21:37 [git patches] ide update Bartlomiej Zolnierkiewicz
2005-08-18 22:15 ` Linus Torvalds
2005-08-18 22:19   ` Nish Aravamudan
2005-08-19  0:44   ` Mark Lord
2005-08-18 23:08 ` Alan Cox
2005-08-19  9:02   ` Bartlomiej Zolnierkiewicz
2005-08-19 18:06     ` Alan Cox
2005-08-19 23:51       ` Bartlomiej Zolnierkiewicz
2005-08-19 23:52         ` Bartlomiej Zolnierkiewicz
2005-11-10  1:00 Bartlomiej Zolnierkiewicz
2005-11-18 23:21 Bartlomiej Zolnierkiewicz
2005-11-19 23:46 Bartlomiej Zolnierkiewicz
2005-12-15  2:03 Bartlomiej Zolnierkiewicz
2007-05-09 22:46 [git patches] IDE update Bartlomiej Zolnierkiewicz
2007-05-09 22:46 ` Jeff Garzik
2007-05-09 23:20   ` David Miller
2007-05-09 23:23   ` Bartlomiej Zolnierkiewicz
2007-05-09 23:18     ` Jeff Garzik
2007-05-09 22:47 ` Jeff Garzik
2007-05-09 22:59   ` Andrew Morton
2007-05-09 23:15     ` Jeff Garzik
2007-07-09 21:46 Bartlomiej Zolnierkiewicz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=42CEFD51.5030807@austin.ibm.com \
    --to=slpratt@austin.ibm.com \
    --cc=a1426z@gawab.com \
    --cc=akpm@osdl.org \
    --cc=andre@tomt.net \
    --cc=axboe@suse.de \
    --cc=grant_lkml@dodo.com.au \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@rainbow-software.org \
    --cc=torvalds@osdl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox