qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Claudio Fontana <cfontana@suse.de>
To: "Philippe Mathieu-Daudé" <f4bug@amsat.org>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Richard Henderson" <richard.henderson@linaro.org>,
	"Eduardo Habkost" <ehabkost@redhat.com>,
	"Peter Maydell" <peter.maydell@linaro.org>
Cc: Laurent Vivier <lvivier@redhat.com>,
	Thomas Huth <thuth@redhat.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Roman Bolshakov <r.bolshakov@yadro.com>,
	qemu-devel@nongnu.org
Subject: Re: [PATCH v16 00/23] i386 cleanup PART 2
Date: Mon, 15 Mar 2021 10:44:50 +0100	[thread overview]
Message-ID: <a8dd803b-ff0a-c456-14b5-1e2dffbf2120@suse.de> (raw)
In-Reply-To: <5f185a27-6140-9426-f915-ce09609b7962@amsat.org>

Hi Philippe,

On 3/14/21 1:00 AM, Philippe Mathieu-Daudé wrote:
> Hi Claudio,
> 
> On 2/4/21 5:39 PM, Claudio Fontana wrote:
>> v15 -> v16:
>>
>> * cpu: Move synchronize_from_tb() to tcg_ops:
>>   - adjusted comments (Alex)
>>
>> * cpu: tcg_ops: move to tcg-cpu-ops.h, keep a pointer in CPUClass:
>>   - remove forward decl. of AccelCPUClass, should be in a later patch. (Alex)
>>   - simplified comment about tcg_ops in struct CPUClass (Alex)
>>   - remove obsolete comment about ARM blocking TCGCPUOps from being const.
>>     (Alex)
>>
>> * accel: replace struct CpusAccel with AccelOpsClass:
>>   - reworded commit message to be clearer about the objective (Alex)
>>
>> * accel: introduce AccelCPUClass extending CPUClass
>>   - reworded commit message to be clearer about the objective (Alex)
>>
>> * hw/core/cpu: call qemu_init_vcpu in cpu_common_realizefn:
>>   - dropped this patch (Alex, Philippe)
>>
>>   will try again later, also in the context of:
>>   https://www.mail-archive.com/qemu-devel@nongnu.org/msg686480.html
>>
>> * accel: introduce new accessor functions
>>   - squashed comments in previous patch introducing accel-cpu.h. (Philippe)
>>
>> * accel-cpu: make cpu_realizefn return a bool
>>   - split in two patches, separating the change to the phys_bits check
>>     (Philippe)
> 
> 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.

Ciao,

Claudio



  reply	other threads:[~2021-03-15  9:46 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-04 16:39 [PATCH v16 00/23] i386 cleanup PART 2 Claudio Fontana
2021-02-04 16:39 ` [PATCH v16 01/23] cpu: Introduce TCGCpuOperations struct Claudio Fontana
2021-02-10 12:21   ` Roman Bolshakov
2021-02-10 12:29     ` Claudio Fontana
2021-02-10 12:32     ` Eduardo Habkost
2021-02-10 13:58       ` Roman Bolshakov
2021-02-04 16:39 ` [PATCH v16 02/23] target/riscv: remove CONFIG_TCG, as it is always TCG Claudio Fontana
2021-02-10 12:22   ` Roman Bolshakov
2021-02-10 12:37     ` Claudio Fontana
2021-02-04 16:39 ` [PATCH v16 03/23] accel/tcg: split TCG-only code from cpu_exec_realizefn Claudio Fontana
2021-02-04 16:39 ` [PATCH v16 04/23] cpu: Move synchronize_from_tb() to tcg_ops Claudio Fontana
2021-02-04 16:39 ` [PATCH v16 05/23] cpu: Move cpu_exec_* " Claudio Fontana
2021-02-04 16:39 ` [PATCH v16 06/23] cpu: Move tlb_fill " Claudio Fontana
2021-02-04 16:39 ` [PATCH v16 07/23] cpu: Move debug_excp_handler " Claudio Fontana
2021-02-04 16:39 ` [PATCH v16 08/23] target/arm: do not use cc->do_interrupt for KVM directly Claudio Fontana
2021-02-04 16:39 ` [PATCH v16 09/23] cpu: move cc->do_interrupt to tcg_ops Claudio Fontana
2021-02-04 16:39 ` [PATCH v16 10/23] cpu: move cc->transaction_failed " Claudio Fontana
2021-02-04 16:39 ` [PATCH v16 11/23] cpu: move do_unaligned_access " Claudio Fontana
2021-02-04 16:39 ` [PATCH v16 12/23] physmem: make watchpoint checking code TCG-only Claudio Fontana
2021-02-04 16:39 ` [PATCH v16 13/23] cpu: move adjust_watchpoint_address to tcg_ops Claudio Fontana
2021-02-04 16:39 ` [PATCH v16 14/23] cpu: move debug_check_watchpoint " Claudio Fontana
2021-02-04 16:39 ` [PATCH v16 15/23] cpu: tcg_ops: move to tcg-cpu-ops.h, keep a pointer in CPUClass Claudio Fontana
2021-02-04 16:39 ` [PATCH v16 16/23] accel: extend AccelState and AccelClass to user-mode Claudio Fontana
2021-02-04 16:39 ` [PATCH v16 17/23] accel: replace struct CpusAccel with AccelOpsClass Claudio Fontana
2021-02-04 16:39 ` [PATCH v16 18/23] accel: introduce AccelCPUClass extending CPUClass Claudio Fontana
2021-02-04 16:39 ` [PATCH v16 19/23] i386: split cpu accelerators from cpu.c, using AccelCPUClass Claudio Fontana
2021-02-05 20:04   ` Richard Henderson
2021-02-10 11:30     ` Claudio Fontana
2021-02-04 16:39 ` [PATCH v16 20/23] cpu: call AccelCPUClass::cpu_realizefn in cpu_exec_realizefn Claudio Fontana
2021-02-04 16:39 ` [PATCH v16 21/23] accel: introduce new accessor functions Claudio Fontana
2021-02-05 20:14   ` Richard Henderson
2021-02-08 12:50     ` Claudio Fontana
2021-02-08 12:54       ` Philippe Mathieu-Daudé
2021-02-10 13:49         ` Claudio Fontana
2021-02-14 19:01         ` Claudio Fontana
2021-02-04 16:39 ` [PATCH v16 22/23] target/i386: fix host_cpu_adjust_phys_bits error handling Claudio Fontana
2021-02-05 20:15   ` Richard Henderson
2021-02-04 16:39 ` [PATCH v16 23/23] accel-cpu: make cpu_realizefn return a bool Claudio Fontana
2021-02-05 20:17   ` Richard Henderson
2021-02-05 20:18 ` [PATCH v16 00/23] i386 cleanup PART 2 Richard Henderson
2021-03-14  0:00 ` Philippe Mathieu-Daudé
2021-03-15  9:44   ` Claudio Fontana [this message]
2021-03-15  9:57     ` Philippe Mathieu-Daudé

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=a8dd803b-ff0a-c456-14b5-1e2dffbf2120@suse.de \
    --to=cfontana@suse.de \
    --cc=alex.bennee@linaro.org \
    --cc=alistair.francis@wdc.com \
    --cc=ehabkost@redhat.com \
    --cc=f4bug@amsat.org \
    --cc=lvivier@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=r.bolshakov@yadro.com \
    --cc=richard.henderson@linaro.org \
    --cc=thuth@redhat.com \
    /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).