On Fri, May 22, 2020 at 01:31:02PM +1000, Dave Chinner wrote: > On Thu, May 21, 2020 at 07:53:23PM -0700, Darrick J. Wong wrote: > > From: Darrick J. Wong <darrick.wong@xxxxxxxxxx> > > > > When writing to a delalloc region in the data fork, commit the new > > allocations (of the da reservation) as unwritten so that the mappings > > are only marked written once writeback completes successfully. This > > fixes the problem of stale data exposure if the system goes down during > > targeted writeback of a specific region of a file, as tested by > > generic/042. > > > > Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> > > Reviewed-by: Christoph Hellwig <hch@xxxxxx> > > Reviewed-by: Brian Foster <bfoster@xxxxxxxxxx> > > Observation: yesterday I forced a 4kB file create workload > to use unwritten extents by setting an extent size hint. That caused > about 4,500 xfs-conv kworker threads to be spawned by the workload > which had 16 userspace processes creating files... > > I expect that any sort of "create lots of small files" worklaod is > going to cause xfs-conv kworker explosions, so be prepared for users > to start reporting kworker explosions with this in place... Yes, I've been running this patch internally for months and /so far/ the conv explosions haven't generated any additional support calls. (That said, we probably ought to constrain that a bit, there's really no point in allowing concurrency beyond some unholy mix of AG count and the estimated iops capacity of the storage...) --D > Cheers, > > Dave. > -- > Dave Chinner > david@xxxxxxxxxxxxx