[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <208f2e70-19b8-40a6-bd68-05c0798cb481@oracle.com>
Date: Tue, 17 Dec 2024 08:23:24 +0000
From: John Garry <john.g.garry@...cle.com>
To: Christoph Hellwig <hch@....de>
Cc: brauner@...nel.org, djwong@...nel.org, cem@...nel.org, dchinner@...hat.com,
ritesh.list@...il.com, linux-xfs@...r.kernel.org,
linux-fsdevel@...r.kernel.org, linux-kernel@...r.kernel.org,
martin.petersen@...cle.com
Subject: Re: [PATCH v2 0/7] large atomic writes for xfs
On 17/12/2024 07:11, Christoph Hellwig wrote:
> On Fri, Dec 13, 2024 at 05:43:09PM +0000, John Garry wrote:
>>> So if the redo log uses buffered I/O I can see how that would bloat writes.
>>> But then again using buffered I/O for a REDO log seems pretty silly
>>> to start with.
>>>
>>
>> Yeah, at the low end, it may make sense to do the 512B write via DIO. But
>> OTOH sync'ing many redo log FS blocks at once at the high end can be more
>> efficient.
>>
>> From what I have heard, this was attempted before (using DIO) by some
>> vendor, but did not come to much.
>
> I can't see how buffered I/O will be fast than an optimized direct I/O
> implementation. Then again compared to very dumb dio code that doesn't
> replace the caching in the page I can easily see how dio would be
> much worse. But given that people care about optimizing this workload
> enough to look into changes all over the kernel I/O stack I would
> expected that touching the code to write the redo log should not be
> out of the picture.
For sure, and I get the impression that - in general - optimising this
redo log is something that effort is put into. I will admit that I don't
know much about this redo log code, but I can go back with the feedback
that redo log should be optimised for switching to the larger FS
blocksize. But that may take a long time and be fruitless.
And even if something is done for this particular case, other scenarios
are still going to want large atomics but keep the 4K FS block size.
Apart from all of that, I get it that you don't want to grow the big
alloc code, but is this series really doing that? Or the smaller v1?
Thanks,
John
Powered by blists - more mailing lists