* [PATCH 1/3] xen: Move manage.c to drivers/xen for ia64/xen support.
2008-04-22 7:00 [PATCH 0/3] xen: more portability patches Isaku Yamahata
@ 2008-04-22 7:00 ` Isaku Yamahata
2008-04-24 0:00 ` Jeremy Fitzhardinge
2008-04-22 7:00 ` [PATCH 2/3] xen: add missing definitions in include/xen/interface/memory.h which ia64/xen needs Isaku Yamahata
` (2 subsequent siblings)
3 siblings, 1 reply; 6+ messages in thread
From: Isaku Yamahata @ 2008-04-22 7:00 UTC (permalink / raw)
To: jeremy; +Cc: linux-kernel, virtualization, xen-ia64-devel, eddie.dong,
yamahata
move arch/x86/xen/manage.c under drivers/xen/to share codes
with x86 and ia64.
ia64/xen also uses manage.c
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
---
arch/x86/xen/Makefile | 2 +-
drivers/xen/Makefile | 2 +-
{arch/x86 => drivers}/xen/manage.c | 0
3 files changed, 2 insertions(+), 2 deletions(-)
rename {arch/x86 => drivers}/xen/manage.c (100%)
diff --git a/arch/x86/xen/Makefile b/arch/x86/xen/Makefile
index 3d8df98..40b119b 100644
--- a/arch/x86/xen/Makefile
+++ b/arch/x86/xen/Makefile
@@ -1,4 +1,4 @@
obj-y := enlighten.o setup.o multicalls.o mmu.o \
- time.o manage.o xen-asm.o grant-table.o
+ time.o xen-asm.o grant-table.o
obj-$(CONFIG_SMP) += smp.o
diff --git a/drivers/xen/Makefile b/drivers/xen/Makefile
index 37af04f..363286c 100644
--- a/drivers/xen/Makefile
+++ b/drivers/xen/Makefile
@@ -1,4 +1,4 @@
-obj-y += grant-table.o features.o events.o
+obj-y += grant-table.o features.o events.o manage.o
obj-y += xenbus/
obj-$(CONFIG_XEN_XENCOMM) += xencomm.o
obj-$(CONFIG_XEN_BALLOON) += balloon.o
diff --git a/arch/x86/xen/manage.c b/drivers/xen/manage.c
similarity index 100%
rename from arch/x86/xen/manage.c
rename to drivers/xen/manage.c
--
1.5.3
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH 1/3] xen: Move manage.c to drivers/xen for ia64/xen support.
2008-04-22 7:00 ` [PATCH 1/3] xen: Move manage.c to drivers/xen for ia64/xen support Isaku Yamahata
@ 2008-04-24 0:00 ` Jeremy Fitzhardinge
0 siblings, 0 replies; 6+ messages in thread
From: Jeremy Fitzhardinge @ 2008-04-24 0:00 UTC (permalink / raw)
To: Isaku Yamahata; +Cc: linux-kernel, virtualization, xen-ia64-devel, eddie.dong
Isaku Yamahata wrote:
> move arch/x86/xen/manage.c under drivers/xen/to share codes
> with x86 and ia64.
> ia64/xen also uses manage.c
>
Hm, I've got patches to add suspend/resume to manage.c. I guess they're
going to be at least partially arch-specific. Well, no problem to split
those out.
J
> Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
> ---
> arch/x86/xen/Makefile | 2 +-
> drivers/xen/Makefile | 2 +-
> {arch/x86 => drivers}/xen/manage.c | 0
> 3 files changed, 2 insertions(+), 2 deletions(-)
> rename {arch/x86 => drivers}/xen/manage.c (100%)
>
> diff --git a/arch/x86/xen/Makefile b/arch/x86/xen/Makefile
> index 3d8df98..40b119b 100644
> --- a/arch/x86/xen/Makefile
> +++ b/arch/x86/xen/Makefile
> @@ -1,4 +1,4 @@
> obj-y := enlighten.o setup.o multicalls.o mmu.o \
> - time.o manage.o xen-asm.o grant-table.o
> + time.o xen-asm.o grant-table.o
>
> obj-$(CONFIG_SMP) += smp.o
> diff --git a/drivers/xen/Makefile b/drivers/xen/Makefile
> index 37af04f..363286c 100644
> --- a/drivers/xen/Makefile
> +++ b/drivers/xen/Makefile
> @@ -1,4 +1,4 @@
> -obj-y += grant-table.o features.o events.o
> +obj-y += grant-table.o features.o events.o manage.o
> obj-y += xenbus/
> obj-$(CONFIG_XEN_XENCOMM) += xencomm.o
> obj-$(CONFIG_XEN_BALLOON) += balloon.o
> diff --git a/arch/x86/xen/manage.c b/drivers/xen/manage.c
> similarity index 100%
> rename from arch/x86/xen/manage.c
> rename to drivers/xen/manage.c
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 2/3] xen: add missing definitions in include/xen/interface/memory.h which ia64/xen needs
2008-04-22 7:00 [PATCH 0/3] xen: more portability patches Isaku Yamahata
2008-04-22 7:00 ` [PATCH 1/3] xen: Move manage.c to drivers/xen for ia64/xen support Isaku Yamahata
@ 2008-04-22 7:00 ` Isaku Yamahata
2008-04-22 7:00 ` [PATCH 3/3] xen: compilation fix to balloon driver for ia64 support Isaku Yamahata
2008-04-26 8:42 ` [PATCH 0/3] xen: more portability patches Jeremy Fitzhardinge
3 siblings, 0 replies; 6+ messages in thread
From: Isaku Yamahata @ 2008-04-22 7:00 UTC (permalink / raw)
To: jeremy; +Cc: linux-kernel, virtualization, xen-ia64-devel, eddie.dong,
yamahata
Add xen handles realted definitions for xen memory which ia64/xen needs.
Pointer argumsnts for ia64/xen hypercall are passed in pseudo physical
address (guest physical address) so that it is required to convert
guest kernel virtual address into pseudo physical address.
The xen guest handle represents such arguments.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
---
include/xen/interface/memory.h | 12 ++++++++----
1 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
index da76846..af36ead 100644
--- a/include/xen/interface/memory.h
+++ b/include/xen/interface/memory.h
@@ -29,7 +29,7 @@ struct xen_memory_reservation {
* OUT: GMFN bases of extents that were allocated
* (NB. This command also updates the mach_to_phys translation table)
*/
- ulong extent_start;
+ GUEST_HANDLE(ulong) extent_start;
/* Number of extents, and size/alignment of each (2^extent_order pages). */
unsigned long nr_extents;
@@ -50,6 +50,7 @@ struct xen_memory_reservation {
domid_t domid;
};
+DEFINE_GUEST_HANDLE_STRUCT(xen_memory_reservation);
/*
* Returns the maximum machine frame number of mapped RAM in this system.
@@ -85,7 +86,7 @@ struct xen_machphys_mfn_list {
* any large discontiguities in the machine address space, 2MB gaps in
* the machphys table will be represented by an MFN base of zero.
*/
- ulong extent_start;
+ GUEST_HANDLE(ulong) extent_start;
/*
* Number of extents written to the above array. This will be smaller
@@ -93,6 +94,7 @@ struct xen_machphys_mfn_list {
*/
unsigned int nr_extents;
};
+DEFINE_GUEST_HANDLE_STRUCT(xen_machphys_mfn_list);
/*
* Sets the GPFN at which a particular page appears in the specified guest's
@@ -115,6 +117,7 @@ struct xen_add_to_physmap {
/* GPFN where the source mapping page should appear. */
unsigned long gpfn;
};
+DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap);
/*
* Translates a list of domain-specific GPFNs into MFNs. Returns a -ve error
@@ -129,13 +132,14 @@ struct xen_translate_gpfn_list {
unsigned long nr_gpfns;
/* List of GPFNs to translate. */
- ulong gpfn_list;
+ GUEST_HANDLE(ulong) gpfn_list;
/*
* Output list to contain MFN translations. May be the same as the input
* list (in which case each input GPFN is overwritten with the output MFN).
*/
- ulong mfn_list;
+ GUEST_HANDLE(ulong) mfn_list;
};
+DEFINE_GUEST_HANDLE_STRUCT(xen_translate_gpfn_list);
#endif /* __XEN_PUBLIC_MEMORY_H__ */
--
1.5.3
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH 3/3] xen: compilation fix to balloon driver for ia64 support.
2008-04-22 7:00 [PATCH 0/3] xen: more portability patches Isaku Yamahata
2008-04-22 7:00 ` [PATCH 1/3] xen: Move manage.c to drivers/xen for ia64/xen support Isaku Yamahata
2008-04-22 7:00 ` [PATCH 2/3] xen: add missing definitions in include/xen/interface/memory.h which ia64/xen needs Isaku Yamahata
@ 2008-04-22 7:00 ` Isaku Yamahata
2008-04-26 8:42 ` [PATCH 0/3] xen: more portability patches Jeremy Fitzhardinge
3 siblings, 0 replies; 6+ messages in thread
From: Isaku Yamahata @ 2008-04-22 7:00 UTC (permalink / raw)
To: jeremy; +Cc: linux-kernel, virtualization, xen-ia64-devel, eddie.dong,
yamahata
fix compilation error of ballon driver on ia64.
extent_start member is pointer argument. On x86 pointer argument for
xen hypercall is passed as virtual address.
On the other hand, ia64 and ppc, pointer argument is passed in pseudo
physical address. (guest physicall address.)
So they must be passed as handle and convert right before issuing hypercall.
CC drivers/xen/balloon.o
linux-2.6-x86/drivers/xen/balloon.c: In function 'increase_reservation':
linux-2.6-x86/drivers/xen/balloon.c:228: error: incompatible types in assignment
linux-2.6-x86/drivers/xen/balloon.c: In function 'decrease_reservation':
linux-2.6-x86/drivers/xen/balloon.c:324: error: incompatible types in assignment
linux-2.6-x86/drivers/xen/balloon.c: In function 'dealloc_pte_fn':
linux-2.6-x86/drivers/xen/balloon.c:486: error: incompatible types in assignment
linux-2.6-x86/drivers/xen/balloon.c: In function 'alloc_empty_pages_and_pagevec':
linux-2.6-x86/drivers/xen/balloon.c:522: error: incompatible types in assignment
make[2]: *** [drivers/xen/balloon.o] Error 1
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
---
drivers/xen/balloon.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
index ab25ba6..097ba02 100644
--- a/drivers/xen/balloon.c
+++ b/drivers/xen/balloon.c
@@ -225,7 +225,7 @@ static int increase_reservation(unsigned long nr_pages)
page = balloon_next_page(page);
}
- reservation.extent_start = (unsigned long)frame_list;
+ set_xen_guest_handle(reservation.extent_start, frame_list);
reservation.nr_extents = nr_pages;
rc = HYPERVISOR_memory_op(
XENMEM_populate_physmap, &reservation);
@@ -321,7 +321,7 @@ static int decrease_reservation(unsigned long nr_pages)
balloon_append(pfn_to_page(pfn));
}
- reservation.extent_start = (unsigned long)frame_list;
+ set_xen_guest_handle(reservation.extent_start, frame_list);
reservation.nr_extents = nr_pages;
ret = HYPERVISOR_memory_op(XENMEM_decrease_reservation, &reservation);
BUG_ON(ret != nr_pages);
@@ -483,7 +483,7 @@ static int dealloc_pte_fn(
.extent_order = 0,
.domid = DOMID_SELF
};
- reservation.extent_start = (unsigned long)&mfn;
+ set_xen_guest_handle(reservation.extent_start, &mfn);
set_pte_at(&init_mm, addr, pte, __pte_ma(0ull));
set_phys_to_machine(__pa(addr) >> PAGE_SHIFT, INVALID_P2M_ENTRY);
ret = HYPERVISOR_memory_op(XENMEM_decrease_reservation, &reservation);
@@ -519,7 +519,7 @@ static struct page **alloc_empty_pages_and_pagevec(int nr_pages)
.extent_order = 0,
.domid = DOMID_SELF
};
- reservation.extent_start = (unsigned long)&gmfn;
+ set_xen_guest_handle(reservation.extent_start, &gmfn);
ret = HYPERVISOR_memory_op(XENMEM_decrease_reservation,
&reservation);
if (ret == 1)
--
1.5.3
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 0/3] xen: more portability patches
2008-04-22 7:00 [PATCH 0/3] xen: more portability patches Isaku Yamahata
` (2 preceding siblings ...)
2008-04-22 7:00 ` [PATCH 3/3] xen: compilation fix to balloon driver for ia64 support Isaku Yamahata
@ 2008-04-26 8:42 ` Jeremy Fitzhardinge
3 siblings, 0 replies; 6+ messages in thread
From: Jeremy Fitzhardinge @ 2008-04-26 8:42 UTC (permalink / raw)
To: Isaku Yamahata; +Cc: linux-kernel, virtualization, xen-ia64-devel, eddie.dong
Isaku Yamahata wrote:
> Hi Jeremy.
> Here are the 3 patches for ia64/xen support.
> The first one is just to move manage.c under drivers/xen.
> This is trivial.
>
> The second and third ones are for compilation fix on ia64.
> You may want to postpone those 2 patches to make your merge task
> easy as you said before.
>
I've put these into my queue. I'll submit them to Ingo when the merge
window settles down.
J
^ permalink raw reply [flat|nested] 6+ messages in thread