From: Linus Torvalds > Sent: 22 November 2018 18:58 ... > Oh, and I just noticed that on x86 we expressly use our old "safe and > sane" functions: see __inline_memcpy(), and its use in > __memcpy_{from,to}io(). > > So the "falls back to memcpy" was always a red herring. We don't > actually do that. > > Which explains why things work.
It doesn't explain why I've seen single byte PCIe TLP generated by memcpy_to/fromio(). I've had to change code to use readq/writeq loops because the byte accesses are so slow - even when PIO performance should be 'good enough'. It might have been changed since last time I tested it. But I don't remember seeing a commit go by. David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)