Xen 
 
Home About Xen.org Xen Xen Summit Wiki Mailing List Bug Tracker Xen Downloads
 
   
 

xen-ia64-devel

[Xen-ia64-devel] RE: [PATCH 09/27] ia64/xen: implement the arch specific

To: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>, "linux-ia64@xxxxxxxxxxxxxxx" <linux-ia64@xxxxxxxxxxxxxxx>
Subject: [Xen-ia64-devel] RE: [PATCH 09/27] ia64/xen: implement the arch specific part of xencomm.
From: "Luck, Tony" <tony.luck@xxxxxxxxx>
Date: Wed, 18 Jun 2008 13:39:02 -0700
Accept-language: en-US
Acceptlanguage: en-US
Cc: "xen-ia64-devel@xxxxxxxxxxxxxxxxxxx" <xen-ia64-devel@xxxxxxxxxxxxxxxxxxx>, Alex Williamson <alex.williamson@xxxxxx>, "virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx" <virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx>
Delivery-date: Wed, 18 Jun 2008 13:39:19 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <12130840434082-git-send-email-yamahata@xxxxxxxxxxxxx>
List-help: <mailto:xen-ia64-devel-request@lists.xensource.com?subject=help>
List-id: Discussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>
List-post: <mailto:xen-ia64-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=unsubscribe>
References: <12130840433561-git-send-email-yamahata@xxxxxxxxxxxxx> <12130840434082-git-send-email-yamahata@xxxxxxxxxxxxx>
Sender: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcjKzpvzMGKW3GjTRzmmMpBhajTCSwGsf1xA
Thread-topic: [PATCH 09/27] ia64/xen: implement the arch specific part of xencomm.
> On ia64/xen, pointer argument for the hypercall is passed
> by pseudo physical address (guest phsysical address.)
s/phsysical/physical/

> So it is necessary to convert virtual address into pseudo physical
> address rigth before issuing hypercall. The frame work is called
s/rigth/right/



+#ifdef HAVE_XEN_PLATFORM_COMPAT_H
+#include <xen/platform-compat.h>
+#endif

What is this for?  This patch series doesn't make this file.


+static unsigned long kernel_start_pa;
+
+void
+xencomm_initialize(void)
+{
+       kernel_start_pa = KERNEL_START - ia64_tpa(KERNEL_START);
+}

"kernel_start_pa" is an unhelpful name ... this variable doesn't
contain the starting physical address (which is what the name
sounds like).  Perhaps "kernel_virtual_offset" is better?


+       if (vaddr > TASK_SIZE) {
+               /* kernel address */
+               return __pa(vaddr);
+       }

Can this routine ever be given the address of a percpu variable?
This will return the wrong value if someone does.

+#define is_kernel_addr(x)                                      \
+       ((PAGE_OFFSET <= (x) &&                                 \
+         (x) < (PAGE_OFFSET + (1UL << IA64_MAX_PHYS_BITS))) || \
+        (KERNEL_START <= (x) &&                                \
+         (x) < KERNEL_START + KERNEL_TR_PAGE_SIZE))

Misleading name.  What does it consider a "kernel_addr"? Just
region 7 (up to physical address limit) and the piece of region
5 that is mapped by itr[0]/dtr[0].  Preferebly pick a better name
or add a comment here saying what this is testing for.

-Tony

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

<Prev in Thread] Current Thread [Next in Thread>