All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gerd Hoffmann <kraxel@suse.de>
To: Keir Fraser <Keir.Fraser@cl.cam.ac.uk>
Cc: Xen devel list <xen-devel@lists.xensource.com>
Subject: Re: access shared_info?
Date: Wed, 07 Jun 2006 19:27:01 +0200	[thread overview]
Message-ID: <44870C65.2030603@suse.de> (raw)
In-Reply-To: <63a099e0b962a2154960cebf413487c2@cl.cam.ac.uk>

[-- Attachment #1: Type: text/plain, Size: 516 bytes --]

Keir Fraser wrote:
> Oh, I see it's moved to a new function. I guess that's okay, although
> couldn't you fake up an e820 map and call legacy_init_iomem_resource on
> the domU path, rather than having to pull code out into a new function?
> Does this patch change behaviour for dom0 at all? I think /proc/iomem
> already looks like native there? Also the patch will need to include
> x86/64 too.

new version attached.

cheers,

  Gerd

-- 
Gerd Hoffmann <kraxel@suse.de>
http://www.suse.de/~kraxel/julika-dora.jpeg

[-- Attachment #2: iomem.diff --]
[-- Type: text/x-patch, Size: 3702 bytes --]

diff -r c191c649cdb3 linux-2.6-xen-sparse/arch/i386/kernel/setup-xen.c
--- a/linux-2.6-xen-sparse/arch/i386/kernel/setup-xen.c	Tue Jun  6 09:25:59 2006
+++ b/linux-2.6-xen-sparse/arch/i386/kernel/setup-xen.c	Wed Jun  7 19:24:19 2006
@@ -1378,7 +1378,6 @@
 		res->end = res->start + e820[i].size - 1;
 		res->flags = IORESOURCE_MEM | IORESOURCE_BUSY;
 		request_resource(&iomem_resource, res);
-#ifndef CONFIG_XEN
 		if (e820[i].type == E820_RAM) {
 			/*
 			 *  We don't know which RAM region contains kernel data,
@@ -1391,7 +1390,6 @@
 			request_resource(res, &crashk_res);
 #endif
 		}
-#endif
 	}
 }
 
@@ -1460,8 +1458,16 @@
 	int	      i;
 
 	/* Nothing to do if not running in dom0. */
-	if (!(xen_start_info->flags & SIF_INITDOMAIN))
+	if (!(xen_start_info->flags & SIF_INITDOMAIN)) {
+		struct e820entry domU_e820 = {
+			.addr = 0,
+			.size = max_pfn << PAGE_SHIFT,
+			.type = E820_RAM,
+		};
+		legacy_init_iomem_resources(&domU_e820, 1,
+					    &code_resource, &data_resource);
 		return;
+	}
 
 #ifdef CONFIG_XEN
 	machine_e820 = alloc_bootmem_low_pages(PAGE_SIZE);
@@ -1698,11 +1704,10 @@
 	init_mm.brk = (PFN_UP(__pa(xen_start_info->pt_base)) +
 		       xen_start_info->nr_pt_frames) << PAGE_SHIFT;
 
-	/* XEN: This is nonsense: kernel may not even be contiguous in RAM. */
-	/*code_resource.start = virt_to_phys(_text);*/
-	/*code_resource.end = virt_to_phys(_etext)-1;*/
-	/*data_resource.start = virt_to_phys(_etext);*/
-	/*data_resource.end = virt_to_phys(_edata)-1;*/
+	code_resource.start = virt_to_phys(_text);
+	code_resource.end = virt_to_phys(_etext)-1;
+	data_resource.start = virt_to_phys(_etext);
+	data_resource.end = virt_to_phys(_edata)-1;
 
 	parse_cmdline_early(cmdline_p);
 
diff -r c191c649cdb3 linux-2.6-xen-sparse/arch/x86_64/kernel/e820-xen.c
--- a/linux-2.6-xen-sparse/arch/x86_64/kernel/e820-xen.c	Tue Jun  6 09:25:59 2006
+++ b/linux-2.6-xen-sparse/arch/x86_64/kernel/e820-xen.c	Wed Jun  7 19:24:19 2006
@@ -44,9 +44,7 @@
  */
 unsigned long end_user_pfn = MAXMEM>>PAGE_SHIFT;  
 
-#ifndef CONFIG_XEN
 extern struct resource code_resource, data_resource;
-#endif
 
 /* Check for some hardcoded bad areas that early boot is not allowed to touch */ 
 static inline int bad_addr(unsigned long *addrp, unsigned long size)
@@ -251,8 +249,7 @@
 		res->end = res->start + e820[i].size - 1;
 		res->flags = IORESOURCE_MEM | IORESOURCE_BUSY;
 		request_resource(&iomem_resource, res);
-#ifndef CONFIG_XEN
-		if (e820.map[i].type == E820_RAM) {
+		if (e820[i].type == E820_RAM) {
 			/*
 			 *  We don't know which RAM region contains kernel data,
 			 *  so we try it repeatedly and let the resource manager
@@ -264,7 +261,6 @@
 			request_resource(res, &crashk_res);
 #endif
 		}
-#endif
 	}
 }
 
diff -r c191c649cdb3 linux-2.6-xen-sparse/arch/x86_64/kernel/setup-xen.c
--- a/linux-2.6-xen-sparse/arch/x86_64/kernel/setup-xen.c	Tue Jun  6 09:25:59 2006
+++ b/linux-2.6-xen-sparse/arch/x86_64/kernel/setup-xen.c	Wed Jun  7 19:24:19 2006
@@ -692,12 +692,10 @@
 	init_mm.end_data = (unsigned long) &_edata;
 	init_mm.brk = (unsigned long) &_end;
 
-#ifndef CONFIG_XEN
 	code_resource.start = virt_to_phys(&_text);
 	code_resource.end = virt_to_phys(&_etext)-1;
 	data_resource.start = virt_to_phys(&_etext);
 	data_resource.end = virt_to_phys(&_edata)-1;
-#endif
 
 	parse_cmdline_early(cmdline_p);
 
@@ -937,6 +935,13 @@
 		BUG_ON(HYPERVISOR_memory_op(XENMEM_machine_memory_map, &memmap));
 
 		e820_reserve_resources(machine_e820, memmap.nr_entries);
+	} else {
+		struct e820entry domU_e820 = {
+			.addr = 0,
+			.size = max_pfn << PAGE_SHIFT,
+			.type = E820_RAM,
+		};
+		e820_reserve_resources(&domU_e820, 1);
 	}
 #elif !defined(CONFIG_XEN)
 	probe_roms();

[-- Attachment #3: Type: text/plain, Size: 138 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel

  parent reply	other threads:[~2006-06-07 17:27 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-06-07 13:28 access shared_info? Gerd Hoffmann
2006-06-07 13:48 ` Keir Fraser
2006-06-07 15:53   ` Gerd Hoffmann
2006-06-07 16:04     ` Keir Fraser
2006-06-07 16:27       ` Gerd Hoffmann
2006-06-07 16:47         ` Keir Fraser
2006-06-07 16:59           ` Gerd Hoffmann
2006-06-07 17:27           ` Gerd Hoffmann [this message]
2006-06-07 21:55             ` Chris Wright
2006-06-08  7:32               ` Keir Fraser
2006-06-09 13:44               ` Gerd Hoffmann
2006-06-09 13:59                 ` Ian Campbell
2006-06-09 14:16                   ` Gerd Hoffmann
2006-06-09 14:35                     ` Keir Fraser
2006-06-09 17:34                       ` Chris Wright
2006-06-09 17:23                     ` Chris Wright

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=44870C65.2030603@suse.de \
    --to=kraxel@suse.de \
    --cc=Keir.Fraser@cl.cam.ac.uk \
    --cc=xen-devel@lists.xensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.