All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ian Campbell <ian.campbell@citrix.com>
To: 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 13:55:48 +0100	[thread overview]
Message-ID: <1434113748.30003.207.camel@citrix.com> (raw)
In-Reply-To: <1434015607.30003.137.camel@citrix.com>

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.

Ian.

  parent reply	other threads:[~2015-06-12 12:55 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 [this message]
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=1434113748.30003.207.camel@citrix.com \
    --to=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.