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

Re: [Xen-devel] Memory Page Sharing on Xen 4.0.1

To: Sebastian Biedermann <biedermann@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: [Xen-devel] Memory Page Sharing on Xen 4.0.1
From: veerasena reddy <veeruyours@xxxxxxxxx>
Date: Wed, 29 Jun 2011 21:26:31 +0530
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Wed, 29 Jun 2011 08:57:38 -0700
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=V4phC93NuXmnOsBmray/1rUbmA9u/IjAcY3vh/s4rMQ=; b=mcB0urfxom5zAVDJlUuAFDjAxGKDKhEfKc+R/Hh40NJ4p/dacz1Py3JZziPOobjAjd GLHFXfIo6W8MASCoakP1I4B9zsi6dp92fUEUmG3qFhNkZRDEO9vyO4VAdHDgu2JvOvFs mWHQCDfcozqJZ7TRtp+j0UZ3hIODlMAb1WmWE=
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <4E0B39A4.6060004@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
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>
References: <4E09C708.1010804@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <BANLkTinaYU9huYVQ9MCPVKeOy_kVkxHyhg@xxxxxxxxxxxxxx> <4E0AFA5E.3040109@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <BANLkTik6fYGe65JtLgrZQ6LtGemTSQSkSA@xxxxxxxxxxxxxx> <4E0B39A4.6060004@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Hi,

I think you have followed the older (which is complicated) procedure "How to compile Xen pv drivers for Linux HVM on a modern kernel" in the link.

Please try the latest write-up "Linux PV drivers for Xen HVM – building normally within an arbitrary kernel tree" in the same webpage. Here is the separate link to that:
http://blog.alex.org.uk/2010/05/09/linux-pv-drivers-for-xen-hvm-building-normally-within-an-arbitrary-kernel-tree/
Go the line "To install, simply apply this patch to your kernel build tree, and build as normal." and click on "this patch" highlighted.
This patch adds drivers/xenpvdrivers/ and include/xenpvdriers/ directories to your kernel sources.

Regarding configuration file:
Use the config file of ubuntu-10.04 default kernel "/boot/config-xx.yy.zz" as the base and do menuconfig, disable CONFIG_XEN and enable CONFIG_XEN_PVDRIVERS as module (CONFIG_XEN_PVDRIVERS=m)
# download 2.6.32.11 kernel and the xen_pvdriver patch from the above link "pvdrivers.20100509-1955.patch"
# tar zxf 2.6.32.11.tar.gz
# cd linux-2.6.32.11
# patch -p1 < path_to_patch_downloaded /* apply the patch */
   verify whether drivers/xenpvdrivers and include/xenpvdrivers created or not after the patch?
# cp /boot/config-<ubuntu_10_04_kernel_version> .config
# make menuconfig
   disable PV Guest support
   Processor type and features  ---> [] Paravirtualized guest support  --->
   This internally disables CONFIG_XEN
# enable CONFIG_XEN_PVDRIVERS option
    Device Drivers  --->
    <M> Xen pvdrivers
      [*]   Scrub pages before returning them to system
# go ahead with rest of the build/install procedure.

Regards,
VSR.

On Wed, Jun 29, 2011 at 8:11 PM, Sebastian Biedermann <biedermann@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
Hi!

I will explain that a bit further...

dom0: Ubuntu 10.04-2 (amd64) kernel 2.6.32.39 running Xen 4.0.1 (amd64)

    -> could easily compile and start dom0_working

domU: Ubuntu 10.04 (i386)
   
    -> downloading kernel sources of kernel 2.6.32.11
    -> patching with "pvdrivers-0.01/xenify.sh xen-patches-2.6.32-1.tar.bz2" (works perfect)
    -> copy the existing /boot/config-2.6.38.8 to this kernel sources (thats correct?)
    -> make menuconfig and just save & exit

If I now look at the .config of the  2.6.32.11 kernel, there is no CONFIG_XEN_PVDRIVER option

    -> make localmodconfig
    -> make -j 9
    -> cd pvdrivers-0.01 and ./build.sh (works)

Then I install the new compiled kernel with "make install modules_install" and I restart.
Now I have booted the kernel 2.6.32.11 in a HVM guest machine including additionally the pv modules, is that true?

Finally, the problem ist, that I cannot compile the domU_working,
because there are no pvxendrivers header files on the system.

