All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dario Faggioli <dario.faggioli@citrix.com>
To: Quan Xu <quan.xu@intel.com>, jbeulich@suse.com, kevin.tian@intel.com
Cc: feng.wu@intel.com, jun.nakajima@intel.com,
	george.dunlap@eu.citrix.com, andrew.cooper3@citrix.com,
	xen-devel@lists.xen.org, stefano.stabellini@citrix.com,
	suravee.suthikulpanit@amd.com, jinsong.liu@alibaba-inc.com
Subject: Re: [PATCH v6 4/5] VT-d: Reduce spin timeout to 1ms, which can be boot-time changed
Date: Fri, 4 Mar 2016 01:11:43 +0100	[thread overview]
Message-ID: <1457050303.2959.502.camel@citrix.com> (raw)
In-Reply-To: <1456929089-17414-5-git-send-email-quan.xu@intel.com>


[-- Attachment #1.1: Type: text/plain, Size: 2468 bytes --]

[Trimmed the Cc-list a bit again]

On Wed, 2016-03-02 at 22:31 +0800, Quan Xu wrote:
> Signed-off-by: Quan Xu <quan.xu@intel.com>
>  
> diff --git a/xen/drivers/passthrough/vtd/qinval.c
> b/xen/drivers/passthrough/vtd/qinval.c
> index b81b0bd..882b9f4 100644
> --- a/xen/drivers/passthrough/vtd/qinval.c
> +++ b/xen/drivers/passthrough/vtd/qinval.c
> @@ -28,6 +28,11 @@
>  #include "vtd.h"
>  #include "extern.h"
>  
> +static unsigned int __read_mostly vtd_qi_timeout = 1;
> +integer_param("vtd_qi_timeout", vtd_qi_timeout);
> +
> +#define IOMMU_QI_TIMEOUT (vtd_qi_timeout * MILLISECS(1))
> +
>  static void print_qi_regs(struct iommu *iommu)
>  {
>      u64 val;
> @@ -130,6 +135,10 @@ static void queue_invalidate_iotlb(struct iommu
> *iommu,
>      spin_unlock_irqrestore(&iommu->register_lock, flags);
>  }
>  
> +/*
> + * NB. We must check all kinds of error and all the way up the
> + * call trees.
> + */
>  static int queue_invalidate_wait(struct iommu *iommu,
>      u8 iflag, u8 sw, u8 fn)
>  {
> @@ -167,10 +176,12 @@ static int queue_invalidate_wait(struct iommu
> *iommu,
>          start_time = NOW();
>          while ( poll_slot != QINVAL_STAT_DONE )
>          {
> -            if ( NOW() > (start_time + DMAR_OPERATION_TIMEOUT) )
> +            if ( NOW() > (start_time + IOMMU_QI_TIMEOUT) )
>
Since this now involves a time unit conversion, can't we:
 - instead of start_time, above, compute, once and for all:
     timeout = NOW() + IOMMU_QI_TIMEOUT;
 - check whether ( NOW() > timeout )

I appreciate that the default for vtd_qi_timeout is 1, so it's most
likely not that a big deal, but it still looks better to me.

>              {
>                  print_qi_regs(iommu);
> -                panic("queue invalidate wait descriptor was not
> executed");
> +                printk(XENLOG_WARNING VTDPREFIX
> +                       "Queue invalidate wait descriptor was
> timeout.\n");
>
"Queue invalidate wait descriptor timed out"  ?

Regards,
Dario
-- 
<<This happens because I choose it to happen!>> (Raistlin Majere)
-----------------------------------------------------------------
Dario Faggioli, Ph.D, http://about.me/dario.faggioli
Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK)


[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

[-- Attachment #2: Type: text/plain, Size: 126 bytes --]

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

  reply	other threads:[~2016-03-04  0:11 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-02 14:31 [PATCH v6 0/5] VT-d Device-TLB flush issue Quan Xu
2016-03-02 14:31 ` [PATCH v6 1/5] IOMMU/MMU: Adjust top level functions for VT-d Device-TLB flush error Quan Xu
2016-03-02 14:31 ` [PATCH v6 2/5] IOMMU/MMU: Adjust low " Quan Xu
2016-03-02 14:31 ` [PATCH v6 3/5] IOMMU: Make the pcidevs_lock a recursive one Quan Xu
2016-03-03 23:59   ` Dario Faggioli
2016-03-04  2:45     ` Xu, Quan
2016-03-04  9:29       ` Jan Beulich
2016-03-04 11:54         ` Xu, Quan
2016-03-04 13:59           ` Dario Faggioli
2016-03-04 14:09             ` Jan Beulich
2016-03-07  7:05             ` Xu, Quan
2016-03-07 11:14               ` Jan Beulich
2016-03-07 11:23                 ` Xu, Quan
2016-03-07 11:36                   ` Jan Beulich
2016-03-07 11:42                     ` Xu, Quan
2016-03-07 11:49                       ` Jan Beulich
2016-03-07 11:55                         ` Xu, Quan
2016-03-02 14:31 ` [PATCH v6 4/5] VT-d: Reduce spin timeout to 1ms, which can be boot-time changed Quan Xu
2016-03-04  0:11   ` Dario Faggioli [this message]
2016-03-04  9:32     ` Jan Beulich
2016-03-02 14:31 ` [PATCH v6 5/5] VT-d: Fix vt-d Device-TLB flush timeout issue Quan Xu

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=1457050303.2959.502.camel@citrix.com \
    --to=dario.faggioli@citrix.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=feng.wu@intel.com \
    --cc=george.dunlap@eu.citrix.com \
    --cc=jbeulich@suse.com \
    --cc=jinsong.liu@alibaba-inc.com \
    --cc=jun.nakajima@intel.com \
    --cc=kevin.tian@intel.com \
    --cc=quan.xu@intel.com \
    --cc=stefano.stabellini@citrix.com \
    --cc=suravee.suthikulpanit@amd.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.