From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59587) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UwvNV-0008K9-6u for qemu-devel@nongnu.org; Wed, 10 Jul 2013 10:28:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UwvNQ-0001T4-MP for qemu-devel@nongnu.org; Wed, 10 Jul 2013 10:28:21 -0400 Received: from mx1.redhat.com ([209.132.183.28]:56643) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UwvNQ-0001Sw-F8 for qemu-devel@nongnu.org; Wed, 10 Jul 2013 10:28:16 -0400 Date: Wed, 10 Jul 2013 16:28:07 +0200 From: Kevin Wolf Message-ID: <20130710142807.GQ3898@dhcp-200-207.str.redhat.com> References: <1372338695-411-1-git-send-email-pl@kamp.de> <1372338695-411-11-git-send-email-pl@kamp.de> <20130710113313.GK3898@dhcp-200-207.str.redhat.com> <51DD69F8.3050305@kamp.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <51DD69F8.3050305@kamp.de> Subject: Re: [Qemu-devel] [PATCHv2 10/11] iscsi: ignore aio_discard if unsupported List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Lieven Cc: pbonzini@redhat.com, ronniesahlberg@gmail.com, qemu-devel@nongnu.org, stefanha@redhat.com Am 10.07.2013 um 16:04 hat Peter Lieven geschrieben: > Am 10.07.2013 13:33, schrieb Kevin Wolf: > > Am 27.06.2013 um 15:11 hat Peter Lieven geschrieben: > >> if the target does not support UNMAP or the request > >> is too big silently ignore the discard request. > >> > >> Signed-off-by: Peter Lieven > > Why not loop for the "too big" case? You can probably use the same logic > > for unmapping the whole device in .bdrv_create and here. > right, but looping in an aio function seemed not so trivial to me. > it seems more and more obvious to me that the best would be to change > all the remaining aio routines to co routines. The pattern for AIO functions is that the real work of submitting requests is done in the AIO callback, and it submits new AIO requests calling back into the same callback as long as acb->remaining_secs > 0 (or something like that). You can still see that kind of thing alive in qed_aio_next_io(), (most of?) the rest is converted to coroutines because it makes the code look nicer. > in this case i could add the too big logic in iscsi_co_discard and simply call > it from iscsi_co_write_zeroes. I think that would be the nicest solution. Kevin