2006-02-21 14:36:39

by Mike D. Day

[permalink] [raw]
Subject: [ PATCH 2.6.16-rc3-xen 1/3] sysfs: export Xen hypervisor attributes to sysfs

This series of patches is a module that exports Xen Hypervisor attributes
to sysfs. The directory structure created is:

+---sys
+---hypervisor
+---xen
+---version
+---major
+---minor
+---extra
+---compilation
+---by
+---date
+---compiler
+---properties
+---changeset
+---capabilities
+---virt_start
+---translated_pm
+---writable_dt
+---writable_pt

The xen_sysfs module has a tri-state Kconfig so it can be built-in or
loaded as a module.

The module is in three patches:

Patch 1 (this patch) is a Xen file that is used by all OS kernels that run
on Xen. This includes linux, NetBSD, FreeBSD, Solaris, and others. Patch 1
adds #defined constants so that linux users of this file can avoid typedefs.

Patch 2 (follows) contains the Kconfig changes necessary to add this module
to the kernel build.

Patch 3 (follows) contains the source for the xen_sysfs module itself.

# HG changeset patch
# User [email protected]
# Node ID d296aaf07bcb4141c6dc2a1bfa7d183f919c2167
# Parent a05e56904e7e5e86aae5a2e022621caaf7b3a6f5
define constants for array sizes. Allows linux users of this file
to avoid #typedefs. Existing typedefs work as before.

signed-off-by: Mike D. Day <[email protected]>

diff -r a05e56904e7e -r d296aaf07bcb xen/include/public/version.h
--- a/xen/include/public/version.h Mon Feb 20 23:01:50 2006 +0000
+++ b/xen/include/public/version.h Tue Feb 21 08:11:03 2006 -0500
@@ -1,8 +1,8 @@
/******************************************************************************
* version.h
- *
+ *
* Xen version, type, and compile information.
- *
+ *
* Copyright (c) 2005, Nguyen Anh Quynh <[email protected]>
* Copyright (c) 2005, Keir Fraser <[email protected]>
*/
@@ -17,6 +17,7 @@

/* arg == xen_extraversion_t. */
#define XENVER_extraversion 1
+#define XENVER_EXTRAVERSION_LEN 16
typedef char xen_extraversion_t[16];

/* arg == xen_compile_info_t. */
@@ -29,9 +30,11 @@ typedef struct xen_compile_info {
} xen_compile_info_t;

#define XENVER_capabilities 3
+#define XENVER_CAPABILITIES_INFO_LEN 1024
typedef char xen_capabilities_info_t[1024];

#define XENVER_changeset 4
+#define XENVER_CSET_INFO_LEN 64
typedef char xen_changeset_info_t[64];

#define XENVER_platform_parameters 5



2006-02-21 15:21:58

by Arjan van de Ven

[permalink] [raw]
Subject: Re: [ PATCH 2.6.16-rc3-xen 1/3] sysfs: export Xen hypervisor attributes to sysfs


> +---compilation
> +---by
> +---date
> +---compiler


not sure this is really useful info ;)

2006-02-21 17:31:27

by Keir Fraser

[permalink] [raw]
Subject: Re: [Xen-devel] [ PATCH 2.6.16-rc3-xen 1/3] sysfs: export Xen hypervisor attributes to sysfs


On 21 Feb 2006, at 14:36, Mike D. Day wrote:

> # HG changeset patch
> # User [email protected]
> # Node ID d296aaf07bcb4141c6dc2a1bfa7d183f919c2167
> # Parent a05e56904e7e5e86aae5a2e022621caaf7b3a6f5
> define constants for array sizes. Allows linux users of this file to
> avoid #typedefs. Existing typedefs work as before.
> signed-off-by: Mike D. Day <[email protected]>

I took this patch, but renamed the xxx_LEN macros to more closely match
the typedef names.

-- Keir

2006-02-21 17:42:21

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [ PATCH 2.6.16-rc3-xen 1/3] sysfs: export Xen hypervisor attributes to sysfs

> Patch 1 (this patch) is a Xen file that is used by all OS kernels that run
> on Xen. This includes linux, NetBSD, FreeBSD, Solaris, and others. Patch 1
> adds #defined constants so that linux users of this file can avoid
> typedefs.

No way we're gonna put in that crap. If you want linux to support Xen
add a set of sane linux-style headers for linux use. What you use
in the hypevisor or for other operating systems doesn't matter at all.

2006-02-21 18:34:48

by Greg KH

[permalink] [raw]
Subject: Re: [ PATCH 2.6.16-rc3-xen 1/3] sysfs: export Xen hypervisor attributes to sysfs

On Tue, Feb 21, 2006 at 09:36:35AM -0500, Mike D. Day wrote:
> +---properties
> +---changeset

Just curious, but what is a "changeset"?

> The xen_sysfs module has a tri-state Kconfig so it can be built-in or
> loaded as a module.
>
> The module is in three patches:

This patch has it's leading spaces eaten by your email client and can
not be applied :(

> diff -r a05e56904e7e -r d296aaf07bcb xen/include/public/version.h
> --- a/xen/include/public/version.h Mon Feb 20 23:01:50 2006 +0000
> +++ b/xen/include/public/version.h Tue Feb 21 08:11:03 2006 -0500
> @@ -1,8 +1,8 @@
> /******************************************************************************
> * version.h
> - *
> + *
> * Xen version, type, and compile information.
> - *
> + *
> * Copyright (c) 2005, Nguyen Anh Quynh <[email protected]>
> * Copyright (c) 2005, Keir Fraser <[email protected]>
> */
> @@ -17,6 +17,7 @@
>
> /* arg == xen_extraversion_t. */
> #define XENVER_extraversion 1
> +#define XENVER_EXTRAVERSION_LEN 16
> typedef char xen_extraversion_t[16];

Shouldn't the typedef use the #define in it, so that if you change it,
the array size is properly changed too?

thanks,

greg k-h