[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <45758B57.6040107@stud.feec.vutbr.cz>
Date: Tue, 05 Dec 2006 16:08:07 +0100
From: Michal Schmidt <xschmi00@...d.feec.vutbr.cz>
To: Jaswinder Singh <jaswinderrajput@...il.com>
CC: linux-kernel@...r.kernel.org
Subject: Re: 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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists