public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Fwd: Adaptive read-ahead V12
       [not found] <20060526072738.GG5135@mail.ustc.edu.cn>
@ 2006-05-26  7:27 ` Wu Fengguang
  2006-05-31 20:17   ` Bill Davidsen
  0 siblings, 1 reply; 3+ messages in thread
From: Wu Fengguang @ 2006-05-26  7:27 UTC (permalink / raw)
  To: Linux Kernel

----- Forwarded message from Iozone <capps@iozone.org> -----

Subject: Adaptive read-ahead V12
From: Iozone <capps@iozone.org>
To: Wu Fengguang <wfg@mail.ustc.edu.cn>
X-Mailer: Microsoft Outlook Express 6.00.2900.2670
Date: Thu, 25 May 2006 11:44:37 -0500

Wu Fengguang,

       I see that Andrew M. is giving you some pushback.... 
   His argument is that the application could do a better job
   of scheduling its own read-ahead.  ( I've heard this one 
   before)

   My thoughts on this argument would be along the 
   lines of:

   Indeed the application might be able to do a better
   job, however expecting, or demanding, the rewrite
   of all applications to behave better might be an unreasonable
   expectation.   Rewriting all the weather codes, all the 
   structrual analysis codes, all the data-bases, video streaming
   and so on, would solve the problem but the timeline for
   such an re-codification may approach infinity, while
   systems that have the ability to silently increase 
   performance maintain an advantage in the market.
   Note: Many vendors already have sophisticated A.I. read-ahead
   algorithms. Examples: Microsoft, Veritas HP, and Isolon.

   Linux already does read-ahead that does not require
   the application to be involved. It just does it in
   a simpler way that could be improved for handling
   a wider range of applications. This new technology is
   a simple evolutionary step in that direction. Linux read-ahead
   and is currently 8 years behind existing technologies in this area. 
   Isn't it time to catch up a bit ?

   Note: You probably will need to reword this before replying
   to Andrew, as I tend to be somewhat blunt. :-) 

   Hint: I took me a while to convince the kernel folks in my
   company to accept such a technology. But when the 
   prototype accelerated one of their key partner's code by
   30 % wall clock, and another showed 50X speedup in
   file I/O across a wide stripe,  that did the trick. 

Enjoy,
Don Capps

[...]
----- End forwarded message -----

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Fwd: Adaptive read-ahead V12
  2006-05-26  7:27 ` Fwd: Adaptive read-ahead V12 Wu Fengguang
@ 2006-05-31 20:17   ` Bill Davidsen
       [not found]     ` <20060601010434.GA5019@mail.ustc.edu.cn>
  0 siblings, 1 reply; 3+ messages in thread
From: Bill Davidsen @ 2006-05-31 20:17 UTC (permalink / raw)
  To: Wu Fengguang, Linux Kernel

Wu Fengguang wrote:
> ----- Forwarded message from Iozone <capps@iozone.org> -----
> 
> Subject: Adaptive read-ahead V12
> From: Iozone <capps@iozone.org>
> To: Wu Fengguang <wfg@mail.ustc.edu.cn>
> X-Mailer: Microsoft Outlook Express 6.00.2900.2670
> Date: Thu, 25 May 2006 11:44:37 -0500
> 
> Wu Fengguang,
> 
>        I see that Andrew M. is giving you some pushback.... 
>    His argument is that the application could do a better job
>    of scheduling its own read-ahead.  ( I've heard this one 
>    before)
> 
>    My thoughts on this argument would be along the 
>    lines of:
> 
>    Indeed the application might be able to do a better
>    job, however expecting, or demanding, the rewrite
>    of all applications to behave better might be an unreasonable
>    expectation. 

A reasonable expectation would be that the application would have a way 
to tell the kernel to ignore readahead for a given file, other than 
changing the behavior of the kernel as a whole for all processes on the 
machine. This smart application could then use aio or some other similar 
method to do preread itself.

My personal opinion is that the kernel only does a good job reading 
ahead for sequential access, and since that's the common case only a 
means of preventing that effort need be provided.

I can think of several ways the kernel might be smarter about the way it 
reads (or not) random access, but since I have no way to test them on 
applications other than my own I won't belabor them here.

-- 
Bill Davidsen <davidsen@tmr.com>
   Obscure bug of 2004: BASH BUFFER OVERFLOW - if bash is being run by a
normal user and is setuid root, with the "vi" line edit mode selected,
and the character set is "big5," an off-by-one errors occurs during
wildcard (glob) expansion.


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Fwd: Adaptive read-ahead V12
       [not found]     ` <20060601010434.GA5019@mail.ustc.edu.cn>
@ 2006-06-01  1:04       ` Wu Fengguang
  0 siblings, 0 replies; 3+ messages in thread
From: Wu Fengguang @ 2006-06-01  1:04 UTC (permalink / raw)
  To: Bill Davidsen; +Cc: Linux Kernel

On Wed, May 31, 2006 at 04:17:58PM -0400, Bill Davidsen wrote:
> Wu Fengguang wrote:
> >----- Forwarded message from Iozone <capps@iozone.org> -----
> >
> >Subject: Adaptive read-ahead V12
> >From: Iozone <capps@iozone.org>
> >To: Wu Fengguang <wfg@mail.ustc.edu.cn>
> >X-Mailer: Microsoft Outlook Express 6.00.2900.2670
> >Date: Thu, 25 May 2006 11:44:37 -0500
> >
> >Wu Fengguang,
> >
> >       I see that Andrew M. is giving you some pushback.... 
> >   His argument is that the application could do a better job
> >   of scheduling its own read-ahead.  ( I've heard this one 
> >   before)
> >
> >   My thoughts on this argument would be along the 
> >   lines of:
> >
> >   Indeed the application might be able to do a better
> >   job, however expecting, or demanding, the rewrite
> >   of all applications to behave better might be an unreasonable
> >   expectation. 
> 
> A reasonable expectation would be that the application would have a way 
> to tell the kernel to ignore readahead for a given file, other than 
> changing the behavior of the kernel as a whole for all processes on the 
> machine. This smart application could then use aio or some other similar 
> method to do preread itself.

Sure. The adaptive readahead works fine with user level readahead via
the readahead() or posix_fadvise() syscall. I.e. if a program do
necessary readahead() calls that can cover all the file pages
requested by the following read() calls, it avoids triggering
unnecessary kernel readaheads.

> My personal opinion is that the kernel only does a good job reading 
> ahead for sequential access, and since that's the common case only a 
> means of preventing that effort need be provided.

posix_fadvise(fd, ..., POSIX_FADV_RANDOM) can do the trick for a file.
blockdev --setra 0 /dev/hda  does so for a device.

Wu

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2006-06-01  1:04 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20060526072738.GG5135@mail.ustc.edu.cn>
2006-05-26  7:27 ` Fwd: Adaptive read-ahead V12 Wu Fengguang
2006-05-31 20:17   ` Bill Davidsen
     [not found]     ` <20060601010434.GA5019@mail.ustc.edu.cn>
2006-06-01  1:04       ` Wu Fengguang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox