All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: John Snow <jsnow@redhat.com>
Cc: Peter Maydell <peter.maydell@linaro.org>,
	QEMU Developers <qemu-devel@nongnu.org>,
	Qemu-block <qemu-block@nongnu.org>
Subject: Re: [Qemu-devel] hd-geo-test creates 4GB files on FSes that don't support sparse images, doesn't delete them on error
Date: Tue, 01 Sep 2015 08:02:20 +0200	[thread overview]
Message-ID: <87pp22brtf.fsf@blackfin.pond.sub.org> (raw)
In-Reply-To: <55E4A2D2.4090000@redhat.com> (John Snow's message of "Mon, 31 Aug 2015 14:54:10 -0400")

John Snow <jsnow@redhat.com> writes:

> On 08/28/2015 09:06 AM, Markus Armbruster wrote:
>> John Snow <jsnow@redhat.com> writes:
>> 
>>> On 08/27/2015 11:29 AM, Eric Blake wrote:
>>>> On 08/27/2015 09:17 AM, Peter Maydell wrote:
>>>>> I've noticed recently that tests/hd-geo-test.c creates test disk
>>>>> images which are 4GB in size, which is a problem if the filesystem
>>>>> on the host doesn't support sparse files. In particular, OSX's HFS+
>>>>> doesn't have sparse file support, and Windows probably doesn't either.
>>>>
>>>> Windows NTFS supports sparse files (minimum hole size of 64k), but it
>>>> can be a pain to set up, and while it saves disk space, it may actually
>>>> slow your program down.
>>>>
>>>> [At one point cygwin created sparse files on windows by default, but
>>>> because it was demonstrated to hurt performance in dealing with sparse
>>>> files, because Windows doesn't handle sparse files efficiently, the
>>>> cygwin defaults were switched so that it now requires an explicit opt-in
>>>> mount option before even attempting sparse files]
>>>>
>>>>> Worse, if the test fails an assertion somewhere the test doesn't
>>>>> clean up after itself and leaves a 4GB file lying around in /tmp/.
>>>>>
>>>>> It would be nice if we could skip these tests on filesystems that
>>>>> don't have sparse file support...
>>>>
>>>> Or even where sparse files are supported but not default.
>>>>
>>>
>>> Does this test *require* the raw format?
>> 
>> If memory serves, the test doesn't require a specific format, only the
>> size and the contents of the MBR matters.
>> 
>>> Use tests/libqos/libqos.c mkqcow2 instead. I'll send a patch.
>> 
>> Go right ahead.
>> 
>
> Oh, taking a look at it, it needs to writethat MBR data to the file
> before it opens it. We don't have an existing qemu-io dependency here to
> use.
>
> I could add it, but the line between iotest and qtest starts to get
> pretty fuzzy.
>
> Thoughts?

Let's go back to the original problem for a bit:

(1) The test needs a big image, contents beyond the MBR doesn't matter.
Image format doesn't matter, either.

(2) On losing filesystem, this image takes up significant space, because
we use "raw".

(3) We fail to clean it up on failure.  This is a general problem with
tests creating files.

Independently of what else we do, (3) is worth fixing.  Make each test
run in its own directory, create files only there, and have the test
harness remove the directory.

John suggested to attack (2) by using "qcow2", but that turns out to be
a bit harder than anticipated: the infrastructure for creating such
images isn't there.  Options:

(a) Create the infrastructure in qtests.

(b) Move the test to iotests.

(c) Create the image once and commit it to git.

(d) Ignore the problem.  Needing 8GiB for tests if your filesystem sucks
isn't exactly horrible.   But (3) really needs fixing then.

We could try to attack (1) to mitigate.  I don't remember why I picked
8GiB.  Perhaps we can make the image somewhat smaller without
compromising the test.  Need to examine the geometry guessing code to
figure that out.

      parent reply	other threads:[~2015-09-01  6:02 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-27 15:17 [Qemu-devel] hd-geo-test creates 4GB files on FSes that don't support sparse images, doesn't delete them on error Peter Maydell
2015-08-27 15:29 ` Eric Blake
2015-08-27 16:48   ` John Snow
2015-08-28 13:06     ` Markus Armbruster
2015-08-31 18:54       ` John Snow
2015-08-31 19:25         ` Peter Maydell
2015-09-01  6:02         ` Markus Armbruster [this message]

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=87pp22brtf.fsf@blackfin.pond.sub.org \
    --to=armbru@redhat.com \
    --cc=jsnow@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.