#include #include #include #include #include #include #include #include void dump_sedf(void) { int ret, sched_id, domid; dom0_op_t op; /* dom0 op we'll build */ int xc_handle = xc_interface_open(); op.cmd = DOM0_SCHED_ID; op.interface_version = DOM0_INTERFACE_VERSION; ret = xc_dom0_op(xc_handle, &op); if ( ret != 0 ) { perror("Failure to get scheduler ID from Xen"); exit(1); } sched_id = op.u.sched_id.sched_id; for (domid=0; domid <32; domid++) { op.cmd = DOM0_ADJUSTDOM; op.interface_version = DOM0_INTERFACE_VERSION; op.u.adjustdom.direction = SCHED_INFO_GET; op.u.adjustdom.domain = domid; op.u.adjustdom.sched_id = sched_id; op.u.adjustdom.u.sedf.period = 0; op.u.adjustdom.u.sedf.slice = 0; op.u.adjustdom.u.sedf.extratime = 0; op.u.adjustdom.u.sedf.latency = 0; op.u.adjustdom.u.sedf.weight = 0; ret = xc_dom0_op(xc_handle, &op); if ( ret != 0 ) { continue; } printf("Domina#%d: slice = %lld, period = %lld, extratime = %u, latency = %lld, weight = %u\n", domid, op.u.adjustdom.u.sedf.slice, op.u.adjustdom.u.sedf.period, op.u.adjustdom.u.sedf.extratime, op.u.adjustdom.u.sedf.latency, op.u.adjustdom.u.sedf.weight); } xc_interface_close(xc_handle); } int main(int argc, char **argv) { dump_sedf(); return 0; }