qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [RFC v1 3/3] make address_space_map safe


From: Vasilis Liaskovitis
Subject: Re: [Qemu-devel] [RFC v1 3/3] make address_space_map safe
Date: Wed, 13 Feb 2013 13:12:14 +0100
User-agent: Mutt/1.5.21 (2010-09-15)

Hi,

I am looking at this old ref/unref patchset for safely removing hot-plugged
dimms/MemoryRegions. I am not sure if the set is still actively worked on or
relevant for qemu-master, but I had a small comment below:

On Fri, Nov 09, 2012 at 11:14:30AM +0800, Liu Ping Fan wrote:
> From: Liu Ping Fan <address@hidden>
> 
> Signed-off-by: Liu Ping Fan <address@hidden>
> ---
>  cpu-common.h      |    8 ++++++--
>  cputlb.c          |    4 ++--
>  dma-helpers.c     |    4 +++-
>  dma.h             |    5 ++++-
>  exec.c            |   45 +++++++++++++++++++++++++++++++++++++--------
>  memory.h          |    4 +++-
>  target-i386/kvm.c |    4 ++--
>  7 files changed, 57 insertions(+), 17 deletions(-)
> 
[snip]
> diff --git a/exec.c b/exec.c
> index e5f1c0f..e9bd695 100644
> --- a/exec.c
> +++ b/exec.c
[snip]
> @@ -3822,7 +3837,8 @@ void address_space_unmap(AddressSpace *as, void 
> *buffer, target_phys_addr_t len,
>  {
>      if (buffer != bounce.buffer) {
>          if (is_write) {
> -            ram_addr_t addr1 = qemu_ram_addr_from_host_nofail(buffer);
> +            /* Will release RAM refcnt */
> +            ram_addr_t addr1 = qemu_ram_addr_from_host_nofail(buffer, true);
>              while (access_len) {
>                  unsigned l;
>                  l = TARGET_PAGE_SIZE;

Since qemu_ram_addr_from_host_nofail(buffer, true) will decrease the reference
counter for this memoryregion, I think is should be called regardless of
read/write i.e.  outside of the "if (is_write)" clause. Otherwise references for
reads are not decreased properly.

thanks,

- Vasilis



reply via email to

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