Re: [PATCH 09/12] mm: count unstable pages per BDI

2007-04-19 Thread Peter Zijlstra
On Thu, 2007-04-19 at 21:20 +0200, Miklos Szeredi wrote:
> > Index: linux-2.6/fs/buffer.c
> > ===
> > --- linux-2.6.orig/fs/buffer.c  2007-04-19 19:59:26.0 +0200
> > +++ linux-2.6/fs/buffer.c   2007-04-19 20:35:39.0 +0200
> > @@ -733,7 +733,7 @@ int __set_page_dirty_buffers(struct page
> > if (page->mapping) {/* Race with truncate? */
> > if (mapping_cap_account_dirty(mapping)) {
> > __inc_zone_page_state(page, NR_FILE_DIRTY);
> > -   __inc_bdi_stat(mapping->backing_dev_info, BDI_DIRTY);
> > +   __inc_bdi_stat(mapping->backing_dev_info, BDI_RECLAIM);
> 
> This name suggests it's _under_ reclaim, which is not true.  You might
> rather want to call it BDI_RECLAIMABLE, or something similar in
> meaning.

Yeah, my fingers got lazy on me :-) will instruct them to type more.

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


Re: [PATCH 09/12] mm: count unstable pages per BDI

2007-04-19 Thread Miklos Szeredi
> Index: linux-2.6/fs/buffer.c
> ===
> --- linux-2.6.orig/fs/buffer.c2007-04-19 19:59:26.0 +0200
> +++ linux-2.6/fs/buffer.c 2007-04-19 20:35:39.0 +0200
> @@ -733,7 +733,7 @@ int __set_page_dirty_buffers(struct page
>   if (page->mapping) {/* Race with truncate? */
>   if (mapping_cap_account_dirty(mapping)) {
>   __inc_zone_page_state(page, NR_FILE_DIRTY);
> - __inc_bdi_stat(mapping->backing_dev_info, BDI_DIRTY);
> + __inc_bdi_stat(mapping->backing_dev_info, BDI_RECLAIM);

This name suggests it's _under_ reclaim, which is not true.  You might
rather want to call it BDI_RECLAIMABLE, or something similar in
meaning.

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


Re: [PATCH 09/12] mm: count unstable pages per BDI

2007-04-19 Thread Peter Zijlstra
On Thu, 2007-04-19 at 20:46 +0200, Peter Zijlstra wrote:
> On Thu, 2007-04-19 at 20:12 +0200, Peter Zijlstra wrote:
> > On Thu, 2007-04-19 at 19:44 +0200, Miklos Szeredi wrote:
> > > > Count per BDI unstable pages.
> > > > 
> > > 
> > > I'm wondering, is it really worth having this category separate from
> > > per BDI brity pages?
> > > 
> > > With the exception of the export to sysfs, always the sum of unstable
> > > + dirty is used.
> > 
> > I guess you are right, but it offends my sense of aesthetics to break
> > symmetry with the zone statistics. However, it has the added advantage
> > of only needing 2 deltas as well.
> 
> I guess, this should do.

OK, the compiler told me I messed up :-/. I'll respin the whole series
and repost tomorrow or something...

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


Re: [PATCH 09/12] mm: count unstable pages per BDI

2007-04-19 Thread Peter Zijlstra
On Thu, 2007-04-19 at 20:12 +0200, Peter Zijlstra wrote:
> On Thu, 2007-04-19 at 19:44 +0200, Miklos Szeredi wrote:
> > > Count per BDI unstable pages.
> > > 
> > 
> > I'm wondering, is it really worth having this category separate from
> > per BDI brity pages?
> > 
> > With the exception of the export to sysfs, always the sum of unstable
> > + dirty is used.
> 
> I guess you are right, but it offends my sense of aesthetics to break
> symmetry with the zone statistics. However, it has the added advantage
> of only needing 2 deltas as well.

I guess, this should do.

---
 fs/buffer.c |2 +-
 fs/nfs/write.c  |   11 +++
 include/linux/backing-dev.h |3 +--
 mm/page-writeback.c |   16 +++-
 mm/truncate.c   |2 +-
 5 files changed, 17 insertions(+), 17 deletions(-)

Index: linux-2.6/fs/buffer.c
===
--- linux-2.6.orig/fs/buffer.c  2007-04-19 19:59:26.0 +0200
+++ linux-2.6/fs/buffer.c   2007-04-19 20:35:39.0 +0200
@@ -733,7 +733,7 @@ int __set_page_dirty_buffers(struct page
if (page->mapping) {/* Race with truncate? */
if (mapping_cap_account_dirty(mapping)) {
__inc_zone_page_state(page, NR_FILE_DIRTY);
-   __inc_bdi_stat(mapping->backing_dev_info, BDI_DIRTY);
+   __inc_bdi_stat(mapping->backing_dev_info, BDI_RECLAIM);
task_io_account_write(PAGE_CACHE_SIZE);
}
radix_tree_tag_set(>page_tree,
Index: linux-2.6/fs/nfs/write.c
===
--- linux-2.6.orig/fs/nfs/write.c   2007-04-19 19:59:26.0 +0200
+++ linux-2.6/fs/nfs/write.c2007-04-19 20:39:03.0 +0200
@@ -456,7 +456,7 @@ nfs_mark_request_commit(struct nfs_page 
nfsi->ncommit++;
spin_unlock(>req_lock);
inc_zone_page_state(req->wb_page, NR_UNSTABLE_NFS);
-   inc_bdi_stat(req->wb_page->mapping->backing_dev_info, BDI_UNSTABLE);
+   inc_bdi_stat(req->wb_page->mapping->backing_dev_info, BDI_RECLAIM);
__mark_inode_dirty(inode, I_DIRTY_DATASYNC);
 }
 #endif
@@ -518,7 +518,8 @@ static void nfs_cancel_commit_list(struc
while(!list_empty(head)) {
req = nfs_list_entry(head->next);
dec_zone_page_state(req->wb_page, NR_UNSTABLE_NFS);
-   dec_bdi_stat(req->wb_page->mapping->backing_dev_info, 
BDI_UNSTABLE);
+   dec_bdi_stat(req->wb_page->mapping->backing_dev_info,
+   BDI_RECLAIM);
nfs_list_remove_request(req);
nfs_inode_remove_request(req);
nfs_unlock_request(req);
@@ -1247,7 +1248,8 @@ nfs_commit_list(struct inode *inode, str
nfs_list_remove_request(req);
nfs_mark_request_commit(req);
dec_zone_page_state(req->wb_page, NR_UNSTABLE_NFS);
-   dec_bdi_stat(req->wb_page->mapping->backing_dev_info, 
BDI_UNSTABLE);
+   dec_bdi_stat(req->wb_page->mapping->backing_dev_info,
+   BDI_RECLAIM);
nfs_clear_page_writeback(req);
}
return -ENOMEM;
@@ -1272,7 +1274,8 @@ static void nfs_commit_done(struct rpc_t
req = nfs_list_entry(data->pages.next);
nfs_list_remove_request(req);
dec_zone_page_state(req->wb_page, NR_UNSTABLE_NFS);
-   dec_bdi_stat(req->wb_page->mapping->backing_dev_info, 
BDI_UNSTABLE);
+   dec_bdi_stat(req->wb_page->mapping->backing_dev_info,
+   BDI_RECLAIM);
 
dprintk("NFS: commit (%s/%Ld [EMAIL PROTECTED])",
req->wb_context->dentry->d_inode->i_sb->s_id,
Index: linux-2.6/include/linux/backing-dev.h
===
--- linux-2.6.orig/include/linux/backing-dev.h  2007-04-19 19:59:26.0 
+0200
+++ linux-2.6/include/linux/backing-dev.h   2007-04-19 20:39:24.0 
+0200
@@ -26,9 +26,8 @@ enum bdi_state {
 typedef int (congested_fn)(void *, int);
 
 enum bdi_stat_item {
-   BDI_DIRTY,
+   BDI_RECLAIM,
BDI_WRITEBACK,
-   BDI_UNSTABLE,
BDI_WRITEOUT,
NR_BDI_STAT_ITEMS
 };
Index: linux-2.6/mm/page-writeback.c
===
--- linux-2.6.orig/mm/page-writeback.c  2007-04-19 20:00:09.0 +0200
+++ linux-2.6/mm/page-writeback.c   2007-04-19 20:40:29.0 +0200
@@ -300,8 +300,7 @@ static void balance_dirty_pages(struct a
 
get_dirty_limits(_thresh, _thresh,
_thresh, bdi);
-   bdi_nr_reclaimable = bdi_stat(bdi, BDI_DIRTY) +
-   bdi_stat(bdi, BDI_UNSTABLE);
+   bdi_nr_reclaimable = 

Re: [PATCH 09/12] mm: count unstable pages per BDI

2007-04-19 Thread Peter Zijlstra
On Thu, 2007-04-19 at 19:44 +0200, Miklos Szeredi wrote:
> > Count per BDI unstable pages.
> > 
> 
> I'm wondering, is it really worth having this category separate from
> per BDI brity pages?
> 
> With the exception of the export to sysfs, always the sum of unstable
> + dirty is used.

I guess you are right, but it offends my sense of aesthetics to break
symmetry with the zone statistics. However, it has the added advantage
of only needing 2 deltas as well.

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


Re: [PATCH 09/12] mm: count unstable pages per BDI

2007-04-19 Thread Miklos Szeredi
> Count per BDI unstable pages.
> 

I'm wondering, is it really worth having this category separate from
per BDI brity pages?

With the exception of the export to sysfs, always the sum of unstable
+ dirty is used.

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


Re: [PATCH 09/12] mm: count unstable pages per BDI

2007-04-19 Thread Miklos Szeredi
 Count per BDI unstable pages.
 

I'm wondering, is it really worth having this category separate from
per BDI brity pages?

With the exception of the export to sysfs, always the sum of unstable
+ dirty is used.

Miklos
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 09/12] mm: count unstable pages per BDI

2007-04-19 Thread Peter Zijlstra
On Thu, 2007-04-19 at 19:44 +0200, Miklos Szeredi wrote:
  Count per BDI unstable pages.
  
 
 I'm wondering, is it really worth having this category separate from
 per BDI brity pages?
 
 With the exception of the export to sysfs, always the sum of unstable
 + dirty is used.

I guess you are right, but it offends my sense of aesthetics to break
symmetry with the zone statistics. However, it has the added advantage
of only needing 2 deltas as well.

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


Re: [PATCH 09/12] mm: count unstable pages per BDI

2007-04-19 Thread Peter Zijlstra
On Thu, 2007-04-19 at 20:12 +0200, Peter Zijlstra wrote:
 On Thu, 2007-04-19 at 19:44 +0200, Miklos Szeredi wrote:
   Count per BDI unstable pages.
   
  
  I'm wondering, is it really worth having this category separate from
  per BDI brity pages?
  
  With the exception of the export to sysfs, always the sum of unstable
  + dirty is used.
 
 I guess you are right, but it offends my sense of aesthetics to break
 symmetry with the zone statistics. However, it has the added advantage
 of only needing 2 deltas as well.

I guess, this should do.

---
 fs/buffer.c |2 +-
 fs/nfs/write.c  |   11 +++
 include/linux/backing-dev.h |3 +--
 mm/page-writeback.c |   16 +++-
 mm/truncate.c   |2 +-
 5 files changed, 17 insertions(+), 17 deletions(-)

Index: linux-2.6/fs/buffer.c
===
--- linux-2.6.orig/fs/buffer.c  2007-04-19 19:59:26.0 +0200
+++ linux-2.6/fs/buffer.c   2007-04-19 20:35:39.0 +0200
@@ -733,7 +733,7 @@ int __set_page_dirty_buffers(struct page
if (page-mapping) {/* Race with truncate? */
if (mapping_cap_account_dirty(mapping)) {
__inc_zone_page_state(page, NR_FILE_DIRTY);
-   __inc_bdi_stat(mapping-backing_dev_info, BDI_DIRTY);
+   __inc_bdi_stat(mapping-backing_dev_info, BDI_RECLAIM);
task_io_account_write(PAGE_CACHE_SIZE);
}
radix_tree_tag_set(mapping-page_tree,
Index: linux-2.6/fs/nfs/write.c
===
--- linux-2.6.orig/fs/nfs/write.c   2007-04-19 19:59:26.0 +0200
+++ linux-2.6/fs/nfs/write.c2007-04-19 20:39:03.0 +0200
@@ -456,7 +456,7 @@ nfs_mark_request_commit(struct nfs_page 
nfsi-ncommit++;
spin_unlock(nfsi-req_lock);
inc_zone_page_state(req-wb_page, NR_UNSTABLE_NFS);
-   inc_bdi_stat(req-wb_page-mapping-backing_dev_info, BDI_UNSTABLE);
+   inc_bdi_stat(req-wb_page-mapping-backing_dev_info, BDI_RECLAIM);
__mark_inode_dirty(inode, I_DIRTY_DATASYNC);
 }
 #endif
@@ -518,7 +518,8 @@ static void nfs_cancel_commit_list(struc
while(!list_empty(head)) {
req = nfs_list_entry(head-next);
dec_zone_page_state(req-wb_page, NR_UNSTABLE_NFS);
-   dec_bdi_stat(req-wb_page-mapping-backing_dev_info, 
BDI_UNSTABLE);
+   dec_bdi_stat(req-wb_page-mapping-backing_dev_info,
+   BDI_RECLAIM);
nfs_list_remove_request(req);
nfs_inode_remove_request(req);
nfs_unlock_request(req);
@@ -1247,7 +1248,8 @@ nfs_commit_list(struct inode *inode, str
nfs_list_remove_request(req);
nfs_mark_request_commit(req);
dec_zone_page_state(req-wb_page, NR_UNSTABLE_NFS);
-   dec_bdi_stat(req-wb_page-mapping-backing_dev_info, 
BDI_UNSTABLE);
+   dec_bdi_stat(req-wb_page-mapping-backing_dev_info,
+   BDI_RECLAIM);
nfs_clear_page_writeback(req);
}
return -ENOMEM;
@@ -1272,7 +1274,8 @@ static void nfs_commit_done(struct rpc_t
req = nfs_list_entry(data-pages.next);
nfs_list_remove_request(req);
dec_zone_page_state(req-wb_page, NR_UNSTABLE_NFS);
-   dec_bdi_stat(req-wb_page-mapping-backing_dev_info, 
BDI_UNSTABLE);
+   dec_bdi_stat(req-wb_page-mapping-backing_dev_info,
+   BDI_RECLAIM);
 
dprintk(NFS: commit (%s/%Ld [EMAIL PROTECTED]),
req-wb_context-dentry-d_inode-i_sb-s_id,
Index: linux-2.6/include/linux/backing-dev.h
===
--- linux-2.6.orig/include/linux/backing-dev.h  2007-04-19 19:59:26.0 
+0200
+++ linux-2.6/include/linux/backing-dev.h   2007-04-19 20:39:24.0 
+0200
@@ -26,9 +26,8 @@ enum bdi_state {
 typedef int (congested_fn)(void *, int);
 
 enum bdi_stat_item {
-   BDI_DIRTY,
+   BDI_RECLAIM,
BDI_WRITEBACK,
-   BDI_UNSTABLE,
BDI_WRITEOUT,
NR_BDI_STAT_ITEMS
 };
Index: linux-2.6/mm/page-writeback.c
===
--- linux-2.6.orig/mm/page-writeback.c  2007-04-19 20:00:09.0 +0200
+++ linux-2.6/mm/page-writeback.c   2007-04-19 20:40:29.0 +0200
@@ -300,8 +300,7 @@ static void balance_dirty_pages(struct a
 
get_dirty_limits(background_thresh, dirty_thresh,
bdi_thresh, bdi);
-   bdi_nr_reclaimable = bdi_stat(bdi, BDI_DIRTY) +
-   bdi_stat(bdi, BDI_UNSTABLE);
+   bdi_nr_reclaimable = bdi_stat(bdi, BDI_RECLAIM);
   

Re: [PATCH 09/12] mm: count unstable pages per BDI

2007-04-19 Thread Peter Zijlstra
On Thu, 2007-04-19 at 20:46 +0200, Peter Zijlstra wrote:
 On Thu, 2007-04-19 at 20:12 +0200, Peter Zijlstra wrote:
  On Thu, 2007-04-19 at 19:44 +0200, Miklos Szeredi wrote:
Count per BDI unstable pages.

   
   I'm wondering, is it really worth having this category separate from
   per BDI brity pages?
   
   With the exception of the export to sysfs, always the sum of unstable
   + dirty is used.
  
  I guess you are right, but it offends my sense of aesthetics to break
  symmetry with the zone statistics. However, it has the added advantage
  of only needing 2 deltas as well.
 
 I guess, this should do.

OK, the compiler told me I messed up :-/. I'll respin the whole series
and repost tomorrow or something...

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


Re: [PATCH 09/12] mm: count unstable pages per BDI

2007-04-19 Thread Miklos Szeredi
 Index: linux-2.6/fs/buffer.c
 ===
 --- linux-2.6.orig/fs/buffer.c2007-04-19 19:59:26.0 +0200
 +++ linux-2.6/fs/buffer.c 2007-04-19 20:35:39.0 +0200
 @@ -733,7 +733,7 @@ int __set_page_dirty_buffers(struct page
   if (page-mapping) {/* Race with truncate? */
   if (mapping_cap_account_dirty(mapping)) {
   __inc_zone_page_state(page, NR_FILE_DIRTY);
 - __inc_bdi_stat(mapping-backing_dev_info, BDI_DIRTY);
 + __inc_bdi_stat(mapping-backing_dev_info, BDI_RECLAIM);

This name suggests it's _under_ reclaim, which is not true.  You might
rather want to call it BDI_RECLAIMABLE, or something similar in
meaning.

Miklos
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 09/12] mm: count unstable pages per BDI

2007-04-19 Thread Peter Zijlstra
On Thu, 2007-04-19 at 21:20 +0200, Miklos Szeredi wrote:
  Index: linux-2.6/fs/buffer.c
  ===
  --- linux-2.6.orig/fs/buffer.c  2007-04-19 19:59:26.0 +0200
  +++ linux-2.6/fs/buffer.c   2007-04-19 20:35:39.0 +0200
  @@ -733,7 +733,7 @@ int __set_page_dirty_buffers(struct page
  if (page-mapping) {/* Race with truncate? */
  if (mapping_cap_account_dirty(mapping)) {
  __inc_zone_page_state(page, NR_FILE_DIRTY);
  -   __inc_bdi_stat(mapping-backing_dev_info, BDI_DIRTY);
  +   __inc_bdi_stat(mapping-backing_dev_info, BDI_RECLAIM);
 
 This name suggests it's _under_ reclaim, which is not true.  You might
 rather want to call it BDI_RECLAIMABLE, or something similar in
 meaning.

Yeah, my fingers got lazy on me :-) will instruct them to type more.

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