Commit Graph

167 Commits

Author SHA1 Message Date
Benoit Dejean
1dbe133a24 Fix utime/stime/cutime/cstime computation. 2015-07-18 20:46:07 +02:00
Benoit Dejean
3bd720ad81 Do the math correctly to avoid loss of precision for rtime.
I've noticed this with system-monitor where all processes got
a perfectly round CPU time to the second.
2015-07-18 15:46:26 +02:00
Benoit Dejean
0099cbb6b4 Rework logic by turning two dark while into fors.
Also, if kvm_read fail, exit rather than looping forever.
2015-07-15 18:39:06 +02:00
Benoit Dejean
185396d674 Check getloadavg() return value and call the function directly
on the glibtop_loadavg buffer member.
2015-07-15 18:39:06 +02:00
Benoit Dejean
172f0a50ba Convert lots of fprintf(stderr, ...) to glibtop_debug*(). 2015-07-15 18:38:28 +02:00
Benoit Dejean
ca6cabe41d For processes with threads, only reports the pid once.
On my system, this brings proclist's output from +300 to 72.
2015-07-15 18:38:27 +02:00
Benoit Dejean
119049b8c0 Fix autotools deprecation warning with s/INCLUDES/AM_CPPFLAGS/g. 2015-07-15 18:24:29 +02:00
Ting-Wei Lan
a206cfc728 freebsd: rework system memory usage
Change the value of memory usage from:

  Used   = Wired
  Free   = Total - Wired
  Shared = 0
  Buffer = 0
  Cached = Cache
  User   = Wired - Cache
  Locked = Not Supported

To:

  Used   = Total - Free
  Free   = Free
  Shared = 0
  Buffer = Buf
  Cached = Cache
  User   = Active + Wired
  Locked = Not Supported

The left-hand side means fields in the glibtop_mem struct and the right-hand
side means the value showed by `top' command. This change should make the value
showed by gnome-system-monitor, which uses `User' field, become closer to
the real memory usage.

All sysctlbyname code in sysdeps/freebsd/mem.c has been moved to separate
functions to make the code cleaner.
2015-07-03 22:42:07 +08:00
Benoit Dejean
50b5dea402 Implement dev/inode for mapped files on ZFS. 2015-06-26 02:57:41 +03:00
Benoit Dejean
f4b23ef0c6 Split the code that works only with UFS inode. Will ease new code for ZFS. 2015-06-26 02:57:41 +03:00
Benoit Dejean
c7f7e5a1c6 Set the FSUSAGE_(READ|WRITE) flags only we managed to get something. Currently, it doesn't seem to work on ZFS. 2015-06-26 02:57:41 +03:00
Benoit Dejean
b2fee3e111 No special case for pid == 0. As of 2015, with FreeBSD 10.1-RELEASE #0 r274401 on amd64, this really works and sets the name to "kernel" for pid == 0. 2015-06-26 02:57:41 +03:00
Benoit Dejean
a93dc2526d The DEBUG macro enabled by --enable-debug is actually LIBGTOP_ENABLE_DEBUG. 2015-06-26 02:57:41 +03:00
Benoit Dejean
0057bbbc47 Don't set GLIBTOP_PROC_MEM_SHARE because it's not implemented anymore.
https://bugzilla.gnome.org/show_bug.cgi?id=744890
2015-06-21 10:57:11 +08:00
Benoit Dejean
e6d776ee61 It doesn't make any sense to count as shared each and every mmaped file. Disable that code while we figure how to really do it.
https://bugzilla.gnome.org/show_bug.cgi?id=744890
2015-06-21 10:56:39 +08:00
Ting-Wei Lan
40e1a86d52 freebsd: Add fdescfs to the ignored filesystem list
fdescfs is the filesystem mounted on /dev/fd to provide access to file
descriptors via filsystem paths. It is not a real filesystem used on disks.

https://bugzilla.gnome.org/show_bug.cgi?id=748790
2015-06-14 14:19:24 +08:00
Robert Roth
7a3414d002 Update old FSF address.
https://bugzilla.gnome.org/show_bug.cgi?id=721514
2014-08-20 04:44:27 +03:00
Steven Chamberlain
d9c01aac4a Don't include sys/pipe.h on kFreeBSD
Defining _KERNEL to include sys/pipe.h subsequently breaks sys/conf.h;
 since sys/pipe.h is not meant to be used in userland, and libgtop2 builds
 anyway on kFreeBSD without it, don't include it.
https://bugzilla.gnome.org/show_bug.cgi?id=674067
2014-04-29 00:30:07 +03:00
Ryan Lortie
2e861977a6 freebsd: don't link to libgeom
libgeom declares several symbols in GLib's namespace, including
g_close() and it therefore cannot be used from any program that also
uses GLib.

