All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ian Campbell <ian.campbell@citrix.com>
To: Julien Grall <julien.grall@citrix.com>
Cc: Vijay Kilari <vijay.kilari@gmail.com>,
	Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
	Prasun Kapoor <Prasun.Kapoor@caviumnetworks.com>,
	Vijaya Kumar K <vijaya.kumar@caviumnetworks.com>,
	Julien Grall <julien.grall@linaro.org>, Tim Deegan <tim@xen.org>,
	"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
	Stefano Stabellini <stefano.stabellini@citrix.com>,
	manish.jaggi@caviumnetworks.com
Subject: Re: [RFC PATCH v2 13/22] xen/arm: its: Add virtual ITS command support
Date: Thu, 2 Apr 2015 10:13:27 +0100	[thread overview]
Message-ID: <1427966007.4037.14.camel@citrix.com> (raw)
In-Reply-To: <551BDE4C.9030109@citrix.com>

On Wed, 2015-04-01 at 13:02 +0100, Julien Grall wrote:
> On 01/04/15 12:46, Ian Campbell wrote:
> > On Mon, 2015-03-30 at 16:47 +0100, Julien Grall wrote:
> >>> In any case ITS commands are processed in synchronously. So any VCPU that
> >>> send ITS commands is blocked.
> > 
> > What exactly is synchronous here? Is it just the "translate vits into
> > requests queued with the physical its driver" phase or does it also
> > include waiting for the physical its' response and translating that back
> > into a v response?
> 
> From the spec, the processing of command is asynchronous.

I was asking about the implementation of our emulation of it, not about
the hardware itself. I understood that the underlying h/w is
asynchronous.

>  The vCPU has
> to poll a register in order to know if the ITS has finished to execute
> the command.
> 
> A vCPU may decide to execute other things while the ITS is processing
> commands.
> 
> The implementation suggested by Vijay, both the vCPU and CPU is blocked
> while the ITS command are processing.

Can we just enqueue with the hardware and use the guest vcpu polling
loop to trigger us to check for completion? What would happen if a guest
never polled, I suppose we would have to catch it some other way?

> Futhermore, if another vCPU is trying to access the vITS it will be
> blocked too (and therefore the CPU). With this solution we may take down
> Xen.

Yes, we can't have that I'm afraid.

> The translation/queuing can be very long if the queue is big (the
> maximum size of the queue is 2^32). It would at least require some
> preemption in Xen in order to avoid blocking the CPU/vCPU for a long time.

Yes, limiting the number of requests in flight at any one time seems
like a good idea anyway, we can always dribble things in as other ones
complete anyway.

Ian.

  reply	other threads:[~2015-04-02  9:13 UTC|newest]

Thread overview: 109+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-19 14:37 [RFC PATCH v2 00/22] xen/arm: Add ITS support vijay.kilari
2015-03-19 14:37 ` [RFC PATCH v2 01/22] add linked list apis vijay.kilari
2015-03-19 14:37 ` [RFC PATCH v2 02/22] Use linked list accessors for page_list helper function vijay.kilari
2015-03-19 14:37 ` [RFC PATCH v2 03/22] xen/arm: Add bitmap_find_next_zero_area " vijay.kilari
2015-03-20 13:35   ` Julien Grall
2015-03-19 14:37 ` [RFC PATCH v2 04/22] xen/arm: its: Import GICv3 ITS driver from linux vijay.kilari
2015-03-19 14:37 ` [RFC PATCH v2 05/22] xen/arm: gicv3: Refactor redistributor information vijay.kilari
2015-03-19 14:37 ` [RFC PATCH v2 06/22] xen/arm: its: Port ITS driver to xen vijay.kilari
2015-03-20 15:06   ` Julien Grall
2015-03-23 12:24     ` Vijay Kilari
2015-03-23 13:27       ` Julien Grall
2015-04-01 11:34   ` Ian Campbell
2015-04-02  8:25     ` Vijay Kilari
2015-04-02  9:25       ` Ian Campbell
2015-04-02 10:05         ` Vijay Kilari
2015-04-02 13:57       ` Julien Grall
2015-03-19 14:37 ` [RFC PATCH v2 07/22] xen/arm: its: Move ITS command encode helper functions vijay.kilari
2015-03-19 14:37 ` [RFC PATCH v2 08/22] xen/arm: its: Remove unused code in ITS driver vijay.kilari
2015-03-19 14:37 ` [RFC PATCH v2 09/22] xen/arm: its: Add helper functions to decode ITS Command vijay.kilari
2015-04-01 11:40   ` Ian Campbell
2015-05-11 14:14     ` Vijay Kilari
2015-05-11 14:25       ` Julien Grall
2015-05-11 14:25         ` Julien Grall
2015-05-11 14:36           ` Vijay Kilari
2015-05-11 22:06             ` Julien Grall
2015-03-19 14:37 ` [RFC PATCH v2 10/22] xen/arm: Add helper function to get domain page vijay.kilari
2015-03-20 16:39   ` Julien Grall
2015-03-19 14:37 ` [RFC PATCH v2 11/22] xen/arm: its: Move its_device structure to header file vijay.kilari
2015-03-19 14:37 ` [RFC PATCH v2 12/22] xen/arm: its: Update irq descriptor for LPIs support vijay.kilari
2015-03-20 16:44   ` Julien Grall
2015-03-30 14:32     ` Vijay Kilari
2015-03-30 15:29       ` Julien Grall
2015-03-19 14:38 ` [RFC PATCH v2 13/22] xen/arm: its: Add virtual ITS command support vijay.kilari
2015-03-21  0:28   ` Julien Grall
2015-03-23 15:52   ` Julien Grall
2015-03-24 11:48   ` Julien Grall
2015-03-30 15:02     ` Vijay Kilari
2015-03-30 15:47       ` Julien Grall
2015-04-01 11:46         ` Ian Campbell
2015-04-01 12:02           ` Julien Grall
2015-04-02  9:13             ` Ian Campbell [this message]
2015-04-02 11:06               ` Julien Grall
2015-04-02 11:18                 ` Ian Campbell
2015-04-02 13:47                   ` Julien Grall
2015-04-28  9:28                     ` Vijay Kilari
2015-04-28  9:56                       ` Stefano Stabellini
2015-04-28 10:35                         ` Julien Grall
2015-04-28 11:36                           ` Vijay Kilari
2015-04-28 16:15                             ` Julien Grall
2015-04-29  1:44                               ` Vijay Kilari
2015-04-29 11:56                                 ` Julien Grall
2015-04-29 12:12                                   ` Manish Jaggi
2015-04-29 12:21                                     ` Julien Grall
2015-04-29 12:33                                       ` Manish Jaggi
2015-04-29 13:01                                         ` Julien Grall
2015-04-29 13:08                                           ` Manish Jaggi
2015-04-29 13:16                                             ` Julien Grall
2015-04-29 13:35                                   ` Julien Grall
2015-04-29 16:26                                     ` Vijay Kilari
2015-04-29 16:30                                       ` Vijay Kilari
2015-04-29 18:04                                         ` Julien Grall
2015-04-30 10:02                                           ` Stefano Stabellini
2015-04-30 10:09                                             ` Julien Grall
2015-04-30 10:15                                               ` Stefano Stabellini
2015-04-30 10:20                                                 ` Julien Grall
2015-04-30 10:50                                                   ` Stefano Stabellini
2015-04-30 13:19                                                 ` Vijay Kilari
2015-04-30 13:47                                                   ` Stefano Stabellini
2015-04-30 14:29                                                     ` Julien Grall
2015-05-04 12:58                                                       ` Vijay Kilari
2015-05-04 13:04                                                         ` Julien Grall
2015-05-04 13:27                                                           ` Vijay Kilari
2015-05-04 13:44                                                             ` Julien Grall
2015-05-04 13:54                                                               ` Julien Grall
2015-05-04 15:19                                                                 ` Vijay Kilari
2015-05-04 17:00                                                                   ` Julien Grall
2015-05-05 10:28                                                                     ` Stefano Stabellini
2015-05-05 11:06                                                                       ` Vijay Kilari
2015-05-05 11:47                                                                         ` Julien Grall
2015-05-05 12:00                                                                           ` Vijay Kilari
2015-05-05 12:08                                                                             ` Julien Grall
2015-05-05 11:08                                                                       ` Julien Grall
2015-05-05 11:45                                                                         ` Vijay Kilari
2015-05-05 11:54                                                                         ` Stefano Stabellini
2015-05-05 10:39                                                         ` Stefano Stabellini
2015-05-05 11:10                                                           ` Julien Grall
2015-05-05 11:57                                                             ` Stefano Stabellini
2015-05-05 12:03                                                               ` Julien Grall
2015-03-19 14:38 ` [RFC PATCH v2 14/22] xen/arm: its: Add emulation of ITS control registers vijay.kilari
2015-03-24 17:12   ` Julien Grall
2015-03-19 14:38 ` [RFC PATCH v2 15/22] xen/arm: its: Add support to emulate GICR register for LPIs vijay.kilari
2015-03-27 15:46   ` Julien Grall
2015-03-19 14:38 ` [RFC PATCH v2 16/22] xen/arm: its: implement hw_irq_controller " vijay.kilari
2015-03-27 17:02   ` Julien Grall
2015-03-19 14:38 ` [RFC PATCH v2 17/22] xen/arm: its: Map ITS translation space vijay.kilari
2015-03-27 17:07   ` Julien Grall
2015-03-19 14:38 ` [RFC PATCH v2 18/22] xen/arm: its: Dynamic allocation of LPI descriptors vijay.kilari
2015-03-19 14:38 ` [RFC PATCH v2 19/22] xen/arm: its: Support ITS interrupt handling vijay.kilari
2015-03-19 14:38 ` [RFC PATCH v2 20/22] xen/arm: its: Generate ITS node for Dom0 vijay.kilari
2015-03-19 14:38 ` [RFC PATCH v2 21/22] xen/arm: its: Initialize virtual and physical ITS driver vijay.kilari
2015-03-19 14:38 ` [RFC PATCH v2 22/22] xen/arm: its: Generate ITS dt node for DomU vijay.kilari
2015-03-20 13:37 ` [RFC PATCH v2 00/22] xen/arm: Add ITS support Julien Grall
2015-03-20 16:23 ` Julien Grall
2015-03-23 12:37   ` Vijay Kilari
2015-03-23 13:11     ` Julien Grall
2015-03-23 15:18       ` Vijay Kilari
2015-03-23 15:30         ` Julien Grall
2015-03-23 16:09           ` Vijay Kilari
2015-03-23 16:18             ` Julien Grall

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=1427966007.4037.14.camel@citrix.com \
    --to=ian.campbell@citrix.com \
    --cc=Prasun.Kapoor@caviumnetworks.com \
    --cc=julien.grall@citrix.com \
    --cc=julien.grall@linaro.org \
    --cc=manish.jaggi@caviumnetworks.com \
    --cc=stefano.stabellini@citrix.com \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=tim@xen.org \
    --cc=vijay.kilari@gmail.com \
    --cc=vijaya.kumar@caviumnetworks.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.