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.

Reply via email to