All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ryan Grimm <grimm@us.ibm.com>
To: Xen Devel <xen-devel@lists.xensource.com>
Cc: Dan Smith <danms@us.ibm.com>
Subject: [PATCH 6 of 6] dm-userspace backend script and xmexample
Date: Mon, 21 Aug 2006 15:55:51 -0500	[thread overview]
Message-ID: <20060821205551.GG10771@localhost.localdomain> (raw)
In-Reply-To: <patchbomb.1156192193@venkman-64>

# HG changeset patch
# User Ryan Grimm <grimm@us.ibm.com>
# Date 1156190591 18000
# Node ID ac06ebd033aa5f62ff18cd1e21b21e19c67f04b9
# Parent  77a518e8f44d1c0c89dcb93e5a3713da6c5e6131
dm-userspace backend script and xmexample

Signed-off-by: Ryan Grimm <grimm@us.ibm.com>
Signed-off-by: Dan Smith <danms@us.ibm.com>

diff -r 77a518e8f44d -r ac06ebd033aa tools/examples/Makefile
--- a/tools/examples/Makefile	Mon Aug 21 15:03:10 2006 -0500
+++ b/tools/examples/Makefile	Mon Aug 21 15:03:11 2006 -0500
@@ -18,6 +18,7 @@ XEN_CONFIGS += xmexample2
 XEN_CONFIGS += xmexample2
 XEN_CONFIGS += xmexample.hvm
 XEN_CONFIGS += xmexample.vti
+XEN_CONFIGS += xmexample.dmu
 XEN_CONFIGS += xend-pci-quirks.sxp
 XEN_CONFIGS += xend-pci-permissive.sxp
 
@@ -32,6 +33,7 @@ XEN_SCRIPTS += vtpm vtpm-delete
 XEN_SCRIPTS += vtpm vtpm-delete
 XEN_SCRIPTS += xen-hotplug-cleanup
 XEN_SCRIPTS += external-device-migrate
+XEN_SCRIPTS += block-dmu
 XEN_SCRIPT_DATA = xen-script-common.sh locking.sh logging.sh
 XEN_SCRIPT_DATA += xen-hotplug-common.sh xen-network-common.sh vif-common.sh
 XEN_SCRIPT_DATA += block-common.sh vtpm-common.sh vtpm-hotplug-common.sh
diff -r 77a518e8f44d -r ac06ebd033aa tools/examples/README
--- a/tools/examples/README	Mon Aug 21 15:03:10 2006 -0500
+++ b/tools/examples/README	Mon Aug 21 15:03:11 2006 -0500
@@ -13,6 +13,7 @@ block-common.sh     - sourced by block, 
 block-common.sh     - sourced by block, block-*
 block-enbd          - binds/unbinds network block devices
 block-nbd           - binds/unbinds network block devices
+block-dmu           - binds/unbinds dm-userspace devices
 external-device-migrate - called by xend for migrating external devices
 locking.sh          - locking functions to prevent concurrent access to
                       critical sections inside script files
@@ -45,3 +46,5 @@ xmexample.hvm       - a configuration sc
 xmexample.hvm       - a configuration script for creating a hvm domain with
                       'xm create'
 xmexample.vti       - a configuration script for creating a domain on vti
