lkml.org 
[lkml]   [2006]   [Dec]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: PREEMPT is messing with everyone
Jaswinder Singh wrote:
> Hi,
>
> preempt stuff SHOULD only stay in #ifdef CONFIG_PREEMP_* , but it is
> messing with everyone even though not defined.
>
> e.g.
>
> 1. linux-2.6.19/kernel/spinlock.c
>
> Line 18: #include <linux/preempt.h>
>
> Line 26: preempt_disable();
>
> Line 32: preempt_disable();
>
> and so on .

Don't worry. These compile into "do { } while (0)" (i.e. nothing) when
CONFIG_PREEMPT is not set.

>
> 2. linux-2.6.19/kernel/sched.c
>
> Line 1096: int preempted;
>
> Line 1104: preempted = !task_running(rq, p);
>
> Line 1106: if (preempted)
>
> Line 2059: if (TASK_PREEMPTS_CURR(p, this_rq))

Linux always does preemptive multitasking of user tasks. These have
nothing to do with CONFIG_PREEMPT.

> Line 3355: current->comm, preempt_count(), current->pid);
>
> Line 3342: preempt_disable();
>
> Line 3375: if (prev->state && !(preempt_count() & PREEMPT_ACTIVE)) {

preempt_count() is useful in !CONFIG_PREEMPT kernels too. It stores
information about the current context (hardirq, softirq, ...).

> [...]
>
> 70 to 80 % of this code is removed when compiled.
>
> but 20 to 30 % code left in binary kernel image.
>
> Why Linux kernel is wasting its resources which is not defined at all.

I don't think that's the case.

> Any solution ?
>
> Thank you,
>
> Best Regards,
>
> Jaswinder Singh.

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

\
 
 \ /
  Last update: 2006-12-05 16:11    [W:0.077 / U:0.288 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site