qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Glauber Costa" <glommer@gmail.com>
To: qemu-devel@nongnu.org
Cc: Glauber Costa <glommer@redhat.com>, aliguori@us.ibm.com
Subject: Re: [Qemu-devel] vga optmization
Date: Tue, 4 Nov 2008 11:43:38 -0200	[thread overview]
Message-ID: <5d6222a80811040543w64567ce8ub33e911943679b26@mail.gmail.com> (raw)
In-Reply-To: <491034BC.2050806@eu.citrix.com>

On Tue, Nov 4, 2008 at 9:40 AM, Stefano Stabellini
<stefano.stabellini@eu.citrix.com> wrote:
> 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.

Either way works for me. I'm fine with your suggestion.
>
>
>



-- 
Glauber  Costa.
"Free as in Freedom"
http://glommer.net

"The less confident you are, the more serious you have to act."

  reply	other threads:[~2008-11-04 13:43 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
2008-11-04 13:43     ` Glauber Costa [this message]
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=5d6222a80811040543w64567ce8ub33e911943679b26@mail.gmail.com \
    --to=glommer@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).