diff options
author | kaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk> | 2006-06-01 18:10:00 +0100 |
---|---|---|
committer | kaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk> | 2006-06-01 18:10:00 +0100 |
commit | d884b107781707cfa9a0120e410d97a4f6fed895 (patch) | |
tree | 581ed59fa6daaf2e1099a6e0f6f06fc8d570f9af /xen/common/sched_sedf.c | |
parent | cf220cf03b417cd3b2cbfdf3db199acee5ebab0a (diff) | |
download | xen-d884b107781707cfa9a0120e410d97a4f6fed895.tar.gz xen-d884b107781707cfa9a0120e410d97a4f6fed895.tar.bz2 xen-d884b107781707cfa9a0120e410d97a4f6fed895.zip |
Domain creation/destruction cleanups.
1. Move alloc/dealloc routines to domain.[ch]
2. Merge alloc_task/add_vcpu schedops -> init_vcpu
3. Merge free_task/remove_vcpu schedops -> destroy_domain
Signed-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'xen/common/sched_sedf.c')
-rw-r--r-- | xen/common/sched_sedf.c | 33 |
1 files changed, 9 insertions, 24 deletions
diff --git a/xen/common/sched_sedf.c b/xen/common/sched_sedf.c index 71e6b9ba36..9f7701d12a 100644 --- a/xen/common/sched_sedf.c +++ b/xen/common/sched_sedf.c @@ -328,11 +328,9 @@ static inline void __add_to_runqueue_sort(struct vcpu *v) } -/* Allocates memory for per domain private scheduling data*/ -static int sedf_alloc_task(struct vcpu *v) +static int sedf_init_vcpu(struct vcpu *v) { - PRINT(2, "sedf_alloc_task was called, domain-id %i.%i\n", - v->domain->domain_id, v->vcpu_id); + struct sedf_vcpu_info *inf; if ( v->domain->sched_priv == NULL ) { @@ -344,23 +342,11 @@ static int sedf_alloc_task(struct vcpu *v) if ( (v->sched_priv = xmalloc(struct sedf_vcpu_info)) == NULL ) return -1; - memset(v->sched_priv, 0, sizeof(struct sedf_vcpu_info)); - return 0; -} - - -/* Setup the sedf_dom_info */ -static void sedf_add_task(struct vcpu *v) -{ - struct sedf_vcpu_info *inf = EDOM_INFO(v); - + inf = EDOM_INFO(v); inf->vcpu = v; - PRINT(2,"sedf_add_task was called, domain-id %i.%i\n", - v->domain->domain_id, v->vcpu_id); - /* Allocate per-CPU context if this is the first domain to be added. */ if ( unlikely(schedule_data[v->processor].sched_priv == NULL) ) { @@ -408,15 +394,14 @@ static void sedf_add_task(struct vcpu *v) EDOM_INFO(v)->deadl_abs = 0; EDOM_INFO(v)->status &= ~SEDF_ASLEEP; } + + return 0; } -/* Frees memory used by domain info */ -static void sedf_free_task(struct domain *d) +static void sedf_destroy_domain(struct domain *d) { int i; - PRINT(2,"sedf_free_task was called, domain-id %i\n",d->domain_id); - xfree(d->sched_priv); for ( i = 0; i < MAX_VIRT_CPUS; i++ ) @@ -1452,9 +1437,9 @@ struct scheduler sched_sedf_def = { .opt_name = "sedf", .sched_id = SCHED_SEDF, - .alloc_task = sedf_alloc_task, - .add_task = sedf_add_task, - .free_task = sedf_free_task, + .init_vcpu = sedf_init_vcpu, + .destroy_domain = sedf_destroy_domain, + .do_schedule = sedf_do_schedule, .dump_cpu_state = sedf_dump_cpu_state, .sleep = sedf_sleep, |