delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2023/12/01/05:45:25

X-Recipient: archive-cygwin AT delorie DOT com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DB135385B538
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
s=default; t=1701427524;
bh=Eet2UgKYC2ELYw3iAC9KwE2y7wDFP1MFJkSxg8yP4jo=;
h=References:In-Reply-To:Date:Subject:To:List-Id:List-Unsubscribe:
List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:
From;
b=g7r5L+GPBa34kWJ/Hhhxb4UK8nafc2c5nm7QJuNnNy7Oi/3vqt9iLayIFMZkTfOr5
ZYgI/awFkRCIinMQfW+0bSIx0phF4pFbygI2JuxgTmBommUMI6pVWt6YEGAyoxGUYJ
25ZPeCVmChJJyM9WRSCpVxhnPuZN7dzst4DulRoY=
X-Original-To: cygwin AT cygwin DOT com
Delivered-To: cygwin AT cygwin DOT com
DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 566303858CDB
ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 566303858CDB
ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701427510; cv=none;
b=I+ZytjwQhsyCdMuPspwH6DymmMASGV9hwQEozW3M8zmT4XOXqQRvSNIUNkfWRHG3HCzWkjVJc9ZVEuEUxScDdQPU/FyxILyFV5Tl0UTcIRp6DOOFcUjHSsTWDWr+ayGhtHXyvZv5ddXpJwy87N8BKnfHNuV5cE3+nfR22FVY/wU=
ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key;
t=1701427510; c=relaxed/simple;
bh=xCkqPsaT8R/1z48yNw3db93j1t0P+pAjTgK86I3dJ3E=;
h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To;
b=jZjn6eMjG75jA2sJHSZvz4ErZRAZ1mHudtfAKiasGck2nWP6J9J2xZw80nLgrqf6oSf+DIduf0aYtwvyIaU+h8FW0YILiIz4FrU5Fh4RwX7h3eXWLUhE5s+NkVRvqt7MnShRjLQTHkD3MS1/7PgOmwb7PJzWuRkFao+lc37ULXQ=
ARC-Authentication-Results: i=1; server2.sourceware.org
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1701427506; x=1702032306;
h=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=X0WsaXg9xqB3Ss8hhKoCYpqOHyX7IsAurcWxR+TKUPk=;
b=kAV8E9ZWrZYmuCE1TZ5nPe5agnnvtjs7Cnm9BiBGRUUF3Nb8vvkfT4Ble+QeioGln4
wmakAUzgHNvKLfoYVlKAHTsYFwvXDArpQm6PjSuAC2jUS5AGRVrWjxfXmVP6h8m91kxU
yYYCydWFAO1jMZeaS0VPDHDKlL73/Qfz4M/yABQoaatYQtqg6F/45y5SQPL+oFHhCTqI
nU8crsXiWvcQMq7ha0K/af49xfNdblHp5R3mbnEsLFZszpsknz5dzTEdfkWn0DLygX2r
Aqtk+9my6EXVXHzwek7UfEWbulDnZhFNgNWDROLrOj5OZ41CrcuvkhYCou0cY+ChJKue
CshQ==
X-Gm-Message-State: AOJu0YyZUzKbrDClAZWfb4Wte4+GLgza7Xj807VUf2lpPsIomyv72/dr
PZK80aeSooMCOh7HK7kLXZdyFrYFgSvRRWzDWvFZHqP5BAA=
X-Google-Smtp-Source: AGHT+IE9MSRRpFzaUHNjMkajdpqp0PQY/+u7zGusn2Jypic2wOMe+K2OHCLzcIlxU91oAD7/SC6Kdg3AA1vcFo7arBM=
X-Received: by 2002:a50:ee14:0:b0:54c:4837:7d32 with SMTP id
g20-20020a50ee14000000b0054c48377d32mr442485eds.113.1701427506613; Fri, 01
Dec 2023 02:45:06 -0800 (PST)
MIME-Version: 1.0
References: <CALXu0Uee2CHeCpthOKFmct+6HnEsKHbSzdK3Jyx8GsnYyt7Lbw AT mail DOT gmail DOT com>
<ZWCCfqny4lC11bBJ AT calimero DOT vinschen DOT de>
<ZWXBH_viPFuSF6be AT calimero DOT vinschen DOT de>
In-Reply-To: <ZWXBH_viPFuSF6be@calimero.vinschen.de>
Date: Fri, 1 Dec 2023 11:44:30 +0100
Message-ID: <CALXu0UctMLBqBa=FrJVRqyitGFB5a6mVbfr8rb4WiD6F5qc=-A@mail.gmail.com>
Subject: _PC_MIN_HOLE_SIZE pathconf() Re: Cygwin api to punch a hole into a
file?
To: cygwin AT cygwin DOT com
X-Spam-Status: No, score=-0.4 required=5.0 tests=BAYES_00, DKIM_SIGNED,
DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,
SPF_HELO_NONE, SPF_PASS, TXREP,
T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6
X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on
server2.sourceware.org
X-BeenThere: cygwin AT cygwin DOT com
X-Mailman-Version: 2.1.30
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-request AT cygwin DOT com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=subscribe>
From: Cedric Blancher via Cygwin <cygwin AT cygwin DOT com>
Reply-To: Cedric Blancher <cedric DOT blancher AT gmail DOT com>
Sender: "Cygwin" <cygwin-bounces+archive-cygwin=delorie DOT com AT cygwin DOT com>

