qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v3 1/4] hw/intc: Remove loongarch_ipi.c


From: maobibo
Subject: Re: [PATCH v3 1/4] hw/intc: Remove loongarch_ipi.c
Date: Mon, 1 Jul 2024 16:51:37 +0800
User-agent: Mozilla/5.0 (X11; Linux loongarch64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0



On 2024/7/1 下午4:29, Jiaxun Yang wrote:


在2024年7月1日七月 上午8:22,maobibo写道:
On 2024/7/1 下午3:01, Jiaxun Yang wrote:


在2024年7月1日七月 上午7:44,maobibo写道:
Also this patch is problematic on LoongArch.

The original patch is to search physical cpuid rather than logic cpuid.

We want to make ipi module better and better, however now it comes back
to initial state at the beginning :(

Isn't arch_id the "physical id" you want? "cs->cpu_index" is the logical ID
for QEMU.

arch_id is setup by arch code, like APIC ID for x86.

I had come across the old ipi_getcpu  implementation, and I'm sure we were
looking at arch_id as well.
So, where is implementation code for function get_arch_id() looking for
vcpu with physical index?

Hi Bibo,

cpu_by_arch_id will be redirected to:

```
CPUState *cpu_by_arch_id(int64_t id)
{
     CPUState *cpu;

     CPU_FOREACH(cpu) {
         CPUClass *cc = CPU_GET_CLASS(cpu);

         if (cc->get_arch_id(cpu) == id) {
             return cpu;
         }
     }
     return NULL;
}
```

It iterates over all vcpus and return CPUStates with corresponding arch_id.

Whereas, for LoongArch's get_arch_id implementation:
```
static int64_t loongarch_cpu_get_arch_id(CPUState *cs)
{
     LoongArchCPU *cpu = LOONGARCH_CPU(cs);

     return cpu->phy_id;
}
```
I believe it matches our intension here.
yes, you are right.

Got it, I miss the architecture specific implementation, and thanks for pointing it out with patience.

Regards

Thanks


Regards
Bibo Mao


Thanks
- Jiaxun

commit 03ca348b6b9038ce284916b36c19f700ac0ce7a6
Author: Jiaxun Yang <jiaxun.yang@flygoat.com>
Date:   Wed Jun 5 10:04:27 2024

       hw/intc/loongson_ipi: Replace ipi_getcpu with cpu_by_arch_id

       cpu_by_arch_id is doing the same thing as our ipi_getcpu logic.

       Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
       Reviewed-by: Song Gao <gaosong@loongson.cn>
       Message-ID: <20240605-loongson3-ipi-v3-4-ddd2c0e03fa3@flygoat.com>
       Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>


Regards
Bibo Mao






reply via email to

[Prev in Thread] Current Thread [Next in Thread]