Received: by 2002:a05:6358:c692:b0:131:369:b2a3 with SMTP id fe18csp1003542rwb; Fri, 28 Jul 2023 03:19:23 -0700 (PDT) X-Google-Smtp-Source: APBJJlEW+WY0qU51pCikXE0Zsk6N9diPkSaA0c5Za2nO3fUnpKV6uxyWU6H0+Zdafndb5ehCR+CO X-Received: by 2002:a17:90b:3807:b0:262:f579:41db with SMTP id mq7-20020a17090b380700b00262f57941dbmr967142pjb.6.1690539562760; Fri, 28 Jul 2023 03:19:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1690539562; cv=none; d=google.com; s=arc-20160816; b=waFlIlOHHUHsGU62aJPcSFZLWDv2+fvDX3BUBzdgzsT3jfViu9vhW5IYkHD8Z+qI2l mSD5hGoZmFXG3f62TfqSPNbqwqEhLOE5M9xXdlbAwIhtV9Vqby+O5xN6GJPqNbovEm5N Nufz7LG2LLarF2S5et94w1fKG2wSPjPOeXxqGDNyLyLPxH5tVs3o4F/fI4Q8Wx+Tg/t7 zdZAE5aGLW7Rd8yHADhbo9VNKoDCCp+JEWtsWCgapQsJR5KOS6bVEEPsh1CXMHvaclsS aIAEJ8v8Dd+txAVrjqita21qEBg88vPEWCGPaMDIK7l5Dwe3o0kgJfebtHHZN8vqnhZO VDNw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=LWjFeLGkUfqQT1ZgNsfv5JPCUcMwsFRiww/cZdMA43A=; fh=X+JcSMmvw9q59Qa65v8Byu0rppc8BIkMSlihFQTsCt4=; b=tiQSNwGkTPnJsWEr7kkXzReWh525pWvvX5sN4wrzhw/9NAXU+kKwgasHcqPSgmeTjd +xxuBkEaeAj7YBVzIpGRnicQEhakZf4fCE0eAVQLIk+NxQj6jO450wBLESoWPEYt+HYw w7vkjxtgJ+5Exo1cO/o8Lmvo8C3MA6ECti5KHdAG5deYZJ0J88WbUBcdI5gINptzxn7X 7IuBSZyCQy2eE0JwCeBoOVTuVRjEV8v5Xm8ar/Cu9KAuDBBYURalRwtVwO6ePao2t7LK cSt8ScETXu/oGHf6+F7fZUkCIZrAlEINQk75qJG8w7vj3vkgXFTTGTtqJkbyMI/UqyQG nCKg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@szeredi.hu header.s=google header.b=hpENeGp9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=szeredi.hu Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 91-20020a17090a09e400b00263f4166a0asi2960732pjo.48.2023.07.28.03.19.09; Fri, 28 Jul 2023 03:19:22 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@szeredi.hu header.s=google header.b=hpENeGp9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=szeredi.hu Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233595AbjG1InU (ORCPT + 99 others); Fri, 28 Jul 2023 04:43:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41760 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235092AbjG1InQ (ORCPT ); Fri, 28 Jul 2023 04:43:16 -0400 Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com [IPv6:2a00:1450:4864:20::230]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F10892113 for ; Fri, 28 Jul 2023 01:43:12 -0700 (PDT) Received: by mail-lj1-x230.google.com with SMTP id 38308e7fff4ca-2b74209fb60so28420561fa.0 for ; Fri, 28 Jul 2023 01:43:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=szeredi.hu; s=google; t=1690533791; x=1691138591; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=LWjFeLGkUfqQT1ZgNsfv5JPCUcMwsFRiww/cZdMA43A=; b=hpENeGp9eq7S67ZijD/HCQx0L1pk8okZm5GWrI77lovgXqvX7nFXB1v/07COp0l3x+ PofQnb7NLQLHuRWzD40W9pOnsV9nzaJ5hUv2Q9J5N2CidAT7NojJQeGfkqGCkqoMlN2U SBjYf0o2AKPy7VZYaBmDitd06U1VrDuHUkinQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690533791; x=1691138591; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=LWjFeLGkUfqQT1ZgNsfv5JPCUcMwsFRiww/cZdMA43A=; b=DAXbfl0htMsGuPc60iMi9Lc4tgCnrybv+GIl0tYStRuKMJyRUGyPvKzWqkJSRwFpY4 E8+GT6f8U267mpUk7+Zg6wQw4ObjgF/TP72tuONnMdggrEwrCXsiYwAEv5k69ACVwbPl 4areDfNLRcJh5lgJKCBrXeIH87hWihKco5xUy1pnorJJmcNyIJFxn7oBaDA/zVn/J6ew wUDze0YRhssO2Pohq4GJmjQ7tchMNHtrf2nCbvxeROMVqqcM5CdvRaMYO3Gfw8oKGWwa jn+uvMXsUfhLAa5uzbxRxekONy9ABwmymNu9yoS5HBuS2VYSwpwiomcFaQYDg8p0Nncc aDeg== X-Gm-Message-State: ABy/qLYr1oZFOT7FpA3pS9o0mneK5X1qoHBVzDyTqQn1gHGdA6wErD8H M5EHGmt/tx2zkUwSTfWaGIiSEoXOzw+bsaHTV1wXAA== X-Received: by 2002:a2e:9bc3:0:b0:2b6:cd12:24f7 with SMTP id w3-20020a2e9bc3000000b002b6cd1224f7mr1151140ljj.44.1690533791076; Fri, 28 Jul 2023 01:43:11 -0700 (PDT) MIME-Version: 1.0 References: <20230726105953.843-1-jaco@uls.co.za> <7d762c95-e4ca-d612-f70f-64789d4624cf@uls.co.za> <0731f4b9-cd4e-2cb3-43ba-c74d238b824f@fastmail.fm> <831e5a03-7126-3d45-2137-49c1a25769df@spawn.link> <27875beb-bd1c-0087-ac4c-420a9d92a5a9@uls.co.za> <21fff874-d4ed-1781-32a6-06f154a4bc99@fastmail.fm> In-Reply-To: <21fff874-d4ed-1781-32a6-06f154a4bc99@fastmail.fm> From: Miklos Szeredi Date: Fri, 28 Jul 2023 10:42:59 +0200 Message-ID: Subject: Re: [PATCH] fuse: enable larger read buffers for readdir. To: Bernd Schubert Cc: Jaco Kroon , Antonio SJ Musumeci , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 27 Jul 2023 at 21:43, Bernd Schubert wrote: > > > > On 7/27/23 21:21, Miklos Szeredi wrote: > > On Wed, 26 Jul 2023 at 20:40, Jaco Kroon wrote: > > > >> Will look into FUSE_INIT. The FUSE_INIT as I understand from what I've > >> read has some expansion constraints or the structure is somehow > >> negotiated. Older clients in other words that's not aware of the option > >> will follow some default. For backwards compatibility that default > >> should probably be 1 page. For performance reasons it makes sense that > >> this limit be larger. > > > > Yes, might need this for backward compatibility. But perhaps a > > feature flag is enough and the readdir buf can be limited to > > fc->max_read. > > fc->max_read is set by default to ~0 and only set to something else when > the max_read mount option is given? So typically that is a large value > (UINT_MAX)? That's fine. It probably still makes sense to limit it to 128k, but with the ctx->count patch it would be naturally limited by the size of the userspace buffer. There's really no downside to enabling a large buffer, other than an unlikely regression in userspace. If server wants to return less entries, it still can. Unlike plain reads, filling the buffer to the fullest extent isn't required for readdir. So the buffer size calculation can be somthing like: init: #define FUSE_READDIR_MAX (128*1024) fc->max_readdir = PAGE_SIZE; if (flags & FUSE_LARGE_READDIR) fc->max_readdir = min(fc->max_read, FUSE_READDIR_MAX); [...] readdir: bufsize = min(fc->max_readdir, max(ctx->count, PAGE_SIZE)); Thanks, Miklos