qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Bug#757927: [qemu-kvm] TRIM (discard=unmap) broken in 2


From: Michael Tokarev
Subject: Re: [Qemu-devel] Bug#757927: [qemu-kvm] TRIM (discard=unmap) broken in 2.1
Date: Wed, 13 Aug 2014 10:05:51 +0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Icedove/24.7.0

[This is http://bugs.debian.org/757927 -- trim stopped working in qemu 2.1]

12.08.2014 18:46, Michael Tokarev wrote:
> 12.08.2014 17:35, Roman Mamedov wrote:
>> Package: qemu-kvm
>> Version: 2.1+dfsg-2~bpo70+2
>> Severity: normal
>>
>> Hello,
>>
>> I was able to successfully use the passthrough TRIM support with an IDE
>> interface virtual disk in Qemu-KVM version 2.0.
>>
>> However after upgrading to 2.1 and restarting my VM, TRIM now fails in it 
>> with
>> messages like those quoted below (dmesg from the guest). There are no 
>> messages
>> in dmesg related to that on the host.

BTW, I found a system here with an SSD which supports discard, and tried my
guests against it -- everything works fine when I use sata/ahci, but it breaks
indeed when using the default IDE interface.

But applying the oneliner:

> It is the same as 2.1+dfsg-1~bpo70+2 but with a one-line patch
> added:
> 
> diff --git a/hw/ide/core.c b/hw/ide/core.c
> index db191a6..7256592 100644
> --- a/hw/ide/core.c
> +++ b/hw/ide/core.c
> @@ -688,7 +688,8 @@ void ide_dma_cb(void *opaque, int ret)
>             sector_num, n, s->dma_cmd);
>  #endif
> 
> -    if (!ide_sect_range_ok(s, sector_num, n)) {
> +    if ((s->dma_cmd == IDE_DMA_READ || s->dma_cmd == IDE_DMA_WRITE) &&
> +        !ide_sect_range_ok(s, sector_num, n)) {
>          dma_buf_commit(s);
>          ide_dma_error(s);
>          return;


fixes the prob for me.  So apparently kwolf was right pointing to that
commit 58ac3211.

I'll upload a new version soon.

Thanks,

/mjt



reply via email to

[Prev in Thread] Current Thread [Next in Thread]