]> xenbits.xensource.com Git - people/pauldu/xenbus.git/log
people/pauldu/xenbus.git
10 years agoUse per-CPU event channel upcalls if available fifo4
Paul Durrant [Thu, 6 Nov 2014 12:44:26 +0000 (12:44 +0000)]
Use per-CPU event channel upcalls if available

A recent patch to Xen introduced a new HVM op to set a per-vcpu event
channel upcall. This patch adds code to make use of the latched interrupts
allocated by the FDO code to enable per-vcpu upcalls and adds an extra
EvtchnBind operation to a new v2 EVTCHN interface so that events can be
steered to a specified CPU.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoUpdate hvm_op.h with new hypercall
Paul Durrant [Thu, 6 Nov 2014 10:39:45 +0000 (10:39 +0000)]
Update hvm_op.h with new hypercall

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoUpdate Xen headers to master
Paul Durrant [Thu, 6 Nov 2014 10:38:44 +0000 (10:38 +0000)]
Update Xen headers to master

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoRe-work interrupt code in FDO
Paul Durrant [Thu, 6 Nov 2014 10:30:58 +0000 (10:30 +0000)]
Re-work interrupt code in FDO

This patch adds code to the FDO handler to acquire extra message signaled
(i.e. edge triggered) interrupt vectors that can be used for per-CPU event
channel upcalls (with extra support in Xen).
The existing callback via is also limited to upcall on CPU 0 meaning the
interrupt callback in the EVTCHN code can pass the current CPU value through
to the ABI.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoRe-populate hypercall page on resume from suspend/hibernate
Paul Durrant [Wed, 5 Nov 2014 18:00:12 +0000 (18:00 +0000)]
Re-populate hypercall page on resume from suspend/hibernate

Doing this has the side effect of latching the shared info page width,
which is currently done when the callback via is set. When we move to a
per-cpu event channel upcall then this side effect will be lost, so
doing this makes sure that the shared info is still of the correct width.

Additionally in this patch the reporting of the Xen version is improved
by using the XENVER hypercalls to get major, minor and extra version
informattion. As part of that change, more headers have been copied in
from Xen.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoAdd support for the FIFO event channel ABI
Paul Durrant [Wed, 5 Nov 2014 17:38:32 +0000 (17:38 +0000)]
Add support for the FIFO event channel ABI

If it is available then the fifo ABI will be used. If it is not then the
two-level ABI will be used instead.
The ABI is released and re-acquired across suspend/resume so this should
allow moving between hosts with different capabilities.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoUpdate Xen headers to RELEASE-4.4.1
Paul Durrant [Wed, 5 Nov 2014 17:21:53 +0000 (17:21 +0000)]
Update Xen headers to RELEASE-4.4.1

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoFix type mis-definition in EVTCHN interface
Paul Durrant [Wed, 5 Nov 2014 17:07:16 +0000 (17:07 +0000)]
Fix type mis-definition in EVTCHN interface

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoSeparate event channel ABI from core evtchn interface code
Paul Durrant [Wed, 5 Nov 2014 17:04:16 +0000 (17:04 +0000)]
Separate event channel ABI from core evtchn interface code

The event channel ABI now known as two-level is implemented using the
domain shared info. Use of the SHARED_INFO interface is therefore baked
into the EVTCHN interface.
Xen has recently acquired a new event channel ABI called fifo, which
improves on both scalability and performance as compared to two-level.
Hence this patch separates the ABI code from the core EVTCHN interface
code so that a subsequent patch can add support for the fifo ABI on
capable versions of Xen.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoMake auto-masking a generic event channel property
Paul Durrant [Wed, 5 Nov 2014 16:31:03 +0000 (16:31 +0000)]
Make auto-masking a generic event channel property

Keeping the Mask boolean in the per-type event channel parameters makes the
code needlessly complex in several places. Just make it a generic property.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoUse a hash table for event channel lookup
Paul Durrant [Wed, 5 Nov 2014 15:50:10 +0000 (15:50 +0000)]
Use a hash table for event channel lookup

Rather than using a large array for mapping port values to channel
structures, use a hash table. This means we no longer need to code a
hard port number limit into the EVTCHN implementation.

Because the hash table implementation manages its own locking, we also no
longer need to make such liberal use of the interrupt lock in the EVTCHN
implementation and can use the spinlock instead.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoSeparate checking upcall_pending in shared info from EvtchnPoll
Paul Durrant [Tue, 28 Oct 2014 10:23:25 +0000 (10:23 +0000)]
Separate checking upcall_pending in shared info from EvtchnPoll

