Date: Tue, 30 Jan 2001 16:17:55 -0800 (PST) From: Matt Dillon <dillon@earth.backplane.com> To: Thomas Moestl <tmoestl@gmx.net> Cc: freebsd-hackers@FreeBSD.ORG Subject: Re: removing setgid kmem from top, collecting per-device swap stats Message-ID: <200101310017.f0V0Htr96647@earth.backplane.com> References: <20010130224759.A1589@crow.dom2ip.de> <200101302321.f0UNLcB95520@earth.backplane.com> <20010131005923.A2199@crow.dom2ip.de>
next in thread | previous in thread | raw e-mail | index | archive | help
: VOP_SWAPACCOUNT(nbp->b_vp, nbp);
: BUF_KERNPROC(nbp);
: BUF_STRATEGY(nbp);
:
:Now, I have to define the vop in vm_swap.c, where I can get the area
:index from the block number in a clean way and frob my counters.
:The same method could be used in swap_pager_putpages().
:swap_pager_reserve() would need to construct a buf and act in a similar
:way as e.g. swap_pager_strategy(), only that the buffer is not flushed
:afterwards, only VOP_SWAPACCOUNT is called. Of course, this can be
:done much easier by just passing the block number to VOP_SWAPACCOUNT,
:and calling it for each blk returned by swp_pager_getswapspace()
:(it costs virtually nothing, so it should be OK).
:So, VOP_SWAPACCOUNT would become:
: VOP_SWAPACCOUNT(nbp->b_vp, nbp->b_blkno, nbp->bcount);
:
:Or did I get things wrong?
:
: - thomas
Hmm. I think it would be easier to figure it out in the swap
allocation and free code. Specifically, look in vm/swap_pager.c:
* The swp_pager_getswapspace() function
* The swp_pager_freeswapspace() function
I think these are the best places to keep track of per-swap-area
allocation and frees. Note that the system tracks overall swap
useage in these routines as well (the vm_swap_size global).
Since the number of swap areas is fixed (NSWAP), it should be
utterly trivial to have an 'int' array of current allocations for
each swap area updated from the above two routines. swapinfo can
then retrieve the information directly via sysctl. i.e. retrieve
the entire array with a single sysctl.
-Matt
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200101310017.f0V0Htr96647>
