On 2021/09/09 06:47, Greg Steuck wrote: > Mark Kettenis <[email protected]> writes: > > >> From: "Theo de Raadt" <[email protected]> > >> Date: Tue, 07 Sep 2021 07:08:19 -0600 > >> > >> Or we could coordinate the Greg approach as a sysctl ABI change near a > >> libc major bump. On the other side of such a bump, all kernel + base + > >> packages are updated to use the new storage ABI. We get orderly .h > >> files without a confusing glitch, and kern_sysctl.c doesn't need to > >> store the value into two fields (32bit and 64bit) for the forseeable > >> future. > >> > >> Over the years I've arrived at the conclusion that maintaining binary > >> compatibility at all costs collects too much confusing damage. Instead, > >> we've built an software ecosystem where ABI changes are expected and > >> carry minimal consequence.
Sadly rust and especially go made a different decision about that. > I'd take some short term intense pain over a long term nagging one. I'll > try to beg somebody with a full unpacked source ports tree to grep for > p_vm_dsize. Superficially, I only see it in a single patch: > > /usr/ports/databases/mongodb/patches/patch-src_mongo_util_processinfo_openbsd_cpp I think it's a change to kinfo_proc in general that is more of a problem than the individual member. The last big change in that area was supposed to be to avoid this pain - indeed kvm_getprocs manual says If the size of the kinfo_proc structure increases in size in a future release of OpenBSD, the library will only return the requested amount of data for each array entry and programs that use kvm_getprocs() will continue to function without the need for recompilation. FWIW search results for p_vm_dsize from 15 month old unpacked src: u/lcdproc-0.5.5/lcdproc-0.5.5/clients/lcdproc/machine_NetBSD.c 73:#define PROCSIZE(pp) ((pp)->p_vm_tsize + (pp)->p_vm_dsize + (pp)->p_vm_ssize) u/mongodb-3.2.22/mongodb-src-r3.2.22/src/mongo/util/processinfo_openbsd.cpp 114: return ((task->p_vm_dsize + task->p_vm_ssize + task->p_vm_tsize) * sysconf(_SC_PAGESIZE)) / u/libgtop2-2.40.0/libgtop-2.40.0/sysdeps/openbsd/procmem.c 125: (pinfo[0].p_vm_tsize + pinfo[0].p_vm_dsize + pinfo[0].p_vm_ssize) u/libgtop2-2.40.0/libgtop-2.40.0/sysdeps/openbsd/procsegment.c 74: buf->data_rss = pinfo[0].p_vm_dsize * pagesize; u/spidermonkey68-68.9.0/firefox-68.9.0/third_party/python/psutil/psutil/_psutil_bsd.c 240: vms = (long)(kp.p_vm_dsize + kp.p_vm_ssize + kp.p_vm_tsize) * pagesize; 248: memdata = (long)kp.p_vm_dsize * pagesize; u/spidermonkey68-68.9.0/firefox-68.9.0/xpcom/base/nsMemoryReporterManager.cpp 178: ((kp.p_vm_dsize + kp.p_vm_ssize + kp.p_vm_tsize) * getpagesize()) u/thunderbird-68.9.0/thunderbird-68.9.0/xpcom/base/nsMemoryReporterManager.cpp 178: ((kp.p_vm_dsize + kp.p_vm_ssize + kp.p_vm_tsize) * getpagesize()) u/thunderbird-68.9.0/thunderbird-68.9.0/third_party/python/psutil/psutil/_psutil_bsd.c 240: vms = (long)(kp.p_vm_dsize + kp.p_vm_ssize + kp.p_vm_tsize) * pagesize; 248: memdata = (long)kp.p_vm_dsize * pagesize; u/net-snmp-5.8.1.pre2/net-snmp-5.8.1.pre2/agent/mibgroup/host/hr_swrun.c 1273: proc_table[LowProcIndex].p_vm_dsize; 1295: proc_table[LowProcIndex].p_vm_dsize; u/zabbix-4.0.19-no_server/zabbix-4.0.19/src/libs/zbxsysinfo/netbsd/proc.c 169: value = pproc->p_vm_tsize + pproc->p_vm_dsize + pproc->p_vm_ssize; u/zabbix-4.0.19-no_server/zabbix-4.0.19/src/libs/zbxsysinfo/openbsd/proc.c 45:# define ZBX_P_VM_DSIZE p_vm_dsize 53:# define ZBX_P_VM_DSIZE kp_eproc.e_vm.vm_dsize 262: value = proc[i].ZBX_P_VM_TSIZE + proc[i].ZBX_P_VM_DSIZE + proc[i].ZBX_P_VM_SSIZE; u/zabbix-4.0.19-mysql/zabbix-4.0.19/src/libs/zbxsysinfo/netbsd/proc.c 169: value = pproc->p_vm_tsize + pproc->p_vm_dsize + pproc->p_vm_ssize; u/zabbix-4.0.19-mysql/zabbix-4.0.19/src/libs/zbxsysinfo/openbsd/proc.c 45:# define ZBX_P_VM_DSIZE p_vm_dsize 53:# define ZBX_P_VM_DSIZE kp_eproc.e_vm.vm_dsize 262: value = proc[i].ZBX_P_VM_TSIZE + proc[i].ZBX_P_VM_DSIZE + proc[i].ZBX_P_VM_SSIZE; u/zabbix-4.0.19-pgsql/zabbix-4.0.19/src/libs/zbxsysinfo/netbsd/proc.c 169: value = pproc->p_vm_tsize + pproc->p_vm_dsize + pproc->p_vm_ssize; u/zabbix-4.0.19-pgsql/zabbix-4.0.19/src/libs/zbxsysinfo/openbsd/proc.c 45:# define ZBX_P_VM_DSIZE p_vm_dsize 53:# define ZBX_P_VM_DSIZE kp_eproc.e_vm.vm_dsize 262: value = proc[i].ZBX_P_VM_TSIZE + proc[i].ZBX_P_VM_DSIZE + proc[i].ZBX_P_VM_SSIZE; u/zabbix-4.0.19-sqlite3/zabbix-4.0.19/src/libs/zbxsysinfo/netbsd/proc.c 169: value = pproc->p_vm_tsize + pproc->p_vm_dsize + pproc->p_vm_ssize; u/zabbix-4.0.19-sqlite3/zabbix-4.0.19/src/libs/zbxsysinfo/openbsd/proc.c 45:# define ZBX_P_VM_DSIZE p_vm_dsize 53:# define ZBX_P_VM_DSIZE kp_eproc.e_vm.vm_dsize 262: value = proc[i].ZBX_P_VM_TSIZE + proc[i].ZBX_P_VM_DSIZE + proc[i].ZBX_P_VM_SSIZE; u/collectd-5.8.1/collectd-5.8.1/src/processes.c 2149: pse.vmem_data = procs[i].p_vm_dsize * pagesize; u/consolekit2-1.2.1/ConsoleKit2-1.2.1/src/ck-sysdeps-openbsd.c 181: P->vsize = p.p_vm_dsize + p.p_vm_dsize + p.p_vm_ssize; /* XXX */ u/htop-2.2.0/htop-2.2.0/openbsd/OpenBSDProcessList.c 264: proc->m_size = kproc->p_vm_dsize; u/libstatgrab-0.91/libstatgrab-0.91/src/libstatgrab/process_stats.c 682: proc_stats_ptr[proc_items].proc_size = ((unsigned long long)kp_stats[i].p_vm_dsize) + kp_stats[i].p_vm_ssize; u/py-psutil-5.4.3/psutil-release-5.4.3/psutil/_psutil_bsd.c 240: vms = (long)(kp.p_vm_dsize + kp.p_vm_ssize + kp.p_vm_tsize) * pagesize; 248: memdata = (long)kp.p_vm_dsize * pagesize; u/py-psutil-5.4.3-python3/psutil-release-5.4.3/psutil/_psutil_bsd.c 240: vms = (long)(kp.p_vm_dsize + kp.p_vm_ssize + kp.p_vm_tsize) * pagesize; 248: memdata = (long)kp.p_vm_dsize * pagesize; u/symon-2.88/symon/platform/OpenBSD/sm_proc.c 226: pp->p_vm_dsize + /* data */ u/firefox-esr-68.9.0/firefox-68.9.0/third_party/python/psutil/psutil/_psutil_bsd.c 240: vms = (long)(kp.p_vm_dsize + kp.p_vm_ssize + kp.p_vm_tsize) * pagesize; 248: memdata = (long)kp.p_vm_dsize * pagesize; u/firefox-esr-68.9.0/firefox-68.9.0/xpcom/base/nsMemoryReporterManager.cpp 178: ((kp.p_vm_dsize + kp.p_vm_ssize + kp.p_vm_tsize) * getpagesize()) u/firefox-77.0.1/firefox-77.0.1/xpcom/base/nsMemoryReporterManager.cpp 177: ((kp.p_vm_dsize + kp.p_vm_ssize + kp.p_vm_tsize) * getpagesize()) u/firefox-77.0.1/firefox-77.0.1/third_party/python/psutil/psutil/_psutil_bsd.c 230: vms = (long)(kp.p_vm_dsize + kp.p_vm_ssize + kp.p_vm_tsize) * pagesize; 238: memdata = (long)kp.p_vm_dsize * pagesize; u/tb-browser-9.5/firefox-tor-browser-68.9.0esr-9.5-1-build2/third_party/python/psutil/psutil/_psutil_bsd.c 240: vms = (long)(kp.p_vm_dsize + kp.p_vm_ssize + kp.p_vm_tsize) * pagesize; 248: memdata = (long)kp.p_vm_dsize * pagesize; u/tb-browser-9.5/firefox-tor-browser-68.9.0esr-9.5-1-build2/xpcom/base/nsMemoryReporterManager.cpp 178: ((kp.p_vm_dsize + kp.p_vm_ssize + kp.p_vm_tsize) * getpagesize()) u/xfce4-taskmanager-1.2.3/xfce4-taskmanager-1.2.3/src/task-manager-bsd.c 107: t.vsz = p.p_vm_dsize + p.p_vm_ssize + p.p_vm_tsize; > My gihub search yields plenty more hits, though many of them are in > outdated copies of chromium which exist in many different guises. Debian codesearch is usually the best quick search to find things likely to be in ports.
