[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2 2/4] libxc: add rt scheduler
Add xc_sched_rt_* functions to interact with Xen to set/get domain's parameters for rt scheduler. Note: VCPU's information (period, budget) is in microsecond (us). Signed-off-by: Meng Xu <mengxu@xxxxxxxxxxxxx> Signed-off-by: Sisu Xi <xisisu@xxxxxxxxx> --- tools/libxc/Makefile | 1 + tools/libxc/xc_rt.c | 65 +++++++++++++++++++++++++++++++++++++++++++++++++ tools/libxc/xenctrl.h | 7 ++++++ 3 files changed, 73 insertions(+) create mode 100644 tools/libxc/xc_rt.c diff --git a/tools/libxc/Makefile b/tools/libxc/Makefile index 3b04027..8db0d97 100644 --- a/tools/libxc/Makefile +++ b/tools/libxc/Makefile @@ -20,6 +20,7 @@ CTRL_SRCS-y += xc_sedf.c CTRL_SRCS-y += xc_csched.c CTRL_SRCS-y += xc_csched2.c CTRL_SRCS-y += xc_arinc653.c +CTRL_SRCS-y += xc_rt.c CTRL_SRCS-y += xc_tbuf.c CTRL_SRCS-y += xc_pm.c CTRL_SRCS-y += xc_cpu_hotplug.c diff --git a/tools/libxc/xc_rt.c b/tools/libxc/xc_rt.c new file mode 100644 index 0000000..e62f745 --- /dev/null +++ b/tools/libxc/xc_rt.c @@ -0,0 +1,65 @@ +/**************************************************************************** + * + * File: xc_rt.c + * Author: Sisu Xi + * Meng Xu + * + * Description: XC Interface to the rt scheduler + * Note: VCPU's parameter (period, budget) is in microsecond (us). + * All VCPUs of the same domain have same period and budget. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "xc_private.h" + +int xc_sched_rt_domain_set(xc_interface *xch, + uint32_t domid, + struct xen_domctl_sched_rt *sdom) +{ + int rc; + DECLARE_DOMCTL; + + domctl.cmd = XEN_DOMCTL_scheduler_op; + domctl.domain = (domid_t) domid; + domctl.u.scheduler_op.sched_id = XEN_SCHEDULER_RT_DS; + domctl.u.scheduler_op.cmd = XEN_DOMCTL_SCHEDOP_putinfo; + domctl.u.scheduler_op.u.rt.period = sdom->period; + domctl.u.scheduler_op.u.rt.budget = sdom->budget; + + rc = do_domctl(xch, &domctl); + + return rc; +} + +int xc_sched_rt_domain_get(xc_interface *xch, + uint32_t domid, + struct xen_domctl_sched_rt *sdom) +{ + int rc; + DECLARE_DOMCTL; + + domctl.cmd = XEN_DOMCTL_scheduler_op; + domctl.domain = (domid_t) domid; + domctl.u.scheduler_op.sched_id = XEN_SCHEDULER_RT_DS; + domctl.u.scheduler_op.cmd = XEN_DOMCTL_SCHEDOP_getinfo; + + rc = do_domctl(xch, &domctl); + + if ( rc == 0 ) + *sdom = domctl.u.scheduler_op.u.rt; + + return rc; +} diff --git a/tools/libxc/xenctrl.h b/tools/libxc/xenctrl.h index 1c8aa42..a61b2a7 100644 --- a/tools/libxc/xenctrl.h +++ b/tools/libxc/xenctrl.h @@ -875,6 +875,13 @@ int xc_sched_credit2_domain_get(xc_interface *xch, uint32_t domid, struct xen_domctl_sched_credit2 *sdom); +int xc_sched_rt_domain_set(xc_interface *xch, + uint32_t domid, + struct xen_domctl_sched_rt *sdom); +int xc_sched_rt_domain_get(xc_interface *xch, + uint32_t domid, + struct xen_domctl_sched_rt *sdom); + int xc_sched_arinc653_schedule_set( xc_interface *xch, -- 1.7.9.5 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |