On 3/16/23 4:18 AM, Helge Deller wrote: > On 3/15/23 22:18, Jens Axboe wrote: >> On 3/15/23 2:38 PM, Jens Axboe wrote: >>> On 3/15/23 2:07?PM, Helge Deller wrote: >>>> On 3/15/23 21:03, Helge Deller wrote: >>>>> Hi Jens, >>>>> >>>>> Thanks for doing those fixes! >>>>> >>>>> On 3/14/23 18:16, Jens Axboe wrote: >>>>>> One issue that became apparent when running io_uring code on parisc is >>>>>> that for data shared between the application and the kernel, we must >>>>>> ensure that it's placed correctly to avoid aliasing issues that render >>>>>> it useless. >>>>>> >>>>>> The first patch in this series is from Helge, and ensures that the >>>>>> SQ/CQ rings are mapped appropriately. This makes io_uring actually work >>>>>> there. >>>>>> >>>>>> Patches 2..4 are prep patches for patch 5, which adds a variant of >>>>>> ring mapped provided buffers that have the kernel allocate the memory >>>>>> for them and the application mmap() it. This brings these mapped >>>>>> buffers in line with how the SQ/CQ rings are managed too. >>>>>> >>>>>> I'm not fully sure if this ONLY impacts archs that set SHM_COLOUR, >>>>>> of which there is only parisc, or if SHMLBA setting archs (of which >>>>>> there are others) are impact to any degree as well... >>>>> >>>>> It would be interesting to find out. I'd assume that other arches, >>>>> e.g. sparc, might have similiar issues. >>>>> Have you tested your patches on other arches as well? >>>> >>>> By the way, I've now tested this series on current git head on an >>>> older parisc box (with PA8700 / PCX-W2 CPU). >>>> >>>> Results of liburing testsuite: >>>> Tests timed out (1): <send-zerocopy.t> - (may not be a failure) >>>> Tests failed (5): <buf-ring.t> <file-verify.t> <poll-race-mshot.t> <ringbuf-read.t> <send_recvmsg.t> >> >> If you update your liburing git copy, switch to the ring-buf-alloc branch, >> then all of the above should work: >> >> axboe@c8000 ~/g/liburing (ring-buf-alloc)> test/buf-ring.t >> axboe@c8000 ~/g/liburing (ring-buf-alloc)> test/send_recvmsg.t >> axboe@c8000 ~/g/liburing (ring-buf-alloc)> test/ringbuf-read.t >> axboe@c8000 ~/g/liburing (ring-buf-alloc)> test/poll-race-mshot.t >> axboe@c8000 ~/g/liburing (ring-buf-alloc)> git describe >> liburing-2.3-245-g8534193 > > Yes, verified. All tests in that branch pass now. Nice, thanks for re-testing! -- Jens Axboe