Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src



On 31.05.10 05:18, Mindaugas Rasiukevicius wrote:
> Module Name:  src
> Committed By: rmind
> Date:         Mon May 31 03:18:33 UTC 2010
> 
> Modified Files:
>       src/bin/ps: extern.h print.c ps.c
>       src/external/bsd/top/dist/machine: m_netbsd.c
> 
> Log Message:
> Fix ps(1) and top(1) to show reasonable CPU numbers i.e. cpu_index() provided
> by the kernel, instead of CPU order number, which is generally random.
> 
> 
> To generate a diff of this commit:
> cvs rdiff -u -r1.32 -r1.33 src/bin/ps/extern.h
> cvs rdiff -u -r1.112 -r1.113 src/bin/ps/print.c
> cvs rdiff -u -r1.74 -r1.75 src/bin/ps/ps.c
> cvs rdiff -u -r1.12 -r1.13 src/external/bsd/top/dist/machine/m_netbsd.c
> 
> Please note that diffs are not public domain; they are subject to the
> copyright notices on the relevant files.
> 
> 
> 
> 
> Modified files:
> 
> Index: src/bin/ps/extern.h
> diff -u src/bin/ps/extern.h:1.32 src/bin/ps/extern.h:1.33
> --- src/bin/ps/extern.h:1.32  Sun Feb 10 17:47:59 2008
> +++ src/bin/ps/extern.h       Mon May 31 03:18:33 2010
> @@ -1,4 +1,4 @@
> -/*   $NetBSD: extern.h,v 1.32 2008/02/10 17:47:59 christos Exp $     */
> +/*   $NetBSD: extern.h,v 1.33 2010/05/31 03:18:33 rmind Exp $        */
>  
>  /*-
>   * Copyright (c) 1991, 1993, 1994
> @@ -83,7 +83,6 @@
>  void  rgname(void *, VARENT *, int);
>  void  rssize(void *, VARENT *, int);
>  void  runame(void *, VARENT *, int);
> -void  setncpu(void);
>  void  showkey(void);
>  void  started(void *, VARENT *, int);
>  void  state(void *, VARENT *, int);
> 
> Index: src/bin/ps/print.c
> diff -u src/bin/ps/print.c:1.112 src/bin/ps/print.c:1.113
> --- src/bin/ps/print.c:1.112  Wed Oct 21 21:11:57 2009
> +++ src/bin/ps/print.c        Mon May 31 03:18:33 2010
> @@ -1,4 +1,4 @@
> -/*   $NetBSD: print.c,v 1.112 2009/10/21 21:11:57 rmind Exp $        */
> +/*   $NetBSD: print.c,v 1.113 2010/05/31 03:18:33 rmind Exp $        */
>  
>  /*
>   * Copyright (c) 2000, 2007 The NetBSD Foundation, Inc.
> @@ -63,7 +63,7 @@
>  #if 0
>  static char sccsid[] = "@(#)print.c  8.6 (Berkeley) 4/16/94";
>  #else
> -__RCSID("$NetBSD: print.c,v 1.112 2009/10/21 21:11:57 rmind Exp $");
> +__RCSID("$NetBSD: print.c,v 1.113 2010/05/31 03:18:33 rmind Exp $");
>  #endif
>  #endif /* not lint */
>  
> @@ -101,8 +101,6 @@
>  static void  strprintorsetwidth(VAR *, const char *, int);
>  
>  static time_t now;
> -static int ncpu;
> -static u_int64_t *cp_id;
>  
>  #define      min(a,b)        ((a) <= (b) ? (a) : (b))
>  
> @@ -999,39 +997,6 @@
>  }
>  
>  void
> -setncpu(void)
> -{
> -     int mib[2];
> -     size_t size;
> -
> -     mib[0] = CTL_HW;
> -     mib[1] = HW_NCPU;
> -     size = sizeof(ncpu);
> -     if (sysctl(mib, 2, &ncpu, &size, NULL, 0) == -1) {
> -             ncpu = 0;
> -             return;
> -     }
> -     cp_id = malloc(sizeof(cp_id[0]) * ncpu);
> -     if (cp_id == NULL)
> -             err(1, NULL);
> -     mib[0] = CTL_KERN;
> -     mib[1] = KERN_CP_ID;
> -     size = sizeof(cp_id[0]) * ncpu;
> -     if (sysctl(mib, 2, cp_id, &size, NULL, 0) == -1)
> -             ncpu = 0;
> -}
> -
> -static int
> -get_cpunum(u_int64_t id)
> -{
> -     int i = 0;
> -     for (i = 0; i < ncpu; i++)
> -             if (id == cp_id[i])
> -                     return i;
> -     return -1;
> -}
> -
> -void
>  cpuid(void *arg, VARENT *ve, int mode)
>  {
>       struct kinfo_lwp *l;
> @@ -1039,7 +1004,7 @@
>  
>       l = arg;
>       v = ve->var;
> -     intprintorsetwidth(v, get_cpunum(l->l_cpuid), mode);
> +     intprintorsetwidth(v, l->l_cpuid, mode);
>  }
>  
>  void
> 
> Index: src/bin/ps/ps.c
> diff -u src/bin/ps/ps.c:1.74 src/bin/ps/ps.c:1.75
> --- src/bin/ps/ps.c:1.74      Sun Mar 29 01:02:49 2009
> +++ src/bin/ps/ps.c   Mon May 31 03:18:33 2010
> @@ -1,4 +1,4 @@
> -/*   $NetBSD: ps.c,v 1.74 2009/03/29 01:02:49 mrg Exp $      */
> +/*   $NetBSD: ps.c,v 1.75 2010/05/31 03:18:33 rmind Exp $    */
>  
>  /*
>   * Copyright (c) 2000-2008 The NetBSD Foundation, Inc.
> @@ -68,7 +68,7 @@
>  #if 0
>  static char sccsid[] = "@(#)ps.c     8.4 (Berkeley) 4/2/94";
>  #else
> -__RCSID("$NetBSD: ps.c,v 1.74 2009/03/29 01:02:49 mrg Exp $");
> +__RCSID("$NetBSD: ps.c,v 1.75 2010/05/31 03:18:33 rmind Exp $");
>  #endif
>  #endif /* not lint */
>  
> @@ -169,8 +169,6 @@
>       else
>               termwidth = ws.ws_col - 1;
>  
> -     setncpu();
> -
>       if (argc > 1)
>               argv[1] = kludge_oldps_options(argv[1]);
>  
> 
> Index: src/external/bsd/top/dist/machine/m_netbsd.c
> diff -u src/external/bsd/top/dist/machine/m_netbsd.c:1.12 
> src/external/bsd/top/dist/machine/m_netbsd.c:1.13
> --- src/external/bsd/top/dist/machine/m_netbsd.c:1.12 Wed May 12 22:09:36 2010
> +++ src/external/bsd/top/dist/machine/m_netbsd.c      Mon May 31 03:18:33 2010
> @@ -1,4 +1,4 @@
> -/*   $NetBSD: m_netbsd.c,v 1.12 2010/05/12 22:09:36 christos Exp $   */
> +/*   $NetBSD: m_netbsd.c,v 1.13 2010/05/31 03:18:33 rmind Exp $      */
>  
>  /*
>   * top - a top users display for Unix
> @@ -37,12 +37,12 @@
>   *           Andrew Doran <ad%NetBSD.org@localhost>
>   *
>   *
> - * $Id: m_netbsd.c,v 1.12 2010/05/12 22:09:36 christos Exp $
> + * $Id: m_netbsd.c,v 1.13 2010/05/31 03:18:33 rmind Exp $
>   */
>  #include <sys/cdefs.h>
>  
>  #ifndef lint
> -__RCSID("$NetBSD: m_netbsd.c,v 1.12 2010/05/12 22:09:36 christos Exp $");
> +__RCSID("$NetBSD: m_netbsd.c,v 1.13 2010/05/31 03:18:33 rmind Exp $");
>  #endif
>  
>  #include <sys/param.h>
> @@ -72,8 +72,6 @@
>  
>  static void percentages64(int, int *, u_int64_t *, u_int64_t *,
>      u_int64_t *);
> -static int get_cpunum(u_int64_t);
> -
>  
>  /* get_process_info passes back a handle.  This is what it looks like: */
>  
> @@ -138,7 +136,6 @@
>  
>  static int ncpu = 0;
>  static u_int64_t *cp_time;
> -static u_int64_t *cp_id;
>  static u_int64_t *cp_old;
>  static u_int64_t *cp_diff;
>  
> @@ -300,17 +297,6 @@
>       return cmdbuf;
>  }
>  
> -static int
> -get_cpunum(id)
> -     u_int64_t id;
> -{
> -     int i = 0;
> -     for (i = 0; i < ncpu; i++)
> -             if (id == cp_id[i])
> -                     return i;
> -     return -1;
> -}
> -
>  int
>  machine_init(statics)
>       struct statics *statics;
> @@ -347,15 +333,6 @@
>       if (size == sizeof(cp_time[0]) * CPUSTATES)
>               ncpu = 1;
>  
> -     cp_id = malloc(sizeof(cp_id[0]) * ncpu);

Where is the removal of the corresponding free() ?

Christoph

> -     mib[0] = CTL_KERN;
> -     mib[1] = KERN_CP_ID;
> -     size = sizeof(cp_id[0]) * ncpu;
> -     if (sysctl(mib, 2, cp_id, &size, NULL, 0) < 0) {
> -             fprintf(stderr, "top: sysctl kern.cp_id failed: %s\n",
> -                 strerror(errno));
> -             return(-1);
> -     }
>       cpu_states = malloc(sizeof(cpu_states[0]) * CPUSTATES * ncpu);
>       cp_old = malloc(sizeof(cp_old[0]) * CPUSTATES * ncpu);
>       cp_diff = malloc(sizeof(cp_diff[0]) * CPUSTATES * ncpu);
> @@ -865,8 +842,8 @@
>               case LSRUN:
>               case LSSLEEP:
>               case LSIDL:
> -                     (void)snprintf(state, sizeof(state), "%.6s/%d", 
> -                          statep, get_cpunum(pp->p_cpuid));
> +                     (void)snprintf(state, sizeof(state), "%.6s/%lu", 
> +                          statep, pp->p_cpuid);
>                       statep = state;
>                       break;
>               }
> @@ -938,8 +915,8 @@
>               case LSRUN:
>               case LSSLEEP:                   
>               case LSIDL:
> -                     (void)snprintf(state, sizeof(state), "%.6s/%d", 
> -                          statep, get_cpunum(pl->l_cpuid));
> +                     (void)snprintf(state, sizeof(state), "%.6s/%lu", 
> +                          statep, pl->l_cpuid);
>                       statep = state;
>                       break;
>               }
> 



Home | Main Index | Thread Index | Old Index