|
1 Upstream patch to fix issue #496. https://github.com/giampaolo/psutil/issues/496 |
|
2 Pulled from https://github.com/giampaolo/psutil/commit/f1275c19ac9e77b9169ca84dfb7d7701a8a2f9d7 |
|
3 |
|
4 Issue is fixed in psutil 2.2.0, but the module is pinned to >= 1.1.1, < 2.0.0 |
|
5 by OpenStack requirements. |
|
6 |
|
7 Should psutil be updated to or past 2.2.0, this patch can be removed. |
|
8 |
|
9 --- psutil-1.2.1/psutil/_psutil_sunos.c.orig 2016-04-15 12:57:05.971196362 -0700 |
|
10 +++ psutil-1.2.1/psutil/_psutil_sunos.c 2016-04-15 12:58:51.079231642 -0700 |
|
11 @@ -445,29 +445,24 @@ |
|
12 goto error; |
|
13 } |
|
14 |
|
15 - numcpus = sysconf(_SC_NPROCESSORS_ONLN) - 1; |
|
16 - for (i=0; i<=numcpus; i++) { |
|
17 - ksp = kstat_lookup(kc, "cpu_stat", i, NULL); |
|
18 - if (ksp == NULL) { |
|
19 - PyErr_SetFromErrno(PyExc_OSError); |
|
20 - goto error; |
|
21 - } |
|
22 - if (kstat_read(kc, ksp, &cs) == -1) { |
|
23 - PyErr_SetFromErrno(PyExc_OSError); |
|
24 - goto error; |
|
25 - } |
|
26 - |
|
27 - py_cputime = Py_BuildValue("ffff", |
|
28 - (float)cs.cpu_sysinfo.cpu[CPU_USER], |
|
29 - (float)cs.cpu_sysinfo.cpu[CPU_KERNEL], |
|
30 - (float)cs.cpu_sysinfo.cpu[CPU_IDLE], |
|
31 - (float)cs.cpu_sysinfo.cpu[CPU_WAIT]); |
|
32 - if (py_cputime == NULL) |
|
33 - goto error; |
|
34 - if (PyList_Append(py_retlist, py_cputime)) |
|
35 - goto error; |
|
36 - Py_DECREF(py_cputime); |
|
37 - |
|
38 + for (ksp = kc->kc_chain; ksp != NULL; ksp = ksp->ks_next) { |
|
39 + if (strcmp(ksp->ks_module, "cpu_stat") == 0) { |
|
40 + if (kstat_read(kc, ksp, &cs) == -1) { |
|
41 + PyErr_SetFromErrno(PyExc_OSError); |
|
42 + goto error; |
|
43 + } |
|
44 + py_cputime = Py_BuildValue("ffff", |
|
45 + (float)cs.cpu_sysinfo.cpu[CPU_USER], |
|
46 + (float)cs.cpu_sysinfo.cpu[CPU_KERNEL], |
|
47 + (float)cs.cpu_sysinfo.cpu[CPU_IDLE], |
|
48 + (float)cs.cpu_sysinfo.cpu[CPU_WAIT]); |
|
49 + if (py_cputime == NULL) |
|
50 + goto error; |
|
51 + if (PyList_Append(py_retlist, py_cputime)) |
|
52 + goto error; |
|
53 + Py_DECREF(py_cputime); |
|
54 + py_cputime = NULL; |
|
55 + } |
|
56 } |
|
57 |
|
58 kstat_close(kc); |