All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: Zhong Yang <yang.zhong@intel.com>
Cc: qemu-devel@nongnu.org, anthony xu <anthony.xu@intel.com>,
	a rigo <a.rigo@virtualopensystems.com>,
	Richard Henderson <rth@twiddle.net>,
	Thomas Huth <thuth@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 11/15] tcg: split cpu_set_mxcsr()/cpu_set_fpuc()
Date: Thu, 22 Jun 2017 04:42:45 -0400 (EDT)	[thread overview]
Message-ID: <1480940436.11181319.1498120965339.JavaMail.zimbra@redhat.com> (raw)
In-Reply-To: <20170622080325.GC28944@yangzhon-Virtual>



----- Original Message -----
> From: "Zhong Yang" <yang.zhong@intel.com>
> To: "Paolo Bonzini" <pbonzini@redhat.com>
> Cc: qemu-devel@nongnu.org, "anthony xu" <anthony.xu@intel.com>, "a rigo" <a.rigo@virtualopensystems.com>, "Richard
> Henderson" <rth@twiddle.net>, "Thomas Huth" <thuth@redhat.com>
> Sent: Thursday, June 22, 2017 10:03:25 AM
> Subject: Re: [PATCH 11/15] tcg: split cpu_set_mxcsr()/cpu_set_fpuc()
> 
> On Wed, Jun 21, 2017 at 03:15:25PM +0200, Paolo Bonzini wrote:
> > 
> > 
> > On 21/06/2017 12:19, Yang Zhong wrote:
> > > Split the cpu_set_mxcsr()/cpu_set_fpuc() with specific tcg code.
> > > tcg_update_mxcsr()/tcg_set_fpuc() need be implemented in tcg-stub.c
> > > file if tcg is disabled.
> > > 
> > > Signed-off-by: Yang Zhong <yang.zhong@intel.com>
> > > ---
> > >  accel/stubs/tcg-stub.c   |  8 ++++++++
> > >  target/i386/cpu.h        | 15 +++++++++++++--
> > >  target/i386/fpu_helper.c |  8 +++-----
> > >  3 files changed, 24 insertions(+), 7 deletions(-)
> > > 
> > > diff --git a/accel/stubs/tcg-stub.c b/accel/stubs/tcg-stub.c
> > > index dafb1d0..91625a8 100644
> > > --- a/accel/stubs/tcg-stub.c
> > > +++ b/accel/stubs/tcg-stub.c
> > > @@ -75,6 +75,14 @@ void dump_opcount_info(FILE *f, fprintf_function
> > > cpu_fprintf)
> > >  {
> > >  }
> > >  
> > > +void tcg_update_mxcsr(CPUX86State *env)
> > > +{
> > > +}
> > > +
> > > +void tcg_set_fpuc(CPUX86State *env)
> > > +{
> > > +}
> > > +
> > >  void cpu_loop_exit(CPUState *cpu)
> > >  {
> > >      abort();
> > > diff --git a/target/i386/cpu.h b/target/i386/cpu.h
> > > index 8b3b535..229b216 100644
> > > --- a/target/i386/cpu.h
> > > +++ b/target/i386/cpu.h
> > > @@ -1643,8 +1643,19 @@ static inline int32_t x86_get_a20_mask(CPUX86State
> > > *env)
> > >  }
> > >  
> > >  /* fpu_helper.c */
> > > -void cpu_set_mxcsr(CPUX86State *env, uint32_t val);
> > > -void cpu_set_fpuc(CPUX86State *env, uint16_t val);
> > > +void tcg_update_mxcsr(CPUX86State *env);
> > > +void tcg_set_fpuc(CPUX86State *env);
> > > +static inline void cpu_set_mxcsr(CPUX86State *env, uint32_t mxcsr)
> > > +{
> > > +    env->mxcsr = mxcsr;
> > > +    tcg_update_mxcsr(env);
> > 
> > Instead of having to add stubs, please guard the call with "if
> > (tcg_enabled())".  Same below.
> > 
> > Paolo
> >
>   Hello Paolo,
> 
>   Got it! thanks!
> 
>   From your comments + Richard Henderson's comments, i got below guideline
>   (1) accel/stubs/tcg-stub.c
>       This file is target-independent file, do not add x86-specific stubs
>       functions into this file.
> 
>   (2) there are three kind of methods to mask TCG relative function
>       a) if(tcg_enabled())
>       b) if CONFIG_TCG
>       c) stub function
> 
>   Paolo, which one is your prefer?  a) ?  please also make sure your prefer
>   sequence, a) > b) > c) ?

