freebsd-dev/sbin
Alexander Motin 7f16b501e2 GEOM: Introduce partial confxml API
Traditionally the GEOM's primary channel of information from kernel to
user-space was confxml, fetched by libgeom through kern.geom.confxml
sysctl.  It is convenient and informative, representing full state of
GEOM in a single XML document.  But problems start to arise on systems
with hundreds of disks, where the full confxml size reaches many
megabytes, taking significant time to first write it and then parse.

This patch introduces alternative solution, allowing to fetch much
smaller XML document, subset of the full confxml, limited to 64KB and
representing only one specified geom and optionally its parents.  It
uses existing GEOM control interface, extended with new "getxml" verb.
In case of any error, such as the buffer overflow, it just transparently
falls back to traditional full confxml.  This patch uses the new API in
user-space GEOM tools where it is possible.

Reviewed by:	imp
MFC after:	2 month
Sponsored by:	iXsystems, Inc.
Differential Revision:	https://reviews.freebsd.org/D34529
2022-03-12 11:55:52 -05:00
..
adjkerntz
bectl bectl(8): don't allow creation of boot environments with spaces 2021-06-03 08:36:11 -08:00
bsdlabel Remove deprecated GEOM classes 2019-08-13 20:06:55 +00:00
camcontrol camcontrol fwdownload minor improvements 2022-02-22 14:38:38 -07:00
ccdconfig GEOM: Introduce gctl_add_param() API. 2022-03-07 11:12:25 -05:00
clri In preparation for adding inode check-hashes, clean up and 2018-11-13 21:40:56 +00:00
comcontrol Remove sio(4). 2019-11-21 01:24:49 +00:00
conscontrol Remove sio(4). 2019-11-21 01:24:49 +00:00
ddb ddb: use 'textdump dump' instead of 'call doadump' 2019-10-18 12:32:01 +00:00
decryptcore decryptcore: do not include sys/sysctl.h 2021-03-07 17:29:03 -06:00
devd devd: correct wifi regexp 2022-01-09 10:16:31 -07:00
devfs devfs.rules: Correctly unhide pf in vnet jails 2021-11-03 12:50:13 +01:00
devmatch devmatch: Allow devmatch_blocklist to be set in kenv too 2021-11-21 08:54:45 -07:00
dhclient dhclient: support VID 0 (no vlan) decapsulation 2022-02-14 10:06:47 -05:00
dmesg dmesg: detect wrapped msgbuf on the kernel side and if so, skip first line 2022-02-05 13:35:31 -08:00
dump ufs: Rework shortlink handling to avoid subobject overflows 2022-01-02 20:55:36 +00:00
dumpfs dumpfs(8): add option to only print superblock information 2021-07-02 14:18:17 -08:00
dumpon dumpon: fix build on some architectures 2021-08-11 21:27:24 -05:00
etherswitchcfg etherswitch: Add a new striptagingress port flag 2021-08-03 12:07:48 +02:00
fdisk Remove deprecated GEOM classes 2019-08-13 20:06:55 +00:00
ffsinfo ffsinfo: Update example to avoid to-be-deprecated vinum 2021-04-03 16:29:14 -04:00
fsck fsck(8): Fix typo 2022-01-12 13:52:23 +08:00
fsck_ffs Update fsdb(8) to reflect new structure of fsck_ffs(8). 2022-02-23 15:40:58 -08:00
fsck_msdosfs fsck_msdosfs: truncate directory entry when the head pointer is invalid. 2021-11-03 22:09:32 -07:00
fsdb Update fsdb(8) to reflect new structure of fsck_ffs(8). 2022-02-23 15:40:58 -08:00
fsirand Filesystem utilities that modify the filesystem (growfs(8), tunefs(8), 2020-10-25 01:36:33 +00:00
gbde gbde(8) - simplify randomisation with arc4random_buf 2019-02-11 00:11:02 +00:00
geom GEOM: Introduce partial confxml API 2022-03-12 11:55:52 -05:00
ggate ggatec: Use ANSI C definition for init_initial_buffer_size. 2022-01-31 17:12:04 -08:00
growfs growfs: do not error if filesystem is already requested size 2021-11-15 15:40:57 -05:00
gvinum GEOM: Introduce gctl_add_param() API. 2022-03-07 11:12:25 -05:00
hastctl
hastd hastd(8) assumes it has no extra file descriptors opened 2020-11-29 13:45:53 +00:00
ifconfig ifconfig: remove debug printf introduced in 779fd05344 2022-01-29 11:19:01 +00:00
init init(8): use proper boolean type for globals 2022-02-21 20:16:13 -04:00
ipf ipfilter: Reliably print the interface name 2022-03-03 06:43:12 -08:00
ipfw dnctl: Support reading config from file like ipfw(8) 2022-01-03 09:50:18 +01:00
kldconfig kldconfig(8): Add EXAMPLES to the man page 2020-09-29 17:52:15 +00:00
kldload kldload(8): Improve phrasing 2021-02-11 06:03:53 +01:00
kldstat kldstat(8): style(9) fixes. 2021-12-07 11:40:22 +01:00
kldunload
ldconfig ldconfig: remove two symbols 2022-01-08 12:45:46 +02:00
md5 update external URLs 2022-02-05 08:19:56 +00:00
mdconfig md: Add MD_MUSTDEALLOC support 2021-09-11 20:04:52 +08:00
mdmfs mdmfs(8): Fix an issue reported by mandoc 2020-10-03 18:47:50 +00:00
mknod
mksnap_ffs Remove #define _KERNEL hacks from libprocstat 2021-02-21 11:38:21 +02:00
mount vfslist.c: initialize skipvfs variable 2022-01-05 23:00:36 +01:00
mount_cd9660 Advise reader to also see mdconfig(8) in mount_cd9660(8). 2018-08-11 08:34:24 +00:00
mount_fusefs sbin/mount_fusefs/mount_fusefs.8: Fix typos 2021-10-09 09:02:39 -06:00
mount_msdosfs Fix a few mandoc issues 2020-10-09 14:03:45 +00:00
mount_nfs mount_nfs: Add a "bgnow" NFS mount option 2022-01-11 08:21:35 -08:00
mount_nullfs mount_nullfs: rename a local variable 2021-02-12 11:30:52 -07:00
mount_udf
mount_unionfs
natd natd: Remove uneeded in_cksum.h includes 2021-11-24 13:31:16 -05:00
newfs newfs(8): Fix a bug in initialization of sblock.fs_maxbsize . 2022-03-11 10:17:06 +01:00
newfs_msdos newfs_msdos: connect the ATF test from NetBSD 2022-02-16 09:56:16 -06:00
nfsiod pkgbase: Add nfsiod to the FreeBSD-nfs package 2021-08-06 14:37:35 +02:00
nos-tun pkgbase: Create a FreeBSD-utilities package and make it the default one 2019-09-05 14:15:47 +00:00
nvmecontrol nvme: fix spelling of Namespace 2022-02-21 10:34:46 -08:00
pfctl pfctl: remove unused variable 2022-03-08 13:57:46 +01:00
pfilctl pfilctl: improve formatting of "hooks" and "heads" command output. 2021-03-19 11:18:05 -07:00
pflogd
ping update external URL 2022-02-05 17:11:18 +00:00
ping6 Merge ping6 to ping 2020-11-26 04:29:30 +00:00
quotacheck Normally when an attempt is made to mount a UFS/FFS filesystem whose 2018-12-06 00:09:39 +00:00
rcorder [rcorder] [crunch] Fix C function declarations to include void 2020-09-21 17:59:45 +00:00
reboot boottrace: annotate init and shutdown utilities 2022-02-21 20:16:07 -04:00
recoverdisk Register the bad read before bailing on terminal errors. 2021-02-02 12:01:38 +00:00
resolvconf
restore Clean up global variable declarations in the dump and restore 2020-04-04 00:56:56 +00:00
route route: remove write-only struct hostent from getaddr() 2022-01-06 10:45:44 -05:00
routed sbin/routed: Remove unused code for sgi and NetBSD. 2020-12-25 17:42:47 -08:00
rtsol Update Makefile.depend files 2019-12-11 17:37:53 +00:00
savecore savecore: emit information about saved cores under verbose 2021-12-07 18:39:34 -06:00
sconfig pkgbase: Put sconfig in FreeBSD-utilities 2021-12-21 10:16:08 +01:00
setkey update external URL 2022-02-05 17:14:27 +00:00
shutdown boottrace: annotate init and shutdown utilities 2022-02-21 20:16:07 -04:00
swapon swapon(8): adapt to the new swapoff(2) interface 2021-12-09 02:48:59 +02:00
sysctl sysctl: Small style fix 2021-12-05 21:40:47 -07:00
tests
tunefs Remove #define _KERNEL hacks from libprocstat 2021-02-21 11:38:21 +02:00
umount Document that umount -A does not unmount /dev 2020-06-18 23:12:55 +00:00
veriexec veriexec(8): explain that only a unique prefix is required 2022-02-14 13:54:22 -08:00
zfsbootcfg loader: zfs should support bootonce an nextboot 2020-09-21 09:01:10 +00:00
Makefile sbin: build ping if at least one of INET & INET6 is enabled 2021-11-28 13:05:39 -05:00
Makefile.amd64 Revert "amd64: Do not build sconfig" 2021-12-21 10:14:45 +01:00
Makefile.arm
Makefile.i386
Makefile.inc build: provide a default WARNS for all in-tree builds 2020-09-18 17:17:46 +00:00
Makefile.mips
Makefile.powerpc64