All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
To: qemu-devel@nongnu.org
Cc: Glauber Costa <glommer@redhat.com>, aliguori@us.ibm.com
Subject: Re: [Qemu-devel] vga optmization
Date: Tue, 04 Nov 2008 11:40:44 +0000	[thread overview]
Message-ID: <491034BC.2050806@eu.citrix.com> (raw)
In-Reply-To: <fb249edb0811040131r2991e2bwc0ec416162dfcee5@mail.gmail.com>

andrzej zaborowski wrote:

> Hi,
> 
> 2008/11/3 Glauber Costa <glommer@redhat.com>:
> [...]
>> diff --git a/cpu-all.h b/cpu-all.h
>> index cdd79bc..9118f4d 100644
>> --- a/cpu-all.h
>> +++ b/cpu-all.h
>> @@ -46,6 +46,8 @@
>>
>>  #ifdef BSWAP_NEEDED
>>
>> +#include "kvm.h"
>> +
>>  static inline uint16_t tswap16(uint16_t s)
>>  {
>>     return bswap16(s);
>> @@ -909,17 +911,10 @@ int cpu_memory_rw_debug(CPUState *env, target_ulong addr,
>>  #define KQEMU_DIRTY_FLAG     0x04
>>  #define MIGRATION_DIRTY_FLAG 0x08
>>
>> -/* read dirty bit (return 0 or 1) */
>> -static inline int cpu_physical_memory_is_dirty(ram_addr_t addr)
>> -{
>> -    return phys_ram_dirty[addr >> TARGET_PAGE_BITS] == 0xff;
>> -}
>> +int cpu_physical_memory_get_dirty(ram_addr_t addr, int dirty_flags);
>> +int cpu_physical_memory_is_dirty(ram_addr_t addr);
>>
>> -static inline int cpu_physical_memory_get_dirty(ram_addr_t addr,
>> -                                                int dirty_flags)
>> -{
>> -    return phys_ram_dirty[addr >> TARGET_PAGE_BITS] & dirty_flags;
>> -}
>> +void qemu_physical_sync_dirty_bitmap(ram_addr_t start_addr);
> 
> This will prevent the functions from being inlined even if KVM is
> disabled (e.g. on other archs) and I think it could be easily
> retained.
> 


I agree on this.

> void qemu_physical_sync_dirty_bitmap(ram_addr_t start_addr)
> {
>     if (kvm_enabled())
>         kvm_physical_sync_dirty_bitmap(start_addr);
> }
> 


Why don't you make qemu_physical_sync_dirty_bitmap take also and end
address, and you merge the two bitmaps in this address range in this
function, so you don't have to change cpu_physical_memory_get_dirty at
all?

I am saying to do something like:

void qemu_physical_sync_dirty_bitmap(ram_addr_t start_addr, ram_addr_t end_addr)
{
	/* sync and merge the two bitmaps between start_addr and end_addr */
}

then leave cpu_physical_memory_get_dirty untouched.
I would prefer this approch, it also leaves more space to other
optimizations.

  reply	other threads:[~2008-11-04 11:37 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-03 17:31 [Qemu-devel] vga optmization Glauber Costa
2008-11-03 17:43 ` Stefano Stabellini
2008-11-03 17:52   ` Glauber Costa
2008-11-03 18:06     ` Stefano Stabellini
2008-11-03 18:03 ` Blue Swirl
2008-11-03 18:14   ` Glauber Costa
2008-11-03 18:41     ` Blue Swirl
2008-11-03 18:47       ` Glauber Costa
2008-11-03 18:13 ` Fabrice Bellard
2008-11-03 18:18   ` Glauber Costa
2008-11-04  7:23 ` Avi Kivity
2008-11-04  9:31 ` andrzej zaborowski
2008-11-04 11:40   ` Stefano Stabellini [this message]
2008-11-04 13:43     ` Glauber Costa
2008-11-04 14:51     ` Avi Kivity
2008-11-04 14:52       ` Anthony Liguori
2008-11-04 14:55       ` Glauber Costa
2008-11-04 15:13         ` Stefano Stabellini
2008-11-04 20:42         ` Avi Kivity
2008-11-04 20:51           ` Anthony Liguori
2008-11-04 15:01       ` Stefano Stabellini
2008-11-04 20:28         ` Glauber Costa
2008-11-04 20:40           ` Anthony Liguori
2008-11-05 14:42           ` Stefano Stabellini
2008-11-07 11:15             ` Glauber Costa
2008-11-07 11:33               ` Stefano Stabellini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=491034BC.2050806@eu.citrix.com \
    --to=stefano.stabellini@eu.citrix.com \
    --cc=aliguori@us.ibm.com \
    --cc=glommer@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.