> -----Original Message----- > From: Jens Axboe [mailto:axboe@xxxxxxxxx] > Sent: Thursday, 04 September, 2014 9:39 AM > To: Elliott, Robert (Server Storage); fio@xxxxxxxxxxxxxxx; > scameron@xxxxxxxxxxxxxxxxxx > Subject: Re: [PATCH] fio: fix hangs due to iodepth_low > > On 09/04/2014 08:27 AM, Elliott, Robert (Server Storage) wrote: > >>> should be: > >>> > >>> if (min_events > td->cur_depth) > >>> min_events = td->cur_depth; > >>> > >>> and we should probably put this logic in io_u_queued_complete(), > I > >> think > >>> that would be a safer alternative instead of near the callers. > > > > io_u_quisce, which calls io_u_queued_complete with an argument > > of 1, includes this comment: > > * and cur_depth is meaningless for sync engines. > > > > If that is invoked during sync traffic too, then putting this > > change inside io_u_queued_complete might not work right. > > It's good enough for this use case. And it doesn't really matter if > it's > near the caller or in the function from this point of view, since > there > will be nothing (0) to complete for sync engines. By their very > nature, > they have nothing pending at that point. So I think the patch is fine > as > I sent out. I ran this version through similar tests and it works as well. ��.n��������+%������w��{.n�������^n�r������&��z�ޗ�zf���h���~����������_��+v���)ߣ