There is also

   d) method in AccelClass

It seldom makes sense, but when it does it's the best.  Apart from this one,
a) > c) > b).

For target-independent code, "c" is more often the solution.  For target-dependent
code, "a" is more common.

Paolo

  reply	other threads:[~2017-06-22  8:42 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-21 10:19 [Qemu-devel] [PATCH 00/15] add disable-tcg option for x86 build Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 01/15] configure: add the disable-tcg option Yang Zhong
2017-06-21 22:33   ` Richard Henderson
2017-06-22  4:20   ` Thomas Huth
2017-06-22  6:22     ` Paolo Bonzini
2017-06-22  6:33       ` Thomas Huth
2017-06-22  9:26         ` Paolo Bonzini
2017-06-22  9:30           ` Thomas Huth
2017-06-22  9:32             ` Paolo Bonzini
2017-06-21 10:19 ` [Qemu-devel] [PATCH 02/15] vl: add CONFIG_TCG for tcg related code Yang Zhong
2017-06-21 13:10   ` Paolo Bonzini
2017-06-22  6:54     ` Zhong Yang
2017-06-21 10:19 ` [Qemu-devel] [PATCH 03/15] tcg: tcg_handle_interrupt() function Yang Zhong
2017-06-21 13:10   ` Paolo Bonzini
2017-06-22  7:06     ` Zhong Yang
2017-06-22  9:29       ` Paolo Bonzini
2017-06-21 10:19 ` [Qemu-devel] [PATCH 04/15] tcg: change tcg_enabled() Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 05/15] tcg: move page_size_init() function Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 06/15] kvmvapic: remove tcg related code Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 07/15] tcg: move cpu_sync_bndcs_hflags() function Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 08/15] tcg: make cpu_get_fp80()/cpu_set_fp80() static Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 09/15] tcg: add the tcg-stub.c file into accel/stubs/ Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 10/15] tcg: move tb related lock functions Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 11/15] tcg: split cpu_set_mxcsr()/cpu_set_fpuc() Yang Zhong
2017-06-21 13:15   ` Paolo Bonzini
2017-06-22  8:03     ` Zhong Yang
2017-06-22  8:42       ` Paolo Bonzini [this message]
2017-06-21 22:36   ` Richard Henderson
2017-06-21 10:19 ` [Qemu-devel] [PATCH 12/15] tcg: remove inline definition of flush_icache_range() Yang Zhong
2017-06-21 13:17   ` Paolo Bonzini
2017-06-21 10:19 ` [Qemu-devel] [PATCH 13/15] tcg: disable tcg in CPUX86State struct Yang Zhong
2017-06-21 22:24   ` Richard Henderson
2017-06-22  9:32     ` Zhong Yang
2017-06-21 10:20 ` [Qemu-devel] [PATCH 14/15] tcg: add the CONFIG_TCG for header Yang Zhong
2017-06-21 10:20 ` [Qemu-devel] [PATCH 15/15] tcg: add the CONFIG_TCG into Makefiles Yang Zhong
2017-06-21 12:03 ` [Qemu-devel] [PATCH 00/15] add disable-tcg option for x86 build no-reply
2017-06-21 13:19 ` Paolo Bonzini

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=1480940436.11181319.1498120965339.JavaMail.zimbra@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=a.rigo@virtualopensystems.com \
    --cc=anthony.xu@intel.com \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    --cc=thuth@redhat.com \
    --cc=yang.zhong@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.