On Sun, Jul 10, 2022 at 10:25:43PM -0700, Christoph Hellwig wrote: > On Sat, Jul 09, 2022 at 03:48:36PM -0700, Darrick J. Wong wrote: > > Although the race condition itself can be fixed through clever use of a > > memory barrier, further consideration of the use cases of extended > > attributes shows that most files always have at least one attribute, so > > we might as well make them permanent. > > I kinda hat increase the size of the inode even more, but there is no > arguing about keeping nasty rarely used code simple vs micro-optimizing > it. Do you have numbers on hand on how many inodes we can cache in > an order 0 or 1 cache before and after this? Hm. On my laptop running 5.18, xfs_inode before the change was 928 bytes, and here's what it looks like: 928 bytes Order Pagebytes Slack Objs Slack/Objs 0 4096 384 4 96 1 8192 768 8 96 2 16384 608 17 36 3 32768 288 35 9 4 65536 576 70 9 So I guess that's why it picks order-3 slabs. On a freshly built djwong-dev kernel, it's now 976 bytes: 976 bytes Order Pagebytes Slack Objs Slack/Objs 0 4096 192 4 48 1 8192 384 8 48 2 16384 768 16 48 3 32768 560 33 17 4 65536 144 67 2 Here it seems to pick order-2 slabs, which admittedly isn't great. --D