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