[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH RFC 1/2] linux/vnuma: vnuma support for pv guest
On Wed, Aug 28, 2013 at 12:01:48PM -0400, Konrad Rzeszutek Wilk wrote: > On Tue, Aug 27, 2013 at 06:37:35PM -0700, Matt Wilson wrote: > > On Tue, Aug 27, 2013 at 06:27:15PM -0700, Matt Wilson wrote: > > > On Tue, Aug 27, 2013 at 04:52:59AM -0400, Elena Ufimtseva wrote: > > > > Uses subop hypercall to request XEN about vnuma topology. > > > > Sets the memory blocks (aligned by XEN), cpus, distance table > > > > on boot. NUMA support should be compiled in kernel. > > > > > > Are we *really sure* that we want to go this route for PV vNUMA? > > > Couldn't we build just enough(tm) of the ACPI tables to express the > > > NUMA topology when constructing the domain? That's what we do for the > > > e820 map. > > > > Ignore me somewhat, since the e820 information is retrieved via > > hypercall similar to what you're proposing. > > > > Still, if there's some way that we can reuse existing Linux code > > rather than bolting on a completely parallel mechanism to set this up > > under PV I think it'd be better. > > That would also parallel the work you do with ACPI right? Yes. > We could enable ACPI parsing in a PV guest and provide one table - the > SLIT (or SRAT). Right, it'd be the SRAT table for the resource affinity and a SLIT table for the locality/distance information. > But I don't know enough about SRAT to know whether this is something > that represents truly everything we need? The SRAT table has processor objects and memory objects. A processor object maps a logical processor number to its initial APIC ID and provides the node information. A memory object specifies the start and length for a memory region and provides the node information. For SLIT, the entries are a matrix of distances. Here are the structs: struct acpi_20_srat_processor { uint8_t type; uint8_t length; uint8_t domain; uint8_t apic_id; uint32_t flags; uint8_t sapic_id; uint8_t domain_hi[3]; uint32_t reserved; }; struct acpi_20_srat_memory { uint8_t type; uint8_t length; uint8_t domain; uint8_t domain_hi[3]; /* this is ACPI 3.0, reserved in 2.0 */ uint16_t reserved; uint32_t base_address_lo; uint32_t base_address_hi; uint32_t length_lo; uint32_t length_hi; uint32_t reserved2; uint32_t flags; uint32_t reserved3[2]; }; struct acpi_20_slit { struct acpi_header header; uint64_t nr_sys_loc; uint8_t entry[]; }; --msw _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |