[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5 for Xen 4.7 3/4] libxl: enable per-VCPU parameter settings for RTDS scheduler
On Tue, Feb 9, 2016 at 6:00 AM, Dario Faggioli <dario.faggioli@xxxxxxxxxx> wrote: > On Thu, 2016-02-04 at 16:50 -0600, Chong Li wrote: >> >> +{ >> + int rc; >> + int i; >> + uint16_t max_vcpuid; >> + xc_dominfo_t info; >> + struct xen_domctl_schedparam_vcpu *vcpus; >> + uint32_t num_vcpus; >> + >> + rc = xc_domain_getinfo(CTX->xch, domid, 1, &info); >> + if (rc < 0) { >> + LOGE(ERROR, "getting domain info"); >> + return ERROR_FAIL; >> + } >> + max_vcpuid = info.max_vcpu_id; >> + >> + if (scinfo->num_vcpus > 0) { >> + num_vcpus = scinfo->num_vcpus; >> + GCNEW_ARRAY(vcpus, num_vcpus); >> + for (i = 0; i < num_vcpus; i++) { >> + if (scinfo->vcpus[i].vcpuid < 0 || >> + scinfo->vcpus[i].vcpuid > max_vcpuid) { >> + LOG(ERROR, "VCPU index is out of range, " >> + "valid values are within range from 0 to >> %d", >> + max_vcpuid); >> + return ERROR_INVAL; >> + } >> + vcpus[i].vcpuid = scinfo->vcpus[i].vcpuid; >> + >> + rc = sched_rtds_validate_params(gc, >> + scinfo->vcpus[i].period, scinfo- >> >vcpus[i].budget, >> + &vcpus[i].s.rtds.period, >> &vcpus[i].s.rtds.budget); >> + if (rc) >> + return ERROR_INVAL; >> + } >> + } else { >> > So, it looks to me that this function can be split in two. One would be > the actual sched_rtds_vcpus_params_set(), and it will do what is being > done above here. > > The other one would be something like > sched_rtds_vcpus_params_set_all(), and it will do what is being done > below here. > > About scinfo->num_vcpus, I think it would be fine for > sched_rtds_vcpus_params_set() to enforce it being > 0, and erroring out > if not. > > On the other hand, in sched_rtds_vcpus_params_set_all(), since the > semantic is "use this set of params for all vcpus", I think it would be > fine to enforce scinfo->num_vcpus == 1 (and maybe even > scinfo.vcpus[0].vcpuid == LIBXL_SCHED_PARAM_VCPU_INDEX_DEFAULT). > > > Now, for external callers (like xl, but also like any other toolstack > wanting to build on top of libxl). > > If you think a 'set all vcpus' function would be useufl (as it is > probably the case), you can define a libxl API function called > libxl_vcpus_params_set_all(), doing exactly the same thing that > libxl_vcpus_params_set() is doing, but calling the > sched_rtds_vcpus_params_set_all() internal function. > > Chong, do you think this could work? I think it would work. Thanks for this suggestion. Chong -- Chong Li Department of Computer Science and Engineering Washington University in St.louis _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |