Current-Users archive

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

[jruohonen%iki.fi@localhost: Re: Add hardware ID to cpuctl list]



On Fri, Sep 09, 2011 at 11:23:29AM +0100, Julian Coleman wrote:
> Hi,
> 
> I noticed that `cpuctl list` doesn't list the hardware ID of the CPU - it
> just shows the "index" under the HwId column.  For example:
> 
>   dmesg | grep cpu1
>   cpu1 at mainbus0: SUNW,UltraSPARC-II @ 450 MHz, UPA id 2
> 
>   cpuctl list
>   Num  HwId Unbound LWPs Interrupts     Last change
>   ---- ---- ------------ -------------- ----------------------------
>   1    1    online       intr           Mon Aug  8 06:09:26 2011
> 
> where the HwId of cpu1 should be 2.
> 
> The attached adds a cs_hwid field with a value taken from ci_cpuid.  I did
> consider making cs_id have the same value as ci_cpuid, but cs_id is used as
> an index value.
> 
> OK to commit?

Ups. Ignore the previous. Looks fine to me.

- Jukka.

> 
> -- 
>   My other computer also runs NetBSD    /        Sailing at Newbiggin
>         http://www.netbsd.org/        /   http://www.newbigginsailingclub.org/

> Index: src/sys/sys/cpuio.h
> ===================================================================
> RCS file: /cvsroot/src/sys/sys/cpuio.h,v
> retrieving revision 1.4
> diff -u -r1.4 cpuio.h
> --- src/sys/sys/cpuio.h       19 Apr 2009 14:11:37 -0000      1.4
> +++ src/sys/sys/cpuio.h       9 Sep 2011 10:12:08 -0000
> @@ -53,7 +53,8 @@
>       char            cs_name[16];    /* reserved */
>       int32_t         cs_lastmodhi;   /* time of last state change */
>       uint32_t        cs_intrcnt;     /* count of interrupt handlers + 1 */
> -     uint32_t        cs_reserved[2]; /* reserved */
> +     uint32_t        cs_hwid;        /* hardware id */
> +     uint32_t        cs_reserved;    /* reserved */
>  } cpustate_t;
>  
>  #define      IOC_CPU_SETSTATE        _IOW('c', 0, cpustate_t)
> Index: src/sys/kern/kern_cpu.c
> ===================================================================
> RCS file: /cvsroot/src/sys/kern/kern_cpu.c,v
> retrieving revision 1.50
> diff -u -r1.50 kern_cpu.c
> --- src/sys/kern/kern_cpu.c   7 Aug 2011 21:38:32 -0000       1.50
> +++ src/sys/kern/kern_cpu.c   9 Sep 2011 10:12:08 -0000
> @@ -226,6 +226,7 @@
>               cs->cs_lastmodhi = (int32_t)
>                   (ci->ci_schedstate.spc_lastmod >> 32);
>               cs->cs_intrcnt = cpu_intr_count(ci) + 1;
> +             cs->cs_hwid = ci->ci_cpuid;
>               break;
>  
>       case IOC_CPU_MAPID:
> Index: src/usr.sbin/cpuctl/cpuctl.c
> ===================================================================
> RCS file: /cvsroot/src/usr.sbin/cpuctl/cpuctl.c,v
> retrieving revision 1.16
> diff -u -r1.16 cpuctl.c
> --- src/usr.sbin/cpuctl/cpuctl.c      27 Aug 2011 22:38:48 -0000      1.16
> +++ src/usr.sbin/cpuctl/cpuctl.c      9 Sep 2011 10:12:08 -0000
> @@ -266,7 +266,7 @@
>                   ((time_t)cs.cs_lastmodhi << 32);
>               ts = asctime(localtime(&lastmod));
>               ts[strlen(ts) - 1] = '\0';
> -             printf("%-4d %-4x %-12s %-10s %s %s\n", i, cs.cs_id, state,
> +             printf("%-4d %-4x %-12s %-10s %s %s\n", i, cs.cs_hwid, state,
>                  intr, ts, ibuf);
>       }
>  }


Home | Main Index | Thread Index | Old Index