Valgrind cannot see when a hypercall has initialised entries in a data
structure, so appropriate memsets have been placed before using dom0_op_t,
privcmd_hypercall_t, and a couple of miscellaneous blocks passed into this
layer. This initialises the block so that valgrind considers it to be valid,
but the data therein will be immediately overwritten by the hypercall, all
being well.
These changes are semantically neutral if -DVALGRIND is not set.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
must also be unmapped explicitly via the grant-table
interface (GNTTABOP_unmap_grant_ref). If not, the guest
ends up with a dangling grant reference that is not cleared
up until the guest dies.
Because this can obviously lead to deferred hard-to-debug
problems, debug builds of Xen use a 'spare' PTE flag to
track granted mappings and to crash a domain if it attempts
to free such a PTE without using GNTTABOP_unmap_grant_ref.
Signed-off-by: Keir Fraser <keir@xensource.com>
The zombie domain is caused by unreleased shadow page
because of lack of put_shadow_ref.
When unshadow a L1 page, set l2e to zero and put ref.
Signed-off-by: <xiaofeng.ling@intel.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>
once. This makes it possible to unit test this code. Remove the odd aliasing
of gopts to opts inside parseCommandLine.
Rename local variables globals and locals inside opts.load -- these are built-in
functions.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
using connectionMade, connectionLost, startedConnecting, clientConnectionLost,
and clientConnectionFailed was the test classes (TestClientFactory,
TestClientProtocol, TestServerFactory, TestServerProtocol), so they were
actually testing lots of code that no-one else was using. All these classes
have gone, freeing up lots of cruft around.
The useless classes Factory, ServerFactory, ClientFactory, RelocationFactory,
UnixServerConnection, and TCPServerConnection have gone, in favour of passing
the Protocol class directly to SocketListener, and using SocketServerConnection
directly.
connectTransport has gone, in favour of overriding connect directly.
Piles of closedown cruft has gone, as this was only supporting the correct
output of connectionLost events, none of which we need.
Unused SocketServerConnection.{getHost,getPeer} have gone.
Mark some parameters in relocate as unused.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
forking implied by the start method. This makes it easier to run valgrind
against Xend, or run it with a pydebug-compiled Python.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
deallocation to match those in the Python/C tutorial. This has been done to
make the interface here more conventional, in the hunt for bug #411. One
double deallocation has been fixed, but this would only occur if we failed to
create the connection to Xenstore, and so unfortunately is not the cause of
that bug.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
many places we were supporting keywords for calling the methods here, and never
using that feature (especially where all the arguments were compulsory anyway)
and in some places we were even accepting positional and keyword arguments, and
not actually taking any arguments to the method at all!
Fix the permission parsing string in xspy_set_permissions -- this would have
blown up horribly if anyone were actually calling this code.
Fix the documentation comments to include the transaction handle throughout.
Have the self parameter to all the methods be an XsHandle, not a PyObject, to
avoid casting.
Remove unused pyvalue_int and pyvalue_str.
Signed-off-by: Ewan Mellor <ewan@xensource.com>