qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] qcow2: allocate cluster_cache/cluster_data on d


From: Alexey Kardashevskiy
Subject: Re: [Qemu-devel] [PATCH] qcow2: allocate cluster_cache/cluster_data on demand
Date: Sat, 19 Aug 2017 18:50:03 +1000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1

On 19/08/17 12:53, Alexey Kardashevskiy wrote:
> On 19/08/17 12:46, Alexey Kardashevskiy wrote:
>> On 19/08/17 01:18, Eric Blake wrote:
>>> On 08/18/2017 08:31 AM, Stefan Hajnoczi wrote:
>>>> Most qcow2 files are uncompressed so it is wasteful to allocate (32 + 1)
>>>> * cluster_size + 512 bytes upfront.  Allocate s->cluster_cache and
>>>> s->cluster_data when the first read operation is performance on a
>>>> compressed cluster.
>>>>
>>>> The buffers are freed in .bdrv_close().  .bdrv_open() no longer has any
>>>> code paths that can allocate these buffers, so remove the free functions
>>>> in the error code path.
>>>>
>>>> Reported-by: Alexey Kardashevskiy <address@hidden>
>>>> Cc: Kevin Wolf <address@hidden>
>>>> Signed-off-by: Stefan Hajnoczi <address@hidden>
>>>> ---
>>>> Alexey: Does this improve your memory profiling results?
>>>
>>> Is this a regression from earlier versions? 
>>
>> Hm, I have not thought about this.
>>
>> So. I did bisect and this started happening from
>> 9a4c0e220d8a4f82b5665d0ee95ef94d8e1509d5
>> "hw/virtio-pci: fix virtio behaviour"
>>
>> Before that, the very same command line would take less than 1GB of
>> resident memory. That thing basically enforces virtio-1.0 for QEMU <=2.6
>> which means that upstream with "-machine pseries-2.6" works fine (less than
>> 1GB), "-machine pseries-2.7" does not (close to 7GB, sometime even 9GB).
>>
>> Then I tried bisecting again, with
>> "scsi=off,disable-modern=off,disable-legacy=on" on my 150 virtio-block
>> devices, started from
>> e266d421490e0 "virtio-pci: add flags to enable/disable legacy/modern" (it
>> added the disable-modern switch) which uses 2GB of memory.
>>
>> I ended up with ada434cd0b44 "virtio-pci: implement cfg capability".
>>
>> Then I removed proxy->modern_as on v2.10.0-rc3 (see below) and got 1.5GB of
>> used memory (yay!)
>>
>> I do not really know how to reinterpret all of this, do you?
>>
>>
>> Note: 1GB..9GB numbers from below are the peak values from valgrind's
> 
> s/from below/from above/ , sorry, bad cut-n-paste :)


Just realized - I should have replied with this to "Memory use with >100
virtio devices" actually, sorry for the confusion.


-- 
Alexey

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

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