9a6c41
979329 - hrSWRunTable does not show kernel threads
9a6c41
9a6c41
commit c655fce784532a523f7db582d0cd07dee4ad7ac5
9a6c41
Author: Niels Baggesen <nba@users.sourceforge.net>
9a6c41
Date:   Mon Oct 22 16:25:59 2012 +0200
9a6c41
9a6c41
    Try to better classify Linux kernel threads as hrSWRunType=Os
9a6c41
9a6c41
diff --git a/agent/mibgroup/host/data_access/swrun_procfs_status.c b/agent/mibgroup/host/data_access/swrun_procfs_status.c
9a6c41
index 80182d0..61c5e3a 100644
9a6c41
--- a/agent/mibgroup/host/data_access/swrun_procfs_status.c
9a6c41
+++ b/agent/mibgroup/host/data_access/swrun_procfs_status.c
9a6c41
@@ -122,11 +122,11 @@ netsnmp_arch_swrun_container_load( netsnmp_container *container, u_int flags)
9a6c41
             continue; /* file (process) probably went away */
9a6c41
 	}
9a6c41
         memset(buf, 0, sizeof(buf));
9a6c41
-        if ((cp = fgets( buf, BUFSIZ-1, fp )) == NULL) {
9a6c41
-            fclose(fp);
9a6c41
-            netsnmp_swrun_entry_free(entry);
9a6c41
-            continue;
9a6c41
-        }
9a6c41
+	entry->hrSWRunType = HRSWRUNTYPE_APPLICATION;
9a6c41
+	if ((cp = fgets( buf, sizeof(buf)-1, fp )) == NULL) {
9a6c41
+	    entry->hrSWRunType = HRSWRUNTYPE_OPERATINGSYSTEM;
9a6c41
+	    buf[0] = '\0';
9a6c41
+	}
9a6c41
         fclose(fp);
9a6c41
 
9a6c41
         /*
9a6c41
@@ -151,11 +151,6 @@ netsnmp_arch_swrun_container_load( netsnmp_container *container, u_int flags)
9a6c41
                       buf + entry->hrSWRunPath_len + 1);
9a6c41
  
9a6c41
         /*
9a6c41
-         * XXX - No information regarding system processes vs applications
9a6c41
-         */
9a6c41
-        entry->hrSWRunType = HRSWRUNTYPE_APPLICATION;
9a6c41
-
9a6c41
-        /*
9a6c41
          *   {xxx} {xxx} STATUS  {xxx}*10  UTIME STIME  {xxx}*8 RSS
9a6c41
          */
9a6c41
         snprintf( buf, BUFSIZ, "/proc/%d/stat", pid );