The current EvtchnPoll routine in in the shared info code is tied to
the two level event channel ABI, wheras checking upcall_pending is ABI
independent. Hence the check should be separated into its own method.

This patch therefore introduces version 2 of the SHARED_INFO interface,
which has a new EvtchnUpcallPending method. Version 1 is still
supported by having its EvtchnPoll variant call EvtchnUpcallPending
method internally.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoUse InterlockedBitTestAnd[Set|Reset] in SHARED_INFO
Paul Durrant [Tue, 28 Oct 2014 09:13:44 +0000 (09:13 +0000)]
Use InterlockedBitTestAnd[Set|Reset] in SHARED_INFO

Rather then using InterlockedCompareAndExchange to set and clear bits
in the SHARED_INFO event channel masks, use
InterlockedBitTestAnd[Set|Reset] as these will resolve to instrinsics
when available.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoFix bug in EVTCHN interrupt enabling
Paul Durrant [Thu, 6 Nov 2014 12:53:23 +0000 (12:53 +0000)]
Fix bug in EVTCHN interrupt enabling

The code in EvtchnOpen attempts to enable interrupts on demand when new
channels are added to a list. However there is a bug in the logic that
means interrupts will not be enabled until the second channel is opened.
This patch fixes the bug.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoWhitespace fix
Paul Durrant [Wed, 5 Nov 2014 17:08:13 +0000 (17:08 +0000)]
Whitespace fix

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoFix heap corruption in co-installer
Paul Durrant [Tue, 7 Oct 2014 14:55:49 +0000 (15:55 +0100)]
Fix heap corruption in co-installer

The co-installer was corrupting its heap by trying to free a pointer after
incrementing it from its original value.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoAdd missing acquisition of the UNPLUG interface
Paul Durrant [Mon, 6 Oct 2014 16:37:16 +0000 (17:37 +0100)]
Add missing acquisition of the UNPLUG interface

Commit cba6dad2df306885dfc65908f14ce6e2d8a86211 changed the way that
emulated devices are unplugged. It used to be that XENFILT waited until it
detected the presence of the 'active' device that XENBUS bound to before
deciding whether to unplug, but that commit simply made sure that the
'active' device always appears unless something has drastically changed in
the VM configuration. Unfortunately, in making that change, the code that
acquired the initial reference to the unplug interface - and thereby caused
emulated devices to be unplugged - was lost. This patch adds in the missing
acquisition.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoReduce spam from build.py
Paul Durrant [Thu, 25 Sep 2014 14:08:41 +0000 (15:08 +0100)]
Reduce spam from build.py

We don't the verbose prints when deciding whether we're using vs2012 or 2013.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoDon't use universal_newlines=True in subprocess.Popen()
Paul Durrant [Thu, 25 Sep 2014 14:06:31 +0000 (15:06 +0100)]
Don't use universal_newlines=True in subprocess.Popen()

For some versions of python this appears to cause corruption of the
output byte string by forcibly decoding with the wrong encoding.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoUpdate active device's instance id at point of PDO filter creation
Paul Durrant [Fri, 5 Sep 2014 16:58:51 +0000 (17:58 +0100)]
Update active device's instance id at point of PDO filter creation

It's tidier to have xenfilt simply return its own versions of device and
instance id when it intercepts IRP_MN_QUERY_ID. The override of the instance
id can be done and logged once when the PDO filter device object is created.
This patch does that, and also replaces the rather vacuuous Name field in
the filter device object extensions with DeviceID and InstanceID fields.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoImprove the generated documentation
Paul Durrant [Thu, 4 Sep 2014 15:21:46 +0000 (16:21 +0100)]
Improve the generated documentation

Create a frontpage and interfaces group, and then make sure the
interface data structures are included in the group.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoUpdate README and INSTALL and add a separate BUILD
Paul Durrant [Thu, 4 Sep 2014 14:23:39 +0000 (15:23 +0100)]
Update README and INSTALL and add a separate BUILD

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoSquash changes in active platform device instance id
Paul Durrant [Wed, 3 Sep 2014 16:23:41 +0000 (17:23 +0100)]
Squash changes in active platform device instance id

