All of lore.kernel.org
 help / color / mirror / Atom feed
From: Claudio Fontana <cfontana@suse.de>
To: "Alex Bennée" <alex.bennee@linaro.org>
Cc: "Paul Durrant" <paul@xen.org>, "Jason Wang" <jasowang@redhat.com>,
	qemu-devel@nongnu.org, "Peter Xu" <peterx@redhat.com>,
	haxm-team@intel.com, "Colin Xu" <colin.xu@intel.com>,
	"Olaf Hering" <ohering@suse.de>,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	"Bruce Rogers" <brogers@suse.com>,
	"Emilio G . Cota" <cota@braap.org>,
	"Anthony Perard" <anthony.perard@citrix.com>,
	"Philippe Mathieu-Daudé" <philmd@redhat.com>,
	"Laurent Vivier" <lvivier@redhat.com>,
	"Thomas Huth" <thuth@redhat.com>,
	"Eduardo Habkost" <ehabkost@redhat.com>,
	"Richard Henderson" <richard.henderson@linaro.org>,
	"Cameron Esfahani" <dirty@apple.com>,
	"Dario Faggioli" <dfaggioli@suse.com>,
	"Roman Bolshakov" <r.bolshakov@yadro.com>,
	"Sunil Muthuswamy" <sunilmut@microsoft.com>,
	"Marcelo Tosatti" <mtosatti@redhat.com>,
	"Wenchao Wang" <wenchao.wang@intel.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>
Subject: Re: [RFC v9 10/32] i386: move TCG cpu class initialization out of helper.c
Date: Wed, 9 Dec 2020 12:19:37 +0100	[thread overview]
Message-ID: <03de7a9a-632d-185b-6ade-25a8cab97d02@suse.de> (raw)
In-Reply-To: <87360ffewo.fsf@linaro.org>

On 12/9/20 11:23 AM, Alex Bennée wrote:
> 
> Claudio Fontana <cfontana@suse.de> writes:
> 
>> Signed-off-by: Claudio Fontana <cfontana@suse.de>
>> ---
>>  target/i386/cpu.c             |  33 ++++------
>>  target/i386/cpu.h             |  97 ++---------------------------
>>  target/i386/helper-tcg.h      | 112 ++++++++++++++++++++++++++++++++++
>>  target/i386/helper.c          |  23 -------
>>  target/i386/meson.build       |   1 +
>>  target/i386/tcg-cpu.c         |  71 +++++++++++++++++++++
>>  target/i386/tcg-cpu.h         |  15 +++++
>>  target/i386/tcg/bpt_helper.c  |   1 +
>>  target/i386/tcg/cc_helper.c   |   1 +
>>  target/i386/tcg/excp_helper.c |   1 +
>>  target/i386/tcg/fpu_helper.c  |  33 +++++-----
>>  target/i386/tcg/int_helper.c  |   1 +
>>  target/i386/tcg/mem_helper.c  |   1 +
>>  target/i386/tcg/misc_helper.c |   1 +
>>  target/i386/tcg/mpx_helper.c  |   1 +
>>  target/i386/tcg/seg_helper.c  |   1 +
>>  target/i386/tcg/smm_helper.c  |   2 +
>>  target/i386/tcg/svm_helper.c  |   1 +
>>  target/i386/tcg/translate.c   |   1 +
>>  19 files changed, 244 insertions(+), 153 deletions(-)
>>  create mode 100644 target/i386/helper-tcg.h
>>  create mode 100644 target/i386/tcg-cpu.c
>>  create mode 100644 target/i386/tcg-cpu.h
>>
>> diff --git a/target/i386/cpu.c b/target/i386/cpu.c
>> index b9bd249c8f..3462d0143f 100644
>> --- a/target/i386/cpu.c
>> +++ b/target/i386/cpu.c
>> @@ -24,6 +24,8 @@
>>  #include "qemu/qemu-print.h"
>>  
>>  #include "cpu.h"
>> +#include "tcg-cpu.h"
>> +#include "helper-tcg.h"
>>  #include "exec/exec-all.h"
>>  #include "sysemu/kvm.h"
>>  #include "sysemu/reset.h"
>> @@ -1495,7 +1497,8 @@ static inline uint64_t x86_cpu_xsave_components(X86CPU *cpu)
>>             cpu->env.features[FEAT_XSAVE_COMP_LO];
>>  }
>>  
>> -const char *get_register_name_32(unsigned int reg)
>> +/* Return name of 32-bit register, from a R_* constant */
>> +static const char *get_register_name_32(unsigned int reg)
>>  {
>>      if (reg >= CPU_NB_REGS32) {
>>          return NULL;
>> @@ -7012,13 +7015,6 @@ static void x86_cpu_set_pc(CPUState *cs, vaddr value)
>>      cpu->env.eip = value;
>>  }
>>  
>> -static void x86_cpu_synchronize_from_tb(CPUState *cs, TranslationBlock *tb)
>> -{
>> -    X86CPU *cpu = X86_CPU(cs);
>> -
>> -    cpu->env.eip = tb->pc - tb->cs_base;
>> -}
>> -
>>  int x86_cpu_pending_interrupt(CPUState *cs, int interrupt_request)
>>  {
>>      X86CPU *cpu = X86_CPU(cs);
>> @@ -7252,17 +7248,18 @@ static void x86_cpu_common_class_init(ObjectClass *oc, void *data)
>>      cc->class_by_name = x86_cpu_class_by_name;
>>      cc->parse_features = x86_cpu_parse_featurestr;
>>      cc->has_work = x86_cpu_has_work;
>> +
>>  #ifdef CONFIG_TCG
>> -    cc->do_interrupt = x86_cpu_do_interrupt;
>> -    cc->cpu_exec_interrupt = x86_cpu_exec_interrupt;
>> -#endif
>> +    tcg_cpu_common_class_init(cc);
> 
> Are we likely to have clashing names here as other arches get converted?
> tcg_x86_cpu_common_class_init or x86_cpu_common_class_init?


well, not in the same binary I presume? But I can add an x86 in front.


> 
> <snip>
>> diff --git a/target/i386/tcg-cpu.c b/target/i386/tcg-cpu.c
>> new file mode 100644
>> index 0000000000..628dd29fe7
>> --- /dev/null
>> +++ b/target/i386/tcg-cpu.c
>> @@ -0,0 +1,71 @@
> <snip>
>> +
>> +void tcg_cpu_common_class_init(CPUClass *cc)
>> +{
>> +    cc->do_interrupt = x86_cpu_do_interrupt;
>> +    cc->cpu_exec_interrupt = x86_cpu_exec_interrupt;
>> +    cc->synchronize_from_tb = x86_cpu_synchronize_from_tb;
>> +    cc->cpu_exec_enter = x86_cpu_exec_enter;
>> +    cc->cpu_exec_exit = x86_cpu_exec_exit;
>> +    cc->tcg_initialize = tcg_x86_init;
>> +    cc->tlb_fill = x86_cpu_tlb_fill;
>> +#ifndef CONFIG_USER_ONLY
>> +    cc->debug_excp_handler = breakpoint_handler;
>> +#endif
>> +}
> 
> Oh I see this moves down to target/i386/tcg/ eventually. Maybe we should
> just create the new file in place so it's easier to follow the changes
> as we convert to a proper abstracted class?
> 

Yes, will do.

Thanks,

C


  reply	other threads:[~2020-12-09 11:20 UTC|newest]

Thread overview: 87+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-08 19:48 [RFC v9 00/22] i386 cleanup Claudio Fontana
2020-12-08 19:48 ` [RFC v9 01/32] accel/tcg: split CpusAccel into three TCG variants Claudio Fontana
2020-12-09  8:34   ` Alex Bennée
2020-12-08 19:48 ` [RFC v9 02/32] accel/tcg: split tcg_start_vcpu_thread Claudio Fontana
2020-12-09  9:03   ` Alex Bennée
2020-12-08 19:48 ` [RFC v9 03/32] accel/tcg: rename tcg-cpus functions to match module name Claudio Fontana
2020-12-09  9:10   ` Alex Bennée
2020-12-08 19:48 ` [RFC v9 04/32] i386: move kvm accel files into kvm/ Claudio Fontana
2020-12-09  9:17   ` Alex Bennée
2020-12-08 19:48 ` [RFC v9 05/32] i386: move whpx accel files into whpx/ Claudio Fontana
2020-12-09  9:21   ` Alex Bennée
2020-12-08 19:48 ` [RFC v9 06/32] i386: move hax accel files into hax/ Claudio Fontana
2020-12-09  9:22   ` Alex Bennée
2020-12-08 19:48 ` [RFC v9 07/32] i386: hvf: remove stale MAINTAINERS entry for old hvf stubs Claudio Fontana
2020-12-09  9:22   ` Alex Bennée
2020-12-08 19:48 ` [RFC v9 08/32] i386: move TCG accel files into tcg/ Claudio Fontana
2020-12-09  9:30   ` Alex Bennée
2020-12-09 11:05     ` Claudio Fontana
2020-12-08 19:48 ` [RFC v9 09/32] i386: move cpu dump out of helper.c into cpu-dump.c Claudio Fontana
2020-12-09  9:59   ` Alex Bennée
2020-12-08 19:48 ` [RFC v9 10/32] i386: move TCG cpu class initialization out of helper.c Claudio Fontana
2020-12-09 10:23   ` Alex Bennée
2020-12-09 11:19     ` Claudio Fontana [this message]
2020-12-08 19:48 ` [RFC v9 11/32] tcg: cpu_exec_{enter,exit} helpers Claudio Fontana
2020-12-09 10:33   ` Alex Bennée
2020-12-08 19:48 ` [RFC v9 12/32] tcg: make CPUClass.cpu_exec_* optional Claudio Fontana
2020-12-09 10:36   ` Alex Bennée
2020-12-08 19:48 ` [RFC v9 13/32] tcg: Make CPUClass.debug_excp_handler optional Claudio Fontana
2020-12-09 10:37   ` Alex Bennée
2020-12-08 19:48 ` [RFC v9 14/32] cpu: Remove unnecessary noop methods Claudio Fontana
2020-12-09 10:38   ` Alex Bennée
2020-12-08 19:48 ` [RFC v9 15/32] cpu: Introduce TCGCpuOperations struct Claudio Fontana
2020-12-09 10:39   ` Alex Bennée
2020-12-08 19:48 ` [RFC v9 16/32] target/riscv: remove CONFIG_TCG, as it is always TCG Claudio Fontana
2020-12-08 22:10   ` Alistair Francis
2020-12-08 19:48 ` [RFC v9 17/32] accel/tcg: split TCG-only code from cpu_exec_realizefn Claudio Fontana
2020-12-09 10:42   ` Alex Bennée
2020-12-09 11:22     ` Claudio Fontana
2020-12-08 19:48 ` [RFC v9 18/32] cpu: Move synchronize_from_tb() to tcg_ops Claudio Fontana
2020-12-09  9:27   ` Philippe Mathieu-Daudé
2020-12-09 14:33     ` Claudio Fontana
2020-12-09 15:06       ` Philippe Mathieu-Daudé
2020-12-09 10:50   ` Alex Bennée
2020-12-09 14:46     ` Eduardo Habkost
2020-12-09 15:51       ` Alex Bennée
2020-12-08 19:48 ` [RFC v9 19/32] cpu: Move cpu_exec_* " Claudio Fontana
2020-12-09  9:28   ` Philippe Mathieu-Daudé
2020-12-09 11:02     ` Claudio Fontana
2020-12-09 11:16   ` Alex Bennée
2020-12-08 19:48 ` [RFC v9 20/32] cpu: Move tlb_fill " Claudio Fontana
2020-12-09 11:26   ` Alex Bennée
2020-12-09 14:38     ` Claudio Fontana
2020-12-09 16:12       ` Alex Bennée
2020-12-08 19:48 ` [RFC v9 21/32] cpu: Move debug_excp_handler " Claudio Fontana
2020-12-09 11:29   ` Alex Bennée
2020-12-08 19:48 ` [RFC v9 22/32] target/arm: do not use cc->do_interrupt for KVM directly Claudio Fontana
2020-12-09 11:30   ` Alex Bennée
2020-12-08 19:48 ` [RFC v9 23/32] cpu: move cc->do_interrupt to tcg_ops Claudio Fontana
2020-12-09 11:43   ` Alex Bennée
2020-12-08 19:48 ` [RFC v9 24/32] cpu: move cc->transaction_failed " Claudio Fontana
2020-12-09  9:31   ` Philippe Mathieu-Daudé
2020-12-09 14:43     ` Claudio Fontana
2020-12-09 14:59       ` Eduardo Habkost
2020-12-09 12:03   ` Alex Bennée
2020-12-08 19:48 ` [RFC v9 25/32] cpu: move do_unaligned_access " Claudio Fontana
2020-12-09 12:47   ` Alex Bennée
2020-12-08 19:48 ` [RFC v9 26/32] accel: extend AccelState and AccelClass to user-mode Claudio Fontana
2020-12-09 12:51   ` Alex Bennée
2020-12-09 12:58     ` Claudio Fontana
2020-12-08 19:48 ` [RFC v9 27/32] accel: replace struct CpusAccel with AccelOpsClass Claudio Fontana
2020-12-09 12:54   ` Alex Bennée
2020-12-09 14:50     ` Claudio Fontana
2020-12-09 17:28     ` Claudio Fontana
2020-12-09 18:30       ` Alex Bennée
2020-12-09 19:27         ` Claudio Fontana
2020-12-08 19:48 ` [RFC v9 28/32] accel: introduce AccelCPUClass extending CPUClass Claudio Fontana
2020-12-08 19:48 ` [RFC v9 29/32] i386: split cpu accelerators from cpu.c, using AccelCPUClass Claudio Fontana
2020-12-08 19:48 ` [RFC v9 30/32] cpu: call AccelCPUClass::cpu_realizefn in cpu_exec_realizefn Claudio Fontana
2020-12-08 19:48 ` [RFC v9 31/32] hw/core/cpu: call qemu_init_vcpu in cpu_common_realizefn Claudio Fontana
2020-12-08 19:48 ` [RFC v9 32/32] cpu: introduce cpu_accel_instance_init Claudio Fontana
2020-12-08 20:00 ` [RFC v9 00/22] i386 cleanup Philippe Mathieu-Daudé
2020-12-08 22:15   ` Claudio Fontana
2020-12-09  8:47     ` Paolo Bonzini
2020-12-08 22:00 ` no-reply
2020-12-09 10:22   ` Alex Bennée
2020-12-09 12:58 ` Alex Bennée
2020-12-09 14:10   ` Claudio Fontana

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=03de7a9a-632d-185b-6ade-25a8cab97d02@suse.de \
    --to=cfontana@suse.de \
    --cc=alex.bennee@linaro.org \
    --cc=anthony.perard@citrix.com \
    --cc=brogers@suse.com \
    --cc=colin.xu@intel.com \
    --cc=cota@braap.org \
    --cc=dfaggioli@suse.com \
    --cc=dirty@apple.com \
    --cc=ehabkost@redhat.com \
    --cc=haxm-team@intel.com \
    --cc=jasowang@redhat.com \
    --cc=lvivier@redhat.com \
    --cc=mtosatti@redhat.com \
    --cc=ohering@suse.de \
    --cc=paul@xen.org \
    --cc=pbonzini@redhat.com \
    --cc=peterx@redhat.com \
    --cc=philmd@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=r.bolshakov@yadro.com \
    --cc=richard.henderson@linaro.org \
    --cc=sstabellini@kernel.org \
    --cc=sunilmut@microsoft.com \
    --cc=thuth@redhat.com \
    --cc=wenchao.wang@intel.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 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.