On Tue, 28 Nov 2023 at 11:30, Corinna Vinschen via Cygwin
<cygwin AT cygwin DOT com> wrote:
>
> On Nov 24 12:01, Corinna Vinschen via Cygwin wrote:
> > On Nov 23 23:36, Cedric Blancher via Cygwin wrote:
> > > Linux has fallocate(fd, FALLOC_FL_PUNCH_HOLE|FALLOC_FL_KEEP_SIZE, ...)
> > > to punch a hole into a file, i.e. deallocate the blocks given and make
> > > the file a "sparse file".
> >
> > We don't support the Linux-specific fallocate(2) call, only ftruncate(2)
> > and posix_fallocate(3).  Patches, as usual, thoughtfully considered.
>
> The next test release cygwin-3.5.0-0.485.g65831f88d6c4 introduces
> the Linux-specific fallocate(2) call.  Naturally we can't support
> all flags, but the following flag combinations are allowed:
>
> - 0                             same as posix_fallocate(3)
> - FALLOC_FL_KEEP_SIZE
> - FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE
> - FALLOC_FL_ZERO_RANGE
> - FALLOC_FL_ZERO_RANGE | FALLOC_FL_KEEP_SIZE
>
> A few comments:
>
> - With 0 and FALLOC_FL_KEEP_SIZE, sparse blocks in the given range
>   are re-allocated as per the POSIX requirements.  For that, it uses
>   the same code as FALLOC_FL_ZERO_RANGE, but only for the holes within
>   the range.
>
> - With FALLOC_FL_KEEP_SIZE, over-allocation is done by setting
>   the allocation size of a file while keeping EOF the same.
>   However, in contrast to your typical Linux filesystem, over-
>   allocation on Windows filesystems is only temporary.  The
>   over-allocated blocks are returned to free blocks as soon as
>   the last HANDLE to the file is closed.
>
> - With FALLOC_FL_KEEP_SIZE, no over-allocation is performed on sparse
>   files.  The reason is that over-allocation on sparse files has no
>   effect on Windows.
>
> - FALLOC_FL_ZERO_RANGE is implemented as writing zeros to the
>   given range.  For parts of the range which are already allocated
>   data blocks, as much zeros are written as necessary.  For holes
>   in sparse files, only a single zero byte is written to the
>   hole per 64K chunk, which is the allocation granularity of
>   sparse files.
>
> - FALLOC_FL_ZERO_RANGE is NOT atomic.
>
> Please give it a try.

Could you please implement _PC_MIN_HOLE_SIZE in pathconf(), so that
people can query the minimum hole size for a (path in a) filesystem?
Should return nothing for FAT and NFSv3, should work on NTFS and
NFSv4.2

Ced
-- 
Cedric Blancher <cedric DOT blancher AT gmail DOT com>
[https://plus.google.com/u/0/+CedricBlancher/]
Institute Pasteur

-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019