If the instance id of the platform device changes then Windows will need
to rebind the xenbus driver. This means that if the system disk is hanging
off a child of xenbus then we get a 0x7B BSOD before the rebind (which is
done in user space) can occur.
This patch makes sure that the instance id of the platform device remains
invariant after initial driver installation.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoAdd support for Visual Studio 2013 & WDK 8.1
Ben Chalmers [Fri, 15 Aug 2014 14:47:14 +0000 (15:47 +0100)]
Add support for Visual Studio 2013 & WDK 8.1

Signed-off-by: Ben Chalmers <ben.chalmers@citrix.com>
Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoRevise API versioning text in README.md
Paul Durrant [Thu, 14 Aug 2014 14:19:35 +0000 (15:19 +0100)]
Revise API versioning text in README.md

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoRemove another erroneous XenServer reference
Paul Durrant [Thu, 14 Aug 2014 10:30:09 +0000 (11:30 +0100)]
Remove another erroneous XenServer reference

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoFix copyrights in RC files
Paul Durrant [Thu, 14 Aug 2014 09:45:00 +0000 (10:45 +0100)]
Fix copyrights in RC files

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoUpdate branding
Paul Durrant [Wed, 13 Aug 2014 14:26:15 +0000 (15:26 +0100)]
Update branding

Remove the use of the 'XenServer' product name except where it is
still appropriate.
Remove use of 'Citrix' from all places except source file
copyrights.
Allow company and product name to be set at build time.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoImplement new API version scheme
Paul Durrant [Thu, 24 Jul 2014 08:01:23 +0000 (09:01 +0100)]
Implement new API version scheme

This patch changes the way APIs work in an incompatible way. (See README.md
for details).
The patch also includes a *lot* of code tidying and movement and as such
is not really suitable for review as a patch; the resulting code should
itself be reviewed.
Given the scale of the change, the major version number has been revised to
8 and other version numbers reset to zero.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoFix assertion failure
Paul Durrant [Tue, 29 Jul 2014 14:30:08 +0000 (15:30 +0100)]
Fix assertion failure

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years ago[CA-137823] Use interlocked calls when expanding grant tables.
Owen Smith [Thu, 12 Jun 2014 10:43:15 +0000 (11:43 +0100)]
[CA-137823] Use interlocked calls when expanding grant tables.

Signed-off-by: Owen Smith <owen.smith@citrix.com>
10 years agoReplace DPC per cache with single DPC for all caches.
Owen Smith [Fri, 6 Jun 2014 09:21:13 +0000 (10:21 +0100)]
Replace DPC per cache with single DPC for all caches.
Iterate through list of caches during DPC

Signed-off-by: Owen Smith <owen.smith@citrix.com>
10 years agoMerge pull request #30 from pauldu/gnttab
Owen Smith [Mon, 2 Jun 2014 13:10:56 +0000 (14:10 +0100)]
Merge pull request #30 from pauldu/gnttab

Updated GNTTAB interface

10 years agoModify GNTTAB interface to support caches
Paul Durrant [Fri, 30 May 2014 08:54:38 +0000 (09:54 +0100)]
Modify GNTTAB interface to support caches

Remove the Get/Set methods and replace with CreateCache/DestroyCache methods.
The PermitForeignAccess method the uses a cache to allocate an entry as it
requires. Also, as we're not only using grant table v1, we can get rid of
the idea of different types of permit and drop the use of varargs.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoRemove much code duplication involved in interface query
Paul Durrant [Thu, 29 May 2014 13:24:50 +0000 (14:24 +0100)]
Remove much code duplication involved in interface query

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoExport CACHE interface to child drivers
Paul Durrant [Thu, 29 May 2014 12:51:54 +0000 (13:51 +0100)]
Export CACHE interface to child drivers

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoIntroduce the CACHE interface
Paul Durrant [Thu, 29 May 2014 12:38:33 +0000 (13:38 +0100)]
Introduce the CACHE interface

Morph the existing cache code into a first class interface and make GNTTAB
the first client.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoRename Pool* to Cache*
Paul Durrant [Thu, 29 May 2014 09:50:58 +0000 (10:50 +0100)]
Rename Pool* to Cache*

No functional change. Just largely mechanical textual substitution.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoMerge pull request #28 from pauldu/ca-136429
Paul Durrant [Wed, 28 May 2014 12:40:07 +0000 (13:40 +0100)]
Merge pull request #28 from pauldu/ca-136429

