|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 for Xen 4.6 2/4] libxc: enabling XL to set per-VCPU parameters of a domain for RTDS scheduler
On Mon, 2015-05-25 at 19:07 -0500, Chong Li wrote:
> Add xc_sched_rtds_vcpu_get/set functions to interact with Xen to get/set a
> domain's
> per-VCPU parameters.
>
> Signed-off-by: Chong Li <chong.li@xxxxxxxxx>
> Signed-off-by: Meng Xu <mengxu@xxxxxxxxxxxxx>
> Signed-off-by: Sisu Xi <xisisu@xxxxxxxxx>
It looks like there is still some discussion around the shape of the
underlying hypercall interface.
I think this is an ok wrapping of the interface as it is n the previous
patch, so if that goes ahead:
Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
Obviously if this needs to change due to changes in the underlying
interface then this won't apply.
One nit below.
> ---
> tools/libxc/include/xenctrl.h | 9 ++++++++
> tools/libxc/xc_rt.c | 53
> +++++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 62 insertions(+)
>
> diff --git a/tools/libxc/include/xenctrl.h b/tools/libxc/include/xenctrl.h
> index 6994c51..45cbf91 100644
> --- a/tools/libxc/include/xenctrl.h
> +++ b/tools/libxc/include/xenctrl.h
> @@ -892,6 +892,15 @@ int xc_sched_rtds_domain_get(xc_interface *xch,
> uint32_t domid,
> struct xen_domctl_sched_rtds *sdom);
>
> +int xc_sched_rtds_vcpu_set(xc_interface *xch,
> + uint32_t domid,
> + struct xen_domctl_sched_rtds_params *sdom,
> + uint16_t num_vcpus);
> +int xc_sched_rtds_vcpu_get(xc_interface *xch,
> + uint32_t domid,
> + struct xen_domctl_sched_rtds_params *sdom,
> + uint16_t num_vcpus);
> +
> int
> xc_sched_arinc653_schedule_set(
> xc_interface *xch,
> diff --git a/tools/libxc/xc_rt.c b/tools/libxc/xc_rt.c
> index b2d1cc5..42aea22 100644
> --- a/tools/libxc/xc_rt.c
> +++ b/tools/libxc/xc_rt.c
> @@ -63,3 +63,56 @@ int xc_sched_rtds_domain_get(xc_interface *xch,
>
> return rc;
> }
> +
> +int xc_sched_rtds_vcpu_set(xc_interface *xch,
> + uint32_t domid,
> + struct xen_domctl_sched_rtds_params *sdom,
> + uint16_t num_vcpus)
> +{
> + int rc;
> + DECLARE_DOMCTL;
> + DECLARE_HYPERCALL_BOUNCE(sdom, sizeof(*sdom) * num_vcpus,
> + XC_HYPERCALL_BUFFER_BOUNCE_IN);
Blank line here please.
> + if ( xc_hypercall_bounce_pre(xch, sdom) )
> + return -1;
> +
> + domctl.cmd = XEN_DOMCTL_scheduler_vcpu_op;
> + domctl.domain = (domid_t) domid;
> + domctl.u.scheduler_vcpu_op.sched_id = XEN_SCHEDULER_RTDS;
> + domctl.u.scheduler_vcpu_op.cmd = XEN_DOMCTL_SCHEDOP_putvcpuinfo;
> + domctl.u.scheduler_vcpu_op.u.rtds.nr_vcpus = num_vcpus;
> + set_xen_guest_handle(domctl.u.scheduler_vcpu_op.u.rtds.vcpus, sdom);
> +
> + rc = do_domctl(xch, &domctl);
> +
> + xc_hypercall_bounce_post(xch, sdom);
> +
> + return rc;
> +}
> +
> +int xc_sched_rtds_vcpu_get(xc_interface *xch,
> + uint32_t domid,
> + struct xen_domctl_sched_rtds_params *sdom,
> + uint16_t num_vcpus)
> +{
> + int rc;
> + DECLARE_DOMCTL;
> + DECLARE_HYPERCALL_BOUNCE(sdom, sizeof(*sdom) * num_vcpus,
> + XC_HYPERCALL_BUFFER_BOUNCE_OUT);
> +
> + if ( xc_hypercall_bounce_pre(xch, sdom) )
> + return -1;
> +
> + domctl.cmd = XEN_DOMCTL_scheduler_vcpu_op;
> + domctl.domain = (domid_t) domid;
> + domctl.u.scheduler_vcpu_op.sched_id = XEN_SCHEDULER_RTDS;
> + domctl.u.scheduler_vcpu_op.cmd = XEN_DOMCTL_SCHEDOP_getvcpuinfo;
> + domctl.u.scheduler_vcpu_op.u.rtds.nr_vcpus=num_vcpus;
> + set_xen_guest_handle(domctl.u.scheduler_vcpu_op.u.rtds.vcpus, sdom);
> +
> + rc = do_domctl(xch, &domctl);
> +
> + xc_hypercall_bounce_post(xch, sdom);
> +
> + return rc;
> +}
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |