qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH v16 00/23] i386 cleanup PART 2


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH v16 00/23] i386 cleanup PART 2
Date: Mon, 15 Mar 2021 10:57:38 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.0

On 3/15/21 10:44 AM, Claudio Fontana wrote:
> Hi Philippe,
> 
> On 3/14/21 1:00 AM, Philippe Mathieu-Daudé wrote:
>> Hi Claudio,

>>
>> I am looking at this code:
>>
>> $ git grep tcg_ softmmu/physmem.c
>> softmmu/physmem.c:153:static void
>> tcg_log_global_after_sync(MemoryListener *listener);
>> softmmu/physmem.c:154:static void tcg_commit(MemoryListener *listener);
>> softmmu/physmem.c:161: * @tcg_as_listener: listener for tracking changes
>> to the AddressSpace
>> softmmu/physmem.c:167:    MemoryListener tcg_as_listener;
>> softmmu/physmem.c:590:static void tcg_iommu_unmap_notify(IOMMUNotifier
>> *n, IOMMUTLBEntry *iotlb)
>> softmmu/physmem.c:606:static void tcg_register_iommu_notifier(CPUState *cpu,
>> softmmu/physmem.c:640:                            tcg_iommu_unmap_notify,
>> softmmu/physmem.c:654:void tcg_iommu_free_notifier_list(CPUState *cpu)
>> softmmu/physmem.c:668:void tcg_iommu_init_notifier_list(CPUState *cpu)
>> softmmu/physmem.c:698:        tcg_register_iommu_notifier(cpu, iommu_mr,
>> iommu_idx);
>> softmmu/physmem.c:761:    if (tcg_enabled()) {
>> softmmu/physmem.c:762:
>> newas->tcg_as_listener.log_global_after_sync = tcg_log_global_after_sync;
>> softmmu/physmem.c:763:        newas->tcg_as_listener.commit = tcg_commit;
>> softmmu/physmem.c:764:
>> memory_listener_register(&newas->tcg_as_listener, as);
>> softmmu/physmem.c:891:    assert(tcg_enabled());
>> softmmu/physmem.c:904:    if (cc->tcg_ops->adjust_watchpoint_address) {
>> softmmu/physmem.c:906:        addr =
>> cc->tcg_ops->adjust_watchpoint_address(cpu, addr, len);
>> softmmu/physmem.c:927:                if (wp->flags & BP_CPU &&
>> cc->tcg_ops->debug_check_watchpoint &&
>> softmmu/physmem.c:928:
>> !cc->tcg_ops->debug_check_watchpoint(cpu, wp)) {
>> softmmu/physmem.c:1004:    assert(tcg_enabled());
>> softmmu/physmem.c:1059:    if (dirty && tcg_enabled()) {
>> softmmu/physmem.c:1107:    if (tcg_enabled()) {
>> softmmu/physmem.c:2605:static void
>> tcg_log_global_after_sync(MemoryListener *listener)
>> softmmu/physmem.c:2634:        cpuas = container_of(listener,
>> CPUAddressSpace, tcg_as_listener);
>> softmmu/physmem.c:2639:static void tcg_commit(MemoryListener *listener)
>> softmmu/physmem.c:2644:    assert(tcg_enabled());
>> softmmu/physmem.c:2647:    cpuas = container_of(listener,
>> CPUAddressSpace, tcg_as_listener);
>> softmmu/physmem.c:2700:        assert(tcg_enabled());
>> softmmu/physmem.c:3000:    if (tcg_enabled()) {
>>
>> which reminded me the starter generic part of your effort
>> (already merged).
>>
>> Do you have plans for this code?
>>
>> Similarly:
>>
>> $ git grep kvm_ softmmu/physmem.c
>> softmmu/physmem.c:752:    assert(asidx == 0 || !kvm_enabled());
>> softmmu/physmem.c:1295:    if (kvm_enabled())
>> softmmu/physmem.c:1296:        kvm_flush_coalesced_mmio_buffer();
>> softmmu/physmem.c:1566:    if (kvm_enabled()) {
>> softmmu/physmem.c:2046:    if (kvm_enabled() && !kvm_has_sync_mmu()) {
>>
>> Thanks,
>>
>> Phil.
>>
> 
> Hi Phil,
> 
> indeed it is a juicy target for splitting things between TCG-only and non-TCG 
> code,
> specifically as we discovered that we don't need any of the watchpoint stuff 
> outside of TCG.
> 
> I think I am tied up in the ARM code for a while,
> so if you are asking because you want to start there, just go ahead,
> I'll try to review, otherwise I'll get back to it (and to i386) later on.

No plan yet. I looked back at what I did + your patches to get
the big picture again, and had a look at my notes and wip patches.

Since you are making big changes/progress, I now prefer to check
upfront to avoid duplicated effort.

Regards,

Phil.



reply via email to

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