Tighten up rangeset auditing and add separate counts for items and range...

10 years agoTighten up rangeset auditing and add separate counts for items and ranges
Paul Durrant [Wed, 28 May 2014 12:29:51 +0000 (13:29 +0100)]
Tighten up rangeset auditing and add separate counts for items and ranges

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoMerge pull request #27 from OwenSmith/master
Paul Durrant [Wed, 28 May 2014 12:28:09 +0000 (13:28 +0100)]
Merge pull request #27 from OwenSmith/master

Fix 0xC4 BSOD from Pool code.

10 years agoFix 0xC4 BSOD from Pool code.
Owen Smith [Wed, 28 May 2014 10:40:45 +0000 (11:40 +0100)]
Fix 0xC4 BSOD from Pool code.
__PoolTrimShared would not trim any pool allocations

Signed-off-by: Owen Smith <owen.smith@citrix.com>
10 years agoIt's not necessarily safe to access interfaces when device is not in D0
Paul Durrant [Fri, 23 May 2014 15:10:12 +0000 (16:10 +0100)]
It's not necessarily safe to access interfaces when device is not in D0

The Scan, Suspend and Balloon threads should not try to access interfaces
such as STORE when the device is not in D0 as the interfaces are not there
if the system is at S4 or higher.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
10 years agoMerge pull request #26 from pauldu/ca-135281
Ben Chalmers [Wed, 21 May 2014 15:53:15 +0000 (16:53 +0100)]
Merge pull request #26 from pauldu/ca-135281

CA-135281

Approved-By: Ben.Chalmers@citrix.com
10 years agoMerge pull request #25 from pauldu/master
Ben Chalmers [Wed, 21 May 2014 15:48:25 +0000 (16:48 +0100)]
Merge pull request #25 from pauldu/master

Add a minimum reservation feature to the pool code and use it in GNTTAB

Approved-By: Ben.Chalmers@citrix.com
10 years agoMake ballooning and suspending mutually exclusive operations
Paul Durrant [Wed, 21 May 2014 08:45:29 +0000 (09:45 +0100)]
Make ballooning and suspending mutually exclusive operations

10 years agoMerge branch 'master' of github.com:xenserver/win-xenbus
Paul Durrant [Wed, 21 May 2014 08:45:29 +0000 (09:45 +0100)]
Merge branch 'master' of github.com:xenserver/win-xenbus

11 years agoAdd a minimum reservation feature to the pool code and use it in GNTTAB
Paul Durrant [Thu, 1 May 2014 14:24:23 +0000 (15:24 +0100)]
Add a minimum reservation feature to the pool code and use it in GNTTAB

The grant table reservation is set to 32.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
11 years agoMerge pull request #24 from pauldu/master
Ben Chalmers [Thu, 1 May 2014 08:26:59 +0000 (09:26 +0100)]
Merge pull request #24 from pauldu/master

Re-try AuxKlibQueryModuleInformation() if buffer was too small

Approved-By: Ben Chalmers <Ben.Chalmers@citrix.com>
11 years agoRe-try AuxKlibQueryModuleInformation() if buffer was too small
Paul Durrant [Thu, 1 May 2014 08:21:51 +0000 (09:21 +0100)]
Re-try AuxKlibQueryModuleInformation() if buffer was too small

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
11 years agoMerge pull request #23 from pauldu/ca-134511
Paul Durrant [Wed, 30 Apr 2014 11:32:03 +0000 (12:32 +0100)]
Merge pull request #23 from pauldu/ca-134511

CA-134511

11 years agoAdd magic number and bounds checking...
Paul Durrant [Wed, 30 Apr 2014 11:06:24 +0000 (12:06 +0100)]
Add magic number and bounds checking...

... for event channel and grant table descriptors.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
11 years agoFix RangeSet cursor problem
Paul Durrant [Wed, 30 Apr 2014 10:47:01 +0000 (11:47 +0100)]
Fix RangeSet cursor problem

When the last or first range in the set is removed then the cursor may end
up pointing back at the anchor point. This confused RangeSetPop() so we
need to make sure that the cursor wraps round when this happens, such that
the only valid reason for the cursor to ever point at the anchor is when
the set goes empty.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
11 years agoMerge pull request #22 from pauldu/fist
Ben Chalmers [Tue, 29 Apr 2014 15:56:59 +0000 (16:56 +0100)]
Merge pull request #22 from pauldu/fist

FIST

