Author: jhb
Date: Thu Oct  4 20:00:32 2012
New Revision: 241198
URL: http://svn.freebsd.org/changeset/base/241198

Log:
  Display the matrix of inter-domain distances in the SLIT table.  This is
  used to complement the SRAT table on NUMA machines.
  
  MFC after:    1 week

Modified:
  head/usr.sbin/acpi/acpidump/acpi.c

Modified: head/usr.sbin/acpi/acpidump/acpi.c
==============================================================================
--- head/usr.sbin/acpi/acpidump/acpi.c  Thu Oct  4 19:07:05 2012        
(r241197)
+++ head/usr.sbin/acpi/acpidump/acpi.c  Thu Oct  4 20:00:32 2012        
(r241198)
@@ -63,6 +63,7 @@ static void   acpi_handle_madt(ACPI_TABLE_
 static void    acpi_handle_ecdt(ACPI_TABLE_HEADER *sdp);
 static void    acpi_handle_hpet(ACPI_TABLE_HEADER *sdp);
 static void    acpi_handle_mcfg(ACPI_TABLE_HEADER *sdp);
+static void    acpi_handle_slit(ACPI_TABLE_HEADER *sdp);
 static void    acpi_print_srat_cpu(uint32_t apic_id, uint32_t proximity_domain,
                    uint32_t flags);
 static void    acpi_print_srat_memory(ACPI_SRAT_MEM_AFFINITY *mp);
@@ -519,6 +520,33 @@ acpi_handle_mcfg(ACPI_TABLE_HEADER *sdp)
 }
 
 static void
+acpi_handle_slit(ACPI_TABLE_HEADER *sdp)
+{
+       ACPI_TABLE_SLIT *slit;
+       UINT64 i, j;
+
+       printf(BEGIN_COMMENT);
+       acpi_print_sdt(sdp);
+       slit = (ACPI_TABLE_SLIT *)sdp;
+       printf("\tLocality Count=%jd\n", slit->LocalityCount);
+       printf("\n\t      ");
+       for (i = 0; i < slit->LocalityCount; i++)
+               printf(" %3jd", i);
+       printf("\n\t     +");
+       for (i = 0; i < slit->LocalityCount; i++)
+               printf("----");
+       printf("\n");
+       for (i = 0; i < slit->LocalityCount; i++) {
+               printf("\t %3jd |", i);
+               for (j = 0; j < slit->LocalityCount; j++)
+                       printf(" %3d",
+                           slit->Entry[i * slit->LocalityCount + j]);
+               printf("\n");
+       }
+       printf(END_COMMENT);
+}
+
+static void
 acpi_print_srat_cpu(uint32_t apic_id, uint32_t proximity_domain,
     uint32_t flags)
 {
@@ -1092,6 +1120,8 @@ acpi_handle_rsdt(ACPI_TABLE_HEADER *rsdp
                        acpi_handle_ecdt(sdp);
                else if (!memcmp(sdp->Signature, ACPI_SIG_MCFG, 4))
                        acpi_handle_mcfg(sdp);
+               else if (!memcmp(sdp->Signature, ACPI_SIG_SLIT, 4))
+                       acpi_handle_slit(sdp);
                else if (!memcmp(sdp->Signature, ACPI_SIG_SRAT, 4))
                        acpi_handle_srat(sdp);
                else if (!memcmp(sdp->Signature, ACPI_SIG_TCPA, 4))
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to