Commit Graph

288 Commits

Author SHA1 Message Date
Benoît Dejean
1defc74f07 Set glibtop_proc_diskio.flags.
Check linux version code before reading /proc/PID/io.
2017-02-21 12:50:37 +01:00
Robert Roth
dff7c5588e New API to retrieve process io stats, with Linux implementation 2017-02-12 17:59:08 +02:00
Benoît Dejean
1a103bf142 When parsing /proc/cpuinfo, ignore paragraphs that do not describe a CPU/core. 2017-01-28 09:39:43 +01:00
Benoît Dejean
01a56e2e30 Use g_ascii_isspace instead of isspace because the later is slower and we
only need to deal with ascii.
2017-01-22 10:45:26 +01:00
Benoît Dejean
7afc81f99d Do not cache getpagesize(), it is already. 2017-01-22 10:45:26 +01:00
Benoît Dejean
b0ab056e99 Use a dynamically allocated buffer to read /proc/cpuinfo to handle computers
with a lot of CPUs.

https://bugzilla.gnome.org/show_bug.cgi?id=323354
2017-01-22 10:45:26 +01:00
Robert Roth
70e00a0262 Fixed indentation problem 2016-11-27 20:10:00 +02:00
Florian Müllner
f99bb61446 procstate: Fill in last_processor member on linux
The field was added almost 20 years ago, but has only been set on
Solaris so far. It turns out we have a use for it now in the new
"Usage" application, so also fill it in on Linux.

https://bugzilla.gnome.org/show_bug.cgi?id=775182
2016-11-27 20:07:20 +02:00
Kylie McClain
94968b4406 Fix building on musl-libc
libgtop fails to build on musl libc, due to the header
resulting in the headers that would be loaded for libc 5 being
loaded on musl libc.
musl defines headers which are also defined in linux-headers'
in.h, causing redefinition errors.

https://bugzilla.gnome.org/show_bug.cgi?id=760655

Signed-off-by: Benoît Dejean <bdejean@gmail.com>
2016-02-16 18:12:00 +01:00
Benoit Dejean
c9e73e52ac glibtop_machine is defined in glibtop.h.
Don't duplicate the typedef (error unless C11).
2015-08-15 10:56:41 +02:00
Benoit Dejean
4c455ac8a0 Implement glibtop_map_entry Pss and Swap.
Regenerate hash function for fast parsing.
2015-08-15 10:39:39 +02:00
Benoît Dejean
ca42f1f3af Define glibtop_machine for Linux as empty because it's not used.
Fix compilation.
2015-08-08 11:11:30 +02:00
Benoit Dejean
8f2f236404 No use for glibtop_machine for now, but who knows in the future. 2015-08-08 11:00:57 +02:00
Benoit Dejean
d817bee619 Remove useless/meaningless calls to glibtop_init_[prs]() with sysdeps/{freebsd,linux}. 2015-08-08 10:56:25 +02:00
Benoit Dejean
d3a247a60f Don't include the ':' in smaps keys.
Regenerate the hashtable.
2015-08-08 10:56:24 +02:00
Benoit Dejean
119049b8c0 Fix autotools deprecation warning with s/INCLUDES/AM_CPPFLAGS/g. 2015-07-15 18:24:29 +02:00
Benoît Dejean
c33623c097 Provide stats about shared memory and account Slab as cached.
This matches exactly `free`.
2015-07-14 11:11:38 +02:00
Benoît Dejean
4c4466292e Fixed sscanf format string as arguments are unsigned ints. 2015-07-10 20:36:12 +02:00
Ionut Biru
fcc1d9d957 Add support for linux x.y versioning schema
Since linux 3.0, a valid version can have two digits

Signed-off-by: Ionut Biru <ibiru@archlinux.org>
2015-07-10 20:36:12 +02:00
Benoît Dejean
0580b2fb2c Linux >= 3.14 provides a "MemAvailable" field in /proc/meminfo which gives the
estimated amount of memory available for applications.
Use this to compute glibtop_mem::user.

https://bugzilla.gnome.org/show_bug.cgi?id=727543.
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/fs/proc/meminfo.c?id=34e431b0ae398fc54ea69ff85ec700722c9da773
2015-07-10 20:36:12 +02: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
Jason Xing
efaaf6eb77 Extending the cpu number from 32 to 1024 (bgo #323354, bgo #681632)
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=323354
https://bugzilla.gnome.org/show_bug.cgi?id=681632
2013-12-12 22:36:10 +02:00
Robert Roth
47bcd423b5 Linux cpuinfo count fixed for SMP PPC processors (bgo #621831)
libgtop processor count has been simply determined by the number
of sections in /proc/cpuinfo split by \n\n. On PPC processors
supporting SMP after the per-cpu description for each core a
new section is listed (after \n\n) with the common attributes
of the cores [1]. Work around this by only counting a section
as describing a CPU if it contains "processor" to fix bug #621831 [0]
[0] https://bugzilla.gnome.org/show_bug.cgi?id=621831
[1] https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/tree/arch/powerpc/kernel/setup-common.c?id=9fc2105aeaaf56b0cf75296a84702d0f9e64437b#n319
2013-12-09 04:02:38 +02:00
Robert Roth
3147bf2e34 Log error on statvfs failure.
When doing stat on a FS and failing, log the error message based
on the errno set to help the user find the reason.
https://bugzilla.gnome.org/show_bug.cgi?id=685172
2013-12-09 01:57:01 +02:00
Robert Roth
af7e9cd1b6 Increased buffersize to be able to hold larger cpuinfo files (bgo #681632) 2013-08-22 01:48:12 +03:00
Cole Robinson
37774dc02d fsusage: Fix fetching rootfs stats on Fedora 17
When fsusage scans mtab, it matches on the first entry, but since 'rootfs'
isn't of the expected format '/dev/<blah>' it bails out.

Match early on any rootfs entries and skip them.

Fixes #685897
2013-01-28 23:02:04 +01:00
Kjartan Maraas
46c1169ab1 Add missing #include <config.h> 2012-01-23 21:28:10 +01:00
Christian Persch
f41ab3beed Don't printf a string directly but use %s instead
Bug #581725.

Signed-off-by: Benoît Dejean <benoit@placenet.org>
2009-05-08 14:22:17 +02:00
Benoît Dejean
2679fdde9a Killed debug message. 2009-05-03 19:46:00 +02:00
Benoît Dejean
2458096acf Oops, fix segfault in linux/proc_map.
I've commited the wrong patch, got lost in the svn->git change.
2009-05-03 19:41:22 +02:00
Benoît Dejean
d99a29d217 Looks for smaps member using a gperf table instead of using
bsearch.
Brings a 25% boost.
2009-05-03 16:40:13 +02:00
Benoît Dejean
62bafe804e Don't use sscanf anymore when parsins smaps.
That's more code but it brings a 20% speed improvement.
2009-05-03 16:25:31 +02:00
Benoît Dejean
3d9f260bd4 Always ignore "none" FS type.
See #577537.

svn path=/trunk/; revision=2816
2009-03-31 22:31:48 +00:00
Benoît Dejean
35a0ac4f2c r2790 | bdejean | 2009-01-12 19:39:44 +0100 (lun 12 jan 2009) | 3 lines
Fixed read(2) usage.
Closes #468495.

svn path=/trunk/; revision=2801
2009-02-16 22:57:05 +00:00
Benoît Dejean
77fff173fc Fixed potential memory leak.
Patch by Vincent Untz <vuntz@gnome.org>.
Closes #566611.

svn path=/trunk/; revision=2787
2009-01-08 00:37:59 +00:00
Benoît Dejean
7f779e078d Fixed I/O stats so it works for unpartionned devices (e.g. cdrom).
svn path=/trunk/; revision=2757
2008-06-22 11:27:30 +00:00
Benoît Dejean
791e0dd859 Handle new /sys/block/.../stat format for linux >= 2.6.25.
Closes #539360.

svn path=/trunk/; revision=2755
2008-06-22 09:31:41 +00:00
Benoît Dejean
af81e9be75 Put back the old behaviour (no smart pss for now).
svn path=/trunk/; revision=2749
2008-05-24 16:20:01 +00:00
Benoît Dejean
90fc3ca780 New API to retrieve process CPU affinity.
Linux implementation.

svn path=/trunk/; revision=2748
2008-05-24 09:50:04 +00:00
Benoît Dejean
dc5da30913 Fixed parsing of big /proc/stat for uptime.
svn path=/trunk/; revision=2741
2008-04-28 16:20:56 +00:00
Benoît Dejean
4d78d26932 First try to implement proportional set size by recyling
glibtop_proc_mem's duplicate members.x
Currently implemented on linux in rss member, for now
size,share,resident,rss are the only filled members.

svn path=/trunk/; revision=2740
2008-04-21 18:59:25 +00:00
Benoît Dejean
cd950bbf73 Added comment about get_scaled usage.
svn path=/trunk/; revision=2739
2008-04-21 18:59:23 +00:00
Benoît Dejean
c1b95643a8 Updated glibtop_get_proc_open_files API so that it also list IPv6 TCP sockets.
Patch by Mark McClelland <mark@ovcam.org>.
Closes #528175.

WTH do we not care about udp ?

Updated libtool versioning: API addition does not change the ABI, so only
increased revision. gnome-2.22 is 8.1.1 so trunk is now 8.2.1.

svn path=/trunk/; revision=2738
2008-04-21 18:59:20 +00:00
Benoît Dejean
a02e213373 Fixed ;;. Closes #521084.
Fixed ;;.
Closes #521084.

svn path=/trunk/; revision=2734
2008-04-05 17:13:28 +00:00
Benoît Dejean
d97b0c3419 Fixed flags.
svn path=/trunk/; revision=2719
2008-03-02 18:07:24 +00:00
Benoît Dejean
960d12822d Really set wchan.
svn path=/trunk/; revision=2718
2008-03-02 18:07:22 +00:00
Benoît Dejean
35fab4d9aa Smarter smaps parsing.
See #518145.

svn path=/trunk/; revision=2713
2008-02-24 17:52:24 +00:00
Benoît Dejean
8674e92349 Implemented a linux-only fsusage sysdeps.
svn path=/trunk/; revision=2683
2007-10-17 20:53:53 +00:00
Benoît Dejean
f5bbc36a91 Little performance tuning to avoid too many array reallocation.
svn path=/trunk/; revision=2682
2007-10-17 20:52:50 +00:00
Benoît Dejean
9b072525a6 Implemented a linux-only mountlist.
Smarter ignore list based on /proc/filesystems.

svn path=/trunk/; revision=2678
2007-10-15 17:52:34 +00:00