Approved-By: Ben Chalmers <Ben.Chalmers@citrix.com>
11 years agoMerge branch 'master' of github.com:xenserver/win-xenbus
Paul Durrant [Tue, 29 Apr 2014 14:50:18 +0000 (15:50 +0100)]
Merge branch 'master' of github.com:xenserver/win-xenbus

11 years agoAdd FIST capability for pools
Paul Durrant [Tue, 29 Apr 2014 14:46:17 +0000 (15:46 +0100)]
Add FIST capability for pools

By setting xenstore parameters 'fist/pool/<name>/defer' to X and
'fist/pool/<name>/probability' to Y you can now cause failures of PoolGet()
such that it will fail with probability Y% after X initial invocations.
The name of the grant table pool has been set to 'gnttab' to make typing it
in more convenients, and some debug-keys output has been added to give
the PoolGet() failure count.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
11 years agoMerge pull request #21 from pauldu/master
Ben Chalmers [Tue, 29 Apr 2014 10:17:26 +0000 (11:17 +0100)]
Merge pull request #21 from pauldu/master

RangeSet fixes

Approved-By: Ben Chalmers <Ben.Chalmers@citrix.com>
11 years agoMerge pull request #20 from benchalmers/pe4
Paul Durrant [Tue, 29 Apr 2014 10:09:01 +0000 (11:09 +0100)]
Merge pull request #20 from benchalmers/pe4

[SCTX-1104] Add WindowsPEMode to xenfilt

11 years agoRangeSet fixes
Paul Durrant [Tue, 29 Apr 2014 10:03:48 +0000 (11:03 +0100)]
RangeSet fixes

- add spinlock to protect rangesets.
- add a Count value to check against empty condition in audit.
- use LONGLONG in ranges rather than ULONGLONG so that ranges can be
  invalidated by setting Start > End.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
11 years ago[SCTX-1104] Add WindowsPEMode to xenfilt
Ben Chalmers [Fri, 25 Apr 2014 14:15:27 +0000 (15:15 +0100)]
[SCTX-1104] Add WindowsPEMode to xenfilt

ParentIdPrefixes are not avilable at Windows PE driver filtering time,
but we don't actually need them if we know emulated devices will be
unplugged, so, if ParentIdPrefix can't be read from the registry and
HKLM\System\CurrentControlSet\Services\xenfilt\WindowsPEMode is set to 1
then just set the prefix to be an empty string and continue

We never set WindowsPEMode anywhere except in the sample Windows PE
scripts, so non-WindowsPE environments are unaffected

Signed-off-by: Ben Chalmers <Ben.Chalmers@citrix.com>
11 years agoMerge pull request #19 from pauldu/master
Paul Durrant [Mon, 28 Apr 2014 08:32:37 +0000 (09:32 +0100)]
Merge pull request #19 from pauldu/master

Add error path to RangeSetPop()

11 years agoAdd error path to RangeSetPop()
Paul Durrant [Fri, 25 Apr 2014 15:40:17 +0000 (16:40 +0100)]
Add error path to RangeSetPop()

Now that RangeSetPop() is being used to backend grant table allocations
it's legitimate for it to fail.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
11 years agoMerge pull request #17 from pauldu/master
Ben Chalmers [Wed, 23 Apr 2014 13:46:35 +0000 (14:46 +0100)]
Merge pull request #17 from pauldu/master

Miscellaneous fixes and improvements

Approved-By: Ben.Chalmers@citrix.com
11 years agoVarious fixes in improvements to the XEX.SYS System module
Paul Durrant [Wed, 23 Apr 2014 09:04:59 +0000 (10:04 +0100)]
Various fixes in improvements to the XEX.SYS System module

- Improved error handling. Various errors were ignored before.
- Moved several globals inside scope of __SystemGetCpuInformation since
  that's the only place they are used.
- Added a call to free memory range information. It was leaked before.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
11 years agoBetter way to ignore assertions in free builds
Paul Durrant [Wed, 23 Apr 2014 09:26:42 +0000 (10:26 +0100)]
Better way to ignore assertions in free builds

Disabling warnings is not a great thing to do so define an inline function
to take the assertion expression as an argument and then declare its
argument to be ignored.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
11 years agoFix 'unreferenced parameter' warning checked builds
Paul Durrant [Wed, 23 Apr 2014 09:02:50 +0000 (10:02 +0100)]
Fix 'unreferenced parameter' warning checked builds

