[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] vga optmization
From: |
Stefano Stabellini |
Subject: |
Re: [Qemu-devel] vga optmization |
Date: |
Tue, 04 Nov 2008 11:40:44 +0000 |
User-agent: |
Thunderbird 2.0.0.14 (X11/20080505) |
andrzej zaborowski wrote:
> Hi,
>
> 2008/11/3 Glauber Costa <address@hidden>:
> [...]
>> 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.
- Re: [Qemu-devel] vga optmization, (continued)
- Re: [Qemu-devel] vga optmization, Fabrice Bellard, 2008/11/03
- Re: [Qemu-devel] vga optmization, Avi Kivity, 2008/11/04
- Re: [Qemu-devel] vga optmization, andrzej zaborowski, 2008/11/04
- Re: [Qemu-devel] vga optmization,
Stefano Stabellini <=
- Re: [Qemu-devel] vga optmization, Glauber Costa, 2008/11/04
- Re: [Qemu-devel] vga optmization, Avi Kivity, 2008/11/04
- Re: [Qemu-devel] vga optmization, Anthony Liguori, 2008/11/04
- Re: [Qemu-devel] vga optmization, Glauber Costa, 2008/11/04
- Re: [Qemu-devel] vga optmization, Stefano Stabellini, 2008/11/04
- Re: [Qemu-devel] vga optmization, Avi Kivity, 2008/11/04
- Re: [Qemu-devel] vga optmization, Anthony Liguori, 2008/11/04
- Re: [Qemu-devel] vga optmization, Stefano Stabellini, 2008/11/04
- Re: [Qemu-devel] vga optmization, Glauber Costa, 2008/11/04
- Re: [Qemu-devel] vga optmization, Anthony Liguori, 2008/11/04