Re: 2.6.26.8-rt15

From: Luis Henriques
Date: Mon Feb 02 2009 - 14:08:00 EST


On Sat, Jan 31, 2009 at 02:34:10AM -0500, Steven Rostedt wrote:
> We are pleased to announce the 2.6.26.8-rt15 tree which can be
> downloaded from the following location:
>
> http://rt.et.redhat.com/download/
>
> Information on the RT patch can be found at:
>
> http://rt.wiki.kernel.org/index.php/Main_Page

I'm having compilation issues with this new patch. Here's the error I got:

In file included from
/root/lmcorrei/linux/linux-2.6.26.8-rt15/kernel/sched.c:1701:
/root/lmcorrei/linux/linux-2.6.26.8-rt15/kernel/sched_rt.c: In
function 'inc_rt_tasks':
/root/lmcorrei/linux/linux-2.6.26.8-rt15/kernel/sched_rt.c:434: error:
'struct rq' has no member named 'online'

Now, function in question has the following code:

static inline
void inc_rt_tasks(struct sched_rt_entity *rt_se, struct rt_rq *rt_rq)
{
WARN_ON(!rt_prio(rt_se_prio(rt_se)));
rt_rq->rt_nr_running++;
#if defined CONFIG_SMP || defined CONFIG_RT_GROUP_SCHED
if (rt_se_prio(rt_se) < rt_rq->highest_prio) {
struct rq *rq = rq_of_rt_rq(rt_rq);
rt_rq->highest_prio = rt_se_prio(rt_se);

if (rq->online)
cpupri_set(&rq->rd->cpupri, rq->cpu,
rt_se_prio(rt_se));
}
#endif

The issue is that the 'online' member is actually defined only if CONFIG_SMP is
enabled and in my config I do not have it but I have CONFIG_RT_GROUP_SCHED.

I am not sending any patch because I actually do not know what is the best way
to solve this issue since I am not (yet!) a sched expert. However, I forsee two
possible solutions:

1. Nest another #ifdef inside the first one, so that the code is only compiled
when CONFIG_SMP option is set (which will result in ugly code)
2. Define 'online' member in structure outside of the CONFIG_SMP (which, I
believe, is not an optimal solution)

Regards,
--
Luis Henriques

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/