[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RFC PATCH 2/5] target/ppc: Add initial flags and helpers for SMT su
From: |
Nicholas Piggin |
Subject: |
Re: [RFC PATCH 2/5] target/ppc: Add initial flags and helpers for SMT support |
Date: |
Fri, 02 Jun 2023 16:54:10 +1000 |
On Wed May 31, 2023 at 5:25 PM AEST, Cédric Le Goater wrote:
> On 5/31/23 03:23, Nicholas Piggin wrote:
> > SMT TCG emulation needs to be able to iterate over siblings in a core,
> > and needs to serialise core access to shared SPRs and state.
> >
> > Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
> > ---
> > target/ppc/cpu.h | 9 +++++++++
> > target/ppc/cpu_init.c | 5 +++++
> > target/ppc/translate.c | 20 ++++++++++++++++++++
> > 3 files changed, 34 insertions(+)
> >
> > diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h
> > index 1f23b81e90..b594408a8d 100644
> > --- a/target/ppc/cpu.h
> > +++ b/target/ppc/cpu.h
> > @@ -672,6 +672,8 @@ enum {
> > POWERPC_FLAG_TM = 0x00100000,
> > /* Has SCV (ISA 3.00)
> > */
> > POWERPC_FLAG_SCV = 0x00200000,
> > + /* Has >1 thread per core
> > */
> > + POWERPC_FLAG_SMT = 0x00400000,
> > };
> >
> > /*
> > @@ -1266,6 +1268,13 @@ struct CPUArchState {
> > uint64_t pmu_base_time;
> > };
> >
> > +#define _CORE_ID(cs) \
> > + (POWERPC_CPU(cs)->env.spr_cb[SPR_PIR].default_value & ~(cs->nr_threads
> > - 1))
> > +
> > +#define THREAD_SIBLING_FOREACH(cs, cs_sibling) \
> > + CPU_FOREACH(cs_sibling) \
> > + if (_CORE_ID(cs) == _CORE_ID(cs_sibling))
> > +
>
>
> May be introduce these helpers when needed (and if needed).
Yeah that's a good idea, I tried to structure it so you could see
the main components first, but for a real patch it might indeed be
better add them as needed.
Thanks,
Nick
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [RFC PATCH 2/5] target/ppc: Add initial flags and helpers for SMT support,
Nicholas Piggin <=