[Top][All Lists]

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

Re: [Qemu-devel] qemu memory manage question

From: Peter Xu
Subject: Re: [Qemu-devel] qemu memory manage question
Date: Mon, 17 Apr 2017 19:19:36 +0800
User-agent: Mutt/1.5.24 (2015-08-30)

On Mon, Apr 17, 2017 at 06:55:40PM +0800, jack.chen wrote:
> Thanks,from the path you have list to me,it can be  well explained,but
> according to the source code,in the end of
> kvm_init,kvm_memory_listener and  kvm_io_listener were registered by
> memory_listener_register(),and  in the end of
> memory_listener_register(),listener_add_address_space() was called for
> each address_space,so the listener->region_add was executed then.I do
> not know what mistake I have made,can you explain it to me ?? thank
> you very much!

Firstly, there are two address spaces for each system:

AddressSpace address_space_io;
AddressSpace address_space_memory;

The one you mentioned (kvm_io_listener) should be the listener for
address_space_io, not address_space_memory, while for RAM, it's
located on address_space_memory space.

Secondly, when calling memory_listener_register() in kvm_init(),
region_add() is actually not called, since FOR_EACH_FLAT_RANGE() in
listener_add_address_space() is actually looping nothing since at that
time the address_space_memory may not ever been rendered at all
(rendering should be triggered by memory_region_transaction_commit()
-> address_space_update_topology()).


Peter Xu

reply via email to

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