Re: si_swapinfo export
From: George Shuklin
Date: Fri Sep 02 2011 - 20:51:47 EST
Well, in my personal case it is some 'memory pressure service' for
virtual machines in xen environment.
It check about 1-2 times per second memory state and report it to
management software outside VM. Right now this is userspace program,
which reads /proc/meminfo and sends it via xenstore (interdomain
communication system) to management domain. It works fine, but we need
to do double int-str conversion (/proc/meminfo do itoa, our daemon sens
this to control domain, daemon in control domain do atoi and math to get
right memory value). This is very inefficient, especially when we talks
about bunch of VM per host.
kernel module can do math internally with ints, not with strings (no
conversion at all) - this will save pretty much time (my calculation is
about one-two of CPU time per day for every virtualization host with
about 50-100 active VMs.
The information I needs is amount of 'really free' memory. We calculate
it as (roughly) as MemFree+Buffers+Cached+(SwapTotal-SwapFree), and our
management system trying to keep this value within expected values (f.e.
within interval 128-256Mb). This allows us to prevent VM's swapping and
allow VM to push to swap really rare used pages (and their place
actually used for caching).
On 02.09.2011 23:53, Valdis.Kletnieks@xxxxxx wrote:
On Fri, 02 Sep 2011 19:41:29 +0400, George Shuklin said:
Good day.
Why si_swapinfo (from include/linux/swap.h) is not marked as
EXPORT_SYMBOL_GPL? It's kinda hard to gain information about memory in
module.
Use case? What information exactly are you trying to get in the module, and
equally important, why? More likely, what you *actually* want isn't the
information, it's a new API (or using an existing one you didn't even know was
there) :)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/