We don't set the affinity for posted format IRTE, since the
destination of these interrupts is vCPU and the vCPU affinity
is set during vCPU scheduling.
Signed-off-by: Feng Wu
---
v8:
- Changes based on [6/7]
v7:
- Compare all the field in IRTE to justify whether we can suppress the updat
. So the NDST is in a
proper state in vmx_vcpu_block().
Suggested-by: Jan Beulich
Signed-off-by: Feng Wu
Reviewed-by: Jan Beulich
---
v6:
- Comments changes
- Define macro 'APIC_INVALID_DEST' for '0x'
v5:
- Use 0x as the invalid value for NDST field.
: Feng Wu
Reviewed-by: Jan Beulich
---
v7:
- Prevent the domain from pausing itself.
v6:
- Comments changes
- Rename vmx_pi_list_remove() to vmx_pi_unblock_vcpu()
v5:
- Remove a no-op wrapper
v4:
- Rename some functions:
vmx_pi_remove_vcpu_from_blocking_list() -> vmx_pi_list_rem
eliver the interrupt
in posted way via software. The problem is if we deassign the
hooks while the vCPU is runnable in the runqueue with 'SN' set,
all the furture notificaton event will be suppressed. This patch
makes the hook permanently assigned.
Signed-off-by: Feng Wu
Reviewed-by: K
When cpu is offline, we need to move all the vcpus in its blocking
list to another online cpu, this patch handles it.
Signed-off-by: Feng Wu
Reviewed-by: Jan Beulich
---
v7:
- Pass unsigned int to vmx_pi_desc_fixup()
v6:
- Carefully suppress 'SN' to avoid missing notification ev
PU is unplugged, and there might be vCPUs on its
list. Since the pCPU is offline, those vCPUs might not be woken
up again. [7/7] addresses it.
Feng Wu (7):
VMX: Permanently assign PI hook vmx_pi_switch_to()
VMX: Properly handle pi when all the assigned devices are removed
VMX: Make sure PI is in p
Use one function to update both remapped IRTE and posted IRET.
Signed-off-by: Feng Wu
---
v8:
- Newly added
xen/drivers/passthrough/vtd/intremap.c | 162 ++---
1 file changed, 66 insertions(+), 96 deletions(-)
diff --git a/xen/drivers/passthrough/vtd/intremap.c
b
Use type-safe structure assignment instead of memcpy()
Use sizeof(*iremap_entry).
Signed-off-by: Feng Wu
Reviewed-by: Konrad Rzeszutek Wilk
---
v7:
- Remove a useless cleanup
v6:
- More descripion about the patch
xen/drivers/passthrough/vtd/intremap.c | 14 +++---
1 file changed, 7
We don't set the affinity for posted format IRTE, since the
destination of these interrupts is vCPU and the vCPU affinity
is set during vCPU scheduling.
Signed-off-by: Feng Wu
---
v8:
- Changes based on [6/7]
v7:
- Compare all the field in IRTE to justify whether we can suppress the updat
We don't set the affinity for posted format IRTE, since the
destination of these interrupts is vCPU and the vCPU affinity
is set during vCPU scheduling.
Signed-off-by: Feng Wu
---
v7:
- Compare all the field in IRTE to justify whether we can suppress the update
v6:
-
We don't set the affinity for posted format IRTE, since the
destination of these interrupts is vCPU and the vCPU affinity
is set during vCPU scheduling.
Signed-off-by: Feng Wu
---
v7:
- Compare all the field in IRTE to justify whether we can suppress the update
v6:
-
those vCPUs might not be woken
up again. [6/6] addresses it.
Feng Wu (6):
VMX: Permanently assign PI hook vmx_pi_switch_to()
VMX: Properly handle pi when all the assigned devices are removed
VMX: Make sure PI is in proper state before install the hooks
VT-d: No need to set irq affinit
: Feng Wu
---
v7:
- Prevent the domain from pausing itself.
v6:
- Comments changes
- Rename vmx_pi_list_remove() to vmx_pi_unblock_vcpu()
v5:
- Remove a no-op wrapper
v4:
- Rename some functions:
vmx_pi_remove_vcpu_from_blocking_list() -> vmx_pi_list_remove()
vmx_pi_blocking_clea
. So the NDST is in a
proper state in vmx_vcpu_block().
Suggested-by: Jan Beulich
Signed-off-by: Feng Wu
Reviewed-by: Jan Beulich
---
v6:
- Comments changes
- Define macro 'APIC_INVALID_DEST' for '0x'
v5:
- Use 0x as the invalid value for NDST field.
eliver the interrupt
in posted way via software. The problem is if we deassign the
hooks while the vCPU is runnable in the runqueue with 'SN' set,
all the furture notificaton event will be suppressed. This patch
makes the hook permanently assigned.
Signed-off-by: Feng Wu
---
v7:
- c
When cpu is offline, we need to move all the vcpus in its blocking
list to another online cpu, this patch handles it.
Signed-off-by: Feng Wu
Reviewed-by: Jan Beulich
---
v7:
- Pass unsigned int to vmx_pi_desc_fixup()
v6:
- Carefully suppress 'SN' to avoid missing notification ev
Use type-safe structure assignment instead of memcpy()
Use sizeof(*iremap_entry).
Signed-off-by: Feng Wu
---
v7:
- Remove a useless cleanup
v6:
- More descripion about the patch
xen/drivers/passthrough/vtd/intremap.c | 14 +++---
1 file changed, 7 insertions(+), 7 deletions(-)
diff
ire' if the entry
is present.
Signed-off-by: Feng Wu
---
v6:
- More descripion about the patch
xen/drivers/passthrough/vtd/intremap.c | 17 +
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/xen/drivers/passthrough/vtd/intremap.c
b/xen/drivers/passthrough/vtd
. So the NDST is in a
proper state in vmx_vcpu_block().
Suggested-by: Jan Beulich
Signed-off-by: Feng Wu
---
v6:
- Comments changes
- Define macro 'APIC_INVALID_DEST' for '0x'
v5:
- Use 0x as the invalid value for NDST field.
v4:
- This patch is previously c
We don't set the affinity for posted format IRTE, since the
destination of these interrupts is vCPU and the vCPU affinity
is set during vCPU scheduling.
Signed-off-by: Feng Wu
---
v6:
- Make pi_can_suppress_irte_update() a check-only function
- Introduce another function pi_get_new_irte
eliver the interrupt
in posted way via software. The problem is if we deassign the
hooks while the vCPU is runnable in the runqueue with 'SN' set,
all the furture notificaton event will be suppressed. This patch
makes these two hooks statically assigned.
Signed-off-by: Feng Wu
---
v6:
-
: Feng Wu
---
v6:
- Comments changes
- Rename vmx_pi_list_remove() to vmx_pi_unblock_vcpu()
v5:
- Remove a no-op wrapper
v4:
- Rename some functions:
vmx_pi_remove_vcpu_from_blocking_list() -> vmx_pi_list_remove()
vmx_pi_blocking_cleanup() -> vmx_pi_list_cleanup()
- Remove the
We should remove the vCPU from the per-cpu blocking list
if it is going to be destroyed.
Signed-off-by: Feng Wu
---
v6:
- Use vmx_pi_unblock_vcpu() instead of vmx_pi_list_remove()
v5:
- Use vmx_pi_list_remove() instead of vmx_pi_list_cleanup()
v4:
- Call vmx_pi_list_cleanup() before
4. [6/7] is a cleanup patch
5. When a pCPU is unplugged, and there might be vCPUs on its
list. Since the pCPU is offline, those vCPUs might not be woken
up again. [7/7] addresses it.
Feng Wu (7):
VMX: Permanently assign PI hook vmx_pi_switch_to()
VMX: Properly handle pi when all the assigned de
When cpu is offline, we need to move all the vcpus in its blocking
list to another online cpu, this patch handles it.
Signed-off-by: Feng Wu
---
v6:
- Carefully suppress 'SN' to avoid missing notification event
during moving the vcpu to the new list
v5:
- Add some comments to expl
. So the NDST is in a
proper state in vmx_vcpu_block().
Suggested-by: Jan Beulich
Signed-off-by: Feng Wu
---
v5:
- Use 0x as the invalid value for NDST field.
xen/arch/x86/hvm/vmx/vmcs.c | 13 +
xen/arch/x86/hvm/vmx/vmx.c | 27 ++-
2 files changed, 31
We don't set the affinity for posted format IRTE, since the
destination of these interrupts is vCPU and the vCPU affinity
is set during vCPU scheduling.
Signed-off-by: Feng Wu
---
v5:
- Only suppress affinity related IRTE updates for PI
xen/drivers/passthrough/vtd/intremap.c
: Feng Wu
---
v5:
- Remove a no-op wrapper
xen/arch/x86/hvm/vmx/vmx.c | 28
1 file changed, 24 insertions(+), 4 deletions(-)
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 623d5bc..d210516 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen
We should remove the vCPU from the per-cpu blocking list
if it is going to be destroyed.
Signed-off-by: Feng Wu
---
v5:
- Use vmx_pi_list_remove() instead of vmx_pi_list_cleanup()
xen/arch/x86/hvm/vmx/vmx.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen
Use type-safe structure assignment instead of memcpy()
Use sizeof(*iremap_entry)
Signed-off-by: Feng Wu
---
xen/drivers/passthrough/vtd/intremap.c | 17 +
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/xen/drivers/passthrough/vtd/intremap.c
b/xen/drivers
s.
4. When a pCPU is unplugged, and there might be vCPUs on its
list. Since the pCPU is offline, those vCPUs might not be woken
up again. [6/6] addresses it.
Feng Wu (7):
VMX: Statically assign two PI hooks
VMX: Properly handle pi when all the assigned devices are removed
VMX: Cleanup PI pe
When cpu is offline, we need to move all the vcpus in its blocking
list to another online cpu, this patch handles it.
Signed-off-by: Feng Wu
---
v5:
- Add some comments to explain why it doesn't cause deadlock
for the ABBA deadlock scenario.
xen/arch/x86/hvm/vmx/vmcs.c | 1 +
xen
osted_intr()
when trying to deliver the interrupt in posted way via software.
The problem is if we deassign the hooks while the vCPU is runnable
in the runqueue with 'SN' set, all the furture notificaton event
will be suppressed. This patch makes these two hooks statically
assigned.
Si
osted_intr()
when trying to deliver the interrupt in posted way via software.
The problem is if we deassign the hooks while the vCPU is runnable
in the runqueue with 'SN' set, all the furture notificaton event
will be suppressed. This patch makes these two hooks statically
assigned.
Si
.
- No remaining vcpus of the domain in the per-cpu blocking list.
Basically, we pause the domain before zapping the PI hooks and
removing the vCPU from the blocking list, then unpause it after
that.
Signed-off-by: Feng Wu
---
v4:
- Rename some functions
We should remove the vCPU from the per-cpu blocking list
if it is going to be destroyed.
Signed-off-by: Feng Wu
---
v4:
- Call vmx_pi_list_cleanup() before vmx_destroy_vmcs()
xen/arch/x86/hvm/vmx/vmx.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch
We don't set the affinity for posted format IRTE, since the
destination of these interrupts is vCPU and the vCPU affinity
is set during vCPU scheduling.
Signed-off-by: Feng Wu
---
v4:
- Keep the construction of new_ire and only modify the hardware
IRTE when it is not in posted mode.
When cpu is offline, we need to move all the vcpus in its blocking
list to another online cpu, this patch handles it.
Signed-off-by: Feng Wu
---
v4:
- Remove the pointless check since we are in machine stop
context and no other cpus go down in parallel.
xen/arch/x86/hvm/vmx/vmcs.c | 1
s.
4. When a pCPU is unplugged, and there might be vCPUs on its
list. Since the pCPU is offline, those vCPUs might not be woken
up again. [6/6] addresses it.
Feng Wu (6):
VMX: Statically assign two PI hooks
VMX: Properly handle pi when all the assigned devices are removed
VMX: Cleanup PI pe
the NDST is in a
proper state in vmx_vcpu_block().
Suggested-by: Jan Beulich
Signed-off-by: Feng Wu
---
v4:
- This patch is previously called "Pause/Unpause the domain before/after
assigning PI hooks"
- Remove the pause/unpause method
- Use cmpxchg to update NDST
xen/arch/x86/hvm/vmx/v
s.
4. When a pCPU is unplugged, and there might be vCPUs on its
list. Since the pCPU is offline, those vCPUs might not be woken
up again. [6/6] addresses it.
The previous version of this series is:
https://lists.xen.org/archives/html/xen-devel/2016-05/msg02592.html
Feng Wu (6):
VMX: Statically assig
When cpu is offline, we need to move all the vcpus in its blocking
list to another online cpu, this patch handles it.
Signed-off-by: Feng Wu
---
xen/arch/x86/hvm/vmx/vmcs.c | 1 +
xen/arch/x86/hvm/vmx/vmx.c| 54 +++
xen/include/asm-x86/hvm/vmx
.
- No remaining vcpus of the domain in the per-cpu blocking list.
Basically, we pause the domain before zapping the PI hooks and
removing the vCPU from the blocking list, then unpause it after
that.
Signed-off-by: Feng Wu
---
xen/arch/x86/hvm/vmx/vmx.c | 34 +++---
1
We should remove the vCPU from the per-cpu blocking list
if it is going to be destroyed.
Signed-off-by: Feng Wu
---
xen/arch/x86/hvm/vmx/vmx.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index b869728..37fa2f1 100644
--- a/xen/arch
.
The problem is if we deassign the hooks while the vCPU is runnable
in the runqueue with 'SN' set, all the furture notificaton event
will be suppressed. This patch makes these two hooks statically
assigned.
Signed-off-by: Feng Wu
---
xen/arch/x86/hvm/vmx/vmx.c | 10 ++
1 file
We don't set the affinity for posted format IRTE, since the
destination of these interrupts is vCPU and the vCPU affinity
is set during vCPU scheduling.
Signed-off-by: Feng Wu
---
xen/drivers/passthrough/vtd/intremap.c | 62 +++---
1 file changed, 34 inser
Pausing the domain can make sure the vCPU is not running and
hence calling the hooks simultaneously when deassigning the
PI hooks. This makes sure that all the appropriate state of
PI descriptor is actually set up for all vCPus before leaving
this function.
Signed-off-by: Feng Wu
---
xen/arch
The 'idx' can equal to the max number of vCPUs, fix it.
Signed-off-by: Feng Wu
---
xen/drivers/passthrough/io.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xen/drivers/passthrough/io.c b/xen/drivers/passthrough/io.c
index 9e6b46c..66577b6 100644
--- a/x
When cpu is offline, we need to move all the vcpus in its blocking
list to another online cpu, this patch handles it. And we need to
carefully handle the situation that calling to vmx_vcpu_block() and
cpu offline occur concurrently.
Signed-off-by: Feng Wu
---
xen/arch/x86/hvm/vmx/vmcs.c
s assigned in vmx_pi_hooks_assign(), but all
other three PI hooks have not been assigned or not been excuted yet.
And during this interval, we are running in vmx_vcpu_block(), then
'NDST' may have different value.
This patch fix this concern case.
Signed-off-by: Feng Wu
---
xen/arc
vCPUs to another blocking
list of an online pCPU, as well as, set the new cpu to the 'NDST'
field of PI descriptor.
Feng Wu (4):
VMX: Properly handle pi when all the assigned devices are removed
VMX: Cleanup PI per-cpu blocking list when vcpu is destroyed
VMX: Assign the right
. This is achrived by always
making all the pi hooks available, so the pi descriptor is updated
during scheduling, which make it always up-to-data.
- No remaining vcpus of the domain in the per-cpu blocking list.
Signed-off-by: Feng Wu
---
xen/arch/x86/hvm/vmx/vmx.c | 75
We should remove the vCPU from the per-cpu blocking list
if it is going to be destroyed.
Signed-off-by: Feng Wu
---
xen/arch/x86/hvm/vmx/vmx.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 65f5288..b01128a 100644
--- a/xen/arch
We need to make sure the bocking vcpu is not in any per-cpu blocking list
when the associated domain is going to be destroyed.
Signed-off-by: Feng Wu
---
xen/arch/x86/hvm/vmx/vmx.c | 32
1 file changed, 32 insertions(+)
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b
Make hook pi_do_resume always available, so when the last
assigned device is dettached from a domain, the blocked
vcpu can be removed from the per-cpu blocking list properly.
Signed-off-by: Feng Wu
---
xen/arch/x86/hvm/vmx/vmx.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff
avaliable again, the status
of the pi descriptor is not true, we need to properly adjust
it.
Signed-off-by: Feng Wu
---
xen/arch/x86/hvm/vmx/vmx.c | 29 ++---
xen/include/asm-x86/hvm/vmx/vmcs.h | 1 +
2 files changed, 27 insertions(+), 3 deletions(-)
diff --git a/xen
the per-cpu blocking.
This series fix the above issue.
I still have two opens, which needs comments/sugguestions from you guys.
- What shoule we do for the per-cpu blocking list during vcpu hotplug?
- What shoule we do for the per-cpu blocking list during pcpu hotplug?
Feng Wu (3):
VMX
the following URL:
http://www.intel.com/content/www/us/en/intelligent-systems/intel-technology/vt-directed-io-spec.html
Feng Wu (2):
vmx: VT-d posted-interrupt core logic handling
Add a command line parameter for VT-d posted-interrupts
docs/misc/xen-command-line.markdown | 9 +-
xen/arch
Enable VT-d Posted-Interrupts and add a command line
parameter for it.
CC: Jan Beulich
Signed-off-by: Feng Wu
Reviewed-by: Kevin Tian
Acked-by: Jan Beulich
---
docs/misc/xen-command-line.markdown | 9 -
xen/drivers/passthrough/iommu.c | 3 +++
2 files changed, 11 insertions(+), 1
pts will be
delivered to guest atht the next time we do a VMENTRY.
CC: Keir Fraser
CC: Jan Beulich
CC: Andrew Cooper
CC: Kevin Tian
CC: George Dunlap
CC: Dario Faggioli
Suggested-by: Yang Zhang
Suggested-by: Dario Faggioli
Suggested-by: George Dunlap
Suggested-by: Jan Beulich
Signed-of
the following URL:
http://www.intel.com/content/www/us/en/intelligent-systems/intel-technology/vt-directed-io-spec.html
Feng Wu (2):
vmx: VT-d posted-interrupt core logic handling
Add a command line parameter for VT-d posted-interrupts
docs/misc/xen-command-line.markdown | 9 +-
xen/arch
pts will be
delivered to guest atht the next time we do a VMENTRY.
CC: Keir Fraser
CC: Jan Beulich
CC: Andrew Cooper
CC: Kevin Tian
CC: George Dunlap
CC: Dario Faggioli
Suggested-by: Yang Zhang
Suggested-by: Dario Faggioli
Suggested-by: George Dunlap
Suggested-by: Jan Beulich
Signed-off-by
Enable VT-d Posted-Interrupts and add a command line
parameter for it.
CC: Jan Beulich
Signed-off-by: Feng Wu
Reviewed-by: Kevin Tian
Acked-by: Jan Beulich
---
docs/misc/xen-command-line.markdown | 9 -
xen/drivers/passthrough/iommu.c | 3 +++
2 files changed, 11 insertions(+), 1
Enable VT-d Posted-Interrupts and add a command line
parameter for it.
CC: Jan Beulich
Signed-off-by: Feng Wu
Reviewed-by: Kevin Tian
Acked-by: Jan Beulich
---
docs/misc/xen-command-line.markdown | 9 -
xen/drivers/passthrough/iommu.c | 3 +++
2 files changed, 11 insertions(+), 1
the following URL:
http://www.intel.com/content/www/us/en/intelligent-systems/intel-technology/vt-directed-io-spec.html
Feng Wu (2):
vmx: VT-d posted-interrupt core logic handling
Add a command line parameter for VT-d posted-interrupts
docs/misc/xen-command-line.markdown | 9 +-
xen/arch
pts will be
delivered to guest atht the next time we do a VMENTRY.
CC: Keir Fraser
CC: Jan Beulich
CC: Andrew Cooper
CC: Kevin Tian
CC: George Dunlap
CC: Dario Faggioli
Suggested-by: Yang Zhang
Suggested-by: Dario Faggioli
Suggested-by: George Dunlap
Suggested-by: Jan Beulich
Signed-of
Enable VT-d Posted-Interrupts and add a command line
parameter for it.
CC: Jan Beulich
Signed-off-by: Feng Wu
Reviewed-by: Kevin Tian
Acked-by: Jan Beulich
---
docs/misc/xen-command-line.markdown | 9 -
xen/drivers/passthrough/iommu.c | 3 +++
2 files changed, 11 insertions(+), 1
the following URL:
http://www.intel.com/content/www/us/en/intelligent-systems/intel-technology/vt-directed-io-spec.html
Feng Wu (2):
vmx: VT-d posted-interrupt core logic handling
Add a command line parameter for VT-d posted-interrupts
docs/misc/xen-command-line.markdown | 9 +-
xen/arch
pts will be
delivered to guest atht the next time we do a VMENTRY.
CC: Keir Fraser
CC: Jan Beulich
CC: Andrew Cooper
CC: Kevin Tian
CC: George Dunlap
CC: Dario Faggioli
Suggested-by: Yang Zhang
Suggested-by: Dario Faggioli
Suggested-by: George Dunlap
Suggested-by: Jan Beulich
Signed-off-by
Enable VT-d Posted-Interrupts and add a command line
parameter for it.
CC: Jan Beulich
Signed-off-by: Feng Wu
Reviewed-by: Kevin Tian
Acked-by: Jan Beulich
---
v6:
- Change the default value to 'false' in xen-command-line.markdown
docs/misc/xen-command-line.markdown | 9
This patch adds an API which is used to update the IRTE
for posted-interrupt when guest changes MSI/MSI-X information.
CC: Kevin Tian
CC: Keir Fraser
CC: Jan Beulich
CC: Andrew Cooper
Signed-off-by: Feng Wu
Reviewed-by: Jan Beulich
---
v10:
- Add some comments
v8:
- Some minor adjustment
pts will be
delivered to guest atht the next time we do a VMENTRY.
CC: Keir Fraser
CC: Jan Beulich
CC: Andrew Cooper
CC: Kevin Tian
CC: George Dunlap
CC: Dario Faggioli
Suggested-by: Yang Zhang
Suggested-by: Dario Faggioli
Suggested-by: George Dunlap
Suggested-by: Jan Beulich
Sign
-off-by: Feng Wu
Acked-by: Kevin Tian
---
v7:
- Retain 'cli' in the comments to make it more understandable.
- Register another notification event handler when VT-d PI is enabled
v6:
- Ack the interrupt in the beginning of pi_notification_interrupt()
v4:
- Coding style.
Currently, we don't support urgent interrupt, all interrupts
are recognized as non-urgent interrupt, so we cannot send
posted-interrupt when 'SN' is set.
CC: Kevin Tian
CC: Keir Fraser
CC: Jan Beulich
CC: Andrew Cooper
Signed-off-by: Feng Wu
Reviewed-by: Konrad Rzeszutek Wi
Signed-off-by: Feng Wu
Acked-by: Jan Beulich
---
v8:
- Remove local variable 'bitmap_array_size'
- Use switch to replace if-else
v7:
- Remove some pointless debug printk
- Fix a logic error when assigning 'delivery_mode'
- Adjust the definition of local variable 'idx'
the following URL:
http://www.intel.com/content/www/us/en/intelligent-systems/intel-technology/vt-directed-io-spec.html
Feng Wu (17):
r VT-d Posted-intterrupt (PI) design
ra vmx: Suppress posting interrupts when 'SN' is set
r vt-d: Add API to update IRTE when VT-d PI is used
Add the design doc for VT-d PI.
CC: Kevin Tian
CC: Jan Beulich
CC: Keir Fraser
CC: Andrew Cooper
CC: George Dunlap
Signed-off-by: Feng Wu
Reviewed-by: Kevin Tian
Reviewed-by: Konrad Rzeszutek Wilk
---
v10:
- Add some new definitions
- Add more description in the vCPU block section
- Use
g Zhang
Suggested-by: Dario Faggioli
Suggested-by: George Dunlap
Suggested-by: Jan Beulich
Signed-off-by: Feng Wu
---
v9:
- Remove arch_vcpu_block_cancel() and arch_vcpu_wake_prepare()
- Add vmx_pi_state_change() and call it before VM Entry
v8:
- Remove the lazy context switch handling fo
Enable VT-d Posted-Interrupts and add a command line
parameter for it.
CC: Jan Beulich
Signed-off-by: Feng Wu
Reviewed-by: Kevin Tian
Acked-by: Jan Beulich
---
v6:
- Change the default value to 'false' in xen-command-line.markdown
docs/misc/xen-command-line.markdown | 9
Extend struct iremap_entry according to VT-d Posted-Interrupts Spec.
CC: Yang Zhang
CC: Kevin Tian
Signed-off-by: Feng Wu
Acked-by: Kevin Tian
---
v8:
- Make use of the __uint128_t member in struct iremap_entry when needed
v7:
- Add a __uint128_t member to the union in struct iremap_entry
This patch adds an API which is used to update the IRTE
for posted-interrupt when guest changes MSI/MSI-X information.
CC: Yang Zhang
CC: Kevin Tian
CC: Keir Fraser
CC: Jan Beulich
CC: Andrew Cooper
Signed-off-by: Feng Wu
Reviewed-by: Jan Beulich
---
v8:
- Some minor adjustment
v7
This patch adds some helper functions to manipulate the
Posted-Interrupts Descriptor.
CC: Kevin Tian
CC: Keir Fraser
CC: Jan Beulich
CC: Andrew Cooper
Signed-off-by: Feng Wu
Reviewed-by: Konrad Rzeszutek Wilk
---
v7:
- Use bitfield in pi_test_on() and pi_test_sn()
v4:
- Newly added
xen
This patch initializes the VT-d Posted-interrupt Descriptor.
CC: Kevin Tian
CC: Keir Fraser
CC: Jan Beulich
CC: Andrew Cooper
Signed-off-by: Feng Wu
Acked-by: Kevin Tian
Reviewed-by: Konrad Rzeszutek Wilk
---
v7:
- Add comments to function 'pi_desc_init' to clarify why we
Currently, we don't support urgent interrupt, all interrupts
are recognized as non-urgent interrupt, so we cannot send
posted-interrupt when 'SN' is set.
CC: Kevin Tian
CC: Keir Fraser
CC: Jan Beulich
CC: Andrew Cooper
Signed-off-by: Feng Wu
Reviewed-by: Konrad Rzeszutek Wi
-off-by: Feng Wu
Acked-by: Kevin Tian
---
v7:
- Retain 'cli' in the comments to make it more understandable.
- Register another notification event handler when VT-d PI is enabled
v6:
- Ack the interrupt in the beginning of pi_notification_interrupt()
v4:
- Coding style.
Add the utility to dump the posted format IRTE.
CC: Yang Zhang
CC: Kevin Tian
Signed-off-by: Feng Wu
---
v8:
- Coding style
v7:
- Remove the two stage loop
v6:
- Fix a typo
v4:
- Newly added
xen/drivers/passthrough/vtd/utils.c | 28 +---
1 file changed, 21
operand an input and output.
- [PATCH v9 15/17] vmx: VT-d posted-interrupt core logic handling
* Remove arch_vcpu_block_cancel() and arch_vcpu_wake_prepare().
* Add vmx_pi_state_change() and call it before VM Entry.
Feng Wu (17):
r VT-d Posted-intterrupt (PI) design
Add cmpxchg16b
This patch adds cmpxchg16b support for x86-64, so software
can perform 128-bit atomic write/read.
CC: Keir Fraser
CC: Jan Beulich
CC: Andrew Cooper
Signed-off-by: Feng Wu
---
v9:
- Make the *ptr operand an input and output.
v8:
- Remove pointless cast when assigning 'new_low'
Add the design doc for VT-d PI.
CC: Kevin Tian
CC: Yang Zhang
CC: Jan Beulich
CC: Keir Fraser
CC: Andrew Cooper
CC: George Dunlap
Signed-off-by: Feng Wu
Reviewed-by: Kevin Tian
Reviewed-by: Konrad Rzeszutek Wilk
---
docs/misc/vtd-pi.txt | 329
Extend struct pi_desc according to VT-d Posted-Interrupts Spec.
CC: Kevin Tian
CC: Keir Fraser
CC: Jan Beulich
CC: Andrew Cooper
Signed-off-by: Feng Wu
Reviewed-by: Andrew Cooper
Acked-by: Kevin Tian
Reviewed-by: Konrad Rzeszutek Wilk
---
v8:
- Coding style
v7:
- Coding style.
v3:
- Use
Move some APIC related macros to apicdef.h, so they can be used
outside of vlapic.c.
CC: Keir Fraser
CC: Jan Beulich
CC: Andrew Cooper
Signed-off-by: Feng Wu
Acked-by: Jan Beulich
---
v8:
- Minor changes
v7:
- Put the Macros to the right place inside the file.
v6:
- Newly introduced.
xen
Signed-off-by: Feng Wu
Acked-by: Jan Beulich
---
v8:
- Remove local variable 'bitmap_array_size'
- Use switch to replace if-else
v7:
- Remove some pointless debug printk
- Fix a logic error when assigning 'delivery_mode'
- Adjust the definition of local variable 'idx'
Remove pointless casts.
CC: Yang Zhang
CC: Kevin Tian
Suggested-by: Jan Beulich
Signed-off-by: Feng Wu
Reviewed-by: Konrad Rzeszutek Wilk
---
v7:
- Remove an 'u32' casting omitted in v5
v5:
- Newly added.
xen/drivers/passthrough/vtd/utils.c | 16 +++-
1 file
t' to control whether enable VT-d
posted-interrupt or not in the generic IOMMU code.
CC: Jan Beulich
CC: Kevin Tian
Signed-off-by: Feng Wu
Reviewed-by: Kevin Tian
Reviewed-by: Konrad Rzeszutek Wilk
Acked-by: Jan Beulich
---
v5:
- Remove the "if no intremap then no intpost" logic
: Feng Wu
Reviewed-by: Konrad Rzeszutek Wilk
Reviewed-by: Jan Beulich
---
v7:
- Remove pointless "if non iommu_intremap then disable iommu_intpost" logic
- Don't need to check !iommu_intremap or !iommu_intpost when setting
iommu_intpost to 0
v5:
- Remove blank line
v4:
- Correc
Extend struct iremap_entry according to VT-d Posted-Interrupts Spec.
CC: Yang Zhang
CC: Kevin Tian
Signed-off-by: Feng Wu
Acked-by: Kevin Tian
---
v8:
- Make use of the __uint128_t member in struct iremap_entry when needed
v7:
- Add a __uint128_t member to the union in struct iremap_entry
Enable VT-d Posted-Interrupts and add a command line
parameter for it.
CC: Jan Beulich
Signed-off-by: Feng Wu
Reviewed-by: Kevin Tian
Acked-by: Jan Beulich
---
v6:
- Change the default value to 'false' in xen-command-line.markdown
docs/misc/xen-command-line.markdown | 9
Fraser
CC: Jan Beulich
CC: Andrew Cooper
CC: Kevin Tian
CC: George Dunlap
CC: Dario Faggioli
Sugguested-by: Dario Faggioli
Signed-off-by: Feng Wu
---
v8:
- Remove the lazy context switch handling for PI state transition
- Change PI state in vcpu_block() and do_poll() when the vCPU
is going to
the following URL:
http://www.intel.com/content/www/us/en/intelligent-systems/intel-technology/vt-directed-io-spec.html
Feng Wu (17):
VT-d Posted-intterrupt (PI) design
Add cmpxchg16b support for x86-64
iommu: Add iommu_intpost to control VT-d Posted-Interrupts feature
vt-d: VT-d Posted
This patch adds an API which is used to update the IRTE
for posted-interrupt when guest changes MSI/MSI-X information.
CC: Yang Zhang
CC: Kevin Tian
CC: Keir Fraser
CC: Jan Beulich
CC: Andrew Cooper
Signed-off-by: Feng Wu
Reviewed-by: Jan Beulich
---
v8:
- Some minor adjustment
v7
1 - 100 of 235 matches
Mail list logo