WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH 03/11] VT-d: section adjustments to DMAR parsing code

To: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] [PATCH 03/11] VT-d: section adjustments to DMAR parsing code
From: "Jan Beulich" <JBeulich@xxxxxxxxxx>
Date: Wed, 09 Mar 2011 12:25:55 +0000
Delivery-date: Wed, 09 Mar 2011 04:27:11 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Move whatever possible into .init.*, and some data items into
.data.read_mostly.

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>

--- 2011-01-17.orig/xen/drivers/passthrough/vtd/dmar.c
+++ 2011-01-17/xen/drivers/passthrough/vtd/dmar.c
@@ -41,13 +41,12 @@
 #define MIN_SCOPE_LEN (sizeof(struct acpi_pci_path) + \
                        sizeof(struct acpi_dev_scope))
 
-LIST_HEAD(acpi_drhd_units);
-LIST_HEAD(acpi_rmrr_units);
-LIST_HEAD(acpi_atsr_units);
-LIST_HEAD(acpi_rhsa_units);
+LIST_HEAD_READ_MOSTLY(acpi_drhd_units);
+LIST_HEAD_READ_MOSTLY(acpi_rmrr_units);
+static LIST_HEAD_READ_MOSTLY(acpi_atsr_units);
+static LIST_HEAD_READ_MOSTLY(acpi_rhsa_units);
 
-static u64 igd_drhd_address;
-u8 dmar_host_address_width;
+static u64 __read_mostly igd_drhd_address;
 
 void dmar_scope_add_buses(struct dmar_scope *scope, u16 sec_bus, u16 sub_bus)
 {
@@ -679,6 +678,7 @@ static int __init acpi_parse_dmar(struct
 {
     struct acpi_table_dmar *dmar;
     struct acpi_dmar_entry_header *entry_header;
+    u8 dmar_host_address_width;
     int ret = 0;
 
     dmar = (struct acpi_table_dmar *)table;
--- 2011-01-17.orig/xen/drivers/passthrough/vtd/dmar.h
+++ 2011-01-17/xen/drivers/passthrough/vtd/dmar.h
@@ -24,8 +24,6 @@
 #include <xen/list.h>
 #include <xen/iommu.h>
 
-extern u8 dmar_host_address_width;
-
 /* This one is for interrupt remapping */
 struct acpi_ioapic_unit {
     struct list_head list;
--- 2011-01-17.orig/xen/include/xen/list.h
+++ 2011-01-17/xen/include/xen/list.h
@@ -36,6 +36,9 @@ struct list_head {
 #define LIST_HEAD(name) \
     struct list_head name = LIST_HEAD_INIT(name)
 
+#define LIST_HEAD_READ_MOSTLY(name) \
+    struct list_head __read_mostly name = LIST_HEAD_INIT(name)
+
 static inline void INIT_LIST_HEAD(struct list_head *list)
 {
     list->next = list;



Attachment: vtd-dmar-sections.patch
Description: Text document

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] [PATCH 03/11] VT-d: section adjustments to DMAR parsing code, Jan Beulich <=