summaryrefslogtreecommitdiff
tag namebig-array-6.6_2023-08-10 (ad5a77692216d97d47b463ffa4f6cff41fe58bd1)
tag date2023-08-10 08:12:24 -0700
tagged byDarrick J. Wong <djwong@kernel.org>
tagged objectcommit 764018caa9...
xfs: stage repair information in pageable memory [v26.1]
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. Later patchsets will build on this functionality to provide blob storage and btrees. This has been running on the djcloud for years with no problems. Enjoy! Signed-off-by: Darrick J. Wong <djwong@kernel.org> -----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQQ2qTKExjcn+O1o2YRKO3ySh0YRpgUCZNT+WAAKCRBKO3ySh0YR pouiAQDRoD3jYIJFCSnvEtr8FHNxBnBKFmNxP5O3xXJDHSXp6wEAwK8c8OyO2PCE JIYa50W/56tdgVp8AECfaQ5dilCkAwA= =VgYl -----END PGP SIGNATURE-----