Re: NR_UNSTABLE_FS vs. NR_FILE_DIRTY: double counting pages?

2007-04-29 Thread Trond Myklebust
On Sun, 2007-04-29 at 17:26 -0700, Ethan Solomita wrote: > Trond Myklebust wrote: > > On Fri, 2007-04-27 at 18:21 -0700, Ethan Solomita wrote: > >> There are several places where we add together NR_UNSTABLE_FS and > >> NF_FILE_DIRTY: > >> > >> sync_inodes_sb() > >> balance_dirty_pages() > >> wakeup

Re: NR_UNSTABLE_FS vs. NR_FILE_DIRTY: double counting pages?

2007-04-29 Thread Ethan Solomita
Ethan Solomita wrote: Trond Myklebust wrote: It should not happen. If the page is on the unstable list, then it will be committed before nfs_updatepage is allowed to redirty it. See the recent fixes in 2.6.21-rc7. Above I present a codepath called straight from sys_write() which seems to

Re: NR_UNSTABLE_FS vs. NR_FILE_DIRTY: double counting pages?

2007-04-29 Thread Ethan Solomita
Trond Myklebust wrote: On Fri, 2007-04-27 at 18:21 -0700, Ethan Solomita wrote: There are several places where we add together NR_UNSTABLE_FS and NF_FILE_DIRTY: sync_inodes_sb() balance_dirty_pages() wakeup_pdflush() wb_kupdate() prefetch_suitable() I can trace a standard codepath where it

Re: NR_UNSTABLE_FS vs. NR_FILE_DIRTY: double counting pages?

2007-04-29 Thread Trond Myklebust
On Fri, 2007-04-27 at 18:21 -0700, Ethan Solomita wrote: > There are several places where we add together NR_UNSTABLE_FS and > NF_FILE_DIRTY: > > sync_inodes_sb() > balance_dirty_pages() > wakeup_pdflush() > wb_kupdate() > prefetch_suitable() > > I can trace a standard codepath where it seems

NR_UNSTABLE_FS vs. NR_FILE_DIRTY: double counting pages?

2007-04-27 Thread Ethan Solomita
There are several places where we add together NR_UNSTABLE_FS and NF_FILE_DIRTY: sync_inodes_sb() balance_dirty_pages() wakeup_pdflush() wb_kupdate() prefetch_suitable() I can trace a standard codepath where it seems both of these are set on the same page: nfs_file_aops.commit_write ->