tag name | btree-cursor-zones_2021-10-22 (ca8173e8cd54649258136286ed85de8cb27fb1b2) |
tag date | 2021-10-22 16:45:29 -0700 |
tagged by | Darrick J. Wong <djwong@kernel.org> |
tagged object | commit 5bcdc3aee8... |
xfs: separate btree cursor slab zones
Following the review discussions about the dynamic btree cursor height
patches, I've throw together another series to reduce the size of the
btree cursor, compute the absolute maximum possible btree heights for
each btree type, and now each btree cursor has its own slab zone:
$ grep xfs.*cur /proc/slabinfo
xfs_refc_btree_cur 0 0 192 21 1 : tunables 0 0 0 : slabdata 0 0 0
xfs_ialloc_btree_cur 0 0 208 19 1 : tunables 0 0 0 : slabdata 0 0 0
xfs_bmap_btree_cur 0 0 240 17 1 : tunables 0 0 0 : slabdata 0 0 0
xfs_rmap_btree_cur 0 0 240 17 1 : tunables 0 0 0 : slabdata 0 0 0
xfs_alloc_btree_cur 0 0 208 19 1 : tunables 0 0 0 : slabdata 0 0 0
I've also rigged up the debugger to make it easier to extract the actual
height information:
$ xfs_db /dev/sda -c 'btheight -w absmax all'
bnobt: 7
cntbt: 7
inobt: 7
finobt: 7
bmapbt: 9
refcountbt: 6
rmapbt: 9
As you can see from the slabinfo output, this no longer means that we're
allocating 224-byte cursors for all five btree types. Even with the
extra overhead of supporting dynamic cursor sizes, we still come out
ahead in terms of cursor size for three of the five btree types.
This series also includes a couple of patches to reduce holes and
unnecessary fields in the btree cursor.
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEUzaAxoMeQq6m2jMV+H93GTRKtOsFAmFzTRkACgkQ+H93GTRK
tOvedA/8CnEzvcyKP1SAd5KgjZ/5Lt3j7xwt7oiRwQMhEITtVvnA8FZMoBdgcty2
7WFRm6m2IyhsurpMOJfx4hnBIy0Mxiydlv+UJTlwTpJlsHaF5D9wMKrjvp6xe1Ss
oxrh+H7NlOfuh5I8b96HmLE3HyJBNieBu8jBngxVEmx/3mjJOTdkf8csMKX2p9zj
h+Y2KSb3HyxCfxNlC9Tboc6RHvkZsJV5MaB95qRKfcw0N0NHE0DgHM8QW9Sa2hQJ
VEUsjrosbW/kkDlMSvYfhFNE2Rf2zfqOhzUGmhlCPruG9T8hXg//ToRRAPwb6MGL
vD2n5vAkQnUwJU1ICiayrH6S6eBWeS1GfF68lfItKxOGKF9/qsr0rEZBquX9PUl2
fae25gAP/l2F8exI5vGb1kxE3IgkNWXfv8foFni4YGBrjKIDfrnjEKBDS+qq6yb5
dfgcfSmMwKRNmUF7hiWTjre52oljfhnJVf6PIY7qNXQFwvt3rnwoTeZLplmmure6
7A94Y/e9WtIKIMW8pp7pkZIw6sTwIWCAT5ri/eMRtyn2ykyPdmDnB5HSHePHLYpz
ZXlLiEvH9SXzw5c5P0LRvtrtjdr3ya7xpG25zL7ZaJ9uxY7lfGNNttW5mIUz5WrN
2hw0cDEYbxLsRfmyzKD2YriSwcWT9gtM5jxaiYqGmGpsk6SreLU=
=2DX/
-----END PGP SIGNATURE-----