From: Julien Grall <julien.grall@citrix.com>
To: Vijay Kilari <vijay.kilari@gmail.com>,
Julien Grall <julien.grall@citrix.com>
Cc: Ian Campbell <ian.campbell@citrix.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: Tue, 28 Apr 2015 17:15:59 +0100 [thread overview]
Message-ID: <553FB23F.7090200@citrix.com> (raw)
In-Reply-To: <CALicx6vgbre5DX2nmfog2Lzgkx5_Viw397JqUMsfmstK1tLRSg@mail.gmail.com>
Hi Vijay,
On 28/04/15 12:36, Vijay Kilari wrote:
> On Tue, Apr 28, 2015 at 4:05 PM, Julien Grall <julien.grall@citrix.com> wrote:
>> If you properly manage the device with struct pci_dev or struct device
>> (which is, as talked earlier, obviously required for security) you
>> should avoid your so-called "dummy device". BTW, what do you mean by
>> "dummy device"?
>
>
> (a) For implementing ITS command processing completion interrupt we need
> a unique interrupt for each domain per vITS to update corresponding virtual ITS
> CREADER
> (b) INT command requires dev,ID there needs to be a device
> associated with the ID
> (c) The command processing completion interrupt is not coming from a
> valid device, we have to provide a dummy device,ID
> (d) I propose that the dummy device segment number is read from a
> macro/helper function
> in the platform file.
> For each domain we can add the bus number so for eg: 0xff is the segment
> number which is #define PLAT_DUMMY_SEG 0xff.
> The device for dom0 would be PLAT_DUMMY_SEG:00:0.0
> The device for domU would be PLAT_DUMMY_SEG:00:0.0 | domain_id
There is multiple problem with this solution:
- What prevents a platform to use this Device ID in the future?
- What's is the behavior of the ITS when the Device ID doesn't belong
to a real device?
- The number of bits for the Device ID can be limited via
GITS_TYPER.Devbits, so it's not possible to use an hardware value
> Let me know if there is better way to generate dummy/unused device id?
>
> So creation of dummy device and setup for INT command execution
> can be done in physical ITS driver with its_device structure managed
> in vgic_its
>
> Also with this approach, vITS is not held by the VCPU till the completion
> of command processing, So another VCPU of the same domain can add
> another ITS command. If so we have to keep track number of ITS commands
> being processed per VCPU of the domain and increment vITS CREADER accordingly.
> For this, we have to add one unique interrupt ID of the device for per
> VCPU, So that
> unique interrupt is received from the dummy device for per VCPU.
The number of LPIs supported by the ITS could be very limited. We need
to use them with parsimony.
Even if you have a per-VCPU interrupt, it doesn't prevent a same vCPU
writing other commands after a first batch then wait.
Regards,
--
Julien Grall
next prev parent reply other threads:[~2015-04-28 16:15 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
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 [this message]
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=553FB23F.7090200@citrix.com \
--to=julien.grall@citrix.com \
--cc=Prasun.Kapoor@caviumnetworks.com \
--cc=ian.campbell@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.