tag name | big-array_2022-11-09 (d91e1cde0de00558cc9f79182e665322d20c4b11) |
tag date | 2022-11-09 19:09:54 -0800 |
tagged by | Darrick J. Wong <djwong@kernel.org> |
tagged object | commit 5ff6cdc9e0... |
xfs: large arrays of pageable memory
In general, online repair of an indexed record set walks the filesystem
looking for records. These records are sorted and bulk-loaded into a
new btree. To make this happen without pinning gigabytes of metadata in
memory, first create an abstraction ('xfile') of memfd files so that
kernel code can access paged memory, and then an array abstraction
('xfarray') based on xfiles so that online repair can create an array of
new records without pinning memory.
These two data storage abstractions are critical for repair of space
metadata -- the memory used is pageable, which helps us avoid pinning
kernel memory and driving OOM problems; and they are byte-accessible
enough that we can use them like (very slow and programmatic) memory
buffers.
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEUzaAxoMeQq6m2jMV+H93GTRKtOsFAmNsa4IACgkQ+H93GTRK
tOtLww/+OG0hPDFEaR2jydsJG+QxKG+TK4dlenfoqixNZpBISpgN21WUG9+7SYVK
AZRFR6oy9PQ5lbbuv6PJnjfd5e3P6OgTuhK4tbnZB5qBG8YaiOE2kdrLS4cBDyVM
6skuw6sAadANgd3IrqsefUvXYV5pUql6ipC2UgS8IT+AzJ/ABdmS+CwBOuPVMnfM
KfcTH73Q7fSR+glcZD9Ho7Pzv300fScGQmKAGxqXpR/wTlpzvPvYPSITgtfbsaSa
DaWkSBCMPY//ny1WbKje52GpQ9R5KX4NKYQpBPVBc7DVb9x3ZqsfFppDTNSNV3y1
0O7sTKypxdEX3NzLZNjHTHLK+pUJKRtUurM1ANGYqEbarR1JzRwU2gkwIxCWkO2Q
UksxjLM57Wh1b9RFHMUuJLK5ltJanPujz7hmLu41v8yHI7L3e5RHarS+n2BlkhC1
0Ygemt2O72ExLtPqxTs+RK7Dqdc4luwFC+C2IslK0E0f6YxWJZaXkb6Udur0QtBq
NT1Ps3q+OGj62dnSrh76LQrYzazpr4IJMYdKFBdXNi/PXthL9JSDmGNmd3O7QwJP
Bak1+XKJQVYBRXk35jSIF3Z9l6NFUdK0a4tct82/mv7bMv7pj5eKJkc0mGu/triN
X5ZiCzdUOSG/xoVB9r2q9wyc8l6UWOAughmQTj/t9IUjEX8SCFA=
=MIzD
-----END PGP SIGNATURE-----