pkgsrc-Changes archive

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

CVS commit: pkgsrc/sysutils/py-psutil



Module Name:    pkgsrc
Committed By:   fox
Date:           Tue Apr  7 05:49:12 UTC 2026

Modified Files:
        pkgsrc/sysutils/py-psutil: Makefile
        pkgsrc/sysutils/py-psutil/patches: patch-psutil_arch_netbsd_cpu.c

Log Message:
sysutils/psutil: Remove dependency on kvm(3).

Depend on uvm(9) sysctl to derive the values.


To generate a diff of this commit:
cvs rdiff -u -r1.68 -r1.69 pkgsrc/sysutils/py-psutil/Makefile
cvs rdiff -u -r1.4 -r1.5 \
    pkgsrc/sysutils/py-psutil/patches/patch-psutil_arch_netbsd_cpu.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/sysutils/py-psutil/Makefile
diff -u pkgsrc/sysutils/py-psutil/Makefile:1.68 pkgsrc/sysutils/py-psutil/Makefile:1.69
--- pkgsrc/sysutils/py-psutil/Makefile:1.68     Mon Apr  6 16:53:11 2026
+++ pkgsrc/sysutils/py-psutil/Makefile  Tue Apr  7 05:49:12 2026
@@ -1,8 +1,8 @@
-# $NetBSD: Makefile,v 1.68 2026/04/06 16:53:11 fox Exp $
+# $NetBSD: Makefile,v 1.69 2026/04/07 05:49:12 fox Exp $
 
 DISTNAME=      psutil-7.2.2
 PKGNAME=       ${PYPKGPREFIX}-${DISTNAME}
-PKGREVISION=    1
+PKGREVISION=    2
 CATEGORIES=    sysutils python
 MASTER_SITES=  ${MASTER_SITE_PYPI:=p/psutil/}
 

Index: pkgsrc/sysutils/py-psutil/patches/patch-psutil_arch_netbsd_cpu.c
diff -u pkgsrc/sysutils/py-psutil/patches/patch-psutil_arch_netbsd_cpu.c:1.4 pkgsrc/sysutils/py-psutil/patches/patch-psutil_arch_netbsd_cpu.c:1.5
--- pkgsrc/sysutils/py-psutil/patches/patch-psutil_arch_netbsd_cpu.c:1.4        Mon Apr  6 16:53:12 2026
+++ pkgsrc/sysutils/py-psutil/patches/patch-psutil_arch_netbsd_cpu.c    Tue Apr  7 05:49:12 2026
@@ -1,4 +1,4 @@
-$NetBSD: patch-psutil_arch_netbsd_cpu.c,v 1.4 2026/04/06 16:53:12 fox Exp $
+$NetBSD: patch-psutil_arch_netbsd_cpu.c,v 1.5 2026/04/07 05:49:12 fox Exp $
 
 Remove dependency on procfs.
 
@@ -6,67 +6,19 @@ Upstream: https://github.com/giampaolo/p
 
 --- psutil/arch/netbsd/cpu.c.orig      2025-11-06 17:44:47.000000000 +0000
 +++ psutil/arch/netbsd/cpu.c
-@@ -6,6 +6,10 @@
-  */
- 
- #include <Python.h>
-+#include <fcntl.h>
-+#include <kvm.h>
-+#include <limits.h>
-+#include <nlist.h>
- #include <sys/sched.h>
- #include <sys/sysctl.h>
- #include <uvm/uvm_extern.h>
-@@ -20,25 +24,59 @@ already) from cset 84219ad. For referenc
- original(ish) implementations:
- - per CPU times: 312442ad2a5b5d0c608476c5ab3e267735c3bc59 (Jan 2016)
+@@ -22,7 +22,6 @@ original(ish) implementations:
  - CPU stats: a991494e4502e1235ebc62b5ba450287d0dedec0 (Jan 2016)
--*/
--
+ */
  
-+Interrupts are now taken by reading the kvm_open and reading
-+the CPU counter there. We no longer need /proc/stat dependency.
-+- https://github.com/NetBSD/src/blob/trunk/sys/miscfs/procfs/procfs_linux.c#L342
-+*/
+-
  PyObject *
  psutil_cpu_stats(PyObject *self, PyObject *args) {
      struct uvmexp_sysctl uv;
-     int uvmexp_mib[] = {CTL_VM, VM_UVMEXP2};
-+    const int cpu_count_nintr = 3;
-+    char errbuf[_POSIX2_LINE_MAX];
+@@ -30,15 +29,16 @@ psutil_cpu_stats(PyObject *self, PyObjec
  
      if (psutil_sysctl(uvmexp_mib, 2, &uv, sizeof(uv)) != 0)
          return NULL;
 +
-+    kvm_t *kd = kvm_open(NULL, NULL, NULL, O_RDONLY, errbuf);
-+    if (!kd) {
-+        fprintf(stderr, "kvm_open: %s\n", errbuf);
-+        return NULL;
-+    }
-+
-+    struct nlist nl[] = {
-+        { .n_name = "_cpu_counts" },
-+        { .n_name = NULL          }
-+    };
-+
-+    if (kvm_nlist(kd, nl) != 0 || nl[0].n_value == 0) {
-+        fprintf(stderr, "kvm_nlist(_cpu_counts): %s\n", kvm_geterr(kd));
-+        kvm_close(kd);
-+        return NULL;
-+    }
-+
-+    /* Read cpu_counts[CPU_COUNT_NINTR] — a single int64_t */
-+    uintptr_t addr = nl[0].n_value + cpu_count_nintr * sizeof(int64_t);
-+    int64_t nintr = 0;
-+
-+    if (kvm_read(kd, addr, &nintr, sizeof(nintr)) != sizeof(nintr)) {
-+        fprintf(stderr, "kvm_read(cpu_counts[NINTR]): %s\n", kvm_geterr(kd));
-+        kvm_close(kd);
-+        return NULL;
-+    }
-+
-+    kvm_close(kd);
-+
      return Py_BuildValue(
 -        "IIIIIII",
 -        uv.swtch,  // ctx switches
@@ -78,7 +30,7 @@ Upstream: https://github.com/giampaolo/p
 -        uv.forks  // forks
 +        "KKKKKKK",
 +        (uint64_t)uv.swtch,    // ctx switches
-+        (uint64_t)nintr,        // interrupts
++        (uint64_t)uv.intrs,    // interrupts (summed across CPUs by sysctl handler)
 +        (uint64_t)uv.softs,    // soft interrupts
 +        (uint64_t)uv.syscalls, // syscalls - XXX always 0
 +        (uint64_t)uv.traps,    // traps



Home | Main Index | Thread Index | Old Index