Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp544215ybt; Wed, 24 Jun 2020 05:39:28 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxty9FmNpFcUfsGKR/cj7crcsZsGVfQUK/Sutk6u1zT1ii/418Ru+NQFpERH4+ch4crLe3E X-Received: by 2002:a05:6402:1c87:: with SMTP id cy7mr27307913edb.354.1593002368231; Wed, 24 Jun 2020 05:39:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1593002368; cv=none; d=google.com; s=arc-20160816; b=bQx5a6X0FEFmJq+XNerIwmnQ1FAGz2dYDrc0HujEaADRwQlHBRVUbZ83GpR9xh1vRg Afl9aW0nIv0vYvFy3PVdFoFqmZ0tyLbffrBrcvP+fbbWlAD2T0oC+/eryNlllq62wuaR IytTQoXU+t/IiQ8yYTMaKeuKct0u5nYmY3vfFFmALGXSp5h5hUWpfg5472Kit8WITh29 X3kvuBUEgTnZ8NJ4Jq3ChVYggiDaLJqgd4Dye9VP8iJ+NPanj4q2RMJkaCobm70UEvE7 jguIGaTkiameQqmnMxi74v1rvGq/1gQzu95Wj/Waig1ID1BjWCfyIqeQWVHNZDF2U+F2 GESg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=KXOd3FWsgxfpuN6FCKX2ClEKNWirNYpN+5hpadr6Dd4=; b=fh9yaPB7L/oVFJ83TUspufxsiuw/Z/gwT280F5l7JfBvqlX5kP841frXbL5blfjFLg 2e7IE5HsHvm3rLhHhp52yjl2ZhE17dsK+JRVFiKvVog7uYrJ2//VXj9DcZ36vlwytFSW Y8gdJSFbsXJf+TqMHyJz2ggSRXs0WbIlngJ9j2YYJx7xGIKKlXGxzD3Pjljx5tO3+/9N Q/zel6d1Ef/4KHwUJW3myErPpuT0IkGSAOtH9w21DGTG/Dv6oz6WDA9TEuZVHF1PDNB/ lkmVYBwivu868NFVwi8XnUuKqyT0XBrry6S3O6gzlOdJ0RSodI1FYwgGlFftassRBbpp c3hg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=CdGnKZRS; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id e26si14639502edy.327.2020.06.24.05.39.05; Wed, 24 Jun 2020 05:39:28 -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=@redhat.com header.s=mimecast20190719 header.b=CdGnKZRS; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2403856AbgFXMf7 (ORCPT + 99 others); Wed, 24 Jun 2020 08:35:59 -0400 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:53576 "EHLO us-smtp-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2390574AbgFXMf5 (ORCPT ); Wed, 24 Jun 2020 08:35:57 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593002156; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=KXOd3FWsgxfpuN6FCKX2ClEKNWirNYpN+5hpadr6Dd4=; b=CdGnKZRSdyTYjv7f0Cd78D9P0h0GtR23W+E2QxOmYEsQXDmVLerUhweEXqVP3ITF3D+zcp w6yBzUEZLT+hShXpLZWTbTnlY4H3U4l3W99RF28nHlcSjXY/CYRV5+g70gvneI2J0tJHbh zHi+LV0Fiv4DU+FkV/Gw6QQLDt18h20= Received: from mail-oi1-f197.google.com (mail-oi1-f197.google.com [209.85.167.197]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-410-BsO6dWbZNxS9SGZIG3nQFQ-1; Wed, 24 Jun 2020 08:35:52 -0400 X-MC-Unique: BsO6dWbZNxS9SGZIG3nQFQ-1 Received: by mail-oi1-f197.google.com with SMTP id r186so1427737oih.1 for ; Wed, 24 Jun 2020 05:35:52 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=KXOd3FWsgxfpuN6FCKX2ClEKNWirNYpN+5hpadr6Dd4=; b=YgioO3SvRvtUAdIsfbsuGr7757WEfSGbCrv3WlRv7bFt70ILzFN3CERYKEiqUFZg4+ PHv0Xf3MJzVo+i3KcIpX4E+htFlMdioYKH6Rhf6YD94VhrShhfh+NTJy/Cj80w8rFQgy i2BY3JokFwtzr0A6RmRRK/oNZB7lvGaqHnfc44BNnvnb6FREbzAen/J2ideaQAR5vrCd cazRD08Gi0p6d4Q8v9XaOlH+Xk+tFN7/XKPF6t0e/4t5q70kxxLTT0au7EYafzkDagsA 2turtFygt6vLCoZHaNuuXem7vpDU6C8LZX20euawLCTV0HuGyWDWzH3m6gcYvPrBtscR a0/Q== X-Gm-Message-State: AOAM533xUjGlZVHuJ+D77ha+a0Ep7rqZ2f1uxqGPstq3ajJsyzPPep6V RVzf79eSaWzbbCoya/uI+sghDq/0gnQefJTdT0FBqmLXmnGdpEN/vAr4q98p6fnAUM0i/zMgEoc ravd0fl9AlY82uLyMi2RhgAjjSUSk/b+YCEA7jkL0 X-Received: by 2002:a05:6830:10c8:: with SMTP id z8mr20797118oto.95.1593002151758; Wed, 24 Jun 2020 05:35:51 -0700 (PDT) X-Received: by 2002:a05:6830:10c8:: with SMTP id z8mr20797107oto.95.1593002151523; Wed, 24 Jun 2020 05:35:51 -0700 (PDT) MIME-Version: 1.0 References: <20200619155036.GZ8681@bombadil.infradead.org> <20200622003215.GC2040@dread.disaster.area> <20200622181338.GA21350@casper.infradead.org> In-Reply-To: <20200622181338.GA21350@casper.infradead.org> From: Andreas Gruenbacher Date: Wed, 24 Jun 2020 14:35:40 +0200 Message-ID: Subject: Re: [RFC] Bypass filesystems for reading cached pages To: Matthew Wilcox Cc: Dave Chinner , linux-fsdevel , Linux-MM , LKML Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Jun 22, 2020 at 8:13 PM Matthew Wilcox wrote: > On Mon, Jun 22, 2020 at 04:35:05PM +0200, Andreas Gruenbacher wrote: > > I'm fine with not moving that functionality into the VFS. The problem > > I have in gfs2 is that taking glocks is really expensive. Part of that > > overhead is accidental, but we definitely won't be able to fix it in > > the short term. So something like the IOCB_CACHED flag that prevents > > generic_file_read_iter from issuing readahead I/O would save the day > > for us. Does that idea stand a chance? > > For the short-term fix, is switching to a trylock in gfs2_readahead() > acceptable? Well, it's the only thing we can do for now, right? > diff --git a/fs/gfs2/aops.c b/fs/gfs2/aops.c > index 72c9560f4467..6ccd478c81ff 100644 > --- a/fs/gfs2/aops.c > +++ b/fs/gfs2/aops.c > @@ -600,7 +600,7 @@ static void gfs2_readahead(struct readahead_control *rac) > struct gfs2_inode *ip = GFS2_I(inode); > struct gfs2_holder gh; > > - gfs2_holder_init(ip->i_gl, LM_ST_SHARED, 0, &gh); > + gfs2_holder_init(ip->i_gl, LM_ST_SHARED, LM_FLAG_TRY, &gh); > if (gfs2_glock_nq(&gh)) > goto out_uninit; > if (!gfs2_is_stuffed(ip)) Thanks, Andreas