On 11/23/20 2:18 PM, Paolo Bonzini wrote:
> On 23/11/20 10:55, Claudio Fontana wrote:
>> One idea that came to mind is, why not extend accel.h to user mode?
>>
>> It already contains
>>
>> #ifndef CONFIG_USER_ONLY
>>
>> parts, so maybe it was meant to be used by both, and just happened to
>> end up confined to include/softmmu ?
>>
>> Basically I was thinking, we could have an AccelState and an
>> AccelClass for user mode as well (without bringing in the whole
>> machine thing), and from there we could use current_accel() to build
>> up the right name for the chosen accelerator?
> 
> Yes, extending the accelerator class to usermode emulation is certainly 
> a good idea.
> 
> Paolo
> 

Thanks, I'll work on this option.

Btw considering that CpusAccel for tcg is actually three different interfaces 
(for mttcg, for icount, and plain RR),
it will be tough to, in the stated objective, "remove all conditionals", even 
after removing the tcg_enabled().

I wonder how you see this issue (patches for 3 TCG split are in Richard's queue 
atm).

static void tcg_accel_cpu_init(void)
{
    if (tcg_enabled()) {
        TCGState *s = TCG_STATE(current_accel());

        if (s->mttcg_enabled) {
            cpus_register_accel(&tcg_cpus_mttcg);
        } else if (icount_enabled()) {
            cpus_register_accel(&tcg_cpus_icount);
        } else {
            cpus_register_accel(&tcg_cpus_rr);
        }
    }
}

Ciao,

Claudio

Reply via email to