xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Olaf Hering <olaf@aepfle.de>
To: "Zhang, Yang Z" <yang.z.zhang@intel.com>
Cc: "Tian, Kevin" <kevin.tian@intel.com>, Keir Fraser <keir@xen.org>,
	"Nakajima, Jun" <jun.nakajima@intel.com>,
	"Dong, Eddie" <eddie.dong@intel.com>,
	"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
	"Xu, Dongxiao" <dongxiao.xu@intel.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH] x86/hvm: implement save/restore for posted interrupts
Date: Sat, 2 Aug 2014 12:59:56 +0200	[thread overview]
Message-ID: <20140802105956.GA16174@aepfle.de> (raw)
In-Reply-To: <A9667DDFB95DB7438FA9D7D576C3D87E0AB3C3F9@SHSMSX104.ccr.corp.intel.com>

On Tue, Jul 29, Zhang, Yang Z wrote:

> Olaf Hering wrote on 2014-07-28:
> > On Fri, Jul 25, Tian, Kevin wrote:
> >> btw, did you run any workload cross save/restore? does it only
> >> happen with xen-platform-pci device?
> > Yes, only with xen-platform-pci. And in my testing only when the
> > interface provided by netfront is up (ip link set up dev eth0).
> Hi Olaf, can you try the following patch? I expect this patch will fix the issue.

No, that did not help. I tried it on top of Xen 4.2 from sles11sp3
update channel.

Olaf

> diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
> index f6409d6..f0a371b 100644
> --- a/xen/arch/x86/hvm/vmx/vmx.c
> +++ b/xen/arch/x86/hvm/vmx/vmx.c
> @@ -1517,6 +1517,8 @@ static void vmx_process_isr(int isr, struct vcpu *v)
>  {
>      unsigned long status;
>      u8 old;
> +    int vector;
> +    struct vlapic *s = vcpu_vlapic(v);
>  
>      if ( isr < 0 )
>          isr = 0;
> @@ -1530,6 +1532,14 @@ static void vmx_process_isr(int isr, struct vcpu *v)
>          status |= isr << VMX_GUEST_INTR_STATUS_SVI_OFFSET;
>          __vmwrite(GUEST_INTR_STATUS, status);
>      }
> +    for ( vector = 0; vector < NR_VECTORS; vector++ )
> +        if (vlapic_test_vector(vector, &s->regs->data[APIC_ISR]))
> +            set_bit(vector,  v->arch.hvm_vmx.eoi_exit_bitmap);
> +        
> +    __vmwrite(0x201c, v->arch.hvm_vmx.eoi_exit_bitmap[0]);
> +    __vmwrite(0x201e, v->arch.hvm_vmx.eoi_exit_bitmap[1]);
> +    __vmwrite(0x2020, v->arch.hvm_vmx.eoi_exit_bitmap[2]);
> +    __vmwrite(0x2022, v->arch.hvm_vmx.eoi_exit_bitmap[3]);
>      vmx_vmcs_exit(v);
>  }
>  
> diff --git a/xen/include/asm-x86/hvm/vlapic.h b/xen/include/asm-x86/hvm/vlapic.h
> index 66f0aff..2a83a1e 100644
> --- a/xen/include/asm-x86/hvm/vlapic.h
> +++ b/xen/include/asm-x86/hvm/vlapic.h
> @@ -58,6 +58,8 @@
>  
>  #define VEC_POS(v) ((v) % 32)
>  #define REG_POS(v) (((v) / 32) * 0x10)
> +#define vlapic_test_vector(vec, bitmap)                         \
> +    test_bit(VEC_POS(vec), (uint32_t *)((bitmap) + REG_POS(vec)))
>  #define vlapic_test_and_set_vector(vec, bitmap)                         \
>      test_and_set_bit(VEC_POS(vec), (uint32_t *)((bitmap) + REG_POS(vec)))
>  #define vlapic_test_and_clear_vector(vec, bitmap)

  parent reply	other threads:[~2014-08-02 10:59 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-03 15:09 [PATCH] x86/hvm: implement save/restore for posted interrupts Olaf Hering
2014-07-03 15:27 ` Jan Beulich
2014-07-09 11:24 ` Zhang, Yang Z
2014-07-09 21:14   ` Tian, Kevin
2014-07-16 14:28     ` Olaf Hering
2014-07-16 16:11       ` Tian, Kevin
2014-07-17  7:11         ` Olaf Hering
2014-07-17  9:29           ` Zhang, Yang Z
2014-07-18 13:58             ` Olaf Hering
2014-07-22 23:06               ` Zhang, Yang Z
2014-07-23  8:03                 ` Olaf Hering
2014-07-25 21:38             ` Tian, Kevin
2014-07-28  6:52               ` Olaf Hering
2014-07-29  7:48                 ` Zhang, Yang Z
2014-07-29  8:27                   ` Jan Beulich
2014-08-02 10:59                   ` Olaf Hering [this message]
2014-08-04  1:08                     ` Zhang, Yang Z
2014-08-04  7:50                       ` Olaf Hering
2014-08-04  7:57                         ` Zhang, Yang Z
2014-08-05 10:32                           ` Olaf Hering
2014-08-08  0:18                             ` Zhang, Yang Z
2014-09-01  6:44                             ` Zhang, Yang Z
2014-09-18  3:29                             ` Zhang, Yang Z
2014-09-19 13:32                               ` Olaf Hering
2014-09-19 13:39                                 ` Jan Beulich
2014-09-19 17:51                                   ` Andrew Cooper
2014-09-22 22:43                                     ` Tian, Kevin
2014-09-24 16:26                                       ` Malcolm Crossley
2014-09-30 16:19                                 ` Jan Beulich
2014-10-01  8:07                                   ` Olaf Hering
2014-10-01  8:29                                     ` Jan Beulich
2014-10-01 20:13                                       ` Olaf Hering
2014-10-02  6:51                                         ` Jan Beulich
2014-10-02  8:10                                           ` Andrew Cooper
2014-10-02  8:20                                             ` Olaf Hering
2014-10-08  7:37                                         ` Zhang, Yang Z
2014-10-08  7:40                                           ` Olaf Hering
2014-10-08  7:55                                             ` Zhang, Yang Z
2014-10-08  8:28                                           ` Olaf Hering
2014-10-08  8:35                                             ` Zhang, Yang Z
2014-10-08  8:54                                               ` Olaf Hering
2014-10-09  7:24                                                 ` Zhang, Yang Z
2014-10-09  8:41                                                   ` Fabio Fantoni
2014-10-09  8:43                                                     ` Zhang, Yang Z
2014-10-09 12:49                                                       ` Fabio Fantoni
2014-10-09 11:35                                                   ` Malcolm Crossley
2014-10-09 13:19                                                   ` Andrew Cooper
2014-10-10  0:48                                                     ` Zhang, Yang Z
2014-10-09 13:31                                                   ` Olaf Hering
2014-10-09 14:11                                                     ` Olaf Hering
2014-10-10  0:52                                                       ` Zhang, Yang Z
2014-07-25  9:40 ` Jan Beulich
2014-07-25 12:49   ` Tian, Kevin
2014-07-25 13:59     ` Jan Beulich
2014-07-25 21:31       ` Tian, Kevin
2014-07-28  6:46         ` Jan Beulich
2014-07-28  7:52           ` Wu, Feng
2014-07-28  8:17           ` Zhang, Yang Z
2014-07-28  9:02             ` Jan Beulich
2014-07-28  9:50               ` Liuqiming (John)

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=20140802105956.GA16174@aepfle.de \
    --to=olaf@aepfle.de \
    --cc=dongxiao.xu@intel.com \
    --cc=eddie.dong@intel.com \
    --cc=jbeulich@suse.com \
    --cc=jun.nakajima@intel.com \
    --cc=keir@xen.org \
    --cc=kevin.tian@intel.com \
    --cc=xen-devel@lists.xen.org \
    --cc=yang.z.zhang@intel.com \
    /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).