From: Michal Schmidt <xschmi00@stud.feec.vutbr.cz>
To: Jaswinder Singh <jaswinderrajput@gmail.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: PREEMPT is messing with everyone
Date: Tue, 05 Dec 2006 16:08:07 +0100 [thread overview]
Message-ID: <45758B57.6040107@stud.feec.vutbr.cz> (raw)
In-Reply-To: <aa5953d60612050610l1f2657c3ie073467a2b2a7126@mail.gmail.com>
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
next prev parent reply other threads:[~2006-12-05 15:08 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-12-05 14:10 PREEMPT is messing with everyone Jaswinder Singh
2006-12-05 15:08 ` Michal Schmidt [this message]
2006-12-05 16:50 ` Jaswinder Singh
2006-12-05 16:58 ` Michal Schmidt
2006-12-05 19:55 ` Bill Davidsen
2006-12-05 20:30 ` Jan Engelhardt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=45758B57.6040107@stud.feec.vutbr.cz \
--to=xschmi00@stud.feec.vutbr.cz \
--cc=jaswinderrajput@gmail.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox