svn commit: r261805 - head/lib/libkvm
Gleb Smirnoff
glebius at FreeBSD.org
Wed Feb 12 19:22:50 UTC 2014
Author: glebius
Date: Wed Feb 12 19:22:48 2014
New Revision: 261805
URL: http://svnweb.freebsd.org/changeset/base/261805
Log:
Add kvm_getncpus() to obtain mp_ncpus.
Sponsored by: Nginx, Inc.
Modified:
head/lib/libkvm/kvm.h
head/lib/libkvm/kvm_getpcpu.3
head/lib/libkvm/kvm_pcpu.c
Modified: head/lib/libkvm/kvm.h
==============================================================================
--- head/lib/libkvm/kvm.h Wed Feb 12 19:07:59 2014 (r261804)
+++ head/lib/libkvm/kvm.h Wed Feb 12 19:22:48 2014 (r261805)
@@ -77,6 +77,7 @@ char *kvm_geterr(kvm_t *);
char *kvm_getfiles(kvm_t *, int, int, int *);
int kvm_getloadavg(kvm_t *, double [], int);
int kvm_getmaxcpu(kvm_t *);
+int kvm_getncpus(kvm_t *);
void *kvm_getpcpu(kvm_t *, int);
uint64_t kvm_counter_u64_fetch(kvm_t *, u_long);
struct kinfo_proc *
Modified: head/lib/libkvm/kvm_getpcpu.3
==============================================================================
--- head/lib/libkvm/kvm_getpcpu.3 Wed Feb 12 19:07:59 2014 (r261804)
+++ head/lib/libkvm/kvm_getpcpu.3 Wed Feb 12 19:22:48 2014 (r261805)
@@ -28,7 +28,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd April 11, 2013
+.Dd February 12, 2014
.Dt KVM_GETPCPU 3
.Os
.Sh NAME
@@ -47,6 +47,8 @@
.Fn kvm_dpcpu_setcpu "kvm_t *kd" "u_int cpu"
.Ft int
.Fn kvm_getmaxcpu "kvm_t *kd"
+.Ft int
+.Fn kvm_getncpus "kvm_t *kd"
.Ft void *
.Fn kvm_getpcpu "kvm_t *kd" "int cpu"
.Ft ssize_t
@@ -73,6 +75,10 @@ The
function returns the maximum number of CPUs supported by the kernel.
.Pp
The
+.Fn kvm_getncpus
+function returns the current number of CPUs in the kernel.
+.Pp
+The
.Fn kvm_getpcpu
function returns a buffer holding the per-CPU data for a single CPU.
This buffer is described by the
Modified: head/lib/libkvm/kvm_pcpu.c
==============================================================================
--- head/lib/libkvm/kvm_pcpu.c Wed Feb 12 19:07:59 2014 (r261804)
+++ head/lib/libkvm/kvm_pcpu.c Wed Feb 12 19:22:48 2014 (r261805)
@@ -173,6 +173,16 @@ kvm_getmaxcpu(kvm_t *kd)
return (maxcpu);
}
+int
+kvm_getncpus(kvm_t *kd)
+{
+
+ if (mp_ncpus == 0)
+ if (_kvm_pcpu_init(kd) < 0)
+ return (-1);
+ return (mp_ncpus);
+}
+
static int
_kvm_dpcpu_setcpu(kvm_t *kd, u_int cpu, int report_error)
{
More information about the svn-src-all
mailing list