freebsd-dev/lib
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
..
atf Do not build libatf-c++ when WITHOUT_CXX 2021-10-29 10:08:24 -04:00
clang powerpc: Enable LLDB on all powerpc architectures 2022-01-26 15:03:27 +01:00
csu mips: Remove CSU 2021-12-31 00:14:52 -07:00
flua jail(3lua): add jail.attach()/jail.remove() methods 2021-09-30 16:31:04 -05:00
geom GEOM: Introduce partial confxml API 2022-03-12 11:55:52 -05:00
googletest googletest: Silence warnings about deprecated implicit copy constructors 2021-08-26 22:06:53 +02:00
lib9p lib9p: fix building on systems without capser 2021-01-04 20:48:48 +01:00
lib80211 lib80211: Start adding 11ac ETSI bits to regdomain.xml 2021-03-18 11:09:10 +00:00
libalias Rename NO_WERROR -> MK_WERROR=no 2021-01-07 09:31:03 +00:00
libarchive libarchive: import changes from upstream 2022-02-10 00:35:42 +01:00
libauditd libauditd: make it a PRIVATELIB 2020-04-19 02:20:39 +00:00
libbe zfs: merge openzfs/zfs@17b2ae0b2 (master) into main 2022-01-22 23:05:15 +01:00
libbearssl Revert that! 2020-07-19 23:56:19 +00:00
libbegemot
libblacklist
libblocksruntime
libbluetooth bluetooth: Remove one more h4 reference. 2021-09-29 22:02:25 -06:00
libbsddialog libbsddialog: Add _XOPEN_SOURCE_EXTENDED for widechar form 2022-03-05 02:24:37 +01:00
libbsdstat
libbsm libbsm: fix some MLINKS 2020-04-19 02:18:40 +00:00
libbsnmp pkgbase: Put the mibs and defs in the bnsmp package 2021-06-19 17:50:03 +02:00
libbz2
libc amd64: make bcmp in libc just call memcmp 2022-03-12 14:59:14 +00:00
libc_nonshared
libc++ Install unwind.h into /usr/include 2022-02-10 19:00:32 +01:00
libc++experimental Merge llvm-project release/13.x llvmorg-13.0.0-rc1-97-g23ba3732246a 2021-11-13 21:42:03 +01:00
libcalendar
libcam cam_get_device: resolve path links before parsing device name 2022-01-26 11:25:31 +02:00
libcapsicum Add missing FreeBSD functions to -legacy when building on macOS/Linux 2020-08-25 13:23:31 +00:00
libcasper cap_net: fix verification of bind permission 2021-12-14 12:02:40 +01:00
libcbor Add libcbor to the build 2021-10-15 15:10:24 -04:00
libclang_rt riscv64: enable ASAN and UBSAN 2022-01-14 01:29:58 +01:00
libcom_err pkgbase: Create a FreeBSD-kerberos package 2021-09-07 10:23:14 +02:00
libcompat
libcompiler_rt Build compiler-rt against libunwind, not libcxxrt 2022-03-09 22:23:35 +01:00
libcrypt libcrypt: Drop inclusion of libutil.h 2021-12-07 00:24:19 +00:00
libcuse
libcxxrt Sort SRCS in libcxxrt's Makefile, and use += to list sources 2022-01-22 21:08:55 +01:00
libdevctl libdevctl: Add devctl_getpath 2022-03-01 08:06:41 -07:00
libdevdctl Fix race in case of device destruction. 2021-04-13 11:25:27 -04:00
libdevinfo devinfo: add man page links 2020-08-04 21:09:36 +00:00
libdevstat
libdl libc: include rtld.h into static implementations of rtld interface 2021-04-09 23:46:24 +03:00
libdpv libdialog: Bump shared library version to 10. 2021-10-27 09:30:24 -07:00
libdwarf libdwarf: Add a weak uncompress() symbol 2021-12-13 18:47:15 -05:00
libedit ncurses: chase dependency changes in the source tree 2021-10-04 11:38:24 +02:00
libefivar libefivar: Apply uncrustify changes 2022-02-27 09:45:34 -07:00
libelf libelf: Link gelf_getchdr.3 to the build 2021-11-29 13:57:24 -05:00
libelftc
libevent1 rename in-tree libevent v1 to libevent1 2020-05-28 22:05:50 +00:00
libexecinfo
libexpat MFV f83ac37f1e: libbsdxml (expat) 2.4.3. 2022-01-17 16:34:41 -08:00
libfetch pkgbase: Create a FreeBSD-fetch package 2021-12-21 10:17:46 +01:00
libfido2 Add libfido2 to the build 2021-10-22 19:57:57 -04:00
libfigpar
libgcc_eh Install unwind.h into /usr/include 2022-02-10 19:00:32 +01:00
libgcc_s libgcc_s: Export 64-bit int to 128-bit float functions 2021-10-03 19:34:25 +01:00
libgeom GEOM: Introduce partial confxml API 2022-03-12 11:55:52 -05:00
libgpio
libgssapi Remove __NO_TLS. 2021-02-23 20:08:10 +02:00
libiconv_modules Do a sweep and remove most WARNS=6 settings 2020-10-01 01:10:51 +00:00
libifconfig libifconfig: Overhaul ifconfig_media_* interfaces 2021-03-05 04:15:55 -05:00
libipsec ipsec_set_policy(3): fix sentence 2021-08-10 03:46:35 +03:00
libipt
libiscsiutil iscsi: per-session timeouts and rapid teardown of session on reconnect 2022-02-25 10:35:47 +01:00
libjail
libkiconv libkiconv: address memory leak in not-found cases 2021-04-22 19:32:34 -04:00
libkvm libkvm: Remove mips support 2021-12-30 20:57:24 -07:00
libldns
liblua contrib/lua: update to 5.4.2 2021-01-13 23:56:18 -06:00
liblutok Add liblutok a lightweight C++ API for lua. 2020-03-23 18:26:23 +00:00
liblzma Convert libs with pc files to use PCFILES 2021-03-16 07:13:07 +01:00
libmagic file: Fix cross-compilation on Darwin/macOS 2022-01-07 07:52:34 -07:00
libmd Add accelerated arm64 sha512 to libmd 2021-12-13 15:33:22 +00:00
libmemstat sys/bitset.h: reduce visibility of BIT_* macros 2021-12-05 23:00:25 +01:00
libmilter
libmixer mixer(3): Revert: "Fix for header file pollution." 2022-01-04 12:35:23 +01:00
libmp
libmt Add the LTO-9 density code to libmt and the mt(1) man page. 2020-12-10 21:06:06 +00:00
libnetbsd
libnetgraph Retire synchronous PPP kernel driver sppp(4). 2021-10-22 11:41:36 -07:00
libnetmap libnetmap: reset errno in nmreq_register_decode() 2021-04-02 14:31:57 +00:00
libngatm
libnv skip test case nvlist_send_recv__send_many_fds__dgram 2022-01-02 12:26:07 -09:00
libomp Merge llvm-project release/13.x llvmorg-13.0.0-rc1-97-g23ba3732246a 2021-11-13 21:42:03 +01:00
libopenbsd Only set WARNS if not defined 2020-09-11 13:28:37 +00:00
libopencsd Update opencsd to 0.14.2 2020-06-17 10:42:20 +00:00
libopie
libpam pkgbase: Put more binaries/lib in runtime 2021-12-21 10:17:27 +01:00
libpathconv Fix a few mandoc issues 2020-10-09 19:12:44 +00:00
libpcap
libpe
libpfctl libpfct: factor out pfctl_get_rules_info() 2022-03-08 13:57:45 +01:00
libpjdlog
libpmc arm64 hwpmc: Support restricting counters to user or kernel mode. 2022-03-11 11:29:45 -08:00
libpmcstat libpmcstat: Fix a few ARM-specific issues with function symbols. 2022-03-10 15:39:53 -08:00
libproc Remove the MK_LIBCPLUSPLUS option 2021-02-01 09:32:07 +00:00
libprocstat procstat_getfiles_sysctl: do not require non-null ki_fd 2021-12-03 00:52:49 +02:00
libradius libradius: fix WITHOUT_OPENSSL build 2021-10-28 17:05:53 -04:00
libregex pkgbase: Put more binaries/lib in runtime 2021-12-21 10:17:27 +01:00
librpcsec_gss Fix a few mandoc issues 2020-10-09 19:12:44 +00:00
librpcsvc pkgbase: Put more binaries/lib in runtime 2021-12-21 10:17:27 +01:00
librss
librt Fix aio_readv(2), aio_writev(2) with SIGEV_THREAD. 2021-08-22 23:49:23 +12:00
librtld_db librtld_db: Handle shlibs with discontiguous mappings. 2021-12-03 11:07:30 -08:00
libsbuf Do a sweep and remove most WARNS=6 settings 2020-10-01 01:10:51 +00:00
libsdp
libsecureboot Move ve_check_hash prototype to libsecureboot-priv.h 2021-12-18 16:34:58 -08:00
libsm Merge sendmail 8.16.1 to HEAD: See contrib/sendmail/RELEASE_NOTES for details 2020-07-15 18:28:54 +00:00
libsmb
libsmdb Merge sendmail 8.16.1 to HEAD: See contrib/sendmail/RELEASE_NOTES for details 2020-07-15 18:28:54 +00:00
libsmutil
libsqlite3 [PowerPC64LE] Pass our byte order to the sqlite3 build. 2020-09-23 02:17:44 +00:00
libssp libssp: don't compile with -fstack-protector* 2020-03-14 15:15:27 +00:00
libssp_nonshared
libstats
libstdbuf
libstdthreads
libsysdecode fd: add close_range(..., CLOSE_RANGE_CLOEXEC) 2022-03-03 17:21:58 +00:00
libtacplus
libtelnet
libthr libthr: Disable stack unwinding on ARM. 2022-02-10 12:47:08 -08:00
libthread_db mips: Remove thread_db support 2021-12-31 00:14:53 -07:00
libucl Only set WARNS if not defined 2020-09-11 13:28:37 +00:00
libufs Consolodate four copies of the STDSB define into a single place. 2021-11-14 22:10:16 -08:00
libugidfw Deduplicate fsid comparisons 2020-05-21 01:55:35 +00:00
libulog
libunbound MFV r361322: 2020-05-21 21:00:46 +00:00
libusb libusb(3): Ignore SIGPIPE when initializing the LibUSB v1.0 API. 2022-03-02 12:33:40 +01:00
libusbhid libusb: remove use of COMPAT_32BIT 2021-12-17 21:28:14 +00:00
libutil libutil: add kinfo_getswapvmobject(3) 2021-10-26 15:50:29 +03:00
libveriexec Do not claim libbearssl et al are INTERNALLIB 2020-04-01 05:45:12 +00:00
libvgl
libvmmapi bhyve: add ROM emulation 2022-03-10 12:30:37 +01:00
libwrap pkgbase: Put more binaries/lib in runtime 2021-12-21 10:17:27 +01:00
libxo add blank line between variables (testing git commit) 2021-08-04 16:56:55 -04:00
liby
libypclnt pkgbase: Put more binaries/lib in runtime 2021-12-21 10:17:27 +01:00
libz Bootstrap libz when cross-building from non-FreeBSD 2021-12-06 19:16:28 +00:00
libzstd Disable clang 14 warning about bitwise operators in zstd 2022-02-08 21:46:08 +01:00
msun mips: Remove msun support 2021-12-31 00:14:52 -07:00
ncurses ncurses: to not create a libncursesw.a in the OBJDIR 2021-11-24 11:02:22 +01:00
ofed Fix ibnd_* manpages sources 2021-02-18 15:59:34 +01:00
tests
Makefile Remove quotes around Makefile .error/.warn/.info strings 2022-01-22 14:03:07 -05:00
Makefile.inc build: provide a default WARNS for all in-tree builds 2020-09-18 17:17:46 +00:00