Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp4697931pxa; Mon, 10 Aug 2020 16:05:54 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxItWYmW+U9+1MkODstWeeTaKD0Fiszpbz/zDla2InDzmKOvSncqQfbj0xNUxodJsJ5OV6s X-Received: by 2002:a17:906:d9db:: with SMTP id qk27mr23334006ejb.37.1597100754523; Mon, 10 Aug 2020 16:05:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1597100754; cv=none; d=google.com; s=arc-20160816; b=koMc7jddgKObbQWYx316mCfuF4Um6a55Hf/vrlG8MYX8afq0Ribb5dLivjEpYG2JDi aNnbUh2qpBHuUveH5fhmxsuo4usYLHAghbUQUkzA474hjjUERAL+Y33s0wIaqvwsEKP1 7bo+gVXHORA9Z/+klv9qixYSckvMSOOE8HS9j0nJEnTqpRASUODmdG1KF5UsflLPU4O0 Q5hNu7pxeR2MaQ9Ah6AK9pS7d7pmWjkdwKIrKtOPFG0HgJSK8xXGHz0js7XnGm2sGeGM GiMC4IxbyzBR00kjXTr1kPIDG9zodWL8D4+43wHERvGfHus/+HwsNVuKZgRhjutzAtuU N4zw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature; bh=RhGl5aAnfF/BQXqz/MC7L9FOMBP1d+PqSfo/ugCUrnc=; b=qAErynG5VH33myaPcCl/mMci6Ss3Nv4cJk1819KY534yNxqYGSpHeRNhY6Ub96isqd oyFMZywfN/uAJWWQyzP+BA3JtkLEE2FU4+xSKK/3w51FB9FnqfuFQXrPgc7t1cTO4xbE ozdjZcUrde43Rc5G/oYIS0t0eZDXcnaKNyMhu0hbmpgpR++AVO0trHe1UKfbGS8ppMAC cVSyWaXRQmwq5fqn8Twe7ABlHLgvmcVWy1eFOKAi9+LSTRKHjq9PWuPEQIl+j+7nUBTw /KjjM+MHfi9kX05fizoK4/1l+/XSbTgvOOQZ7XwMAgmWIdbOzDAxCFfRi1z0fA6Uij8+ 3k3g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel-dk.20150623.gappssmtp.com header.s=20150623 header.b=vKzfUH8m; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id j17si11568433ejk.360.2020.08.10.16.05.03; Mon, 10 Aug 2020 16:05:54 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel-dk.20150623.gappssmtp.com header.s=20150623 header.b=vKzfUH8m; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727059AbgHJXDa (ORCPT + 99 others); Mon, 10 Aug 2020 19:03:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49768 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726722AbgHJXD3 (ORCPT ); Mon, 10 Aug 2020 19:03:29 -0400 Received: from mail-pj1-x1044.google.com (mail-pj1-x1044.google.com [IPv6:2607:f8b0:4864:20::1044]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D1560C06174A for ; Mon, 10 Aug 2020 16:03:29 -0700 (PDT) Received: by mail-pj1-x1044.google.com with SMTP id i92so630930pje.0 for ; Mon, 10 Aug 2020 16:03:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20150623.gappssmtp.com; s=20150623; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=RhGl5aAnfF/BQXqz/MC7L9FOMBP1d+PqSfo/ugCUrnc=; b=vKzfUH8mbF/lhof7jqzTDAHUZg2nS8pYqAocFG+3PGEPxsrMyQYSoVhkjSrt63Ugjo 3mzhxjfv0Rm3DVkE8BiamPLYiwqpUOsYeZkY+W+EBp4KRiexXmERkpUFMbn8jYE0sTdS MfhvSYIPzaWdV3C6E21CsVDz4rpJUdIyB59cAWL4/98gJwUeSSTTogyyEyOXh1GMQjBG S9CsrDhpAKnCcV74+chwfTO+BQuJKcw6pHsIrC8zvHCx/9B67dL1n2ObhQ/wUIhmx9O9 FNmsUCkH5l+VeKFlR2BJPOGxAs5ErebttAMIucVy2/QjIQtbUPDd/nM3NzduIKcWMGXH Z0tg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=RhGl5aAnfF/BQXqz/MC7L9FOMBP1d+PqSfo/ugCUrnc=; b=di+xklEZIlCT+A6Dw3BXsXI5ZTRxJxWOjPn0YSet5Kn0JVsYTfdK2jTSS+HrNXISbH 6XsHR2mEOKtnq9f7UxyBC0+vyjAGDvgFjUxEvmK4zQKo1aKd7dKikppmUMEhfGMUFodL XvObFNGbz4OnmEsNePgAgkOiVYDIAGnHmbqBeRWPUkBp9C5b7TkdAWpU7/VQkFGQXlYc w2CYqsjU4nMCHHeR/fpIInleoXNtkYrpvmsBXGOGLv8xY4WlfAvkPYuFov+hZaHR1UOn 6IG7UOSYE9mF94Nx/Up22k6jxFDILeTfl0s9ikkABqoEXwfS16KqxWLC1wa34xTOBxgR roDw== X-Gm-Message-State: AOAM533m2pWiFWFTaH4HBIvIN3Gy3pt+sWUKEm4mmfJyR/dQGtG4bGVx g4ue6s/FT7c/bJMmrGW7V4Kk9A== X-Received: by 2002:a17:902:aa91:: with SMTP id d17mr26879095plr.27.1597100609171; Mon, 10 Aug 2020 16:03:29 -0700 (PDT) Received: from [192.168.1.182] ([66.219.217.173]) by smtp.gmail.com with ESMTPSA id z25sm23545541pfg.150.2020.08.10.16.03.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 10 Aug 2020 16:03:28 -0700 (PDT) Subject: Re: [PATCH 05/15] mm: allow read-ahead with IOCB_NOWAIT set To: Dave Chinner Cc: Matthew Wilcox , io-uring@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, akpm@linux-foundation.org, Johannes Weiner References: <20200618144355.17324-1-axboe@kernel.dk> <20200618144355.17324-6-axboe@kernel.dk> <20200624010253.GB5369@dread.disaster.area> <20200624014645.GJ21350@casper.infradead.org> <70b0427c-7303-8f45-48bd-caa0562a2951@kernel.dk> <20200624164127.GP21350@casper.infradead.org> <8835b6f2-b3c5-c9a0-2119-1fb161cf87dd@kernel.dk> <20200810225601.GE2079@dread.disaster.area> From: Jens Axboe Message-ID: Date: Mon, 10 Aug 2020 17:03:27 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <20200810225601.GE2079@dread.disaster.area> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 8/10/20 4:56 PM, Dave Chinner wrote: > On Wed, Jun 24, 2020 at 10:44:21AM -0600, Jens Axboe wrote: >> On 6/24/20 10:41 AM, Matthew Wilcox wrote: >>> On Wed, Jun 24, 2020 at 09:35:19AM -0600, Jens Axboe wrote: >>>> On 6/24/20 9:00 AM, Jens Axboe wrote: >>>>> On 6/23/20 7:46 PM, Matthew Wilcox wrote: >>>>>> I'd be quite happy to add a gfp_t to struct readahead_control. >>>>>> The other thing I've been looking into for other reasons is adding >>>>>> a memalloc_nowait_{save,restore}, which would avoid passing down >>>>>> the gfp_t. >>>>> >>>>> That was my first thought, having the memalloc_foo_save/restore for >>>>> this. I don't think adding a gfp_t to readahead_control is going >>>>> to be super useful, seems like the kind of thing that should be >>>>> non-blocking by default. >>>> >>>> We're already doing memalloc_nofs_save/restore in >>>> page_cache_readahead_unbounded(), so I think all we need is to just do a >>>> noio dance in generic_file_buffered_read() and that should be enough. >>> >>> I think we can still sleep though, right? I was thinking more >>> like this: >>> >>> http://git.infradead.org/users/willy/linux.git/shortlog/refs/heads/memalloc >> >> Yeah, that's probably better. How do we want to handle this? I've already >> got the other bits queued up. I can either add them to the series, or >> pull a branch that'll go into Linus as well. > > Jens, Willy, > > Now that this patch has been merged and IOCB_NOWAIT semantics ifor > buffered reads are broken in Linus' tree, what's the plan to get > this regression fixed before 5.9 releases? Not sure where Willy's work went on this topic, but it is on my radar. But I think we can do something truly simple now that we have IOCB_NOIO: diff --git a/include/linux/fs.h b/include/linux/fs.h index bd7ec3eaeed0..f1cca4bfdd7b 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -3293,7 +3293,7 @@ static inline int kiocb_set_rw_flags(struct kiocb *ki, rwf_t flags) if (flags & RWF_NOWAIT) { if (!(ki->ki_filp->f_mode & FMODE_NOWAIT)) return -EOPNOTSUPP; - kiocb_flags |= IOCB_NOWAIT; + kiocb_flags |= IOCB_NOWAIT | IOCB_NOIO; } if (flags & RWF_HIPRI) kiocb_flags |= IOCB_HIPRI; -- Jens Axboe