xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Feng Wu <feng.wu@intel.com>
To: xen-devel@lists.xen.org
Cc: kevin.tian@intel.com, Feng Wu <feng.wu@intel.com>,
	george.dunlap@eu.citrix.com, andrew.cooper3@citrix.com,
	dario.faggioli@citrix.com, jbeulich@suse.com
Subject: [PATCH v3 1/6] VMX: Statically assign two PI hooks
Date: Wed, 31 Aug 2016 11:56:26 +0800	[thread overview]
Message-ID: <1472615791-8664-2-git-send-email-feng.wu@intel.com> (raw)
In-Reply-To: <1472615791-8664-1-git-send-email-feng.wu@intel.com>

PI hooks: vmx_pi_switch_from() and vmx_pi_switch_to() are
needed even all the assigned devices were dettached from
the domain. We change the state of SN bit in these two
functions, and evaluate this bit in vmx_deliver_posted_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.

Signed-off-by: Feng Wu <feng.wu@intel.com>
---
 xen/arch/x86/hvm/vmx/vmx.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 3d330b6..f5d2d3c 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -207,8 +207,6 @@ void vmx_pi_hooks_assign(struct domain *d)
     ASSERT(!d->arch.hvm_domain.vmx.vcpu_block);
 
     d->arch.hvm_domain.vmx.vcpu_block = vmx_vcpu_block;
-    d->arch.hvm_domain.vmx.pi_switch_from = vmx_pi_switch_from;
-    d->arch.hvm_domain.vmx.pi_switch_to = vmx_pi_switch_to;
     d->arch.hvm_domain.vmx.pi_do_resume = vmx_pi_do_resume;
 }
 
@@ -221,8 +219,6 @@ void vmx_pi_hooks_deassign(struct domain *d)
     ASSERT(d->arch.hvm_domain.vmx.vcpu_block);
 
     d->arch.hvm_domain.vmx.vcpu_block = NULL;
-    d->arch.hvm_domain.vmx.pi_switch_from = NULL;
-    d->arch.hvm_domain.vmx.pi_switch_to = NULL;
     d->arch.hvm_domain.vmx.pi_do_resume = NULL;
 }
 
@@ -236,6 +232,12 @@ static int vmx_domain_initialise(struct domain *d)
     if ( (rc = vmx_alloc_vlapic_mapping(d)) != 0 )
         return rc;
 
+    if ( iommu_intpost )
+    {
+        d->arch.hvm_domain.vmx.pi_switch_from = vmx_pi_switch_from;
+        d->arch.hvm_domain.vmx.pi_switch_to = vmx_pi_switch_to;
+    }
+
     return 0;
 }
 
-- 
2.1.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

  reply	other threads:[~2016-08-31  3:56 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-31  3:56 [PATCH v3 0/6] VMX: Properly handle pi descriptor and per-cpu blocking list Feng Wu
2016-08-31  3:56 ` Feng Wu [this message]
2016-09-01  8:16   ` [PATCH v3 1/6] VMX: Statically assign two PI hooks Jan Beulich
2016-09-01  9:13     ` Wu, Feng
2016-09-01  9:23       ` Jan Beulich
2016-09-01  9:38         ` Wu, Feng
2016-09-06  8:42   ` Dario Faggioli
2016-09-06  9:53     ` Wu, Feng
2016-08-31  3:56 ` [PATCH v3 2/6] VMX: Properly handle pi when all the assigned devices are removed Feng Wu
2016-09-01  8:21   ` Jan Beulich
2016-09-01  9:22     ` Wu, Feng
2016-09-01 10:23       ` Jan Beulich
2016-09-01 13:12         ` Wu, Feng
2016-09-06  8:58   ` Dario Faggioli
2016-08-31  3:56 ` [PATCH v3 3/6] VMX: Cleanup PI per-cpu blocking list when vcpu is destroyed Feng Wu
2016-09-06  9:21   ` Dario Faggioli
2016-09-06 23:27     ` Wu, Feng
2016-08-31  3:56 ` [PATCH v3 4/6] Pause/Unpause the domain before/after assigning PI hooks Feng Wu
2016-09-01  8:29   ` Jan Beulich
2016-09-02  1:46     ` Wu, Feng
2016-09-02  7:04       ` Jan Beulich
2016-09-02  7:31         ` Wu, Feng
2016-09-02  8:16           ` Jan Beulich
2016-09-02  8:40             ` Wu, Feng
2016-09-02  9:25               ` Jan Beulich
2016-09-02 10:30                 ` Wu, Feng
2016-09-02 10:45                   ` Jan Beulich
2016-09-02 13:15                     ` Wu, Feng
2016-09-02 13:54                       ` Jan Beulich
2016-09-05  3:11                         ` Wu, Feng
2016-09-05  9:27                           ` Jan Beulich
2016-09-14  2:23                           ` Wu, Feng
2016-09-14  8:46                             ` Jan Beulich
2016-09-14 14:51                             ` Dario Faggioli
2016-09-18  8:37                               ` Wu, Feng
2016-09-19 23:12                                 ` Dario Faggioli
2016-09-20  0:48                                   ` Wu, Feng
2016-09-20  7:31                                   ` Jan Beulich
2016-09-20  7:53                                     ` Wu, Feng
2016-09-20  8:13                                     ` Dario Faggioli
2016-09-20  8:18                                       ` Wu, Feng
2016-09-23 14:19                       ` Jan Beulich
2016-09-26  2:53                         ` Wu, Feng
2016-08-31  3:56 ` [PATCH v3 5/6] VT-d: No need to set irq affinity for posted format IRTE Feng Wu
2016-09-01  8:38   ` Jan Beulich
2016-09-02  1:58     ` Wu, Feng
2016-08-31  3:56 ` [PATCH v3 6/6] VMX: Fixup PI descritpor when cpu is offline Feng Wu
2016-09-01  8:48   ` Jan Beulich
2016-09-02  3:25     ` Wu, Feng
2016-09-02  7:08       ` Jan Beulich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1472615791-8664-2-git-send-email-feng.wu@intel.com \
    --to=feng.wu@intel.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=dario.faggioli@citrix.com \
    --cc=george.dunlap@eu.citrix.com \
    --cc=jbeulich@suse.com \
    --cc=kevin.tian@intel.com \
    --cc=xen-devel@lists.xen.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).