On Tue, May 21, 2019 at 09:32:33AM +1000, Dave Chinner wrote: > So while it's easy to drop the uncached buffer API from the kernel > side, it leaves me with the question of what API do we use in > userspace to provide this same functionality? I suspect that we > probably need to separate all this log-to-bio code out into a > separate file (e.g. xfs_log_io.[ch]) to leave a set of API stubs > that we can reimplement in userspace to pread/pwrite directly to > the log buftarg device fd as I've done already for the buffer > code... For one we still keep the uncached buffers in xfs_buf.c as we have users of that outside of the log code, but I guess that is not what you mean. I can split the log recovery code into a separate file, as you said it should just be malloc + pread/pwrite in userspace, so implementing it should be trivial. The xlog_sync case is pretty different in the kernel as it isn't synchonous, and it also doesn't currently exist in userspace. I'd rather keep that as-is unless you have plans to port the logging code to userspace? Even in that case we'll probably want a different abstraction that maps to aio.