This patch makes blktap Do The Right Thing(TM). It allows udev to
create the /dev/xen/blktap[0-9] devices.
It creates a sysfs class called "xen". This part may later be placed
someplace else, but currently blktap is the only user so it is placed in
the blktap code.
When blktap is initialized, a blktap0 sysfs class device is made. The
other devices blktapX (X > 0) are made when the BLKTAP_IOCTL_NEWINTF
ioctl is called. This way we don't flood the sysfs and /dev/xen with
unnecessary devices.
I added a rule in the xen-backend.rules to allow for udev to create the
blktap devices.
With this, we can really remove the code to search and create the
/dev/xen/blktap[0-9]*, but I'll leave it in for now. With the use of
udev, we really should remove that code as well as the code for creating
the evtchn device. udev works for both of these now. But that removal
will have to be in another patch.
Signed-off-by: Steven Rostedt <srostedt@redhat.com>
blktap currently uses a hardcoded major of 254 for the device. This is
not robust in anyway and needs to be dynamic.
Note: it is better not to have the daemon create the node, and have udev
create it instead. But since the daemon currently creates the node
anyway, it is still the way this is done. That change needs to be made
at another time.
Signed-off-by: Steven Rostedt <srostedt@redhat.com>
If a Xen guest has a bootloader configured, then it will fail to start
on a blktap image. The problem is blkdev_uname_to_file, which cannot
parse the "tap:aio:$filename" image strings: it tries to split the
string apart at ":" and assign the result to a 2-tuple, and this
results in a python error if the split results in three or more
strings.
The fix is to split only at the first ":", and then to split again
if we detect "tap:" as the image type.
Signed-off-by: Stephen Tweedie <sct@redhat.com>
Remove try except blocks so that ACMError(s) are properly reported to
the user rather than silently fail.
Signed-off-by: Alastair Tse <atse@xensource.com>
Fixed built-in function name conflict.
Raise correct exceptions for when option is invalid to be properly
reported by xm.
Signed-off-by: Alastair Tse <atse@xensource.com>
Removing try,except block as cfgbootpolicy should allow exceptions to
propagate instead of printing traceback to stdout.
(http://bugzilla.xensource.com/bugzilla/show_bug.cgi?id=778)
Changed usage of string.join, string.split when creating security
policy path name.
Signed-off-by: Alastair Tse <atse@xensource.com>
* There's not need for sysrq to be in its own file.
* Bonus advantage: can use arg_check rather than gopts for argument
validation.
Signed-off-by: Alastair Tse <atse@xensource.com>
- Abort core dump if destination is a directory.
- Throw appropriate XendError expection on failure.
Reported by Masaki Kanno <kanno.masaki@jp.fujitsu.com>.
Signed-off-by: Alastair Tse <atse@xensource.com>
* Fix text wrap so it doesn't chop off last word in help message for
certain cases.
* Fix handling of xm create --help_config
* Remove redundant gopts.usage() call.
Signed-off-by: Alastair Tse <atse@xensource.com>
Currently, guest_linear_to_real to_real() in vmxassist assumes guest HVM
use 2 level page table when entering protect mode with PG enabled. Vista
uses 3 level (PAE enabled) page table, so memory addressing is wrong.
This patch fixes it, by considering all 4 possible cases.
Signed-off-by: Xiaowei Yang <xiaowei.yang@intel.com>
Introducing an OptionError exception to be used by all xm subcommands
to signal an error in the arguments. "xm" will catch these and output
the appropriate error and usage message.
Detailed Changes:
main.py:
* Cleaned up imports and moved warning filter outside of
import block.
* Converted usage parameters and description to a python
dict rather than strings to enable better usage help
formatting.
* Removed unused list_label domain command.
* Added cmdHelp() prints out usage message for any command
* Added shortHelp() prints out the default help message when
xm is invoked with no arguments.
* Added longHelp() prints out long help message when invoked
with xm --help or xm help.
* Added extra optional paramter to getDomains() so we can
tell Xend not to poll devices. This will speed up xm list.
(PENDING changes to Xend itself.)
* Changed all references where 'dom' actually means 'domid'
to use the correct name.
* Changed 'xm list' header format to use printf formatting style.
* Renamed xm_subcommand to xm_importcommand so it is more
clear what it is doing (all xm commands are subcommands!)
* Moved cpu_make_map() inside xm_vcpu_pin as an anonymous func.
* Use OptionError whenever an invalid option is detected in xm.
* Added proper catch and error printing for XendError and
OptionErrors in main().
addlabel.py:
cfgbootpolicy.py:
dry-run.py:
dump-policy.py:
get-label.py:
labels.py:
loadpolicy.py:
makepolicy.py:
rmlabel.py:
resources.py:
* Replaced usage() with help() that is called from main.py
* Replaced usage() invokation with raising OptionError
opts.py:
* Added very simple wrap() function that behaves differently
to textwrap.wrap()
* Added OptionError()
* Replaced the string representation of Opt, Opts to output
a nicely formatted usage message.
* Changed class Opts itself will throw approriate OptionErrors.
* Changed set_bool to recognise 'y' and 'n' as valid input
create.py:
* Some whitespace and column width cleanup.
* throws OptionError if encounters option error.
migrate.py:
* Replace usage() message with the string representation of
gopts.
sysrq.py:
* Replace usage message with throwing OptionErrors
Signed-off-by: Alastair Tse <atse@xensource.com>
is connected, and (b) fixing an overflow bug in the scanning code which
prevented the dirty bit from ever getting cleared.
Signed-off-by: Steven Smith <sos22@cam.ac.uk>