From: Jason Xing <xinggang861@gmail.com>
In 'Bug 323354 - Support a dynamic number of CPUs', there will be a
solution which can dynamically allocate memory for large number of
CPUs. As libgtop supports multiple operating systems, this work
may take some time.
This patch is a temporary patch, which worked before the whole
solution comes out. It only supports linux platform with CPU number
up to 1024.
There are two Macroes which limit the statistics of CPU. One is
GLIBTOP_NCPU. The other is a buffer size. This buffer used to read
/proc/stat contents into.
https://bugzilla.gnome.org/show_bug.cgi?id=323354https://bugzilla.gnome.org/show_bug.cgi?id=681632
2006-08-10 Benoît Dejean <benoit@placenet.org>
* open.c: (glibtop_open_s):
Only print the warning if
(number of real cpu's) != (number of cpu's monitored).
Patch by Wouter Bolsterlee (uws) <uws+gnome@xs4all.nl>.
Closes#350705.
2006-07-27 Benoît Dejean <benoit@placenet.org>
* glibtop_private.c: (has_sysfs):
* glibtop_private.h:
* netload.c: (glibtop_get_netload_s):
* open.c: (set_linux_version):
New has_sysfs function to avoid stating
over and over '/sys' on each netload call.
2005-12-12 James Henstridge <james@jamesh.id.au>
* doc/auto-macros.texi.in: remove unused file.
* doc/libgtop2.texi: don't include auto-macros.texi.
* doc/Makefile.am: don't build auto-macros.texi, since none of its
macros are used in the documentation any more.
* include/glibtop/global.h: don't include <config.h> from headers.
* .../*.c: make sure <config.h> is the first thing included.
* acinclude.m4: m4_include() libgtop-sysdeps.m4 rather than
inlining it.
* acinclude.m4, libgtop-sysdeps.m4: use third argument to
AC_DEFINE() to set the comment.
* configure.in: modernise a bit.
* acconfig.h: remove file, since it is deprecated
* autogen.sh: require automake 1.9 instead of 1.4.
2003-10-19 Carlos Perelló Marín <carlos@gnome.org>
* support/*: Reverted libgtop changes. It's a common module
and I should not modify it.
* Added/removed files. Now the move should be done.
1999-02-22 Martin Baulig <martin@home-of-linux.org>
Set the copyright of LibGTop to the GNU General Public License.
* copyright.txt: Set the year to 1998-99 and pretty-format it a
little bit. Same in all C source and header files.
1999-02-22 Martin Baulig <martin@home-of-linux.org>
* COPYING.LIB: Include a copy of the GNU Library General
Public License here.
* copyright.txt: Set the year to 1998-99 and pretty-format it a
little bit. Same in all C source and header files.
1999-01-06 Martin Baulig <martin@home-of-linux.org>
Unconditionally enable SMP support for linux.
* open.c (_glibtop_open_s): Always determine the number of CPUs
we have here, not only when SMP support was enabled.
* cpu.c, proctime.c: Use `server->ncpu' to determine whether to
enable SMP support.
* Splitted `libgtop_sysdeps.la' into `libgtop_sysdeps.la' and
`libgtop_sysdeps_suid.la'.
Everything that needs to be suid/sgid is in `libgtop_sysdeps_suid.la'
and the rest in `libgtop_sysdeps.la'.
The functions from `libgtop_sysdeps_suid.la' have the `_p' prefix and
the ones from `libgtop_sysdeps.la' the `_s' prefix.
The suid library uses `glibtop_open_p' and `glibtop_close_p', the
normal one `glibtop_init_s' (found in lib/init.c), `glibtop_open_s'
and `glibtop_close_s'.
* Added `libgtop_suid_common.la' containing stuff from sysdeps/common
that is required from the suid server (currently everything from
error.c and xmalloc.c).
This means, we can add some more stuff to `libgtop_common.la' without
the risk that it may be dangerous in the suid server.
* The ``library order'' is much clearer now:
-> `libgtop.la' (from lib/) contains user-level stuff;
all functions except `glibtop_init_r' have the `_l'
suffix.
-> `libgtop_common.la' (from sysdeps/common/) contains stuff
that is common among the sysdeps directories.
use anything from `libgtop_sysdeps.la' and
`libgtop_sysdeps_suid.la'.
-> `libgtop_sysdeps.la' (from sysdeps/<sysdeps_dir>/) contains
everything from the sysdeps directory that doesn't need to
be suid/sgid.
-> `libgtop_suid_common.la' (from sysdeps/common/) is used from
the suid server instead of `libgtop_common.la'.
-> `libgtop_sysdeps_suid.la' (from sysdeps/<sysdeps_dir>/) contains
everything from the sysdeps directory that needs to be in the
suid server.
* To summarize: the server is linked only with functions that need
to be suid and everything else is linked only with functions that
do not need to be suid.
Martin
1998-07-22 Martin Baulig <martin@home-of-linux.org>
* lib/init.c (glibtop_init_s): Added this init function of
the sysdeps directory `libgtop_sysdeps.la'.
* lib/open.c (glibtop_open_l): Unconditionally calling
`glibtop_init_s' after server initialization.
* lib/lib.awk: Removed references to functions from
`libgtop_sysdeps_suid.la' to avoid undefined symbols.
* sysdeps/stub/open.c (glibtop_open_s): Renamed this
function from `glibtop_open_r'.
* sysdeps/stub/close.c (glibtop_close_s): Renamed this
function from `glibtop_close_l'.
* sysdeps/kernel/open.c (glibtop_open_s): Renamed this
function from `glibtop_open_r'.
* sysdeps/kernel/close.c (glibtop_close_s): Renamed this
function from `glibtop_close_l'.
* sysdeps/linux/open.c (glibtop_open_s): Renamed this
function from `glibtop_open_r'.
* sysdeps/linux/close.c (glibtop_close_s): Renamed this
function from `glibtop_close_l'.
* sysdeps/osf1/Makefile.am (lib_LTLIBRARIES): Added
`libgtop_sysdeps_suid.la' for the suid server.
* sysdeps/osf1/open_suid.c (glibtop_open_p): New file.
Contains all stuff that was formerly in `open.c'.
* sysdeps/osf1/open.c: Moved everything from here into
the new file `open_suid.c'.
* sysdeps/osf1/open.c (glibtop_open_s): New function.
* sysdeps/osf1/close_suid.c (glibtop_close_p): New file.
* sysdeps/osf1/close.c (glibtop_close_s): New function.
* sysdeps/osf1/*.c: Using the new init, open and close
functions.
* sysdeps/sun4/Makefile.am (lib_LTLIBRARIES): Added
`libgtop_sysdeps_suid.la' for the suid server.
* sysdeps/sun4/nosuid.c (glibtop_open_s, glibtop_close_s): New file
* sysdeps/sun4/*.c: All functions now have the `_p' suffix.
* sysdeps/common/Makefile.am (lib_LTLIBRARIES): Added
`libgtop_suid_common.la' which only contains stuff that is
needed in the suid parts.
* sysdeps/common/xmalloc.c: Using `glibtop_error_io_r' instead
of `glibtop_error_r'.
* sysdeps/{kernel, linux, osf1, sun4, stub}/init.c: Removed.
`glibtop_init_s' has been moved into `lib/init.c' since it's the
same in all the sysdeps directories.
* src/server/main.c: It is now an error to request a feature that
does not need the suid server.
* src/proxy: Removed.
1998-07-14 Martin Baulig <martin@home-of-linux.org>
* src/daemon/gnuserv.c: Doing correct server initialization
using `glibtop_set_parameter_l' and `glibtop_init_r'.
* src/daemon/main.c: Removed call to `glibtop_init_r'.
* lib/open.c (glibtop_open_l): We now call the open function
of the sysdeps directory (glibtop_open_r) for server method
`GLIBTOP_METHOD_DIRECT'.
* sysdeps/{linux, sun4, stub}/open.c: No longer `memset'
server to zero.
1998-06-07 Martin Baulig <martin@home-of-linux.org>
* *.[ch]: Using single underscore instead of two underscores
for function prefixes (regexp: ``s,__([rspl])\b,_$1,g'') to
avoid ambiguity with mangled C++ names.