void set_vcpu_migration_delay_func(int argc, char *argv[]) { struct xen_sysctl_credit_schedule sparam; int value; fprintf(stderr, "WARNING: using xenpm for this purpose is deprecated." " Check out `xl sched-credit -s -m DELAY'\n"); if ( argc != 1 || (value = atoi(argv[0])) < 0 ) { fprintf(stderr, "Missing or invalid argument(s)\n"); exit(EINVAL); } if ( xc_sched_credit_params_get(xc_handle, 0, &sparam) < 0 ) { fprintf(stderr, "getting Credit scheduler parameters failed\n"); exit(EINVAL); } sparam.vcpu_migr_delay_us = value; if ( !xc_sched_credit_params_set(xc_handle, 0, &sparam) ) printf("set vcpu migration delay to %d us succeeded\n", value); else fprintf(stderr, "set vcpu migration delay failed (%d - %s)\n", errno, strerror(errno)); }
void get_vcpu_migration_delay_func(int argc, char *argv[]) { struct xen_sysctl_credit_schedule sparam; fprintf(stderr, "WARNING: using xenpm for this purpose is deprecated." " Check out `xl sched-credit -s'\n"); if ( argc ) fprintf(stderr, "Ignoring argument(s)\n"); if ( !xc_sched_credit_params_get(xc_handle, 0, &sparam) ) printf("Scheduler vcpu migration delay is %d us\n", sparam.vcpu_migr_delay_us); else fprintf(stderr, "Failed to get scheduler vcpu migration delay (%d - %s)\n", errno, strerror(errno)); }
int libxl_sched_credit_params_get(libxl_ctx *ctx, uint32_t poolid, libxl_sched_credit_params *scinfo) { struct xen_sysctl_credit_schedule sparam; int r, rc; GC_INIT(ctx); r = xc_sched_credit_params_get(ctx->xch, poolid, &sparam); if (r < 0) { LOGE(ERROR, "getting Credit scheduler parameters"); rc = ERROR_FAIL; goto out; } scinfo->tslice_ms = sparam.tslice_ms; scinfo->ratelimit_us = sparam.ratelimit_us; rc = 0; out: GC_FREE; return rc; }