xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] libxl: Support linux-stubdom in libxl
@ 2011-05-31 13:54 Jiageng Yu
  2011-05-31 14:38 ` Stefano Stabellini
  2011-06-01 12:58 ` Ian Campbell
  0 siblings, 2 replies; 8+ messages in thread
From: Jiageng Yu @ 2011-05-31 13:54 UTC (permalink / raw)
  To: Stefano Stabellini, Samuel Thibault,
	Xen-devel@lists.xensource.com

author jiageng_yu <yujiageng734@gmail.com>
Tue, 31 May 2011 02:18:01 +0000 (03:18 +0100)
committer jiageng_yu <yujiageng734@gmail.com>
ue, 31 May 2011 02:18:01 +0000 (03:18 +0100)
commit 179b4167dd9e86a06a700d60e277c4477f0c06ef
tree 4e4c8492b480e08d9122abcb37aca52ae5650786 tree | snapshot (tar.gz zip)
parent cf4866b9161a724e4b2c366da73de271cf7ef348 commit | diff

libxl: Support linux-stubdom in libxl

Add linux-stubdom support in libxl. Users could start a linux-stubdom
throuh the following options:
device_model_override = 'linux-stubdom'
device_model_stubdomain_override=1

linux-stubdom project: http://repo.or.cz/w/linux-based-stubdoms.git


diff -r 37c77bacb52a tools/libxl/libxl_dm.c
--- a/tools/libxl/libxl_dm.c	Mon May 23 17:38:28 2011 +0100
+++ b/tools/libxl/libxl_dm.c	Tue May 31 02:41:59 2011 +0100
@@ -556,6 +556,14 @@
     return 0;
 }

+inline int libxl__is_linux_stubdom(libxl_device_model_info *info)
+{
+	if(!strncmp(info->device_model,"linux-stubdom",strlen(info->device_model)))
+		return 1;
+	else
+		return 0;
+};
+
 static int libxl__create_stubdom(libxl__gc *gc,
                                  libxl_device_model_info *info,
                                  libxl_device_disk *disks, int num_disks,
@@ -581,7 +589,12 @@
         goto out;
     }

