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

Re: [Xen-devel] [RFC PATCH V2 2/4] Tool/ACPI: DSDT extension to support more vcpus



Hi,

Sorry for the late reply.

On 04/09/17 10:05, Roger Pau Monné wrote:
On Mon, Sep 04, 2017 at 11:07:14AM +0800, Lan Tianyu wrote:
On 2017年09月01日 17:41, Roger Pau Monné wrote:
On Fri, Sep 01, 2017 at 10:54:02AM +0800, Lan Tianyu wrote:
On 2017年08月31日 23:38, Roger Pau Monné wrote:
On Thu, Aug 31, 2017 at 01:01:47AM -0400, Lan Tianyu wrote:
This patch is to change DSDT table for processor object to support >128 vcpus
accroding to ACPI spec 8.4 Declaring Processors

Signed-off-by: Lan Tianyu <tianyu.lan@xxxxxxxxx>
---
  tools/libacpi/mk_dsdt.c | 18 ++++++++++++------
  1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/tools/libacpi/mk_dsdt.c b/tools/libacpi/mk_dsdt.c
index 2daf32c..6c4c325 100644
--- a/tools/libacpi/mk_dsdt.c
+++ b/tools/libacpi/mk_dsdt.c
@@ -24,6 +24,8 @@
  #include <xen/arch-arm.h>
  #endif
+#define CPU_NAME_FMT "P%.03X"
+
  static unsigned int indent_level;
  static bool debug = false;
@@ -196,10 +198,14 @@ int main(int argc, char **argv)
      /* Define processor objects and control methods. */
      for ( cpu = 0; cpu < max_cpus; cpu++)
      {
-        push_block("Processor", "PR%02X, %d, 0x0000b010, 0x06", cpu, cpu);
+        unsigned int apic_id = cpu * 2;

This is fragile, ideally there should be a single point where the APIC
ID is calculated. Although there are already two places where the APIC
ID is calculated, in hvmloader and libxl.

And I'm not sure how to use any of those here in order to avoid
introducing a third one.

The mk_dsdt is independent tool to build dsdt table. It wasn't linked
with libxl and hvmloader. We can't reuse old function to do that.

But I think we may introduce a new LAPIC_ID(vcpu) in the arch head
file(i.e, #include <xen/arch-x86/xen.h>) and replace old ones.

There's already a LAPIC_ID macro in hvmloader headers which should be
placed somewhere suitable.

Yes, this is what I mentioned.

Jan has expressed some concerns with removing the hook, see:

<59A94E320200007800176754@xxxxxxxxxxxxxxxxxxxxxxx>

What about removing the lapic_id hook from
acpi_config and placing the LAPIC_ID macro in the libacpi.h header?

I think this should be ARCH specific. I am not sure whether ARM follows
rule of "apic_id = vcpu_id *2".

Julien, could you give some inputs? Thanks.

AFAIK ARM doesn't have a local APIC, so there are no xAPIC/x2APIC
entries in the ARM MADT.

That's correct. ARM does not use xAPIC/x2APIC tables.

Cheers,

--
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.