Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753218AbWKFQAp (ORCPT ); Mon, 6 Nov 2006 11:00:45 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753283AbWKFQAp (ORCPT ); Mon, 6 Nov 2006 11:00:45 -0500 Received: from brick.kernel.dk ([62.242.22.158]:47415 "EHLO kernel.dk") by vger.kernel.org with ESMTP id S1753218AbWKFQAo (ORCPT ); Mon, 6 Nov 2006 11:00:44 -0500 Date: Mon, 6 Nov 2006 17:02:51 +0100 From: Jens Axboe To: Phillip Susi Cc: Brent Baccala , linux-kernel@vger.kernel.org Subject: Re: async I/O seems to be blocking on 2.6.15 Message-ID: <20061106160250.GY13555@kernel.dk> References: <20061103122055.GE13555@kernel.dk> <20061103160212.GK13555@kernel.dk> <20061106104350.GR13555@kernel.dk> <454F5A59.8010309@cfl.rr.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <454F5A59.8010309@cfl.rr.com> Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1036 Lines: 25 On Mon, Nov 06 2006, Phillip Susi wrote: > Jens Axboe wrote: > >Yeah, I'm afraid so. We really should be returning EAGAIN or something > >like that for the congested condition, though. > > How would user mode know when it was safe to retry the request? You could optimistically retry when you had reaped some completed events, or use some controlled way of blocking for free request notification. There are many ways, most of them share the fact that the time between notification and new io_submit() may change the picture, in which case you'd get EAGAIN once more. The important bit is imho to make the blocking at least deterministic. At some point you _have_ to block for resources, but it's not very polite to be blocking for a considerable time indeterministically. -- Jens Axboe - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/