From: Julien Grall <julien.grall@citrix.com>
To: Ian Campbell <ian.campbell@citrix.com>,
xen-devel <xen-devel@lists.xen.org>
Cc: manish.jaggi@caviumnetworks.com,
Julien Grall <julien.grall@linaro.org>,
Stefano Stabellini <stefano.stabellini@citrix.com>,
Vijay Kilari <vijay.kilari@gmail.com>
Subject: Re: [Draft F] Xen on ARM vITS Handling
Date: Fri, 12 Jun 2015 09:14:38 -0400 [thread overview]
Message-ID: <557ADB3E.1050103@citrix.com> (raw)
In-Reply-To: <1434113748.30003.207.camel@citrix.com>
On 12/06/2015 08:55, Ian Campbell wrote:
> On Thu, 2015-06-11 at 10:40 +0100, Ian Campbell wrote:
>> ## Command Queue Virtualisation
>>
>> The command translation/emulation in this design has been arranged to
>> be as cheap as possible (e.g. in many cases the actions are NOPs),
>> avoiding previous concerns about the length of time which an emulated
>> write to a `CWRITER` register may block the vcpu.
>>
>> The vits will simply track its reader and writer pointers. On write
>> to `CWRITER` it will immediately and synchronously process all
>> commands in the queue and update its state accordingly.
>>
>> It might be possible to implement a rudimentary form of preemption by
>> periodically (as determined by `hypercall_preempt_check()`) returning
>> to the guest without incrementing PC but with updated internal
>> `CREADR` state, meaning it will reexecute the write to `CWRITER` and
>> we can pickup where we left off for another iteration. This at least
>> lets us schedule other vcpus etc and prevents a monopoly.
>
> In the presence of multiple VCPUs writing to GITS_CWRITER preemption
> actually gets pretty subtle. I suggest leaving it out for now.
Would it be possible to do it with re-doing the write to the GITS_CWRITER?
Regards,
--
Julien Grall
next prev parent reply other threads:[~2015-06-12 13: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
2015-06-12 12:55 ` Ian Campbell
2015-06-12 13:14 ` Julien Grall [this message]
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=557ADB3E.1050103@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.