All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH 4/4][RESEND] readahead: cleanup blockable_page_cache_readahead()
  2005-02-24 19:37 [PATCH 4/4][RESEND] readahead: cleanup blockable_page_cache_readahead() Oleg Nesterov
@ 2005-02-24 19:01 ` Ram
  2005-02-24 22:32   ` Steven Pratt
  0 siblings, 1 reply; 3+ messages in thread
From: Ram @ 2005-02-24 19:01 UTC (permalink / raw)
  To: Oleg Nesterov; +Cc: linux-kernel, Steven Pratt, Andrew Morton

Andrew, 
	I have verified the patches against my standard benchmarks
	and did not see any bad effects.

	Also I have reviewd the patch and it looked clean and correct.

RP

On Thu, 2005-02-24 at 11:37, Oleg Nesterov wrote:
> I think that do_page_cache_readahead() can be inlined
> in blockable_page_cache_readahead(), this makes the
> code a bit more readable in my opinion.
> 
> Also makes check_ra_success() static inline.
> 
> Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
> 
> --- 2.6.11-rc5/mm/readahead.c~	2005-01-29 15:51:04.000000000 +0300
> +++ 2.6.11-rc5/mm/readahead.c	2005-01-29 16:37:05.000000000 +0300
> @@ -348,8 +348,8 @@ int force_page_cache_readahead(struct ad
>   * readahead isn't helping.
>   *
>   */
> -int check_ra_success(struct file_ra_state *ra, unsigned long nr_to_read,
> -				 unsigned long actual)
> +static inline int check_ra_success(struct file_ra_state *ra,
> +			unsigned long nr_to_read, unsigned long actual)
>  {
>  	if (actual == 0) {
>  		ra->cache_hit += nr_to_read;
> @@ -394,15 +394,11 @@ blockable_page_cache_readahead(struct ad
>  {
>  	int actual;
>  
> -	if (block) {
> -		actual = __do_page_cache_readahead(mapping, filp,
> -						offset, nr_to_read);
> -	} else {
> -		actual = do_page_cache_readahead(mapping, filp,
> -						offset, nr_to_read);
> -		if (actual == -1)
> -			return 0;
> -	}
> +	if (!block && bdi_read_congested(mapping->backing_dev_info))
> +		return 0;
> +
> +	actual = __do_page_cache_readahead(mapping, filp, offset, nr_to_read);
> +
>  	return check_ra_success(ra, nr_to_read, actual);
>  }


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

* [PATCH 4/4][RESEND] readahead: cleanup blockable_page_cache_readahead()
@ 2005-02-24 19:37 Oleg Nesterov
  2005-02-24 19:01 ` Ram
  0 siblings, 1 reply; 3+ messages in thread
From: Oleg Nesterov @ 2005-02-24 19:37 UTC (permalink / raw)
  To: linux-kernel; +Cc: Ram Pai, Steven Pratt, Andrew Morton

I think that do_page_cache_readahead() can be inlined
in blockable_page_cache_readahead(), this makes the
code a bit more readable in my opinion.

Also makes check_ra_success() static inline.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>

--- 2.6.11-rc5/mm/readahead.c~	2005-01-29 15:51:04.000000000 +0300
+++ 2.6.11-rc5/mm/readahead.c	2005-01-29 16:37:05.000000000 +0300
@@ -348,8 +348,8 @@ int force_page_cache_readahead(struct ad
  * readahead isn't helping.
  *
  */
-int check_ra_success(struct file_ra_state *ra, unsigned long nr_to_read,
-				 unsigned long actual)
+static inline int check_ra_success(struct file_ra_state *ra,
+			unsigned long nr_to_read, unsigned long actual)
 {
 	if (actual == 0) {
 		ra->cache_hit += nr_to_read;
@@ -394,15 +394,11 @@ blockable_page_cache_readahead(struct ad
 {
 	int actual;
 
-	if (block) {
-		actual = __do_page_cache_readahead(mapping, filp,
-						offset, nr_to_read);
-	} else {
-		actual = do_page_cache_readahead(mapping, filp,
-						offset, nr_to_read);
-		if (actual == -1)
-			return 0;
-	}
+	if (!block && bdi_read_congested(mapping->backing_dev_info))
+		return 0;
+
+	actual = __do_page_cache_readahead(mapping, filp, offset, nr_to_read);
+
 	return check_ra_success(ra, nr_to_read, actual);
 }

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

* Re: [PATCH 4/4][RESEND] readahead: cleanup blockable_page_cache_readahead()
  2005-02-24 19:01 ` Ram
@ 2005-02-24 22:32   ` Steven Pratt
  0 siblings, 0 replies; 3+ messages in thread
From: Steven Pratt @ 2005-02-24 22:32 UTC (permalink / raw)
  To: Ram; +Cc: Oleg Nesterov, linux-kernel, Andrew Morton

Ram wrote:

>Andrew, 
>	I have verified the patches against my standard benchmarks
>	and did not see any bad effects.
>
>	Also I have reviewd the patch and it looked clean and correct.
>
>RP
>  
>

I have not had a chance to benchmark, but visual inspection looks good.

Steve

>On Thu, 2005-02-24 at 11:37, Oleg Nesterov wrote:
>  
>
>>I think that do_page_cache_readahead() can be inlined
>>in blockable_page_cache_readahead(), this makes the
>>code a bit more readable in my opinion.
>>
>>Also makes check_ra_success() static inline.
>>
>>Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
>>
>>--- 2.6.11-rc5/mm/readahead.c~	2005-01-29 15:51:04.000000000 +0300
>>+++ 2.6.11-rc5/mm/readahead.c	2005-01-29 16:37:05.000000000 +0300
>>@@ -348,8 +348,8 @@ int force_page_cache_readahead(struct ad
>>  * readahead isn't helping.
>>  *
>>  */
>>-int check_ra_success(struct file_ra_state *ra, unsigned long nr_to_read,
>>-				 unsigned long actual)
>>+static inline int check_ra_success(struct file_ra_state *ra,
>>+			unsigned long nr_to_read, unsigned long actual)
>> {
>> 	if (actual == 0) {
>> 		ra->cache_hit += nr_to_read;
>>@@ -394,15 +394,11 @@ blockable_page_cache_readahead(struct ad
>> {
>> 	int actual;
>> 
>>-	if (block) {
>>-		actual = __do_page_cache_readahead(mapping, filp,
>>-						offset, nr_to_read);
>>-	} else {
>>-		actual = do_page_cache_readahead(mapping, filp,
>>-						offset, nr_to_read);
>>-		if (actual == -1)
>>-			return 0;
>>-	}
>>+	if (!block && bdi_read_congested(mapping->backing_dev_info))
>>+		return 0;
>>+
>>+	actual = __do_page_cache_readahead(mapping, filp, offset, nr_to_read);
>>+
>> 	return check_ra_success(ra, nr_to_read, actual);
>> }
>>    
>>


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

end of thread, other threads:[~2005-02-24 22:30 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-02-24 19:37 [PATCH 4/4][RESEND] readahead: cleanup blockable_page_cache_readahead() Oleg Nesterov
2005-02-24 19:01 ` Ram
2005-02-24 22:32   ` Steven Pratt

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.