From: Mark Geisert <mark@maxrnd.com>
To: cygwin@cygwin.com
Subject: Re: /usr/bin/fallocate -v -d -l 2 myfile takes forever
Date: Fri, 8 Mar 2024 01:43:05 -0800 [thread overview]
Message-ID: <90c44b42-9092-4ea0-aa90-a178cda30108@maxrnd.com> (raw)
In-Reply-To: <cbfc3310-d359-4edf-94c4-fe8d998f5e14@maxrnd.com>
On 3/5/2024 2:43 AM, Mark Geisert via Cygwin wrote:
> On 3/5/2024 12:46 AM, Cedric Blancher via Cygwin wrote:
>> On Mon, 29 Jan 2024 at 10:46, Mark Geisert via Cygwin
>> <cygwin@cygwin.com> wrote:
>>>
>>> On 1/28/2024 11:56 PM, Mark Geisert via Cygwin wrote:
>>>> On 1/28/2024 10:44 PM, Cedric Blancher via Cygwin wrote:
>>>>> Good morning!
>>>>>
>>>>> rm -f myfile
>>>>> touch myfile
>>>>> /usr/bin/fallocate -v -d -l myfile takes forever with latest Cygwin
>>>>> 3.5
>>>> ^ length goes here, before filename
>>>>
>>>> I believe you need to
>>>> chattr +S myfile
>>>> after the 'touch' to make the file sparsifiable.
>>>>
>>>> Also, I'm unsure if '-d' makes sense when initially allocating a sparse
>>>> file. If I leave it off, fallocate does the right thing.
>>>>
>>>> I'm separately investigating the 'takes forever' report.
>>>
>>> It's taking forever because it's in an infinite loop looking for data
>>> followed by a hole, which is not present in a new file being created.
>>> This is due to the '-d' option being specified. fallocate ought to
>>> diagnose this condition rather than looping forever, but here we are.
>>>
>>> It's possible we have an old fallocate from an old util-linux package.
>>> I'll try to investigate this further when I have time.
>>>
>>
>> Any update on this issue?
>
> Thanks for the reminder. I'll check repology to see if we can maybe
> support a newer util-linux. No guarantees its fallocate is any better,
> but lets first see if it builds at all. Give me a couple days, please.
A newer util-linux package has been uploaded. I find that its fallocate
operates identically to the earlier one for your example. So, to
summarize, when allocating a brand new file:
1) don't specify '-d' option,
2) after creating file with 'touch', do 'chattr +S' on it,
3) using fallocate on the file without step 2 won't sparsify it.
It's easier to see fallocate is working properly by giving it a file
size large enough to make a difference by sparsifying. My testing shows
that specifying '-l 2m' to create a 2MB file makes the file occupy 64
blocks if it's sparsified, 2048 blocks if it isn't. Use 'stat <file>' to
get the block size of the file. 'ls -l' will show 2MB either way.
HTH,
..mark
next prev parent reply other threads:[~2024-03-08 9:43 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-29 6:44 Cedric Blancher
2024-01-29 7:56 ` Mark Geisert
2024-01-29 9:45 ` Mark Geisert
2024-03-05 8:46 ` Cedric Blancher
2024-03-05 10:43 ` Mark Geisert
2024-03-08 9:43 ` Mark Geisert [this message]
2024-03-05 11:04 ` Mark Geisert
2024-01-29 8:32 ` Brian Inglis
2024-01-29 10:39 ` Cedric Blancher
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=90c44b42-9092-4ea0-aa90-a178cda30108@maxrnd.com \
--to=mark@maxrnd.com \
--cc=cygwin@cygwin.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).