From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Simon Martin <smartin@milliways.cl>
Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
Subject: Re: VCPUOP_set_periodic_timer
Date: Fri, 15 Nov 2013 11:41:44 +0000 [thread overview]
Message-ID: <52860878.8010406@citrix.com> (raw)
In-Reply-To: <em0e63048f-7920-48f5-8392-cf0af10a1b08@smartin-alien>
[-- Attachment #1.1: Type: text/plain, Size: 2694 bytes --]
On 15/11/13 11:24, Simon Martin wrote:
> Hi Andrew,
>
> The operating system I am trying to port to Xen is an industrial servo
> controller. We are currently running at 125 microsecond servo update
> rate on our bespoke hardware (at the moment MIPS64 and ARM) (hence the
> 125 microsecond ideal interrupt period). We will be driving EtherCAT
> servo drives that need to be updated at 500 microseconds (hence at
> least 500 microsecond interrupt period). If we can achieve this on a
> single core ARM11 clocked at 532 MHz, it must be achievable on PC
> hardware. As I said before the idea is to dedicate a CPU core to this
> with all other functions running on the other cores.
>
> Luckily we can accept a reasonable amount of jitter on the EtherCAT
> network as we can hand over clock synchronisation to a slave. This
> gives us a little leeway.
>
> Regards.
>
>
It certainly is achievable on PC hardware, but not under the standard
assumptions in virtualisation. You want to use
VCPUOP_set_singleshot_timer, but be aware than there are still no normal
guarantees that your domain vcpu will be run when the timer expires; the
credit scheduler will pick the highest priority vcpu to run, which might
not be the one which is expecting a timer interrupt.
You should investigate using the arinc653 scheduler in Xen, which is a
realtime scheduler, and might be more appropriate for your usecase.
~Andrew
> ------ Original Message ------
> From: "Andrew Cooper" <andrew.cooper3@citrix.com
> <mailto:andrew.cooper3@citrix.com>>
> To: "Simon Martin" <smartin@milliways.cl
> <mailto:smartin@milliways.cl>>; "xen-devel@lists.xen.org"
> <xen-devel@lists.xen.org <mailto:xen-devel@lists.xen.org>>
> Sent: 14/11/2013 18:39:21
> Subject: Re: [Xen-devel] VCPUOP_set_periodic_timer
>
>> On 14/11/2013 21:18, Simon Martin wrote:
>>> Hi all,
>>>
>>> I need a periodic timer running at ideally at 125 microseconds and
>>> at least 500 microseconds. I've just found the
>>> VCPUOP_set_periodic_timer, however there is a comment saying
>>> "periods less than one millisecond may not be supported".
>>>
>>> I will be running on an x64 machine. Is this supported? If not, is
>>> there any alternate means of generating a fast interrupt?
>>>
>>> Regards.
>>
>> What is the usecase here? 125us is very short indeed. Xen certainly
>> cant guarantee anything more accurate than 50us. Unless the affected
>> vcpu is running uncontested on the hardware, there is very little
>> chance that the vcpu will indeed be woken up again in 125us.
>>
>> It sounds as if you are looking for some pseudo realtime system, at
>> which point you might want to consider a different scheduler.
>>
>> ~Andrew
>>
[-- Attachment #1.2: Type: text/html, Size: 5732 bytes --]
[-- Attachment #2: Type: text/plain, Size: 126 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
next prev parent reply other threads:[~2013-11-15 11:41 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-14 21:18 VCPUOP_set_periodic_timer Simon Martin
2013-11-14 21:39 ` VCPUOP_set_periodic_timer Andrew Cooper
2013-11-15 11:24 ` VCPUOP_set_periodic_timer Simon Martin
2013-11-15 11:36 ` VCPUOP_set_periodic_timer Keir Fraser
2013-11-15 11:45 ` VCPUOP_set_periodic_timer Simon Martin
2013-11-15 11:56 ` VCPUOP_set_periodic_timer Keir Fraser
2013-11-15 12:37 ` VCPUOP_set_periodic_timer Simon Martin
2013-11-15 13:10 ` VCPUOP_set_periodic_timer Keir Fraser
2013-11-15 13:13 ` VCPUOP_set_periodic_timer Andrew Cooper
2013-11-15 13:39 ` VCPUOP_set_periodic_timer Keir Fraser
2013-11-15 11:41 ` Andrew Cooper [this message]
2013-11-15 12:02 ` VCPUOP_set_periodic_timer Simon Martin
2013-11-15 12:17 ` VCPUOP_set_periodic_timer Andrew Cooper
2013-11-15 12:46 ` VCPUOP_set_periodic_timer Nate Studer
2013-11-15 12:52 ` VCPUOP_set_periodic_timer Andrew Cooper
2013-11-15 12:54 ` VCPUOP_set_periodic_timer George Dunlap
2013-11-15 21:10 ` VCPUOP_set_periodic_timer Dario Faggioli
2013-11-16 20:37 ` VCPUOP_set_periodic_timer Simon Martin
2013-11-18 18:28 ` VCPUOP_set_periodic_timer Dario Faggioli
2013-11-26 14:50 ` PV guest timings Simon Martin
2013-11-26 15:11 ` Keir Fraser
2013-11-26 15:38 ` Simon Martin
2013-11-26 23:33 ` Dario Faggioli
2013-11-27 2:32 ` Simon Martin
2013-11-27 8:46 ` Dario Faggioli
2013-11-27 12:04 ` Simon Martin
2013-11-27 10:38 ` David Vrabel
2013-11-27 14:07 ` Simon Martin
2013-11-26 23:31 ` Dario Faggioli
2013-11-27 2:36 ` Simon Martin
2013-11-27 8:56 ` Dario Faggioli
2013-11-27 13:00 ` Simon Martin
2013-11-28 11:16 ` Dario Faggioli
2013-11-28 11:57 ` Simon Martin
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=52860878.8010406@citrix.com \
--to=andrew.cooper3@citrix.com \
--cc=smartin@milliways.cl \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).