freebsd-dev/sys/geom
Alan Somers 7d874f0f36 geli: use unmapped I/O
Use unmapped I/O for geli. Unlike most geom providers, geli needs to
manipulate data on every read or write. Previously it would always map bios.

On my 16-core, dual socket server using geli atop md(4) devices, with 512B
sectors, this change increases geli IOPs by about 3x.

Note that geli still can't use unmapped I/O when data integrity verification
is enabled (but it could, with a little more work).  And it can't use
unmapped I/O in combination with ZFS, because ZFS uses mapped bios.

Reviewed by:	markj, kib, jhb, mjg, mat, bcr (manpages)
MFC after:	1 week
Sponsored by:	Axcient
Differential Revision:	https://reviews.freebsd.org/D25671
2020-08-26 02:44:35 +00:00
..
bde Use explicit_bzero() instead of bzero() for sensitive data. 2020-06-25 20:25:35 +00:00
cache Consistently use gctl_get_provider instead of home-grown variants. 2020-07-22 02:15:21 +00:00
concat Consistently use gctl_get_provider instead of home-grown variants. 2020-07-22 02:15:21 +00:00
eli geli: use unmapped I/O 2020-08-26 02:44:35 +00:00
gate Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
journal sys/geom: consistently use _PATH_DEV instead of hardcoding "/dev/". 2020-07-09 02:52:39 +00:00
label geom_label: Make glabel labels more trivial by separating the tasting 2020-07-26 00:44:59 +00:00
linux_lvm Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
mirror Consistently use gctl_get_provider instead of home-grown variants. 2020-07-22 02:15:21 +00:00
mountver Consistently use gctl_get_provider instead of home-grown variants. 2020-07-22 02:15:21 +00:00
multipath sys/geom: consistently use _PATH_DEV instead of hardcoding "/dev/". 2020-07-09 02:52:39 +00:00
nop Consistently use gctl_get_provider instead of home-grown variants. 2020-07-22 02:15:21 +00:00
part gpart(8): Recognize apple-zfs and solaris-reserved partition ids 2020-08-17 17:07:05 +00:00
raid sys/geom: consistently use _PATH_DEV instead of hardcoding "/dev/". 2020-07-09 02:52:39 +00:00
raid3 Consistently use gctl_get_provider instead of home-grown variants. 2020-07-22 02:15:21 +00:00
shsec Use explicit_bzero() instead of bzero() for sensitive data. 2020-06-25 20:25:35 +00:00
stripe Consistently use gctl_get_provider instead of home-grown variants. 2020-07-22 02:15:21 +00:00
uzip Reimplement aliases in geom 2020-05-13 19:17:28 +00:00
vinum sys/geom: consistently use _PATH_DEV instead of hardcoding "/dev/". 2020-07-09 02:52:39 +00:00
virstor Use snprintf instead of sprintf. 2020-07-26 01:45:26 +00:00
zero Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
geom_bsd_enc.c
geom_ccd.c Use snprintf instead of sprintf. 2020-07-26 01:45:26 +00:00
geom_ctl.c gctl_get_geom: Skip validation of g_class. 2020-07-26 22:30:55 +00:00
geom_ctl.h
geom_dbg.h
geom_dev.c Use devctl.h instead of bus.h to reduce newbus pollution. 2020-08-21 00:03:24 +00:00
geom_disk.c Use devctl.h instead of bus.h to reduce newbus pollution. 2020-08-21 00:03:24 +00:00
geom_disk.h
geom_dump.c Reimplement aliases in geom 2020-05-13 19:17:28 +00:00
geom_event.c
geom_flashmap.c
geom_flashmap.h
geom_int.h
geom_io.c
geom_kern.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
geom_map.c geom_map and geom_redboot: Remove unused ctlreq handler. 2020-07-26 22:30:01 +00:00
geom_redboot.c geom_map and geom_redboot: Remove unused ctlreq handler. 2020-07-26 22:30:01 +00:00
geom_slice.c
geom_slice.h
geom_subr.c sys/geom: consistently use _PATH_DEV instead of hardcoding "/dev/". 2020-07-09 02:52:39 +00:00
geom_vfs.c This commit enables a UFS filesystem to do a forcible unmount when 2020-05-25 23:47:31 +00:00
geom_vfs.h
geom.h gctl_get_geom: Skip validation of g_class. 2020-07-26 22:30:55 +00:00
notes