-    args = libxl__build_device_model_args(gc, "stubdom-dm", info,
+	if(libxl__is_linux_stubdom(info))
+		args = libxl__build_device_model_args(gc, "linux-stubdom", info,
+                                          disks, num_disks,
+                                          vifs, num_vifs);
+	else
+		args = libxl__build_device_model_args(gc, "stubdom-dm", info,
                                           disks, num_disks,
                                           vifs, num_vifs);
     if (!args) {
@@ -599,13 +612,22 @@
     b_info.max_vcpus = 1;
     b_info.max_memkb = 32 * 1024;
     b_info.target_memkb = b_info.max_memkb;
-    b_info.u.pv.kernel.path = libxl__abs_path(gc, "ioemu-stubdom.gz",
-                                              libxl_xenfirmwaredir_path());
     b_info.u.pv.cmdline = libxl__sprintf(gc, " -d %d", info->domid);
-    b_info.u.pv.ramdisk.path = "";
     b_info.u.pv.features = "";
     b_info.hvm = 0;

+	if(libxl__is_linux_stubdom(info)){
+		b_info.u.pv.kernel.path = libxl__abs_path(gc, "vmlinuz-ioemu",
+						libxl_xenfirmwaredir_path());
+		b_info.u.pv.ramdisk.path = libxl__abs_path(gc, "ramdisk-ioemu",
+						libxl_xenfirmwaredir_path());
+	}
+	else{
+		b_info.u.pv.kernel.path = libxl__abs_path(gc, "ioemu-stubdom.gz",
+						libxl_xenfirmwaredir_path());
+		b_info.u.pv.ramdisk.path = "";
+	}
+
     /* fixme: this function can leak the stubdom if it fails */

     ret = libxl__domain_make(gc, &c_info, &domid);
diff -r 37c77bacb52a tools/libxl/libxl_internal.h
--- a/tools/libxl/libxl_internal.h	Mon May 23 17:38:28 2011 +0100
+++ b/tools/libxl/libxl_internal.h	Tue May 31 02:41:59 2011 +0100
@@ -249,6 +249,7 @@
                                 libxl__domain_build_state *state);

 /* for device model creation */
+_hidden int libxl__is_linux_stubdom(libxl_device_model_info *info);
 _hidden const char *libxl__domain_device_model(libxl__gc *gc,
                                                libxl_device_model_info *info);
 _hidden int libxl__create_device_model(libxl__gc *gc,
diff -r 37c77bacb52a tools/libxl/xl_cmdimpl.c
--- a/tools/libxl/xl_cmdimpl.c	Mon May 23 17:38:28 2011 +0100
+++ b/tools/libxl/xl_cmdimpl.c	Tue May 31 02:41:59 2011 +0100
@@ -1087,7 +1087,7 @@
             fprintf(stderr,
                     "WARNING: ignoring device_model directive.\n"
                     "WARNING: Use \"device_model_override\" instead
if you really want a non-default device_model\n");
-            if (strstr(buf, "stubdom-dm"))
+            if (strstr(buf, "stubdom-dm") || strstr(buf, "linux-stubdom"))
                 fprintf(stderr, "WARNING: Or use
\"device_model_stubdomain_override\" if you want to enable
stubdomains\n");
         }

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

* Re: [PATCH] libxl: Support linux-stubdom in libxl
  2011-05-31 13:54 [PATCH] libxl: Support linux-stubdom in libxl Jiageng Yu
@ 2011-05-31 14:38 ` Stefano Stabellini
  2011-06-01 12:58 ` Ian Campbell
  1 sibling, 0 replies; 8+ messages in thread
From: Stefano Stabellini @ 2011-05-31 14:38 UTC (permalink / raw)
  To: Jiageng Yu
  Cc: Samuel Thibault, Xen-devel@lists.xensource.com,
	Stefano Stabellini

On Tue, 31 May 2011, Jiageng Yu wrote:
> author jiageng_yu <yujiageng734@gmail.com>
> Tue, 31 May 2011 02:18:01 +0000 (03:18 +0100)
> committer jiageng_yu <yujiageng734@gmail.com>
> ue, 31 May 2011 02:18:01 +0000 (03:18 +0100)
> commit 179b4167dd9e86a06a700d60e277c4477f0c06ef
> tree 4e4c8492b480e08d9122abcb37aca52ae5650786 tree | snapshot (tar.gz zip)
> parent cf4866b9161a724e4b2c366da73de271cf7ef348 commit | diff
> 
> libxl: Support linux-stubdom in libxl
> 
> Add linux-stubdom support in libxl. Users could start a linux-stubdom
> throuh the following options:
> device_model_override = 'linux-stubdom'
> device_model_stubdomain_override=1
> 

I would avoid using device_model_override to select linux stubdoms:
device_model_override is used to specify a path to a qemu binary and it
is better to keep it that way.
I would rather introduce a new boolean config option, for example
device_model_linux_stubdomain_override.


> linux-stubdom project: http://repo.or.cz/w/linux-based-stubdoms.git
> 
> 
> diff -r 37c77bacb52a tools/libxl/libxl_dm.c
> --- a/tools/libxl/libxl_dm.c	Mon May 23 17:38:28 2011 +0100
> +++ b/tools/libxl/libxl_dm.c	Tue May 31 02:41:59 2011 +0100
> @@ -556,6 +556,14 @@
>      return 0;
>  }
> 
> +inline int libxl__is_linux_stubdom(libxl_device_model_info *info)
> +{
> +	if(!strncmp(info->device_model,"linux-stubdom",strlen(info->device_model)))
> +		return 1;
> +	else
> +		return 0;
> +};
> +

Same as before: it is better to avoid parsing the device model string
here. I would rather change device_model_stubdomain to be an enum so
that it can specify: "no stubdom", "MiniOS stubdom", "Linux stubdom".

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

* Re: [PATCH] libxl: Support linux-stubdom in libxl
  2011-05-31 13:54 [PATCH] libxl: Support linux-stubdom in libxl Jiageng Yu
  2011-05-31 14:38 ` Stefano Stabellini
@ 2011-06-01 12:58 ` Ian Campbell
  2011-06-02 13:40   ` Jiageng Yu
  1 sibling, 1 reply; 8+ messages in thread
From: Ian Campbell @ 2011-06-01 12:58 UTC (permalink / raw)
  To: Jiageng Yu
  Cc: Samuel Thibault, Xen-devel@lists.xensource.com,
	Stefano Stabellini

On Tue, 2011-05-31 at 14:54 +0100, Jiageng Yu wrote:
> @@ -581,7 +589,12 @@
>          goto out;
>      }
> 
> -    args = libxl__build_device_model_args(gc, "stubdom-dm", info,
> +	if(libxl__is_linux_stubdom(info))

Please try and match the indentation level (incl tab vs spaces) of the
surrounding code.

You should probably checkout tools/libxl/CODING_STYLE.

Ian.

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

* Re: [PATCH] libxl: Support linux-stubdom in libxl
  2011-06-01 12:58 ` Ian Campbell
@ 2011-06-02 13:40   ` Jiageng Yu
  2011-06-02 14:25     ` Ian Campbell
  0 siblings, 1 reply; 8+ messages in thread
From: Jiageng Yu @ 2011-06-02 13:40 UTC (permalink / raw)
  To: Ian Campbell
  Cc: Samuel Thibault, Xen-devel@lists.xensource.com,
	Stefano Stabellini


[-- Attachment #1.1: Type: text/plain, Size: 5213 bytes --]

That is new patch for libxl.


diff -r 37c77bacb52a tools/libxl/libxl.c
--- a/tools/libxl/libxl.c    Mon May 23 17:38:28 2011 +0100
+++ b/tools/libxl/libxl.c    Wed Jun 01 03:24:57 2011 +0100
@@ -2078,7 +2078,8 @@
     *need_memkb = b_info->target_memkb;
     if (b_info->hvm) {
         *need_memkb += b_info->shadow_memkb + LIBXL_HVM_EXTRA_MEMORY;
-        if (dm_info->device_model_stubdomain)
+       if (dm_info->device_model_stubdomain ||
+                dm_info->device_model_linux_stubdomain)
             *need_memkb += 32 * 1024;
     } else
         *need_memkb += b_info->shadow_memkb + LIBXL_PV_EXTRA_MEMORY;
diff -r 37c77bacb52a tools/libxl/libxl.idl
--- a/tools/libxl/libxl.idl    Mon May 23 17:38:28 2011 +0100
+++ b/tools/libxl/libxl.idl    Wed Jun 01 03:24:57 2011 +0100
@@ -196,6 +196,7 @@
     ("dom_name",         string),
     ("device_model_version", libxl_device_model_version),
     ("device_model_stubdomain", bool),
+   ("device_model_linux_stubdomain", bool),
     ("device_model",     string, False, "if you set this you must set
device_model_version too"),
     ("saved_state",      string),
     ("type",             libxl_domain_type),
diff -r 37c77bacb52a tools/libxl/libxl_create.c
--- a/tools/libxl/libxl_create.c    Mon May 23 17:38:28 2011 +0100
+++ b/tools/libxl/libxl_create.c    Wed Jun 01 03:24:57 2011 +0100
@@ -110,6 +110,7 @@
     dm_info->dom_name = strdup(c_info->name);
     dm_info->device_model_version =
LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL;
     dm_info->device_model_stubdomain = false;
+   dm_info->device_model_linux_stubdomain = false;
     dm_info->device_model = NULL;
     dm_info->target_ram = libxl__sizekb_to_mb(b_info->target_memkb);
     dm_info->videoram = libxl__sizekb_to_mb(b_info->video_memkb);

diff -r 37c77bacb52a tools/libxl/libxl_dm.c
--- a/tools/libxl/libxl_dm.c    Mon May 23 17:38:28 2011 +0100
+++ b/tools/libxl/libxl_dm.c    Wed Jun 01 03:24:57 2011 +0100
@@ -44,7 +44,8 @@
     libxl_ctx *ctx = libxl__gc_owner(gc);
     const char *dm;

-    if (info->device_model_stubdomain)
+   if (info->device_model_stubdomain ||
+           info->device_model_linux_stubdomain)
         return NULL;

     if (info->device_model) {
@@ -571,7 +572,7 @@
     libxl_domain_build_info b_info;
     libxl__domain_build_state state;
     uint32_t domid;
-    char **args;
+   char **args=NULL;
     struct xs_permissions perm[2];
     xs_transaction_t t;
     libxl__device_model_starting *dm_starting = 0;
@@ -581,7 +582,12 @@

         goto out;
     }

-    args = libxl__build_device_model_args(gc, "stubdom-dm", info,
+   if(info->device_model_stubdomain)
+        args = libxl__build_device_model_args(gc, "stubdom-dm", info,
+                                          disks, num_disks,
+                                          vifs, num_vifs);
+   if(info->device_model_linux_stubdomain)
+        args = libxl__build_device_model_args(gc, "linux-stubdom", info,

                                           disks, num_disks,
                                           vifs, num_vifs);
     if (!args) {
@@ -599,13 +605,22 @@

     b_info.max_vcpus = 1;
     b_info.max_memkb = 32 * 1024;
     b_info.target_memkb = b_info.max_memkb;
-    b_info.u.pv.kernel.path = libxl__abs_path(gc, "ioemu-stubdom.gz",
-                                              libxl_xenfirmwaredir_path());
     b_info.u.pv.cmdline = libxl__sprintf(gc, " -d %d", info->domid);
-    b_info.u.pv.ramdisk.path = "";
     b_info.u.pv.features = "";
     b_info.hvm = 0;

+   if(info->device_model_linux_stubdomain){
+         b_info.u.pv.kernel.path = libxl__abs_path(gc, "vmlinuz-ioemu",
+                                             libxl_xenfirmwaredir_path());
+         b_info.u.pv.ramdisk.path = libxl__abs_path(gc, "ramdisk-ioemu",
+                                             libxl_xenfirmwaredir_path());
+   } else if(info->device_model_stubdomain){
+         b_info.u.pv.kernel.path = libxl__abs_path(gc, "ioemu-stubdom.gz",
+                                             libxl_xenfirmwaredir_path());
+         b_info.u.pv.ramdisk.path = "";
+     }
+
     /* fixme: this function can leak the stubdom if it fails */

     ret = libxl__domain_make(gc, &c_info, &domid);
@@ -745,7 +760,8 @@
     char **pass_stuff;
     const char *dm;

-    if (info->device_model_stubdomain) {
+   if (info->device_model_stubdomain ||
+            info->device_model_linux_stubdomain) {
         libxl_device_vfb vfb;
         libxl_device_vkb vkb;


diff -r 37c77bacb52a tools/libxl/xl_cmdimpl.c
--- a/tools/libxl/xl_cmdimpl.c    Mon May 23 17:38:28 2011 +0100
+++ b/tools/libxl/xl_cmdimpl.c    Wed Jun 01 03:24:57 2011 +0100
@@ -1109,6 +1109,8 @@
             fprintf(stderr, "WARNING: device model override given without
specific DM version\n");
         if (!xlu_cfg_get_long (config, "device_model_stubdomain_override",
&l))
             dm_info->device_model_stubdomain = l;
+       if (!xlu_cfg_get_long (config,
"device_model_linux_stubdomain_override", &l))
+           dm_info->device_model_linux_stubdomain = l;
         if (!xlu_cfg_get_long (config, "stdvga", &l))
             dm_info->stdvga = l;
         if (!xlu_cfg_get_long (config, "vnc", &l))

[-- Attachment #1.2: Type: text/html, Size: 6938 bytes --]

[-- Attachment #2: 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] 8+ messages in thread

* Re: [PATCH] libxl: Support linux-stubdom in libxl
  2011-06-02 13:40   ` Jiageng Yu
@ 2011-06-02 14:25     ` Ian Campbell
  2011-06-02 14:31       ` Stefano Stabellini
  0 siblings, 1 reply; 8+ messages in thread
From: Ian Campbell @ 2011-06-02 14:25 UTC (permalink / raw)
  To: Jiageng Yu
  Cc: Samuel Thibault, Xen-devel@lists.xensource.com,
	Stefano Stabellini

On Thu, 2011-06-02 at 14:40 +0100, Jiageng Yu wrote:
> diff -r 37c77bacb52a tools/libxl/libxl.idl
> --- a/tools/libxl/libxl.idl    Mon May 23 17:38:28 2011 +0100
> +++ b/tools/libxl/libxl.idl    Wed Jun 01 03:24:57 2011 +0100
> @@ -196,6 +196,7 @@
>      ("dom_name",         string),
>      ("device_model_version", libxl_device_model_version),
>      ("device_model_stubdomain", bool),
> +   ("device_model_linux_stubdomain", bool),
>      ("device_model",     string, False, "if you set this you must set device_model_version too"),
>      ("saved_state",      string),
>      ("type",             libxl_domain_type), 

I think what we actually want here is a single device_model_type
Enumeration, values are something like "process", "stub-linux",
"stub-minios", rather than multiple device_model_XXX_stubdom booleans.

I'm not convinced device_model_type is a good name, hopefully someone
can suggest something better. (device_model_mode??)

Ian.

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

* Re: [PATCH] libxl: Support linux-stubdom in libxl
  2011-06-02 14:25     ` Ian Campbell
@ 2011-06-02 14:31       ` Stefano Stabellini
  2011-06-02 14:35         ` Ian Campbell
  0 siblings, 1 reply; 8+ messages in thread
From: Stefano Stabellini @ 2011-06-02 14:31 UTC (permalink / raw)
  To: Ian Campbell
  Cc: Samuel Thibault, Xen-devel@lists.xensource.com, Jiageng Yu,
	Stefano Stabellini

On Thu, 2 Jun 2011, Ian Campbell wrote:
> On Thu, 2011-06-02 at 14:40 +0100, Jiageng Yu wrote:
> > diff -r 37c77bacb52a tools/libxl/libxl.idl
> > --- a/tools/libxl/libxl.idl    Mon May 23 17:38:28 2011 +0100
> > +++ b/tools/libxl/libxl.idl    Wed Jun 01 03:24:57 2011 +0100
> > @@ -196,6 +196,7 @@
> >      ("dom_name",         string),
> >      ("device_model_version", libxl_device_model_version),
> >      ("device_model_stubdomain", bool),
> > +   ("device_model_linux_stubdomain", bool),
> >      ("device_model",     string, False, "if you set this you must set device_model_version too"),
> >      ("saved_state",      string),
> >      ("type",             libxl_domain_type), 
> 
> I think what we actually want here is a single device_model_type
> Enumeration, values are something like "process", "stub-linux",
> "stub-minios", rather than multiple device_model_XXX_stubdom booleans.

indeed


> I'm not convinced device_model_type is a good name, hopefully someone
> can suggest something better. (device_model_mode??)

some suggestions:

1) device_model_class
2) device_model_deployment
3) device_model_instance

I vote for 3)

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

* Re: [PATCH] libxl: Support linux-stubdom in libxl
  2011-06-02 14:31       ` Stefano Stabellini
@ 2011-06-02 14:35         ` Ian Campbell
  2011-06-06 11:56           ` ZhouPeng
  0 siblings, 1 reply; 8+ messages in thread
From: Ian Campbell @ 2011-06-02 14:35 UTC (permalink / raw)
  To: Stefano Stabellini
  Cc: Samuel Thibault, Xen-devel@lists.xensource.com, Jiageng Yu

On Thu, 2011-06-02 at 15:31 +0100, Stefano Stabellini wrote:
> On Thu, 2 Jun 2011, Ian Campbell wrote:
> > On Thu, 2011-06-02 at 14:40 +0100, Jiageng Yu wrote:
> > > diff -r 37c77bacb52a tools/libxl/libxl.idl
> > > --- a/tools/libxl/libxl.idl    Mon May 23 17:38:28 2011 +0100
> > > +++ b/tools/libxl/libxl.idl    Wed Jun 01 03:24:57 2011 +0100
> > > @@ -196,6 +196,7 @@
> > >      ("dom_name",         string),
> > >      ("device_model_version", libxl_device_model_version),
> > >      ("device_model_stubdomain", bool),
> > > +   ("device_model_linux_stubdomain", bool),
> > >      ("device_model",     string, False, "if you set this you must set device_model_version too"),
> > >      ("saved_state",      string),
> > >      ("type",             libxl_domain_type), 
> > 
> > I think what we actually want here is a single device_model_type
> > Enumeration, values are something like "process", "stub-linux",
> > "stub-minios", rather than multiple device_model_XXX_stubdom booleans.
> 
> indeed
> 
> 
> > I'm not convinced device_model_type is a good name, hopefully someone
> > can suggest something better. (device_model_mode??)
> 
> some suggestions:
> 
> 1) device_model_class
> 2) device_model_deployment
> 3) device_model_instance
> 
> I vote for 3)

I don't think deployment or instance has the right meaning here. class
is better but still doesn't feel right.

maybe ..._mode?

</bikeshed>

Ian.

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

* Re: [PATCH] libxl: Support linux-stubdom in libxl
  2011-06-02 14:35         ` Ian Campbell
@ 2011-06-06 11:56           ` ZhouPeng
  0 siblings, 0 replies; 8+ messages in thread
From: ZhouPeng @ 2011-06-06 11:56 UTC (permalink / raw)
  To: Ian Campbell
  Cc: Samuel Thibault, Xen-devel@lists.xensource.com, Jiageng Yu,
	Stefano Stabellini

I think class is better than mode?
'Mode' is somewhat misleading to new newbie?
It seem be telling there is one device model instance, which has
mutiple working mode.
Just like kernel mode or user mode to describe one OS‘s current working mode.


1) device_model_class
2) device_model_deployment
3) device_model_instance
4) device_model_mode
If I have one vote for all the above chances, I will select '...class' :)

And I suggest one :
device_modele_mechanism
:)


2011/6/2 Ian Campbell <Ian.Campbell@eu.citrix.com>:
> On Thu, 2011-06-02 at 15:31 +0100, Stefano Stabellini wrote:
>> On Thu, 2 Jun 2011, Ian Campbell wrote:
>> > On Thu, 2011-06-02 at 14:40 +0100, Jiageng Yu wrote:
>> > > diff -r 37c77bacb52a tools/libxl/libxl.idl
>> > > --- a/tools/libxl/libxl.idl    Mon May 23 17:38:28 2011 +0100
>> > > +++ b/tools/libxl/libxl.idl    Wed Jun 01 03:24:57 2011 +0100
>> > > @@ -196,6 +196,7 @@
>> > >      ("dom_name",         string),
>> > >      ("device_model_version", libxl_device_model_version),
>> > >      ("device_model_stubdomain", bool),
>> > > +   ("device_model_linux_stubdomain", bool),
>> > >      ("device_model",     string, False, "if you set this you must set device_model_version too"),
>> > >      ("saved_state",      string),
>> > >      ("type",             libxl_domain_type),
>> >
>> > I think what we actually want here is a single device_model_type
>> > Enumeration, values are something like "process", "stub-linux",
>> > "stub-minios", rather than multiple device_model_XXX_stubdom booleans.
>>
>> indeed
>>
>>
>> > I'm not convinced device_model_type is a good name, hopefully someone
>> > can suggest something better. (device_model_mode??)
>>
>> some suggestions:
>>
>> 1) device_model_class
>> 2) device_model_deployment
>> 3) device_model_instance
>>
>> I vote for 3)
>
> I don't think deployment or instance has the right meaning here. class
> is better but still doesn't feel right.
>
> maybe ..._mode?
>
> </bikeshed>
>
> Ian.
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel
>



-- 
Zhou Peng
Operating System Technology Group
Institute of Software, the Chinese Academy of Sciences (ISCAS)

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

end of thread, other threads:[~2011-06-06 11:56 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-05-31 13:54 [PATCH] libxl: Support linux-stubdom in libxl Jiageng Yu
2011-05-31 14:38 ` Stefano Stabellini
2011-06-01 12:58 ` Ian Campbell
2011-06-02 13:40   ` Jiageng Yu
2011-06-02 14:25     ` Ian Campbell
2011-06-02 14:31       ` Stefano Stabellini
2011-06-02 14:35         ` Ian Campbell
2011-06-06 11:56           ` ZhouPeng

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).