+xmexample.dmu       - a configuration script for creating a domain with 
+                      dm-userspace
diff -r 77a518e8f44d -r ac06ebd033aa tools/examples/block-dmu
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/examples/block-dmu	Mon Aug 21 15:03:11 2006 -0500
@@ -0,0 +1,49 @@
+#!/bin/sh
+#
+# Copyright (C) International Business Machines Corp., 2006
+# Author: Ryan Grimm <grimm@us.ibm.com>
+
+dir=$(dirname "$0")
+. "$dir/block-common.sh"
+
+p=$(xenstore_read "$XENBUS_PATH/params")
+mode=$(xenstore_read "$XENBUS_PATH/mode")
+
+case "$command" in 
+ 	add)
+		plugin=$(echo $p | cut -d: -f1)
+		dmu_file=$(echo $p | cut -d: -f2)
+		base_file=$(echo $p | cut -d: -f3)
+
+		domain_name=$(xenstore_read "$XENBUS_PATH/domain")
+		domain_dev=$(xenstore_read "$XENBUS_PATH/dev")
+		target="$domain_name""_""$domain_dev"
+		md_dev="/dev/mapper/$target"
+
+		lsmod | grep -q dm_user || modprobe dm-user || fatal \
+			'cannot load module dm-user'
+
+		if [ ! -e $dmu_file ]
+		then
+			dscow_tool -c $dmu_file $base_file || fatal \ 
+				'creation of $dmu_file failed'
+		fi
+
+		cowd --sync --pidfile=/var/run/cowd.$target.pid -p $plugin \
+			$target $dmu_file || fatal 'cowd failed'
+
+        	xenstore_write "$XENBUS_PATH/node" "$target"
+
+		claim_lock "block"
+		write_dev $md_dev
+	        release_lock "block"
+		exit 0
+		;;
+
+	remove)
+        	node=$(xenstore_read "$XENBUS_PATH/node")
+		cowd_pid=$(cat "/var/run/cowd.$node.pid")
+		kill $cowd_pid
+		exit 0
+		;;
+esac
diff -r 77a518e8f44d -r ac06ebd033aa tools/examples/xmexample.dmu
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/examples/xmexample.dmu	Mon Aug 21 15:03:11 2006 -0500
@@ -0,0 +1,151 @@
+#  -*- mode: python; -*-
+#============================================================================
+# Python configuration setup for 'xm create'.
+# This script sets the parameters used when a domain is created using 'xm create'.
+# You use a separate script for each domain you want to create, or 
+# you can set the parameters for the domain on the xm command line.
+#============================================================================
+
+#----------------------------------------------------------------------------
+# Kernel image file.
+kernel = "/boot/vmlinuz-2.6-xen"
+
+# Optional ramdisk.
+#ramdisk = "/boot/initrd.gz"
+
+# The domain build function. Default is 'linux'.
+#builder='linux'
+
+# Initial memory allocation (in megabytes) for the new domain.
+#
+# WARNING: Creating a domain with insufficient memory may cause out of
+#          memory errors. The domain needs enough memory to boot kernel
+#          and modules. Allocating less than 32MBs is not recommended.
+memory = 128
+
+# A name for your domain. All domains must have different names.
+name = "ExampleDmuDomain"
+
+# 128-bit UUID for the domain.  The default behavior is to generate a new UUID
+# on each call to 'xm create'.
+#uuid = "06ed00fe-1162-4fc4-b5d8-11993ee4a8b9"
+
+# List of which CPUS this domain is allowed to use, default Xen picks
+#cpus = ""         # leave to Xen to pick
+#cpus = "0"        # all vcpus run on CPU0
+#cpus = "0-3,5,^1" # run on cpus 0,2,3,5
+
+# Number of Virtual CPUS to use, default is 1
+#vcpus = 1
+
+#----------------------------------------------------------------------------
+# Define network interfaces.
+
+# By default, no network interfaces are configured.  You may have one created
+# with sensible defaults using an empty vif clause:
+#
+# vif = [ '' ]
+#
+# or optionally override backend, bridge, ip, mac, script, type, or vifname:
+#
+# vif = [ 'mac=00:16:3e:00:00:11, bridge=xenbr0' ]
+#
+# or more than one interface may be configured:
+#
+# vif = [ '', 'bridge=xenbr1' ]
+
+vif = [ '' ]
+
+#----------------------------------------------------------------------------
+# Define the disk devices you want the domain to have access to, and
+# what you want them accessible as.
+# Each disk entry is of the form phy:UNAME,DEV,MODE
+# where UNAME is the device, DEV is the device name the domain will see,
+# and MODE is r for read-only, w for read-write.
+
+# for dmu, the syntax is dmu:<plugin>:<cow file>:<base file>
+# if <cow file> does not exist, it is created and <base file> is used
+# as base.  if <cow file> does exist, <base file> is ignored.  
+disk = [ 'dmu:dscow:/path/to/domain.dscow:/path/to/domain.img,hda1,w']
+
+#----------------------------------------------------------------------------
+# Define to which TPM instance the user domain should communicate.
+# The vtpm entry is of the form 'instance=INSTANCE,backend=DOM'
+# where INSTANCE indicates the instance number of the TPM the VM
+# should be talking to and DOM provides the domain where the backend
+# is located.
+# Note that no two virtual machines should try to connect to the same
+# TPM instance. The handling of all TPM instances does require
+# some management effort in so far that VM configration files (and thus
+# a VM) should be associated with a TPM instance throughout the lifetime
+# of the VM / VM configuration file. The instance number must be
+# greater or equal to 1.
+#vtpm = [ 'instance=1,backend=0' ]
+
+#----------------------------------------------------------------------------
+# Set the kernel command line for the new domain.
+# You only need to define the IP parameters and hostname if the domain's
+# IP config doesn't, e.g. in ifcfg-eth0 or via DHCP.
+# You can use 'extra' to set the runlevel and custom environment
+# variables used by custom rc scripts (e.g. VMID=, usr= ).
+
+# Set if you want dhcp to allocate the IP address.
+#dhcp="dhcp"
+# Set netmask.
+#netmask=
+# Set default gateway.
+#gateway=
+# Set the hostname.
+#hostname= "vm%d" % vmid
+
+# Set root device.
+root = "/dev/hda1 ro"
+
+# Root device for nfs.
+#root = "/dev/nfs"
+# The nfs server.
+#nfs_server = '169.254.1.0'  
+# Root directory on the nfs server.
+#nfs_root   = '/full/path/to/root/directory'
+
+# Sets runlevel 4.
+extra = "4"
+
+#----------------------------------------------------------------------------
+# Configure the behaviour when a domain exits.  There are three 'reasons'
+# for a domain to stop: poweroff, reboot, and crash.  For each of these you
+# may specify:
+#
+#   "destroy",        meaning that the domain is cleaned up as normal;
+#   "restart",        meaning that a new domain is started in place of the old
+#                     one;
+#   "preserve",       meaning that no clean-up is done until the domain is
+#                     manually destroyed (using xm destroy, for example); or
+#   "rename-restart", meaning that the old domain is not cleaned up, but is
+#                     renamed and a new domain started in its place.
+#
+# The default is
+#
+#   on_poweroff = 'destroy'
+#   on_reboot   = 'restart'
+#   on_crash    = 'restart'
+#
+# For backwards compatibility we also support the deprecated option restart
+#
+# restart = 'onreboot' means on_poweroff = 'destroy'
+#                            on_reboot   = 'restart'
+#                            on_crash    = 'destroy'
+#
+# restart = 'always'   means on_poweroff = 'restart'
+#                            on_reboot   = 'restart'
+#                            on_crash    = 'restart'
+#
+# restart = 'never'    means on_poweroff = 'destroy'
+#                            on_reboot   = 'destroy'
+#                            on_crash    = 'destroy'
+
+#on_poweroff = 'destroy'
+#on_reboot   = 'restart'
+#on_crash    = 'restart'
+
+#============================================================================

  parent reply	other threads:[~2006-08-21 20:55 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <patchbomb.1156192193@venkman-64>
2006-08-21 20:55 ` [PATCH 1 of 6] dm-userspace xen kernel patch Ryan Grimm
2006-08-21 20:55 ` [PATCH 2 of 6] dm-userspace userspace tool base patch Ryan Grimm
2006-08-21 20:55 ` [PATCH 3 of 6] dm-userspace internal libdmu support for userspace tool Ryan Grimm
2006-08-21 20:55 ` [PATCH 4 of 6] dscow plugin for dm-userspace " Ryan Grimm
2006-08-21 20:55 ` [PATCH 5 of 6] qcow " Ryan Grimm
2006-08-21 20:55 ` Ryan Grimm [this message]
2006-08-22 17:05   ` [PATCH 6 of 6] dm-userspace backend script and xmexample Ryan Grimm

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20060821205551.GG10771@localhost.localdomain \
    --to=grimm@us.ibm.com \
    --cc=danms@us.ibm.com \
    --cc=xen-devel@lists.xensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.