Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp1329092pxk; Fri, 4 Sep 2020 06:54:33 -0700 (PDT) X-Google-Smtp-Source: ABdhPJze9AJ0hY73GEiisvIOHBC2jlwXXOrdyTVMdBP4h7AjejwWhf9xkTk+lqSLCRtcUNGY1l5b X-Received: by 2002:a17:906:a981:: with SMTP id jr1mr7119504ejb.99.1599227673427; Fri, 04 Sep 2020 06:54:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1599227673; cv=none; d=google.com; s=arc-20160816; b=Z57SZcNSMYRe8o/TwGhylCIWHZZ1hf4P7Ei4OSOfnkVHq7s7n0/E8hpTHR/i0fW1sj Ojt0ItDKSMv8e7AG1dDc8uK1NuBPhOZ9G6pZxe3TCW5qrGX1M/MY5FvHbmhDen5pB0jG 6lrs669gLLrmOqy1EgupSsuLecagBV0FXZvvZbpouQj9+FE8QA+X6FUOVd2pfcXzAAxJ 3Zpy4YsrVXML+9PEaRtYF5A9QB2MNvIpzxJbp4FpRz04q3PrECf+ZWHr9aRFAms8uGjb FHqkTuRlI8XCk5tjo6Q4vZcbeGW2+hHGgoZnoQhtUuut2HVYQCynbtw1DW3qf0brJUGW AtWg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature:dkim-filter; bh=DJtNK+AIHKTAigwkBp95bIiweiKyErElhA70PTg7F2Q=; b=qmtW+nmqQ0Jl8p4gfXk714JglSsLfo1qV9Cn9w0pXUuQZPFkyUV9xxu0YTNYPm8Gz1 +Y8hdyJDg9Bd2dWU6c7nXked+tjQmSTGYPBJpiRcFHCai4rTt4yglmrYcxO/0TW/6hw5 JuG7iwna1uxhbHSB0llHXJ6LlZZna4v/kD8dSLZ6As/gwAhMfpcCnUCOODW+N6t4tX1O u1bTXnb7h3DMaurpL7PhupgjF5xNvCeJvJTQMy9hN/F0ZAOgXmB2N2xgwcVGCyTEV928 uLdqj54VzgZvRYWS+k7fenTfp4YkjzafIaCTZIWcl7DFP9V34q4gM5GMLMWmxQFjSqB1 HZQg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@fieldses.org header.s=default header.b=ytYeaJ7P; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-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 v16si4503284edi.123.2020.09.04.06.53.59; Fri, 04 Sep 2020 06:54:33 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-nfs-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=@fieldses.org header.s=default header.b=ytYeaJ7P; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730687AbgIDNxJ (ORCPT + 99 others); Fri, 4 Sep 2020 09:53:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54550 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730525AbgIDNxE (ORCPT ); Fri, 4 Sep 2020 09:53:04 -0400 Received: from fieldses.org (fieldses.org [IPv6:2600:3c00:e000:2f7::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E98FFC061244 for ; Fri, 4 Sep 2020 06:53:03 -0700 (PDT) Received: by fieldses.org (Postfix, from userid 2815) id 41BD71C25; Fri, 4 Sep 2020 09:52:59 -0400 (EDT) DKIM-Filter: OpenDKIM Filter v2.11.0 fieldses.org 41BD71C25 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fieldses.org; s=default; t=1599227579; bh=DJtNK+AIHKTAigwkBp95bIiweiKyErElhA70PTg7F2Q=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=ytYeaJ7PmJEMLPc2IjcdIMeeVMpfshfJ11Z6MQw1taub1zMgrvmcJ9EFChlNtebLf e5pBuXLaTuVoeDDD2Bd6VoUnAJXQz7oqH9BzXypMKsMYMdEqy3EEFqiBI5SI1O8WNK o/7fvZa2UpUGpuhZhTbcZawG5tjUgG/dJj8ixrdQ= Date: Fri, 4 Sep 2020 09:52:59 -0400 From: "J. Bruce Fields" To: Anna Schumaker Cc: "J. Bruce Fields" , Chuck Lever , Linux NFS Mailing List Subject: Re: [PATCH v4 2/5] NFSD: Add READ_PLUS data support Message-ID: <20200904135259.GB26706@fieldses.org> References: <20200817165310.354092-1-Anna.Schumaker@Netapp.com> <20200817165310.354092-3-Anna.Schumaker@Netapp.com> <20200828212521.GA33226@pick.fieldses.org> <20200828215627.GB33226@pick.fieldses.org> <20200901164938.GC12082@fieldses.org> <20200901191854.GD12082@fieldses.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200901191854.GD12082@fieldses.org> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org On Tue, Sep 01, 2020 at 03:18:54PM -0400, J. Bruce Fields wrote: > On Tue, Sep 01, 2020 at 01:40:16PM -0400, Anna Schumaker wrote: > > On Tue, Sep 1, 2020 at 12:49 PM J. Bruce Fields wrote: > > > > > > On Mon, Aug 31, 2020 at 02:16:26PM -0400, Anna Schumaker wrote: > > > > On Fri, Aug 28, 2020 at 5:56 PM J. Bruce Fields wrote: > > > > > We really don't want to bother encoding small holes. I doubt > > > > > filesystems want to bother with them either. Do they give us any > > > > > guarantees as to the minimum size of a hole? > > > > > > > > The minimum size seems to be PAGE_SIZE from everything I've seen. > > > > > > OK, can we make that assumption explicit? It'd simplify stuff like > > > this. > > > > I'm okay with that, but it's technically up to the underlying filesystem. > > Maybe we should ask on linux-fsdevel. > > Maybe minimum hole length isn't the right question: suppose at time 1 a > file has a single hole at bytes 100-200, then it's modified so at time 2 > it has a hole at bytes 50-150. If you lseek(fd, 0, SEEK_HOLE) at time > 1, you'll get 100. Then if you lseek(fd, 100, SEEK_DATA) at time 2, > you'll get 150. So you'll encode a 50-byte hole in the READ_PLUS reply > even though the file never had a hole smaller than 100 bytes. > > Minimum hole alignment might be the right idea. > > If we can't get that: maybe just teach encode_read to stop when it > *either* returns maxcount worth of file data (and holes) *or* maxcount > of encoded xdr data, just to prevent a weird filesystem from triggering > a bug. Alternatively, if it's easier, we could enforce a minimum alignment by rounding up the result of SEEK_HOLE to the nearest multiple of (say) 512 bytes, and rounding down the result of SEEK_DATA. --b.