Re: PREEMPT is messing with everyone
> Yes, Compiler will remove it but this looks ugly and confusing. > > Why dont we use like this :- Even more fugly. > # ifdef CONFIG_PREEMPT > # include > # endif > > #ifdef CONFIG_PREEMPT > preempt_disable(); > #endif > > #ifdef CONFIG_PREEMPT > preempt_enable(); > #endif > -`J' -- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: PREEMPT is messing with everyone
Jaswinder Singh wrote: On 12/5/06, Michal Schmidt <[EMAIL PROTECTED]> wrote: 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 > > 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. Yes, Compiler will remove it but this looks ugly and confusing. Why dont we use like this :- Because it's ugly and confusing. #ifdef CONFIG_PREEMPT #include #endif #ifdef CONFIG_PREEMPT preempt_disable(); #endif #ifdef CONFIG_PREEMPT preempt_enable(); #endif -- bill davidsen <[EMAIL PROTECTED]> CTO TMR Associates, Inc Doing interesting things with small computers since 1979 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: PREEMPT is messing with everyone
Jaswinder Singh skrev: Yes, Compiler will remove it but this looks ugly and confusing. Why dont we use like this :- #ifdef CONFIG_PREEMPT #include #endif #ifdef CONFIG_PREEMPT preempt_disable(); #endif #ifdef CONFIG_PREEMPT preempt_enable(); #endif Surely you're joking. It is much more readable and maintainable to hide the #ifdef-hackery in header files than to clutter the *.c files. Michal - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: PREEMPT is messing with everyone
On 12/5/06, Michal Schmidt <[EMAIL PROTECTED]> wrote: 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 > > 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. Yes, Compiler will remove it but this looks ugly and confusing. Why dont we use like this :- #ifdef CONFIG_PREEMPT #include #endif #ifdef CONFIG_PREEMPT preempt_disable(); #endif #ifdef CONFIG_PREEMPT preempt_enable(); #endif Regards, Jaswinder Singh. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
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 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 [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
PREEMPT is messing with everyone
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 Line 26: preempt_disable(); Line 32: preempt_disable(); and so on . 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)) Line 3355:current->comm, preempt_count(), current->pid); Line 3342: preempt_disable(); Line 3375: if (prev->state && !(preempt_count() & PREEMPT_ACTIVE)) { Line 3471: preempt_enable_no_resched(); 3. linux-2.6.19/kernel/timer.c Line 444: int preempt_count = preempt_count(); Line 447: if (preempt_count != preempt_count()) { 4. linux-2.6.19/arch/i386/kernel/entry.S Line 240: preempt_stop 5. linux-2.6.19/arch/i386/irq.c Line 111:irqctx->tinfo.preempt_count = Line 112:(irqctx->tinfo.preempt_count & ~SOFTIRQ_MASK) | Line 113:(curctx->tinfo.preempt_count & SOFTIRQ_MASK); Line 160: irqctx->tinfo.preempt_count = HARDIRQ_OFFSET; and so on. Similarly unnecessary preempt code is also written in other important files. 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. Any solution ? Thank you, Best Regards, Jaswinder Singh. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
PREEMPT is messing with everyone
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 . 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)) Line 3355:current-comm, preempt_count(), current-pid); Line 3342: preempt_disable(); Line 3375: if (prev-state !(preempt_count() PREEMPT_ACTIVE)) { Line 3471: preempt_enable_no_resched(); 3. linux-2.6.19/kernel/timer.c Line 444: int preempt_count = preempt_count(); Line 447: if (preempt_count != preempt_count()) { 4. linux-2.6.19/arch/i386/kernel/entry.S Line 240: preempt_stop 5. linux-2.6.19/arch/i386/irq.c Line 111:irqctx-tinfo.preempt_count = Line 112:(irqctx-tinfo.preempt_count ~SOFTIRQ_MASK) | Line 113:(curctx-tinfo.preempt_count SOFTIRQ_MASK); Line 160: irqctx-tinfo.preempt_count = HARDIRQ_OFFSET; and so on. Similarly unnecessary preempt code is also written in other important files. 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. Any solution ? Thank you, Best Regards, Jaswinder Singh. - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
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 [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: PREEMPT is messing with everyone
On 12/5/06, Michal Schmidt [EMAIL PROTECTED] wrote: 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. Yes, Compiler will remove it but this looks ugly and confusing. Why dont we use like this :- #ifdef CONFIG_PREEMPT #include linux/preempt.h #endif #ifdef CONFIG_PREEMPT preempt_disable(); #endif #ifdef CONFIG_PREEMPT preempt_enable(); #endif Regards, Jaswinder Singh. - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: PREEMPT is messing with everyone
Jaswinder Singh skrev: Yes, Compiler will remove it but this looks ugly and confusing. Why dont we use like this :- #ifdef CONFIG_PREEMPT #include linux/preempt.h #endif #ifdef CONFIG_PREEMPT preempt_disable(); #endif #ifdef CONFIG_PREEMPT preempt_enable(); #endif Surely you're joking. It is much more readable and maintainable to hide the #ifdef-hackery in header files than to clutter the *.c files. Michal - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: PREEMPT is messing with everyone
Jaswinder Singh wrote: On 12/5/06, Michal Schmidt [EMAIL PROTECTED] wrote: 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. Yes, Compiler will remove it but this looks ugly and confusing. Why dont we use like this :- Because it's ugly and confusing. #ifdef CONFIG_PREEMPT #include linux/preempt.h #endif #ifdef CONFIG_PREEMPT preempt_disable(); #endif #ifdef CONFIG_PREEMPT preempt_enable(); #endif -- bill davidsen [EMAIL PROTECTED] CTO TMR Associates, Inc Doing interesting things with small computers since 1979 - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: PREEMPT is messing with everyone
Yes, Compiler will remove it but this looks ugly and confusing. Why dont we use like this :- Even more fugly. # ifdef CONFIG_PREEMPT # include linux/preempt.h # endif #ifdef CONFIG_PREEMPT preempt_disable(); #endif #ifdef CONFIG_PREEMPT preempt_enable(); #endif -`J' -- - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/