On 12/7/18 3:00 PM, Jens Axboe wrote: > On 12/7/18 2:59 PM, Jens Axboe wrote: >> On 12/7/18 2:58 PM, Jens Axboe wrote: >>> On 12/7/18 12:35 PM, Jens Axboe wrote: >>>> On 12/7/18 12:34 PM, Jeff Moyer wrote: >>>>> Jens Axboe <axboe@xxxxxxxxx> writes: >>>>> >>>>>> BTW, quick guess is that it doesn't work so well with fixed buffers, as that >>>>>> hasn't been tested. You could try and remove IOCTX_FLAG_FIXEDBUFS from the >>>>>> test program and see if that works. >>>>> >>>>> That results in a NULL pointer dereference. I'll stick to block device >>>>> testing for now. :) >>>> >>>> Good plan :-) >>> >>> Took a look and fixed it up, my aio-poll branch has a fixup patch and I >>> also updated an updated aio-ring.c in the same location. >>> >>> Tested XFS with polling on and off, works for me. >>> >>> Will take a look at FIXEDBUFS now. Note that aio-ring has some parameters >>> at the top: >>> >>> static int polled = 1; /* use IO polling */ >>> static int fixedbufs = 0; /* use fixed user buffers */ >>> >>> that you can change to try the various modes. Don't use fixedbufs = 1 >>> with XFS just yet :-) >> >> Actually, with the other fixups, that works now too. At least in a quick >> test... > > And no, it does not ;-). Will take a look, we're dropping page counts where > we should not be. Forgot to add the BIO_HOLD_PAGES check in iomap, it works now. Pushed out that fix, will also need folding. -- Jens Axboe