Free builds have that warning disabled.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
11 years agoFix bug in RangeSetGet()
Paul Durrant [Wed, 23 Apr 2014 09:00:48 +0000 (10:00 +0100)]
Fix bug in RangeSetGet()

If RangeSetGet() was invoked when the cursor just happened to be pointing at
the correct singleton range than that range was not removed and an ASSERT was
hit. This patch fixes that problem.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
11 years agoMerge pull request #16 from pauldu/sctx-1791
Ben Chalmers [Thu, 17 Apr 2014 12:42:04 +0000 (13:42 +0100)]
Merge pull request #16 from pauldu/sctx-1791

Filter dbgprint logging more aggressively and provide a start option

Approved-By: ben.chalmers@citrix.com
11 years agoFilter dbgprint logging more aggressively and provide a start option
Paul Durrant [Thu, 17 Apr 2014 11:46:14 +0000 (12:46 +0100)]
Filter dbgprint logging more aggressively and provide a start option
to disable the hook altogether.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
11 years agoRe-order refine because it vapourizes the SDV summary log
Paul Durrant [Tue, 15 Apr 2014 16:31:52 +0000 (17:31 +0100)]
Re-order refine because it vapourizes the SDV summary log

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
11 years agoHandle SDV scan and refine
Paul Durrant [Tue, 15 Apr 2014 16:06:18 +0000 (17:06 +0100)]
Handle SDV scan and refine

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
11 years agoIgnore all errors from shutil.rmtree()
Paul Durrant [Tue, 15 Apr 2014 13:30:44 +0000 (14:30 +0100)]
Ignore all errors from shutil.rmtree()

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
11 years agoRefinements to build.py
Paul Durrant [Tue, 15 Apr 2014 13:19:48 +0000 (14:19 +0100)]
Refinements to build.py

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
11 years agoMerge pull request #15 from pauldu/sdv
Paul Durrant [Mon, 14 Apr 2014 16:43:51 +0000 (17:43 +0100)]
Merge pull request #15 from pauldu/sdv

Uncomment actual build!

11 years agoUncomment actual build!
Paul Durrant [Mon, 14 Apr 2014 16:42:52 +0000 (17:42 +0100)]
Uncomment actual build!

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
11 years agoMerge pull request #14 from pauldu/sdv
Paul Durrant [Mon, 14 Apr 2014 16:37:13 +0000 (17:37 +0100)]
Merge pull request #14 from pauldu/sdv

Add missing file

11 years agoAdd missing file
Paul Durrant [Mon, 14 Apr 2014 16:36:35 +0000 (17:36 +0100)]
Add missing file

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
11 years agoMerge pull request #13 from pauldu/sdv
Paul Durrant [Mon, 14 Apr 2014 16:22:48 +0000 (17:22 +0100)]
Merge pull request #13 from pauldu/sdv

Add SDV to normal driver build

11 years agoAdd SDV to normal driver build
Paul Durrant [Mon, 14 Apr 2014 16:20:58 +0000 (17:20 +0100)]
Add SDV to normal driver build

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
11 years agoMerge pull request #12 from pauldu/gnttab1
Owen Smith [Mon, 14 Apr 2014 14:31:14 +0000 (15:31 +0100)]
Merge pull request #12 from pauldu/gnttab1

Re-worked GNTTAB.

11 years agoRe-worked GNTTAB.
Paul Durrant [Fri, 11 Apr 2014 10:09:20 +0000 (11:09 +0100)]
Re-worked GNTTAB.

The new version of the interface no longer exposes raw references to clients.
They are now behind an opaque XENVIF_GNTTAB_DESCRIPTOR, analogous to the
XENVIF_EVTCHN_DESCRIPTOR which hides raw ports from clients.
The allocator is also more sophisticated. It uses a pool with per-cpu
magazines for lockless access backed by rangesets.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
11 years agoMerge pull request #11 from pauldu/sctx-1421
Paul Durrant [Wed, 9 Apr 2014 11:43:35 +0000 (12:43 +0100)]
Merge pull request #11 from pauldu/sctx-1421

Reserve an entry of the grant table for the crash kernel. Not doing this

