Hi David, On 10/23/24 00:10, David Wei wrote: > [You don't often get email from dw@xxxxxxxxxxx. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ] > > On 2024-10-15 17:05, Bernd Schubert wrote: >> RFCv1 and RFCv2 have been tested with multiple xfstest runs in a VM >> (32 cores) with a kernel that has several debug options >> enabled (like KASAN and MSAN). RFCv3 is not that well tested yet. >> O_DIRECT is currently not working well with /dev/fuse and >> also these patches, a patch has been submitted to fix that (although >> the approach is refused) >> https://www.spinics.net/lists/linux-fsdevel/msg280028.html > > Hi Bernd, I applied this patch and the associated libfuse patch at: > > https://github.com/bsbernd/libfuse/tree/aligned-writes > > I have a simple Python FUSE client that is still returning EINVAL for > write(): > > with open(sys.argv[1], 'r+b') as f: > mmapped_file = mmap.mmap(f.fileno(), 0) > shm = shared_memory.SharedMemory(create=True, size=mmapped_file.size()) > shm.buf[:mmapped_file.size()] = mmapped_file[:] > fd = os.open("/home/vmuser/scratch/dest/out", O_RDWR|O_CREAT|O_DIRECT) > with open(fd, 'w+b') as f2: > f2.write(bytes(shm.buf)) > mmapped_file.close() > shm.unlink() > shm.close() > > I'll keep looking at this but letting you know in case it's something > obvious again. the 'aligned-writes' libfuse branch would need another kernel patch. Please hold on a little bit, I hope to send out a new version later today or tomorrow that separates headers from payload - alignment is guaranteed. Thanks, Bernd