On 10/01/2015 08:33 AM, Dario Faggioli wrote:
On Thu, 2015-10-01 at 07:21 +0200, Juergen Gross wrote:
On 09/29/2015 06:55 PM, Dario Faggioli wrote:
--- a/xen/common/schedule.c
+++ b/xen/common/schedule.c
@@ -1407,6 +1407,9 @@ static int cpu_schedule_callback(
switch ( action )
{
+ case CPU_STARTING:
+ SCHED_OP(&ops, init_pdata, cpu);
+ break;
case CPU_UP_PREPARE:
rc = cpu_schedule_up(cpu);
break;
@@ -1484,6 +1487,7 @@ void __init scheduler_init(void)
if ( ops.alloc_pdata &&
!(this_cpu(schedule_data).sched_priv =
ops.alloc_pdata(&ops, 0)) )
BUG();
+ SCHED_OP(&ops, init_pdata, 0);
You can't call this without having it set in all schedulers.
I guess using the init_pdata hook has to be introduced after or in
patch 5.
But, if it is not set, it is NULL, in which case, SCHED_OP does the
trick for me, doesn't it?
#define SCHED_OP(opsptr, fn, ...) \
(( (opsptr)->fn != NULL ) ? (opsptr)->fn(opsptr, ##__VA_ARGS__ ) \
: (typeof((opsptr)->fn(opsptr, ##__VA_ARGS__)))0 )
Aah, yes, of course.
Sorry for the noise.
Juergen
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel