Re: [GIT PULL] xfs: new code for 6.7

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Nov 08, 2023 at 11:39:45PM -0800, Darrick J. Wong wrote:
> On Thu, Nov 09, 2023 at 05:51:50AM +0100, Christoph Hellwig wrote:
> > On Wed, Nov 08, 2023 at 02:52:00PM -0800, Darrick J. Wong wrote:
> > > > Also, xfs people may obviously have other preferences for how to deal
> > > > with the whole "now using tv_sec in the VFS inode as a 64-bit sequence
> > > > number" thing, and maybe you prefer to then update my fix to this all.
> > > > But that horrid casts certainly wasn't the right way to do it.
> > > 
> > > Yeah, I can work on that for the rt modernization patchset.
> > 
> > As someone who has just written some new code stealing this trick I
> > actually have a todo list item to make this less horrible as the cast
> > upset my stomache.  But shame on me for not actually noticing that it
> > is buggy as well (which honestly should be the standard assumption for
> > casts like this).
> 
> Dave and I started looking at this too, and came up with: For rtgroups
> filesystems, what if rtpick simply rotored the rtgroups?  And what if we
> didn't bother persisting the rotor value, which would make this casting
> nightmare go away in the long run.  It's not like we persist the agi
> rotors.

I think we could replace it right now with an in-memory rotor like
the mp->m_agfrotor. It really does not need to be persistent; the
current sequence based algorithm devolves to sequential ascending
block order allocation targets once the sequence number gets large
enough.

Further, the (somewhat) deterministic extent distribution it is
trying to acheive (i.e. even distribution across the rt dev) is
really only acheivable in write-once workloads.  The moment we start
freeing space on the rtdev, the free space is no longer uniform and
does not match the pattern the sequence-based target iterates. Hence
the layout the search target attempts to create is unacheivable and
largely meaningless.

IOWs, we may as well just use an in-memory sequence number or a
random number to seed the allocation target; they will work just as
well as what we have right now without the need for persistent
sequence numbers.

Also, I think that not updating the persistent sequence number is
fine from a backwards compatibility perspective - older kernels will
just use it as it does now and newer kernels will just ignore it...

I say we just kill the whole sequence number in atime thing
completely....

-Dave.
-- 
Dave Chinner
david@xxxxxxxxxxxxx




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux