[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-users] Call schedule set on arinc653 scheduler?
Hello, On 5/28/2015 11:56 AM, Mr Idris wrote: > On 5/6/15, Mr Idris <mr@xxxxxxxxxxxx> wrote: >> On 5/6/15, Robert VanVossen <robert.vanvossen@xxxxxxxxxxxxxxx> wrote: >>> >>> >>> On 5/6/2015 9:18 AM, Ian Campbell wrote: >>>> On Wed, 2015-05-06 at 15:06 +0200, Mr Idris wrote: >>>>> I'm using xen 4.4.1 with arinc653 scheduler. dom0 runs well, but i >>>>> can't run domU. On wiki page, it is said that to usage arinc653 >>>>> scheduler (http://wiki.xen.org/wiki/ARINC653_Scheduler) point no.5, >>>>> "call the arinc653_schedule_set API with an ARINC653 scheduler >>>>> structure" >>>>> >>>>> How do i call this? >>>> >>>> It is a function in libxenctrl.so >>>> >>>>> What command should i do? >>>> >>>> I'm afraid it looks like there is no tool which actually calls it. I >>>> think you might have to write a little main.c. >>>> >>>> In fact, I see now that there are example programs on the wiki page you >>>> linked to. >>>> >>> That is correct. You should be able to follow the idea behind the >>> examples, >>> but >>> you need to configure any values for your specific domains and schedule. >>> >> >> Thanks for the reply but i still don't get it. I tried to compile the >> examples, but i got some errors. >> >> I know i have to provide UUID that i get from xenstore-ls. Should i >> include in config file also or when i call this schedule_set? >> >> Regards, >> Idris >> > I write small program to call arinc653, it gives me no error when i > compiled with parameter -lxenctrl and -luuid. When i run it, it works > fine like i set variable to xc_sched_xfair_schedule_set(xci, 0, > &sched); and when it's correct will give true. But still when i check > 'xl list' still no state running on VM. > > Name ID Mem VCPUs State > Time(s) > Domain-0 0 6258 1 r----- > 370.1 > Debian 3 512 1 ------ > 0.0 > > Here is the arinc653_schedule_set > > #include <stdio.h> > #include <xenctrl.h> > #include <uuid/uuid.h> > > int main() > { > struct xen_sysctl_arinc653_schedule sched; > xc_interface *xci = xc_interface_open(NULL, NULL, 0); > int i; > > /* initialize major frame and number of minor frames */ > sched.major_frame = 0; > sched.num_sched_entries = 2; > > uuid_parse("", sched.sched_entries[0].dom_handle); I believe that dom0 is hanging because of this line. I believe this is returning an error and not setting sched.sched_entries[0].dom_handle. Try the following instead: char *dom0_str; *dom0_str = '\0'; strncpy((char *)sched.sched_entries[0].dom_handle, dom0_str, sizeof(sched.sched_entries[0].dom_handle)); > sched.sched_entries[0].vcpu_id = 0; > sched.sched_entries[0].runtime = 10; > sched.major_frame += sched.sched_entries[0].runtime; > > uuid_parse("938b9c5b-8d9d-402a-9be0-0e0cc4cf67dc", > sched.sched_entries[1].dom_handle); > sched.sched_entries[1].vcpu_id = 0; > sched.sched_entries[1].runtime = 10; > sched.major_frame += sched.sched_entries[1].runtime; > > i = xc_sched_arinc653_schedule_set(xci, 0, &sched); > if (i) > { > printf("true\n"); > } else { > printf("false\n"); > } > return 0; > } > > interestingly when i run this program suddenly the dom0 hang but when > i make num_sched_entries bigger than 2, it runs and give me true > message. > xc_sched_arinc653_schedule_set will return less than 0 when there is an error, so when you are printing true, it is actually probably an error. In the case where you set num_sched_entries bigger than 2, it returns an error because you don't specify enough sched_entries. > Does anyone have any idea what change I need to make to get the scheduler to > run > the VM? I appreciate the help. > > Thanks, > Idris > Thanks, Robbie VanVossen _______________________________________________ Xen-users mailing list Xen-users@xxxxxxxxxxxxx http://lists.xen.org/xen-users
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |