All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH]blkfront change to support unmodified linux
@ 2005-09-05  5:41 Xiaofeng Ling
  2005-09-05  8:55 ` Keir Fraser
  0 siblings, 1 reply; 3+ messages in thread
From: Xiaofeng Ling @ 2005-09-05  5:41 UTC (permalink / raw)
  To: Ian Pratt, Keir Fraser; +Cc: xen-devel

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

This patch is to make blkfront can work both in xen-linux and in
unmodified guest which is shadow_model_translate enabled.

Signed-off-by: Xiaofeng Ling <xiaofeng.ling@intel.com>
Signed-off-by: Arun Sharma <arun.sharma@intel.com>

diff -r 287d36b46fa3 linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c
--- a/linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c
+++ b/linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c
@@ -511,7 +511,7 @@
  	FRONT_RING_INIT(&info->ring, sring, PAGE_SIZE);

  	err = gnttab_grant_foreign_access(info->backend_id,
-					  virt_to_mfn(info->ring.sring), 0);
+					  virt_to_xfn(info->ring.sring), 0);
  	if (err == -ENOSPC) {
  		free_page((unsigned long)info->ring.sring);
  		info->ring.sring = 0;
diff -r 287d36b46fa3 linux-2.6-xen-sparse/include/asm-xen/asm-i386/io.h
--- a/linux-2.6-xen-sparse/include/asm-xen/asm-i386/io.h	
+++ b/linux-2.6-xen-sparse/include/asm-xen/asm-i386/io.h	
@@ -101,7 +101,17 @@
   * Change "struct page" to physical address.
   */
  #define page_to_pseudophys(page) ((dma_addr_t)page_to_pfn(page) << 
PAGE_SHIFT)
+#ifndef CONFIG_XEN_SHADOW_TRANSLATE
  #define page_to_phys(page)	 (phys_to_machine(page_to_pseudophys(page)))
+#else
+#define page_to_phys(page)	 (page_to_pseudophys(page))
+#endif
+
+#ifndef CONFIG_XEN_SHADOW_TRANSLATE
+#define virt_to_xfn(va)	 (virt_to_mfn(va))
+#else
+#define virt_to_xfn(va)	 (virt_to_phys(va) >> PAGE_SHIFT)
+#endif

  #define bio_to_pseudophys(bio)	 (page_to_pseudophys(bio_page((bio))) + \
  				  (unsigned long) bio_offset((bio)))

[-- Attachment #2: vbd-blkfront.patch --]
[-- Type: text/x-patch, Size: 1395 bytes --]

diff -r 287d36b46fa3 linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c
--- a/linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c	Tue Aug 30 20:36:49 2005
+++ b/linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c	Fri Sep  2 22:47:27 2005
@@ -511,7 +511,7 @@
 	FRONT_RING_INIT(&info->ring, sring, PAGE_SIZE);
 
 	err = gnttab_grant_foreign_access(info->backend_id,
-					  virt_to_mfn(info->ring.sring), 0);
+					  virt_to_xfn(info->ring.sring), 0);
 	if (err == -ENOSPC) {
 		free_page((unsigned long)info->ring.sring);
 		info->ring.sring = 0;
diff -r 287d36b46fa3 linux-2.6-xen-sparse/include/asm-xen/asm-i386/io.h
--- a/linux-2.6-xen-sparse/include/asm-xen/asm-i386/io.h	Tue Aug 30 20:36:49 2005
+++ b/linux-2.6-xen-sparse/include/asm-xen/asm-i386/io.h	Fri Sep  2 22:47:27 2005
@@ -101,7 +101,17 @@
  * Change "struct page" to physical address.
  */
 #define page_to_pseudophys(page) ((dma_addr_t)page_to_pfn(page) << PAGE_SHIFT)
+#ifndef CONFIG_XEN_SHADOW_TRANSLATE
 #define page_to_phys(page)	 (phys_to_machine(page_to_pseudophys(page)))
+#else
+#define page_to_phys(page)	 (page_to_pseudophys(page))
+#endif
+
+#ifndef CONFIG_XEN_SHADOW_TRANSLATE
+#define virt_to_xfn(va)	 (virt_to_mfn(va))
+#else
+#define virt_to_xfn(va)	 (virt_to_phys(va) >> PAGE_SHIFT)
+#endif
 
 #define bio_to_pseudophys(bio)	 (page_to_pseudophys(bio_page((bio))) + \
 				  (unsigned long) bio_offset((bio)))


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

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH]blkfront change to support unmodified linux
  2005-09-05  5:41 [PATCH]blkfront change to support unmodified linux Xiaofeng Ling
@ 2005-09-05  8:55 ` Keir Fraser
  2005-09-05  9:02   ` Xiaofeng Ling
  0 siblings, 1 reply; 3+ messages in thread
From: Keir Fraser @ 2005-09-05  8:55 UTC (permalink / raw)
  To: Xiaofeng Ling; +Cc: Ian Pratt, xen-devel


On 5 Sep 2005, at 06:41, Xiaofeng Ling wrote:

> This patch is to make blkfront can work both in xen-linux and in
> unmodified guest which is shadow_model_translate enabled.

phys == machine from the p.o.v. of a shadow-translated guest, so why 
not modify virt_to_mfn and friends appropriately?

  -- Keir

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH]blkfront change to support unmodified linux
  2005-09-05  8:55 ` Keir Fraser
@ 2005-09-05  9:02   ` Xiaofeng Ling
  0 siblings, 0 replies; 3+ messages in thread
From: Xiaofeng Ling @ 2005-09-05  9:02 UTC (permalink / raw)
  To: Keir Fraser; +Cc: Ian Pratt, xen-devel

Keir Fraser wrote:
> 
> On 5 Sep 2005, at 06:41, Xiaofeng Ling wrote:
> 
>> This patch is to make blkfront can work both in xen-linux and in
>> unmodified guest which is shadow_model_translate enabled.
> 
> 
> phys == machine from the p.o.v. of a shadow-translated guest, so why not 
> modify virt_to_mfn and friends appropriately?

Sorry, I don't catch your meaning.
vmx guest is in shadow-translate mode, and gpfn need to translate to mfn 
in hypervisor. see the macro:

#define __gpfn_to_mfn(_d, gpfn)                        \
     ({                                                 \
         ASSERT(current->domain == (_d));               \
         (shadow_mode_translate(_d))                    \
         ? get_mfn_from_pfn(gpfn)                \
         : (gpfn);                                      \
     })

#define __gpfn_to_mfn_foreign(_d, gpfn)                \
     ( (shadow_mode_translate(_d))                      \
       ? gpfn_to_mfn_foreign(_d, gpfn)                  \
       : (gpfn) )

So I rename virt_to_mfn to virt_to_xfn which means if not in shadow 
translate mode, it will do translate in guest. for vmx guest, don't need 
the translation in guest. What is your suggestion?

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2005-09-05  9:02 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-09-05  5:41 [PATCH]blkfront change to support unmodified linux Xiaofeng Ling
2005-09-05  8:55 ` Keir Fraser
2005-09-05  9:02   ` Xiaofeng Ling

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.