Hi Igor,

>  From: Igor Mammedov <imamm...@redhat.com>
>  Sent: Tuesday, October 15, 2024 3:34 PM
>  To: Salil Mehta <salil.me...@huawei.com>
>  
>  On Tue, 15 Oct 2024 09:41:24 +0000
>  Salil Mehta <salil.me...@huawei.com> wrote:
>  
>  > HI Igor,
>  >
>  > >  From: Igor Mammedov <imamm...@redhat.com>
>  > >  Sent: Tuesday, October 15, 2024 10:31 AM
>  > >  To: Salil Mehta <salil.me...@huawei.com>
>  > >  Cc: maobibo <maob...@loongson.cn>; qemu-devel@nongnu.org;
>  Michael
>  > > S. Tsirkin <m...@redhat.com>; Peter Maydell
>  > > <peter.mayd...@linaro.org>;  zhukeqian <zhukeqi...@huawei.com>;
>  > > Jonathan Cameron  <jonathan.came...@huawei.com>; Gavin Shan
>  > > <gs...@redhat.com>;  Vishnu Pajjuri
>  <vis...@os.amperecomputing.com>;
>  > > Xianglai Li  <lixiang...@loongson.cn>; Miguel Luis
>  > > <miguel.l...@oracle.com>; Shaoqin  Huang <shahu...@redhat.com>;
>  Zhao
>  > > Liu <zhao1....@intel.com>; Ani Sinha  <anisi...@redhat.com>
>  > >  Subject: Re: [PULL v2 40/61] hw/acpi: Update GED _EVT method AML
>  > > with  CPU scan
>  > >
>  > >  On Mon, 14 Oct 2024 20:05:58 +0000
>  > >  Salil Mehta <salil.me...@huawei.com> wrote:
>  > >
>  > >  > Hi Igor,
>  > >  >
>  > >  > >  From: qemu-devel-bounces+salil.mehta=huawei....@nongnu.org
>  > >  <qemu-
>  > >  > > devel-bounces+salil.mehta=huawei....@nongnu.org> On Behalf
>  Of
>  > > Igor  > > Mammedov  > >  Sent: Monday, October 14, 2024 10:38 AM  >
>  > > >  > >  On Mon, 14 Oct 2024 16:52:55 +0800  > >  maobibo
>  > > <maob...@loongson.cn> wrote:
>  > >  > >
>  > >  > >  > Hi Salil,
>  > >  > >  >
>  > >  > >  > When I debug cpu hotplug on LoongArch system, It reports
>  > > error like
>  > >  this:
>  > >  > >  >      ACPI BIOS Error (bug): Could not resolve symbol
>  [\_SB.GED.CSCN],
>  > >  > >  > AE_NOT_FOUND
>  > >  > >  >      ACPI Error: Aborting method \_SB.GED._EVT due to previous
>  error
>  > >  > >  > (AE_NOT_FOUND)
>  > >  > >  >      acpi-ged ACPI0013:00: IRQ method execution failed
>  > >  > >  >
>  > >  > >  >
>  > >  > >  > With this patch, GED CPU call method is "\\_SB.GED.CSCN",
>  > > however  > > in  > function build_cpus_aml(), its method name is
>  "\\_SB.CPUS.CSCN".
>  > >  > >  >      method = aml_method(event_handler_method, 0,
>  > >  > >  AML_NOTSERIALIZED);
>  > >  > >  >      aml_append(method, aml_call0("\\_SB.CPUS."
>  > >  CPU_SCAN_METHOD));
>  > >  > >  >      aml_append(table, method);
>  > >  > >  >
>  > >  > >  > It seems that CPU scanning method name is not consistent
>  > > between  > > > function build_cpus_aml() and build_ged_aml().
>  > >  > >  >
>  > >  > >  > Regards
>  > >  > >  > Bibo Mao
>  > >  > >  >
>  > >  > >  > On 2024/7/23 下午6:59, Michael S. Tsirkin wrote:
>  > >  > >  > > From: Salil Mehta <salil.me...@huawei.com>  > >  > > OSPM
>  > > > > evaluates _EVT method to map the event. The CPU hotplug  event
>  > > > >  > > eventually results in start of the CPU scan. Scan figures
>  > > out the  >  > > > CPU and the kind of  > > event(plug/unplug) and
>  > > notifies it back  > > to the guest. Update the GED  > > AML _EVT
>  > > method with the call to  > > method \\_SB.CPUS.CSCN (via  > >
>  > > \\_SB.GED.CSCN)  > >  > >  > > Architecture specific code [1] might
>  > > initialize its CPUs AML code by  > > > > calling common function
>  build_cpus_aml() like below for ARM:
>  > >  > >  > >
>  > >  > >  > > build_cpus_aml(scope, ms, opts, xx_madt_cpu_entry,  > >
>  > > memmap[VIRT_CPUHP_ACPI].base,
>  > >  > >  > >                 "\\_SB", "\\_SB.GED.CSCN", AML_SYSTEM_MEMORY);
>  > >  > >
>  > >  > >  it should be \\_SB.CPUS.CSCN  >  >  > I guess we are getting
>  > > back to where we started then?
>  > >  >
>  > >  > https://lore.kernel.org/qemu-
>  > >  devel/20240706162845.3baf5...@imammedo.us
>  > >  > ers.ipa.redhat.com/
>  > >  >
>  > >
>  > >  Indeed, CSCN in name had me confused,  perhaps it would be better
>  > > to rename that something else.
>  > >  maybe something like s/_SB.GED.CSCN/_SB.GED.ECPU/
>  >
>  >
>  > Sure, we can definitely improve. But we are indeed triggering CPU Scan
>  > here so I don’t understand how will `ECPU` be more intuitive than
>  > `CSCN`.  what about below?
>  >
>  > s/_SB.GED.CSCN/_SB.GED.CPUSCAN/
>  
>  ACPI name segment is limited to 4 characters only.

