|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 for Xen 4.6 1/4] xen: enabling XL to set per-VCPU parameters of a domain for RTDS scheduler
On Fri, May 29, 2015 at 2:51 PM, Dario Faggioli
<dario.faggioli@xxxxxxxxxx> wrote:
> On Mon, 2015-05-25 at 19:05 -0500, Chong Li wrote:
>
>> diff --git a/xen/common/domctl.c b/xen/common/domctl.c
>> index 28aea55..8143c44 100644
>> --- a/xen/common/domctl.c
>> +++ b/xen/common/domctl.c
>> @@ -841,6 +841,11 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t)
>> u_domctl)
>> copyback = 1;
>> break;
>>
>> + case XEN_DOMCTL_scheduler_vcpu_op:
>> + ret = sched_adjust_vcpu(d, &op->u.scheduler_vcpu_op);
>> + copyback = 1;
>> + break;
>> +
>>
> So, thinking more about this, do we really want a full new DOMCTL, or do
> we want to instrument XEN_DOMCTL_scheduler_op? That would mean adding
> two operations there, and fiddling with struct xen_domctl_scheduler_op?
>
> The problem I see is that, whatever I imagine putting this, there would
> be some redundancy.
>
> Quick-&-dirty, I put together the below... would it possibly make sense?
>
> typedef struct xen_domctl_sched_credit {
> uint16_t weight;
> uint16_t cap;
> } xen_domctl_sched_credit_t;
>
> typedef struct xen_domctl_sched_credit2 {
> uint16_t weight;
> } xen_domctl_sched_credit2_t;
>
> typedef struct xen_domctl_sched_rtds {
> uint32_t
> period;
> uint32_t budget;
> } xen_domctl_sched_rtds_t;
>
> typedef union xen_domctl_schedparam {
> xen_domctl_sched_credit_t credit;
> xen_domctl_sched_credit2_t credit2;
> xen_domctl_sched_rtds_t rtds;
> } xen_domctl_schedparam_t;
>
> typedef struct xen_domctl_schedparam_vcpu {
> union {
> xen_domctl_sched_credit_t credit;
> xen_domctl_sched_credit2_t credit2;
> xen_domctl_sched_rtds_t rtds;
> } s;
> uint16_t vcpuid;
> } xen_domctl_schedparam_vcpu_t;
> DEFINE_XEN_GUEST_HANDLE(xen_domctl_schedparam_vcpu_t);
>
> /* Set or get info? */
> #define XEN_DOMCTL_SCHEDOP_putinfo 0
> #define XEN_DOMCTL_SCHEDOP_getinfo 1
> #define XEN_DOMCTL_SCHEDOP_putvcpuinfo 2
> #define XEN_DOMCTL_SCHEDOP_getvcpuinfo 3
> struct xen_domctl_scheduler_op {
> uint32_t sched_id; /* XEN_SCHEDULER_* */
> uint32_t cmd; /* XEN_DOMCTL_SCHEDOP_* */
> union {
> xen_domctl_schedparam_t d;
> struct {
> XEN_GUEST_HANDLE_64(xen_domctl_schedparam_vcpu_t) vcpus;
> uint16_t nr_vcpus;
> } v;
> } u;
> };
> typedef struct xen_domctl_scheduler_op xen_domctl_scheduler_op_t;
> DEFINE_XEN_GUEST_HANDLE(xen_domctl_scheduler_op_t);
>
> I'm also attaching a (build-tested only) patch to that effect (I'm
> killing SEDF in there, so I don't have to care about it, as it's going
> away anyway).
>
> Thoughts?
After (finally) getting time to look at this series, I was going to
suggest something like this.
-George
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |