[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] block: delete cow block driver
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH] block: delete cow block driver |
Date: |
Tue, 16 Sep 2014 17:56:59 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) |
Stefan Hajnoczi <address@hidden> writes:
> This patch removes support for the cow file format.
>
> Normally we do not break backwards compatibility but in this case there
> is no impact and it is the most logical option. Extraordinary claims
> require extraordinary evidence so I will show why removing the cow block
> driver is the right thing to do.
>
> The cow file format is the disk image format for Usermode Linux, a way
> of running a Linux system in userspace. The performance of UML was
> never great and it was hacky, but it enjoyed some popularity before
> hardware virtualization support became mainstream.
>
> QEMU's block/cow.c is supposed to read this image file format.
> Unfortunately the file format was underspecified:
>
> 1. Earlier Linux versions used the MAXPATHLEN constant for the backing
> filename field. The value of MAXPATHLEN can change, so Linux
> switched to a 4096 literal but QEMU has a 1024 literal.
>
> 2. Padding was not used on the header struct (both in the Linux kernel
> and in QEMU) so the struct layout varied across architectures. In
> particular, i386 and x86_64 were different due to int64_t alignment
> differences. Linux now uses __attribute__((packed)), QEMU does not.
>
> Therefore:
>
> 1. QEMU cow images do not conform to the Linux cow image file format.
>
> 2. cow images cannot be shared between different host architectures.
>
> This means QEMU cow images are useless and QEMU has not had bug reports
> from users actually hitting these issues.
>
> Let's get rid of this thing, it serves no purpose and no one will be
> affected.
>
> Signed-off-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Markus Armbruster <address@hidden>