I see.


>  
>  ECPU - Event handler for CPU
>  it could be something else though
>  
>  the point is not confuse it with CSCN (apparently different namespace but
>  still it could lead to confusion as above shows )


No problem. I'll send a patch today.

Thanks!


>  
>  >
>  >
>  > Thanks
>  > Salil.
>  >
>  > >
>  > >  > Excerpt from above discussion and your suggestion:
>  > >  > [...]
>  > >  >
>  > >  > I don't particularly like exposing cpu hotplug internals for
>  > > outside  > code and then making that code do plumbing hoping that
>  > > nothing will  > explode in the future.
>  > >  >
>  > >  > build_cpus_aml() takes event_handler_method to create a method
>  > > that  > can be called by platform. What I suggest is to call that
>  > > method here  > instead of trying to expose CPU hotplug internals and
>  > > manually  > building call path here.
>  > >  > aka:
>  > >  >   build_cpus_aml(event_handler_method =
>  > >  PATH_TO_GED_DEVICE.CSCN) and
>  > >  > then call here
>  > >  >   aml_append(if_ctx, aml_call0(CSCN)); which will call  CSCN in GED
>  > >  > scope, that was be populated by
>  > >  > build_cpus_aml() to do cpu scan properly without need to expose
>  > > cpu  > hotplug internal names and then trying to fixup conflicts caused
>  by that.
>  > >  >
>  > >  > PS:
>  > >  > we should do the same for memory hotplug, we see in context above
>  > > >  > [...]  >  >  > Solution:
>  > >  > I've avoided above error in different way and keeping exactly
>  > > what you  > suggested \_SB.PATH_TO_GED_DEVICE.CSCN i.e.
>  > > \_SB.GED.CSCN Please  have  > a look:
>  > >  >
>  > >  >
>  > > https://lore.kernel.org/qemu-devel/20241009031815.250096-16-salil.me
>  > > ht
>  > >  > a...@huawei.com/
>  > >  >
>  > >  > Many thanks!
>  > >  >
>  > >  >
>  > >  > Best regards
>  > >  > Salil.
>  > >  >
>  > >
>  >
>  

Reply via email to