a device from two guests, or from dom 0 and a guest, can destroy the filesystem,
and this check prevents that. This should ensure that the xm tests
11_block_attach_shared_dom0 and 12_block_attach_shared_domU should pass.
Closes bug #331.
Devices may be shared only if all uses are read-only. If anyone has read-write
access to a device, then no sharing is allowed.
The mode in the config file may now have an exclamation mark appended, to
indicate that devices may be shared (i.e. that this new check should be
bypassed). This supports some network block devices, but is clearly dangerous
and should only be used when you know what you are doing.
The mode specified in the config file is now written explicitly to the store,
To implement this, the blkback driver has been changed to create two entries
in /sys describing each device in use. This means that we can determine which
devices are in use without crawling through the store.
The physical-device node has been changed to give the major and minor of the
device, separated by a colon. This means that we do not need to pack these
numbers into one, removing the restriction to 8 bit minors that we had in place
before.
The mode specified in the config file is now written explicitly to the store,
rather than using the presence or absence of a read-only node. This supports
the write-sharing override above.
If the device is in use, a new hotplug status of "busy" is written to the
store, and a message is written to a new hotplug-error node. Xend uses these
things for diagnosis.
The block scripts do not need to handle online or offline events, so this
support has been removed. These scripts can be called twice, depending upon
the hotplug config, so they now identify the second run and do not attempt to
set up the device again.
The device directories in the store are cleaned out before new details are
written there. This prevents stale information from messing up block device
hotplugging. This will be one cause of "blkback: changing physical device
not supported" messages.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
down the frontend until that number becomes 0. There are no reasonable
semantics for hot-unplugging a block device beneath a mounted filesystem, and
this solution ensures that the guest is not crashed nor the filesystem corruptedby the actions of the administrator.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
The option reduces overall system performance and makes little sense
when running over a preemptive hypervisor. Removing the option also
fixes some hypothetical races.
The forthcoming voluntary-preemption option will make much more sense
to enable when running over Xen.
Signed-off-by: Keir Fraser <keir@xensource.com>
PMD (Xen will not allow it). This is okay even across
suspend/resume -- such PGDs are completely empty and so
contain no PTEs that become garbage across suspend/resume.
Signed-off-by: Keir Fraser <keir@xensource.com>
disappeared. This happens when the driver is being torn down, and we don't
want to resurrect the device directory in the store because of it.
Partially addresses bug #424.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
We need a hook to be able to close down the device properly, but the REMOVE
event is no good because we don't get the script and vif environment variables
set in that case.
Closes bug #417.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
from the calling domain, even on error (except for special
error GNTST_bad_page). This has a knock-on advantage of
simplifying Linux's netback driver.
Signed-off-by: Keir Fraser <keir@xensource.com>
query a domain's current and maximum memory reservation. Also,
XENMEM_maximum_ram_page now returns the max_page directly,
rather than writing through a passed-in pointer.
Also, disable PAE in the default config (accidentally checked
in two changesets ago).
Signed-off-by: Keir Fraser <keir@xensource.com>
native) for x86_64 xenlinux. I tested 16-way xenolinux (using changeset
7892) on a 16-way SMP machine with >8GB memory. It worked fine as long
as I did sanity tests like kernel build (make -j64).
Signed-off-by: Jun Nakajima <jun.nakajima@intel.com>
a high-memory page. Otherwise stale writable mappings may
persist. This fixes a corner case for alloc_ldt (which can
vmalloc an LDT and hence use highmem pages).
Signed-off-by: Keir Fraser <keir@xensource.com>
1. Use update_va_mapping where possible (much faster)
2. If that fails, fall back to explicit pte update rather
than using writable pagetables (very slow for singleton
updates)
Also many x86/64 cleanups and fix to handle vmalloc space
correctly.
Signed-off-by: Keir Fraser <keir@xensource.com>
optional. The USB driver doesn't need this entrypoint because the state
machine driven by it is factored out of the driver code entirely into
xenidc.
Signed-off-by: Harry Butterworth butterwo@uk.ibm.com