Re: [PATCH 5/9] readahead: on-demand readahead logic

2007-06-13 Thread Fengguang Wu
On Wed, Jun 13, 2007 at 03:51:14PM +1000, Rusty Russell wrote: > > > static unsigned long > > > ondemand_readahead(struct address_space *mapping, > > > struct file_ra_state *ra, struct file *filp, > > > -struct page *page, pgoff_t offset, > > > +bool

Re: [PATCH 5/9] readahead: on-demand readahead logic

2007-06-13 Thread Fengguang Wu
On Wed, Jun 13, 2007 at 03:51:14PM +1000, Rusty Russell wrote: static unsigned long ondemand_readahead(struct address_space *mapping, struct file_ra_state *ra, struct file *filp, -struct page *page, pgoff_t offset, +bool hit_lookahead_marker,

Re: [PATCH 5/9] readahead: on-demand readahead logic

2007-06-12 Thread Rusty Russell
On Wed, 2007-06-13 at 12:00 +0800, Fengguang Wu wrote: > On Wed, Jun 13, 2007 at 11:40:33AM +1000, Rusty Russell wrote: > > +/* If page has PG_readahead flag set, call async readahead logic. */ > > +static inline void > > +page_cache_check_readahead_page(struct address_space *mapping, > > +

Re: [PATCH 5/9] readahead: on-demand readahead logic

2007-06-12 Thread Fengguang Wu
On Wed, Jun 13, 2007 at 11:40:33AM +1000, Rusty Russell wrote: > On Tue, 2007-06-12 at 18:35 +0800, Fengguang Wu wrote: > > > This seems a little like two functions crammed into one. Do you think > > > page_cache_readahead_ondemand() should be split into > > > "page_cache_readahead()" which

Re: [PATCH 5/9] readahead: on-demand readahead logic

2007-06-12 Thread Rusty Russell
On Tue, 2007-06-12 at 18:35 +0800, Fengguang Wu wrote: > > This seems a little like two functions crammed into one. Do you think > > page_cache_readahead_ondemand() should be split into > > "page_cache_readahead()" which doesn't take a page*, and > > "page_cache_check_readahead_page()" which is

Re: [PATCH 5/9] readahead: on-demand readahead logic

2007-06-12 Thread Fengguang Wu
Hi Rusty, On Tue, Jun 12, 2007 at 02:36:26PM +1000, Rusty Russell wrote: > On Thu, 2007-05-17 at 06:47 +0800, Fengguang Wu wrote: > > +static unsigned long > > +ondemand_readahead(struct address_space *mapping, > > + struct file_ra_state *ra, struct file *filp, > > +

Re: [PATCH 5/9] readahead: on-demand readahead logic

2007-06-12 Thread Fengguang Wu
Hi Rusty, On Tue, Jun 12, 2007 at 02:36:26PM +1000, Rusty Russell wrote: On Thu, 2007-05-17 at 06:47 +0800, Fengguang Wu wrote: +static unsigned long +ondemand_readahead(struct address_space *mapping, + struct file_ra_state *ra, struct file *filp, + struct page

Re: [PATCH 5/9] readahead: on-demand readahead logic

2007-06-12 Thread Rusty Russell
On Tue, 2007-06-12 at 18:35 +0800, Fengguang Wu wrote: This seems a little like two functions crammed into one. Do you think page_cache_readahead_ondemand() should be split into page_cache_readahead() which doesn't take a page*, and page_cache_check_readahead_page() which is an inline

Re: [PATCH 5/9] readahead: on-demand readahead logic

2007-06-12 Thread Fengguang Wu
On Wed, Jun 13, 2007 at 11:40:33AM +1000, Rusty Russell wrote: On Tue, 2007-06-12 at 18:35 +0800, Fengguang Wu wrote: This seems a little like two functions crammed into one. Do you think page_cache_readahead_ondemand() should be split into page_cache_readahead() which doesn't take a

Re: [PATCH 5/9] readahead: on-demand readahead logic

2007-06-12 Thread Rusty Russell
On Wed, 2007-06-13 at 12:00 +0800, Fengguang Wu wrote: On Wed, Jun 13, 2007 at 11:40:33AM +1000, Rusty Russell wrote: +/* If page has PG_readahead flag set, call async readahead logic. */ +static inline void +page_cache_check_readahead_page(struct address_space *mapping, +

Re: [PATCH 5/9] readahead: on-demand readahead logic

2007-06-11 Thread Rusty Russell
On Thu, 2007-05-17 at 06:47 +0800, Fengguang Wu wrote: > +static unsigned long > +ondemand_readahead(struct address_space *mapping, > +struct file_ra_state *ra, struct file *filp, > +struct page *page, pgoff_t offset, > +unsigned long req_size) > +{

Re: [PATCH 5/9] readahead: on-demand readahead logic

2007-06-11 Thread Rusty Russell
On Thu, 2007-05-17 at 06:47 +0800, Fengguang Wu wrote: +static unsigned long +ondemand_readahead(struct address_space *mapping, +struct file_ra_state *ra, struct file *filp, +struct page *page, pgoff_t offset, +unsigned long req_size) +{ +

Re: [PATCH 5/9] readahead: on-demand readahead logic

2007-05-19 Thread Fengguang Wu
On Fri, May 18, 2007 at 11:23:35PM -0700, Andrew Morton wrote: > > That would have to be the best changelog I've ever seen ;) Thanks for > persisting with this. Thank you :) > > sysbench oltp (trans/sec): up to 8% gain > > Have you given any thought to identifying workloads which may be

Re: [PATCH 5/9] readahead: on-demand readahead logic

2007-05-19 Thread Andrew Morton
On Thu, 17 May 2007 06:47:57 +0800 Fengguang Wu <[EMAIL PROTECTED]> wrote: > This is a minimal readahead algorithm that aims to replace the current one. > It is more flexible and reliable, while maintaining almost the same behavior > and performance. Also it is full integrated with adaptive

Re: [PATCH 5/9] readahead: on-demand readahead logic

2007-05-19 Thread Andrew Morton
On Thu, 17 May 2007 06:47:57 +0800 Fengguang Wu [EMAIL PROTECTED] wrote: This is a minimal readahead algorithm that aims to replace the current one. It is more flexible and reliable, while maintaining almost the same behavior and performance. Also it is full integrated with adaptive readahead.

Re: [PATCH 5/9] readahead: on-demand readahead logic

2007-05-19 Thread Fengguang Wu
On Fri, May 18, 2007 at 11:23:35PM -0700, Andrew Morton wrote: That would have to be the best changelog I've ever seen ;) Thanks for persisting with this. Thank you :) sysbench oltp (trans/sec): up to 8% gain Have you given any thought to identifying workloads which may be worsened by

[PATCH 5/9] readahead: on-demand readahead logic

2007-05-16 Thread Fengguang Wu
This is a minimal readahead algorithm that aims to replace the current one. It is more flexible and reliable, while maintaining almost the same behavior and performance. Also it is full integrated with adaptive readahead. It is designed to be called on demand: - on a missing page, to do

[PATCH 5/9] readahead: on-demand readahead logic

2007-05-16 Thread Fengguang Wu
This is a minimal readahead algorithm that aims to replace the current one. It is more flexible and reliable, while maintaining almost the same behavior and performance. Also it is full integrated with adaptive readahead. It is designed to be called on demand: - on a missing page, to do