11 years agoReserve an entry of the grant table for the crash kernel. Not doing this
Paul Durrant [Wed, 9 Apr 2014 11:38:51 +0000 (12:38 +0100)]
Reserve an entry of the grant table for the crash kernel. Not doing this
seems to cause crashdumps to fail in some circumstances.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
11 years agoMerge pull request #10 from pauldu/master
Ben Chalmers [Thu, 19 Dec 2013 15:21:22 +0000 (07:21 -0800)]
Merge pull request #10 from pauldu/master

Add an error check for an 'EQUOTA' response from xenstore and

Approved-By: Ben Chalmers <ben.chalmers@citrix.com>
11 years agoAdd an error check for an 'EQUOTA' response from xenstore and
Paul Durrant [Thu, 19 Dec 2013 15:09:19 +0000 (15:09 +0000)]
Add an error check for an 'EQUOTA' response from xenstore and
translate it to STATUS_QUOTA_EXCEEDED.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
11 years agoMerge pull request #9 from OwenSmith/master
Paul Durrant [Tue, 17 Dec 2013 14:08:27 +0000 (06:08 -0800)]
Merge pull request #9 from OwenSmith/master

Add option to use emulated boot disk

11 years agoAdd option to use emulated boot disk
Owen Smith [Tue, 17 Dec 2013 13:45:56 +0000 (13:45 +0000)]
Add option to use emulated boot disk

Signed-off-by: Owen Smith <owen.smith@citrix.com>
11 years agoMerge branch 'master' into upstream
Paul Durrant [Mon, 18 Nov 2013 11:13:17 +0000 (11:13 +0000)]
Merge branch 'master' into upstream

11 years agoMake sure watch identifiers are unique
Paul Durrant [Thu, 14 Nov 2013 16:21:37 +0000 (16:21 +0000)]
Make sure watch identifiers are unique

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
11 years agoMerge pull request #6 from xenserver/interrupt
Ben Chalmers [Fri, 1 Nov 2013 09:31:36 +0000 (02:31 -0700)]
Merge pull request #6 from xenserver/interrupt

Fix potential interrupt storm

Approved-By: Ben Chalmers <ben.chalmers@citrix.com>
11 years agoEnable and disable callback via at source rather than
Paul Durrant [Fri, 1 Nov 2013 09:21:42 +0000 (10:21 +0100)]
Enable and disable callback via at source rather than
trying to keep a local disabled flag for the interrupt.
If we don't do this we can get into a interrupt storm on
startup.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
11 years agoFix 0xC bugcheck in multiple object wait.
Paul Durrant [Fri, 1 Nov 2013 08:55:45 +0000 (09:55 +0100)]
Fix 0xC bugcheck in multiple object wait.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
11 years agoEnable and disable callback via at source rather than
Paul Durrant [Thu, 31 Oct 2013 15:37:42 +0000 (16:37 +0100)]
Enable and disable callback via at source rather than
trying to keep a local disabled flag for the interrupt.
If we don't do this we can get into a interrupt storm on
startup.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
11 years agoStop using insane amounts of stack.
Paul Durrant [Thu, 31 Oct 2013 15:32:08 +0000 (16:32 +0100)]
Stop using insane amounts of stack.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
11 years agoAdd per-cpu information to the set gathered by the system
Paul Durrant [Tue, 29 Oct 2013 13:01:15 +0000 (14:01 +0100)]
Add per-cpu information to the set gathered by the system
module.
We should really add calls to make this information more
available.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
11 years agoRemove an assertion that is now in the wrong place.
Paul Durrant [Thu, 17 Oct 2013 08:28:27 +0000 (09:28 +0100)]
Remove an assertion that is now in the wrong place.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
11 years agoKeep track of ActiveDevice rather than ActiveDeviceInstance. If we include
Paul Durrant [Fri, 4 Oct 2013 10:54:11 +0000 (11:54 +0100)]
Keep track of ActiveDevice rather than ActiveDeviceInstance. If we include
the instance then any change in the PCI bus can cause the PV drivers to
become inactive.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
11 years agoFix up README
Paul Durrant [Fri, 4 Oct 2013 10:48:27 +0000 (11:48 +0100)]
Fix up README

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
11 years agoNew README.md and INSTALL.md.
Paul Durrant [Tue, 1 Oct 2013 10:52:35 +0000 (11:52 +0100)]
New README.md and INSTALL.md.

Also fix some python/cygwin issues and imported header line endings.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
11 years agoUpdate build to reflect version
Paul Durrant [Fri, 27 Sep 2013 12:57:18 +0000 (13:57 +0100)]
Update build to reflect version

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>