[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Pine.LNX.4.64.0608041616330.10681@blonde.wat.veritas.com>
Date: Fri, 4 Aug 2006 16:47:27 +0100 (BST)
From: Hugh Dickins <hugh@...itas.com>
To: Mulyadi Santosa <mulyadi.santosa@...il.com>
cc: Andrew Morton <akpm@...l.org>, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] accounting per process swapped out pages
On Fri, 4 Aug 2006, Mulyadi Santosa wrote:
>
> Here is patch to count per process swapped out pages. This patch is
> created against 2.6.16.1. So far, I had tested by forcing certain task
> to swap out (tail -f /dev/zero) and wait until top/vmstat/free reported
> that swap is occupied.
>
> Comments and feedbacks are greatly appreciated. Please keep me CC'ed
> since I am not subscribed to linux-kernel mailing list.
To be honest, I don't think there's much interest in this particular
VmSwp statistic; and if there's little interest in it, we'd rather
not spend the time and space on collecting it. But I could be wrong:
let's see who speaks up for it.
A few comments on the mechanics of your patch.
You waste space in every vm_area_struct for your swapped_out count,
then /proc/<pid>/status has to loop over the vmas adding them up.
Much better to make it an mm_counter like anon_rss, then you only
use space in mm_struct, and don't have to add them up at the end,
and avoid dirtying (vma) cachelines unnecessarily, and (in some
cases) avoid the atomic operations.
While you've caught the main places where you'd need to adjust
swapped_out, you've missed a couple (maybe I've missed more):
copy_pte_range (fork) needs to increment the count, zap_pte_range
(munmap or truncate or exit) needs to decrement it. Check wherever
anon_rss is adjusted, some not all would need swapped_out adjusted.
Oh, you are doing something in zap_pte_range, but I'm sorry to say
what you do there is nonsense: the number you're subtracting has
nothing to do with the number of swapped out pages.
And you probably wouldn't want that printk in your final patch!
Hugh
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists