diff options
author | ack@kneesa.uk.xensource.com <ack@kneesa.uk.xensource.com> | 2006-05-26 11:14:36 +0100 |
---|---|---|
committer | ack@kneesa.uk.xensource.com <ack@kneesa.uk.xensource.com> | 2006-05-26 11:14:36 +0100 |
commit | 46ecd270567816a478f639058a450bb6b4ae0552 (patch) | |
tree | 148d942fa06e721e6a47ba477599a877443a2f06 /tools/libxc/xc_csched.c | |
parent | 9acd07250181fa24f1bc4a4679c1ee7a52def2a5 (diff) | |
download | xen-46ecd270567816a478f639058a450bb6b4ae0552.tar.gz xen-46ecd270567816a478f639058a450bb6b4ae0552.tar.bz2 xen-46ecd270567816a478f639058a450bb6b4ae0552.zip |
New weighted fair-share CPU scheduler w/ automatic SMP load balancing
Signed-off-by: Emmanuel Ackaouy <ack@xensource.com>
Diffstat (limited to 'tools/libxc/xc_csched.c')
-rw-r--r-- | tools/libxc/xc_csched.c | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/tools/libxc/xc_csched.c b/tools/libxc/xc_csched.c new file mode 100644 index 0000000000..18513ec179 --- /dev/null +++ b/tools/libxc/xc_csched.c @@ -0,0 +1,50 @@ +/**************************************************************************** + * (C) 2006 - Emmanuel Ackaouy - XenSource Inc. + **************************************************************************** + * + * File: xc_csched.c + * Author: Emmanuel Ackaouy + * + * Description: XC Interface to the credit scheduler + * + */ +#include "xc_private.h" + + +int +xc_csched_domain_set( + int xc_handle, + uint32_t domid, + struct csched_domain *sdom) +{ + DECLARE_DOM0_OP; + + op.cmd = DOM0_ADJUSTDOM; + op.u.adjustdom.domain = (domid_t) domid; + op.u.adjustdom.sched_id = SCHED_CREDIT; + op.u.adjustdom.direction = SCHED_INFO_PUT; + op.u.adjustdom.u.credit = *sdom; + + return do_dom0_op(xc_handle, &op); +} + +int +xc_csched_domain_get( + int xc_handle, + uint32_t domid, + struct csched_domain *sdom) +{ + DECLARE_DOM0_OP; + int err; + + op.cmd = DOM0_ADJUSTDOM; + op.u.adjustdom.domain = (domid_t) domid; + op.u.adjustdom.sched_id = SCHED_CREDIT; + op.u.adjustdom.direction = SCHED_INFO_GET; + + err = do_dom0_op(xc_handle, &op); + if ( err == 0 ) + *sdom = op.u.adjustdom.u.credit; + + return err; +} |