From: Julien Grall <julien.grall@citrix.com>
To: Ian Campbell <ian.campbell@citrix.com>,
Julien Grall <julien.grall@citrix.com>
Cc: manish.jaggi@caviumnetworks.com,
Julien Grall <julien.grall@linaro.org>,
Stefano Stabellini <stefano.stabellini@citrix.com>,
Vijay Kilari <vijay.kilari@gmail.com>,
xen-devel <xen-devel@lists.xen.org>
Subject: Re: [Draft F] Xen on ARM vITS Handling
Date: Tue, 16 Jun 2015 17:14:30 +0100 [thread overview]
Message-ID: <55804B66.5090608@citrix.com> (raw)
In-Reply-To: <1434467402.13744.219.camel@citrix.com>
On 16/06/15 16:10, Ian Campbell wrote:
>>>
>>>>>> This could happen when the device is not quiescent. We had this issue on
>>>>>> the vexpress at boot time when the network card was trying to send an
>>>>>> interrupt before DOM0 is setup.
>>>>>
>>>>> I don't fully understand the issue you are trying to describe, but do
>>>>> you want to propose a change to the spec?
>>>>
>>>> I actually don't know how to modify it. So it's an open question.
>>>
>>> For SPI too, or just for LPI?
>>
>> Only LPI.
>
> How is it fixed for SPI?
We queue the SPI but don't inject it (gic_raise_guest_irq) to the guest.
The injection will be done when the guest enable the IRQ.
We can't use it for LPIs as the mapping vLPI -> pLPI may not yet exists.
>>>> vgic_vcpu_inject_irq doesn't queue the interrupt if a VCPU is down. I
>>>> think this is because the state of the VCPU wouldn't be correct.
>>>>
>>>> The process would be something like:
>>>>
>>>> - Creation of the domain
>>>> => All vCPUs are down
>>>>
>>>> - Device is assigned to the guest
>>>> => Enable physical LPIs
>>>>
>>>> * physical LPI is received *
>>>> => Will be ignored and not EOIed (VCPU0 is down)
>>>> => The LPI will never fired again during the guest life
>>>>
>>>> - Domain is started by the toolstack
>>>> => VCPU0 is online
>>>
>>> Is it sufficient to queue interrupts even for VCPUs which are down? How
>>> does the lack of a vITT entry when this interrupt occurred affect this?
>>
>> Well, in this case we don't know on which vLPI we have to inject it. But
>> as said above, I guess we don't care if we ensure that the device can't
>> send an event (by ensuring that the device doesn't know the
>> GITS_TRANSLATER address is).
>
> Yes, I think that works.
>
> I'm not sure where to spell that out though.
We want to find a way to avoid the PCI device to send an event. I see
multiple possibility to do it:
1) Mask the event MSI-X allow to mask a specific event. There is a
similar feature for MSI but it's optional.
2) Compose the MSI message only when the vLPI is enabled. That require
Xen/PCI-back to delay the write in the config space.
None of this solution satisfy me. But I don't have much knowledge on how
PCI-passthrough works on Xen.
Regards,
--
Julien Grall
next prev parent reply other threads:[~2015-06-16 16:14 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-11 9:40 [Draft F] Xen on ARM vITS Handling Ian Campbell
2015-06-11 12:02 ` Ian Campbell
2015-06-12 8:37 ` Vijay Kilari
2015-06-12 8:52 ` Ian Campbell
2015-06-12 13:09 ` Julien Grall
2015-06-12 13:16 ` Ian Campbell
2015-06-12 13:32 ` Julien Grall
2015-06-12 14:05 ` Julien Grall
2015-06-12 14:12 ` Ian Campbell
2015-06-12 14:24 ` Ian Campbell
2015-06-12 17:55 ` Julien Grall
2015-06-16 15:10 ` Ian Campbell
2015-06-16 16:14 ` Julien Grall [this message]
2015-06-12 12:55 ` Ian Campbell
2015-06-12 13:14 ` Julien Grall
2015-06-12 13:26 ` Ian Campbell
2015-06-16 14:50 ` Vijay Kilari
2015-06-16 15:07 ` Ian Campbell
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=55804B66.5090608@citrix.com \
--to=julien.grall@citrix.com \
--cc=ian.campbell@citrix.com \
--cc=julien.grall@linaro.org \
--cc=manish.jaggi@caviumnetworks.com \
--cc=stefano.stabellini@citrix.com \
--cc=vijay.kilari@gmail.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.