I think I forgot one step or I have a general problem understanding the whole process.
Where can I get the xen header Files?

It tried it also with kernel 2.6.38 and Ubuntu 11.04, but I cloud not ./built the pvdrivers
because the compilation process termintated with
"Cannot compile, Error: linux-2.6.38.8/include/linux/autoconf.h: missing".

Thank you!
Se


Am 29.06.2011 13:20, schrieb veerasena reddy:
I too used the same link (Linux PV drivers for Xen HVM – building normally within an arbitrary kernel tree)

Coulple of questions:
Could you please check whether your sources have include/xenpvdrivers after applying the patch.
Have you disabled CONFIG_XEN and enabled CONFIG_XEN_PVDRIVERS as module (CONFIG_XEN_PVDRIVERS=m)
Also, could you please share the error log.

Thanks & Regards,
VSR.
On Wed, Jun 29, 2011 at 3:41 PM, Sebastian Biedermann <biedermann@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
Awesome, thank you very much!

dom0 source compiles without problems!
domU source cannot find the xen headers:

#include <xenpvdrivers/evtchn.h>
#include <xenpvdrivers/xenbus.h>
#include <xenpvdrivers/interface/io/netif.h>
#include <xenpvdrivers/interface/memory.h>
#include <xenpvdrivers/balloon.h>
#include <xenpvdrivers/asm/maddr.h>

I compiled in the PV HVM modules using this tutorial:
http://blog.alex.org.uk/?s=xen

And built them into the guest kernel, it runs fine, but I dont have the right headers.

Can you tell me which xenpvdrivers headers you are using and where they come from?
Because e.g. I cannot find the asm/maddr.h in the xen sources.. or anywhere else

Tank you !


Am 28.06.2011 15:24, schrieb veerasena reddy:
Hi,

I tried the same links but had to make some changes to get it working.
Please find attached the sample working files for sharing a domU HVM page to dom0.
It has been tested xen-4.0.1 and HVM guest running ubuntu 10.10 with kernel version 2.6.35.9 (from kernel.org) compiled with CONFIG_XEN disabled and PVHVM drivers compiled in as modules.

Procedure:
1. Set LINUX_ROOT appropriately in Makefiles of dom0 and domU.
2. Set remote domain in dom0 appropriately "info.remoteDomain = <domU_domain_id>"
3. Compile modules dom0 and domU respectively on dom0 and domU guest.
4. Load module on domU first.
    # insmod ./domu_share.ko
5. do "dmesg" on domU and note down the grant reference number
    [ 1293.316240]  gref = 770   <<<--- this is the grant reference number
6. now load the module on dom0 by passing grant reference number as module param
    # insmod ./dom0_share.ko gref=770
7. do dmesg on dom0
======== dmesg on dom0 =====
    xen: dom0: init_module with gref = 770
xen: dom0: shared_page = 269f4000, handle = 9, status = 0
Bytes in page aseem sethi
XEN: dom: end init_module
======

Thanks & Regards,
VSR.

On Tue, Jun 28, 2011 at 5:50 PM, Sebastian Biedermann <biedermann@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
Dear List,

I´m trying to figure out memory page sharing using HVM on Xen 4.0.1,
but I´m not really able to find some useful information or sources about this issue.

I just found two links porviding these sources:

http://knol.google.com/k/learning-grant-tables
http://blog.chinaunix.net/space.php?uid=20286427&do=blog&id=109114

Both are not working.. I think they are made for an older version of xen.

Additionally I thought about checking the code of:

http://kyukhin.dyndns.org/lxr/http/source/drivers/xen/grant-table.c

..which is located in the Xen source, but that´s very complicated and I dont know what I need
for a simple page exchange using own programmed standalone tools between two running domains.

Can anyone help me by sending some useful links or can anyone give me a hint where to start?

Thank you a lot!
-- 
Se

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




-- 
Sebastian Biedermann
Security Engineering Group
Technische Universität Darmstadt


This email and any files transmitted with it are confidential 
and intended solely for the use of the individual or entity 
to whom they are addressed. If you have received this email 
in error please notify the sender.



-- 
Sebastian Biedermann
Security Engineering Group
Technische Universität Darmstadt
biedermann@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

This email and any files transmitted with it are confidential 
and intended solely for the use of the individual or entity 
to whom they are addressed. If you have received this email 
in error please notify the sender.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
<Prev in Thread] Current Thread [Next in Thread>