For now, disable the parts of the FreeBSD sysdep that use libgeom.
Hopefully the libgeom API will be changed soon.

https://bugzilla.gnome.org/show_bug.cgi?id=723685
2014-02-20 20:56:57 -05:00
Ting-Wei Lan
a39f290683 Fix build issues on FreeBSD 2014-02-20 20:55:39 -05:00
Petr Salinger
1baa3fcc6a kFreeBSD 8.0 build fix
fixes a couple of checks for kFreeBSD 8.0.
https://bugzilla.gnome.org/show_bug.cgi?id=608518
2011-08-30 17:00:18 +02:00
Joe Marcus Clarke
08fd95d253 Fix numerous bigs in the FreeBSD backend
* Correct calculation of CPU time.
* Fix a bug on newer versions of FreeBSD where computing the process map leads
to a tight error loop.
* Add support for the new procstat API to obtain the list of open files and
cwd.
* Use kvm_openfiles instead of kvm_open to better handle error messages.
* Split some modules out into non-suid modules.
* Properly determine the number of CPUs.

https://bugzilla.gnome.org/show_bug.cgi?id=605431
2011-06-27 16:32:20 +02:00
Alexander Kojevnikov
f787bfa0c7 freebsd: Fix get_mem() on 64-bit systems (bgo#630128) 2010-10-03 10:17:58 +11:00
Benoît Dejean
10a04fc9c7 Improved freebsd port.
Patch by Joe Marcus Clarke <marcus@freebsd.org>.
Closes #548184.

svn path=/trunk/; revision=2767
2008-08-18 16:11:07 +00:00
Benoît Dejean
1d5f2cb395 Fixed build on GNU/kFreeBSD.
Patch by Petr Salinger <Petr.Salinger@seznam.cz>.
Closes #507430.

svn path=/trunk/; revision=2698
2008-01-05 13:45:31 +00:00
Benoît Dejean
86ace13645 Fixed unit of vsize and resident.
Patch by Kuang-che Wu <kcwu@csie.org>.
Closes #506889.

svn path=/trunk/; revision=2697
2008-01-05 13:45:17 +00:00
Benoît Dejean
bc848239ff Forgot to add these files.
svn path=/trunk/; revision=2618
2007-07-02 15:47:24 +00:00
Benoît Dejean
0285e018f4 Fixe some problems as well as implements procwd and procopenfiles for
2007-07-01  Benoît Dejean  <benoit@placenet.org>

	Fixe some problems as well as implements procwd and procopenfiles
	for FreeBSD using a wrapper around lsof. This same backend should
	also work on kFreeBSD.

	Patch by Joe Marcus Clarke <marcus@freebsd.org>

svn path=/trunk/; revision=2617
2007-07-01 13:21:07 +00:00
Benoît Dejean
c7295cd5f0 Got rid of G_GNUC_INTERNAL.
svn path=/trunk/; revision=2601
2007-05-31 20:31:22 +00:00
Benoît Dejean
65fe248d66 Got rid of G_GNUC_INTERNAL.
svn path=/trunk/; revision=2600
2007-05-31 20:04:32 +00:00
Benoît Dejean
aa9fafe5c3 Renamed all glibtop_init_xxx functions to _glibtop_init_xxx so they get
2007-04-11  Benoît Dejean  <benoit@placenet.org>

	* *:
	
	Renamed all glibtop_init_xxx functions
	to _glibtop_init_xxx so they get internal visibility.

	* configure.in:
	
	Bumped version number.

svn path=/trunk/; revision=2569
2007-04-11 17:52:14 +00:00
Benoît Dejean
04a5531a46 Removed noisy $Id$.
2007-02-20  Benoît Dejean  <benoit@placenet.org>

	* *:
	
	Removed noisy $Id$.

svn path=/trunk/; revision=2558
2007-02-19 23:10:10 +00:00
Benoît Dejean
5a15e409cf Huge (k)FreeBSD update. (k)FreeBSD support is freebsd/ Other BSD are in
2007-02-18  Benoît Dejean  <benoit@placenet.org>

	* configure.in:
	* libgtop-sysdeps.m4:
	* sysdeps/Makefile.am:
	
	Huge (k)FreeBSD update.
	(k)FreeBSD support is freebsd/
	Other BSD are in bsd/
	
	Patch by Joe Marcus Clarke  <marcus@freebsd.org>
	Alexander Nedotsukov  <bland@FreeBSD.org>
	
	Closes #407693.

svn path=/trunk/; revision=2557
2007-02-18 01:10:53 +00:00
Benoît Dejean
c6a7459bc9 Various FreeBSD and kFreeBSD updates. Patch by Roy Marples
2007-01-31  Benoît Dejean  <benoit@placenet.org>

	* fsusage.c: (_glibtop_freebsd_get_fsusage_read_write):
	* netload.c: (glibtop_get_netload_p):
	* prockernel.c: (glibtop_get_proc_kernel_p):
	* procmap.c: (glibtop_get_proc_map_p):
	* proctime.c:
	* siglist.c:
	* /libgtop-sysdeps.m4:
	
	Various FreeBSD and kFreeBSD updates.
	Patch by Roy Marples  <uberlord@gentoo.org>.
	Reviewed by Petr Salinger  <Petr.Salinger@seznam.cz>.
	Closes #387200.

svn path=/trunk/; revision=2550
2007-01-31 21:23:21 +00:00
Benoît Dejean
c9385972bd Bumped version number to 2.14.6.
2007-01-11  Benoît Dejean  <benoit@placenet.org>

	* configure.in:
	
	Bumped version number to 2.14.6.
	
	* *:
	
	Got rid of CVS admin files.

svn path=/trunk/; revision=2545
2007-01-11 20:35:33 +00:00
Benoît Dejean
0b438b5250 Added kfreebsd support. Patch by Petr Salinger <Petr.Salinger@seznam.cz>.
2006-11-27  Benoît Dejean  <benoit@placenet.org>

	* fsusage.c: (_glibtop_freebsd_get_fsusage_read_write):
	* mem.c: (glibtop_get_mem_p):
	* prockernel.c: (glibtop_get_proc_kernel_p):
	* proclist.c: (glibtop_get_proclist_p):
	* procmap.c: (glibtop_get_proc_map_p):
	* procmem.c: (glibtop_get_proc_mem_p):
	* procsignal.c: (glibtop_get_proc_signal_p):
	* procstate.c: (glibtop_get_proc_state_p):
	* proctime.c:
	* procuid.c: (glibtop_get_proc_uid_p):
	* swap.c: (glibtop_init_swap_p), (glibtop_get_swap_p):

	Added kfreebsd support.
	Patch by Petr Salinger <Petr.Salinger@seznam.cz>.
2006-11-27 19:22:45 +00:00
Benoît Dejean
12502c2673 Fixed typo.
2006-04-09  Benoît Dejean  <benoit@placenet.org>

	* fsusage.c: (_glibtop_freebsd_get_fsusage_read_write):

	Fixed typo.
2006-04-09 16:54:29 +00:00
Julio M. Merino Vidal
3c21c70b64 Use configure checks to detect whether we need to define either KERNEL or
2006-04-04  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* libgtop-sysdeps.m4:
	* sysdeps/freebsd/msg_limits.c:

	Use configure checks to detect whether we need to define either
	KERNEL or _KERNEL to get the definition of 'struct msginfo' in a
	BSD system.  This replaces the previous checks in the code that
	relied on __FreeBSD__ and similar macros.

	Before this change, the explicit definition of _KERNEL in the
	msg_limits.c file broke the build in NetBSD because it made the
	system headers pull in stuff unavailable to userland.

	Fixes bug #337207.
2006-04-09 10:50:43 +00:00
Julio M. Merino Vidal
9e6115f322 Check for the kvm library and use it to link the suid freebsd sysdeps code
2006-04-04  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* libgtop-sysdeps.m4:
	* sysdeps/freebsd/Makefile.am:

	Check for the kvm library and use it to link the suid freebsd
	sysdeps code (only if available).  This library provides all the
	kvm_* functions used in it and is needed, at least, under NetBSD.

	Fixes bug #337247.
2006-04-09 10:12:17 +00:00
Julio M. Merino Vidal
cead508eae Use statvfs(2) if available instead of statfs(2). The latter was replaced
2006-04-04  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* sysdeps/freebsd/fsusage.c:

	Use statvfs(2) if available instead of statfs(2).  The latter was
	replaced by the former and is no longer available under, e.g. NetBSD.

	Fixes bug #337235.
2006-04-09 10:08:22 +00:00
Benoît Dejean
afa9757a0e Store only strings in values' values. g_strdup these strings. Even if
2006-04-04  Benoît Dejean  <benoit@placenet.org>

	* sysinfo.c: (init_sysinfo):

	Store only strings in values' values. g_strdup these strings.
	Even if values is never destroyed, set key_destroy_func to NULL.

	Leave description to NULL.
2006-04-04 21:23:46 +00:00
Julio M. Merino Vidal
80855eabe2 Bring back to life (from the 1.x versions) the sysinfo.c file for the
2006-04-04  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* sysdeps/freebsd/Makefile.am:
	* sysdeps/freebsd/sysinfo.c:

	Bring back to life (from the 1.x versions) the sysinfo.c file for
	the freebsd sysdeps.  The new file comes from the FreeBSD ports
	repository and has some minor style changes by me.  This is required
	to get the glibtop_get_sysinfo_s function used by the sysdeps common
	code.

	Fixes bug #337251.
2006-04-04 20:36:43 +00:00
Julio M. Merino Vidal
3558c4d5c3 Synch the list of GLIBTOP_SUID_* constants with those expected by the
2006-04-04  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* sysdeps/aix/glibtop_server.h:
	* sysdeps/freebsd/glibtop_server.h:
	* sysdeps/osf1/glibtop_server.h:
	* sysdeps/stub/glibtop_server.h:
	* sysdeps/stub_suid/glibtop_server.h:

	Synch the list of GLIBTOP_SUID_* constants with those expected by
	the lib/sysdeps.c file.  Fixes the build under, at least, NetBSD
	and FreeBSD.

	Fixes bug #337246.
2006-04-04 20:06:14 +00:00
Julio M. Merino Vidal
1870a03538 Remove obsolete and non-functional code that breaks the build under
2006-04-04  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* sysdeps/freebsd/proctime.c:

	Remove obsolete and non-functional code that breaks the build under
	NetBSD.  It was guarded by a conditional but could not compile
	anyway because it referred to an undefined variable.

	Fixes bug #337234.
2006-04-04 20:01:43 +00:00
James Henstridge
aa5ac8fc10 remove unused file.
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.
2005-12-12 09:38:15 +00:00
Benoît Dejean
78cb7832c5 Moved _glibtop_init_hook_[sp] declaration to private glibtop/init_hooks.h.
* configure.in:
	* include/glibtop/Makefile.am:
	* include/glibtop/glibtop-server.h:
	* include/glibtop/init_hooks.h:
	* include/glibtop/sysdeps.h:
	* lib/init.c: (glibtop_init_s):
	* lib/sysdeps.c:
	* sysdeps/aix/open.c: (glibtop_init_p):
	* sysdeps/common/sysdeps_suid.c:
	* sysdeps/freebsd/open.c: (glibtop_init_p):
	* sysdeps/osf1/open_suid.c: (glibtop_init_p):
	* sysdeps/solaris/open_suid.c: (glibtop_init_p):
	* sysdeps/stub_suid/open.c: (glibtop_init_p):

	Moved _glibtop_init_hook_[sp] declaration to private
	glibtop/init_hooks.h. Marked them const.

	Fixed GLIBTOP_SUID_NETLIST issues.
2005-08-02 09:47:21 +00:00
Benoît Dejean
0561316344 Forgot to add this file.
* fsusage.c: (_glibtop_freebsd_get_fsusage_read_write): Forgot to add
	this file.
2005-02-28 08:54:41 +00:00
Benoît Dejean
2c0f291b3c Fix a bug in netlist where glibtop_netlist.number was never initialized to
* Makefile.am:
	* cpu.c: (glibtop_get_cpu_p):
	* netlist.c: (glibtop_get_netlist_s):
	* netload.c: (glibtop_get_netload_p):
	* procmem.c: (glibtop_get_proc_mem_p):

	Fix a bug in netlist where glibtop_netlist.number was never initialized to 0
	(this resulted in a NULL pointer dereference in the network load feature
	of the multiload applet)

	* Add support for getting interface flags and packet counts even on interfaces
	without IP addresses (needed for the network load feature of the multiload applet)

	* Restore per-process limits in the !FreeBSD or __FreeBSD_version < 500013
	case

	* Add CPU interrupt time as IOWAIT to get support for the cpu load feature of
	the multiload applet.

	Patch from marcus@freebsd.org (Joe Marcus Clarke).
	Closes #168704.
2005-02-28 08:15:59 +00:00
Benoît Dejean
717ee1c88f Add support for FreeBSD 6-CURRENT. Use the more portable getrlimit to
* Makefile.am:
	* netlist.c: (glibtop_get_netlist_s):
	* procmap.c: (glibtop_get_proc_map_p):
	* procmem.c: (glibtop_get_proc_mem_p):
	* procopenfiles.c: (glibtop_init_proc_open_files_s),
	(glibtop_get_proc_open_files_s):
	* proctime.c:

	Add support for FreeBSD 6-CURRENT.
	Use the more portable getrlimit to obtain process memory limits.
	Correctly determine process time.
	Stub out the procopenfiles() function (this is not yet implemented, however).
	Fix a nasty infinite loop and memory leak due to a forgot pointer increment.

	Patch from marcus@freebsd.org (Joe Marcus Clarke).
	Closes #168232.
2005-02-23 08:20:45 +00:00
Benoît Dejean
fe5bb1c39c Added glibtop_get_netlist. Patch from marcus@freebsd.org (Joe Marcus
* Makefile.am:
	* netlist.c: (glibtop_init_netlist_s), (glibtop_get_netlist_s):
	Added glibtop_get_netlist. Patch from marcus@freebsd.org (Joe Marcus Clarke).
2004-12-05 12:01:43 +00:00