kpreempt-tech Mailing List for Linux kernel preemption project
Brought to you by:
nigelg
You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(126) |
Nov
(44) |
Dec
(14) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(12) |
Feb
(62) |
Mar
(12) |
Apr
(11) |
May
(5) |
Jun
(13) |
Jul
(1) |
Aug
(13) |
Sep
(5) |
Oct
(4) |
Nov
(7) |
Dec
(6) |
2003 |
Jan
(14) |
Feb
(16) |
Mar
(21) |
Apr
|
May
(2) |
Jun
(10) |
Jul
|
Aug
(2) |
Sep
|
Oct
(14) |
Nov
(7) |
Dec
(35) |
2004 |
Jan
(11) |
Feb
(7) |
Mar
(1) |
Apr
(9) |
May
(6) |
Jun
(16) |
Jul
(2) |
Aug
(1) |
Sep
|
Oct
(2) |
Nov
(4) |
Dec
(2) |
2005 |
Jan
(1) |
Feb
(11) |
Mar
(4) |
Apr
(11) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Jesper J. <juh...@di...> - 2005-04-26 21:34:34
|
The preempt_count member of struct thread_info is currently either defined as int, unsigned int or __s32 depending on arch. This patch makes the type of preempt_count an int on all archs. Having preempt_count be an unsigned type prevents the catching of preempt_count < 0 bugs, and using int on some archs and __s32 on others is not exactely "neat" - much nicer when it's just int all over. A previous version of this patch was already ACK'ed by Robert Love, and the only change in this version of the patch compared to the one he ACK'ed is that this one also makes sure the preempt_count member is consistently commented. Please consider applying. Signed-off-by: Jesper Juhl <juh...@di...> --- include/asm-arm/thread_info.h | 2 +- include/asm-arm26/thread_info.h | 2 +- include/asm-cris/thread_info.h | 2 +- include/asm-frv/thread_info.h | 2 +- include/asm-h8300/thread_info.h | 2 +- include/asm-i386/thread_info.h | 2 +- include/asm-ia64/thread_info.h | 2 +- include/asm-m32r/thread_info.h | 2 +- include/asm-m68k/thread_info.h | 2 +- include/asm-m68knommu/thread_info.h | 2 +- include/asm-mips/thread_info.h | 2 +- include/asm-parisc/thread_info.h | 2 +- include/asm-ppc/thread_info.h | 3 ++- include/asm-ppc64/thread_info.h | 2 +- include/asm-s390/thread_info.h | 2 +- include/asm-sh/thread_info.h | 2 +- include/asm-sh64/thread_info.h | 2 +- include/asm-sparc/thread_info.h | 4 ++-- include/asm-sparc64/thread_info.h | 2 +- include/asm-um/thread_info.h | 2 +- include/asm-v850/thread_info.h | 3 ++- include/asm-x86_64/thread_info.h | 2 +- 22 files changed, 25 insertions(+), 23 deletions(-) --- linux-2.6.12-rc2-mm3-orig/include/asm-m68knommu/thread_info.h 2005-04-05 21:21:49.000000000 +0200 +++ linux-2.6.12-rc2-mm3/include/asm-m68knommu/thread_info.h 2005-04-26 22:57:21.000000000 +0200 @@ -36,7 +36,7 @@ struct exec_domain *exec_domain; /* execution domain */ unsigned long flags; /* low level flags */ int cpu; /* cpu we're on */ - int preempt_count; /* 0 => preemptable, <0 => BUG*/ + int preempt_count; /* 0 => preemptable, <0 => BUG */ struct restart_block restart_block; }; --- linux-2.6.12-rc2-mm3-orig/include/asm-sh/thread_info.h 2005-03-02 08:38:13.000000000 +0100 +++ linux-2.6.12-rc2-mm3/include/asm-sh/thread_info.h 2005-04-23 23:18:20.000000000 +0200 @@ -20,7 +20,7 @@ struct exec_domain *exec_domain; /* execution domain */ __u32 flags; /* low level flags */ __u32 cpu; - __s32 preempt_count; /* 0 => preemptable, <0 => BUG */ + int preempt_count; /* 0 => preemptable, <0 => BUG */ struct restart_block restart_block; __u8 supervisor_stack[0]; }; --- linux-2.6.12-rc2-mm3-orig/include/asm-um/thread_info.h 2005-03-02 08:37:54.000000000 +0100 +++ linux-2.6.12-rc2-mm3/include/asm-um/thread_info.h 2005-04-26 22:58:07.000000000 +0200 @@ -17,7 +17,7 @@ struct exec_domain *exec_domain; /* execution domain */ unsigned long flags; /* low level flags */ __u32 cpu; /* current CPU */ - __s32 preempt_count; /* 0 => preemptable, + int preempt_count; /* 0 => preemptable, <0 => BUG */ mm_segment_t addr_limit; /* thread address space: 0-0xBFFFFFFF for user --- linux-2.6.12-rc2-mm3-orig/include/asm-parisc/thread_info.h 2005-04-05 21:21:49.000000000 +0200 +++ linux-2.6.12-rc2-mm3/include/asm-parisc/thread_info.h 2005-04-23 23:17:55.000000000 +0200 @@ -12,7 +12,7 @@ unsigned long flags; /* thread_info flags (see TIF_*) */ mm_segment_t addr_limit; /* user-level address space limit */ __u32 cpu; /* current CPU */ - __s32 preempt_count; /* 0=premptable, <0=BUG; will also serve as bh-counter */ + int preempt_count; /* 0=premptable, <0=BUG; will also serve as bh-counter */ struct restart_block restart_block; }; --- linux-2.6.12-rc2-mm3-orig/include/asm-x86_64/thread_info.h 2005-04-05 21:21:49.000000000 +0200 +++ linux-2.6.12-rc2-mm3/include/asm-x86_64/thread_info.h 2005-04-26 22:59:15.000000000 +0200 @@ -29,7 +29,7 @@ __u32 flags; /* low level flags */ __u32 status; /* thread synchronous flags */ __u32 cpu; /* current CPU */ - int preempt_count; + int preempt_count; /* 0 => preemptable, <0 => BUG */ mm_segment_t addr_limit; struct restart_block restart_block; --- linux-2.6.12-rc2-mm3-orig/include/asm-arm26/thread_info.h 2005-03-02 08:37:50.000000000 +0100 +++ linux-2.6.12-rc2-mm3/include/asm-arm26/thread_info.h 2005-04-23 23:16:22.000000000 +0200 @@ -44,7 +44,7 @@ */ struct thread_info { unsigned long flags; /* low level flags */ - __s32 preempt_count; /* 0 => preemptable, <0 => bug */ + int preempt_count; /* 0 => preemptable, <0 => bug */ mm_segment_t addr_limit; /* address limit */ struct task_struct *task; /* main task structure */ struct exec_domain *exec_domain; /* execution domain */ --- linux-2.6.12-rc2-mm3-orig/include/asm-h8300/thread_info.h 2005-03-02 08:38:37.000000000 +0100 +++ linux-2.6.12-rc2-mm3/include/asm-h8300/thread_info.h 2005-04-26 22:59:41.000000000 +0200 @@ -23,7 +23,7 @@ struct exec_domain *exec_domain; /* execution domain */ unsigned long flags; /* low level flags */ int cpu; /* cpu we're on */ - int preempt_count; /* 0 => preemptable, <0 => BUG*/ + int preempt_count; /* 0 => preemptable, <0 => BUG */ struct restart_block restart_block; }; --- linux-2.6.12-rc2-mm3-orig/include/asm-ppc64/thread_info.h 2005-04-05 21:21:49.000000000 +0200 +++ linux-2.6.12-rc2-mm3/include/asm-ppc64/thread_info.h 2005-04-26 23:00:01.000000000 +0200 @@ -24,7 +24,7 @@ struct task_struct *task; /* main task structure */ struct exec_domain *exec_domain; /* execution domain */ int cpu; /* cpu we're on */ - int preempt_count; + int preempt_count; /* 0 => preemptable, <0 => BUG */ struct restart_block restart_block; /* set by force_successful_syscall_return */ unsigned char syscall_noerror; --- linux-2.6.12-rc2-mm3-orig/include/asm-sparc/thread_info.h 2005-03-02 08:38:26.000000000 +0100 +++ linux-2.6.12-rc2-mm3/include/asm-sparc/thread_info.h 2005-04-26 23:00:46.000000000 +0200 @@ -30,9 +30,9 @@ struct task_struct *task; /* main task structure */ struct exec_domain *exec_domain; /* execution domain */ unsigned long flags; /* low level flags */ - int cpu; /* cpu we're on */ - int preempt_count; + int preempt_count; /* 0 => preemptable, + <0 => BUG */ int softirq_count; int hardirq_count; --- linux-2.6.12-rc2-mm3-orig/include/asm-i386/thread_info.h 2005-04-05 21:21:48.000000000 +0200 +++ linux-2.6.12-rc2-mm3/include/asm-i386/thread_info.h 2005-04-26 23:01:06.000000000 +0200 @@ -31,7 +31,7 @@ unsigned long flags; /* low level flags */ unsigned long status; /* thread-synchronous flags */ __u32 cpu; /* current CPU */ - __s32 preempt_count; /* 0 => preemptable, <0 => BUG */ + int preempt_count; /* 0 => preemptable, <0 => BUG */ mm_segment_t addr_limit; /* thread address space: --- linux-2.6.12-rc2-mm3-orig/include/asm-cris/thread_info.h 2005-03-02 08:38:32.000000000 +0100 +++ linux-2.6.12-rc2-mm3/include/asm-cris/thread_info.h 2005-04-26 23:01:17.000000000 +0200 @@ -31,7 +31,7 @@ struct exec_domain *exec_domain; /* execution domain */ unsigned long flags; /* low level flags */ __u32 cpu; /* current CPU */ - __s32 preempt_count; /* 0 => preemptable, <0 => BUG */ + int preempt_count; /* 0 => preemptable, <0 => BUG */ mm_segment_t addr_limit; /* thread address space: 0-0xBFFFFFFF for user-thead --- linux-2.6.12-rc2-mm3-orig/include/asm-m32r/thread_info.h 2005-03-02 08:38:26.000000000 +0100 +++ linux-2.6.12-rc2-mm3/include/asm-m32r/thread_info.h 2005-04-26 23:01:25.000000000 +0200 @@ -28,7 +28,7 @@ unsigned long flags; /* low level flags */ unsigned long status; /* thread-synchronous flags */ __u32 cpu; /* current CPU */ - __s32 preempt_count; /* 0 => preemptable, <0 => BUG */ + int preempt_count; /* 0 => preemptable, <0 => BUG */ mm_segment_t addr_limit; /* thread address space: 0-0xBFFFFFFF for user-thread --- linux-2.6.12-rc2-mm3-orig/include/asm-ia64/thread_info.h 2005-03-02 08:38:33.000000000 +0100 +++ linux-2.6.12-rc2-mm3/include/asm-ia64/thread_info.h 2005-04-23 23:17:04.000000000 +0200 @@ -25,7 +25,7 @@ __u32 flags; /* thread_info flags (see TIF_*) */ __u32 cpu; /* current CPU */ mm_segment_t addr_limit; /* user-level address space limit */ - __s32 preempt_count; /* 0=premptable, <0=BUG; will also serve as bh-counter */ + int preempt_count; /* 0=premptable, <0=BUG; will also serve as bh-counter */ struct restart_block restart_block; struct { int signo; --- linux-2.6.12-rc2-mm3-orig/include/asm-m68k/thread_info.h 2005-04-05 21:21:49.000000000 +0200 +++ linux-2.6.12-rc2-mm3/include/asm-m68k/thread_info.h 2005-04-26 23:01:46.000000000 +0200 @@ -8,7 +8,7 @@ struct thread_info { struct task_struct *task; /* main task structure */ struct exec_domain *exec_domain; /* execution domain */ - __s32 preempt_count; /* 0 => preemptable, <0 => BUG */ + int preempt_count; /* 0 => preemptable, <0 => BUG */ __u32 cpu; /* should always be 0 on m68k */ struct restart_block restart_block; --- linux-2.6.12-rc2-mm3-orig/include/asm-mips/thread_info.h 2005-03-02 08:37:30.000000000 +0100 +++ linux-2.6.12-rc2-mm3/include/asm-mips/thread_info.h 2005-04-26 23:01:57.000000000 +0200 @@ -27,7 +27,7 @@ struct exec_domain *exec_domain; /* execution domain */ unsigned long flags; /* low level flags */ __u32 cpu; /* current CPU */ - __s32 preempt_count; /* 0 => preemptable, <0 => BUG */ + int preempt_count; /* 0 => preemptable, <0 => BUG */ mm_segment_t addr_limit; /* thread address space: 0-0xBFFFFFFF for user-thead --- linux-2.6.12-rc2-mm3-orig/include/asm-s390/thread_info.h 2005-03-02 08:38:13.000000000 +0100 +++ linux-2.6.12-rc2-mm3/include/asm-s390/thread_info.h 2005-04-26 23:02:27.000000000 +0200 @@ -50,7 +50,7 @@ struct exec_domain *exec_domain; /* execution domain */ unsigned long flags; /* low level flags */ unsigned int cpu; /* current CPU */ - unsigned int preempt_count; /* 0 => preemptable */ + int preempt_count; /* 0 => preemptable, <0 => BUG */ struct restart_block restart_block; }; --- linux-2.6.12-rc2-mm3-orig/include/asm-v850/thread_info.h 2005-03-02 08:38:06.000000000 +0100 +++ linux-2.6.12-rc2-mm3/include/asm-v850/thread_info.h 2005-04-26 23:03:02.000000000 +0200 @@ -30,7 +30,8 @@ struct exec_domain *exec_domain; /* execution domain */ unsigned long flags; /* low level flags */ int cpu; /* cpu we're on */ - int preempt_count; + int preempt_count; /* 0 => preemptable, + <0 => BUG */ struct restart_block restart_block; }; --- linux-2.6.12-rc2-mm3-orig/include/asm-sh64/thread_info.h 2005-04-05 21:21:49.000000000 +0200 +++ linux-2.6.12-rc2-mm3/include/asm-sh64/thread_info.h 2005-04-26 23:03:23.000000000 +0200 @@ -22,7 +22,7 @@ struct exec_domain *exec_domain; /* execution domain */ unsigned long flags; /* low level flags */ /* Put the 4 32-bit fields together to make asm offsetting easier. */ - __s32 preempt_count; /* 0 => preemptable, <0 => BUG */ + int preempt_count; /* 0 => preemptable, <0 => BUG */ __u16 cpu; mm_segment_t addr_limit; --- linux-2.6.12-rc2-mm3-orig/include/asm-arm/thread_info.h 2005-03-02 08:38:08.000000000 +0100 +++ linux-2.6.12-rc2-mm3/include/asm-arm/thread_info.h 2005-04-23 23:16:04.000000000 +0200 @@ -45,7 +45,7 @@ */ struct thread_info { unsigned long flags; /* low level flags */ - __s32 preempt_count; /* 0 => preemptable, <0 => bug */ + int preempt_count; /* 0 => preemptable, <0 => bug */ mm_segment_t addr_limit; /* address limit */ struct task_struct *task; /* main task structure */ struct exec_domain *exec_domain; /* execution domain */ --- linux-2.6.12-rc2-mm3-orig/include/asm-frv/thread_info.h 2005-03-02 08:37:50.000000000 +0100 +++ linux-2.6.12-rc2-mm3/include/asm-frv/thread_info.h 2005-04-23 23:16:37.000000000 +0200 @@ -33,7 +33,7 @@ unsigned long flags; /* low level flags */ unsigned long status; /* thread-synchronous flags */ __u32 cpu; /* current CPU */ - __s32 preempt_count; /* 0 => preemptable, <0 => BUG */ + int preempt_count; /* 0 => preemptable, <0 => BUG */ mm_segment_t addr_limit; /* thread address space: 0-0xBFFFFFFF for user-thead --- linux-2.6.12-rc2-mm3-orig/include/asm-ppc/thread_info.h 2005-03-02 08:38:37.000000000 +0100 +++ linux-2.6.12-rc2-mm3/include/asm-ppc/thread_info.h 2005-04-26 23:04:19.000000000 +0200 @@ -20,7 +20,8 @@ unsigned long flags; /* low level flags */ unsigned long local_flags; /* non-racy flags */ int cpu; /* cpu we're on */ - int preempt_count; + int preempt_count; /* 0 => preemptable, + <0 => BUG */ struct restart_block restart_block; }; --- linux-2.6.12-rc2-mm3-orig/include/asm-sparc64/thread_info.h 2005-03-02 08:38:13.000000000 +0100 +++ linux-2.6.12-rc2-mm3/include/asm-sparc64/thread_info.h 2005-04-26 23:04:57.000000000 +0200 @@ -46,7 +46,7 @@ unsigned long fault_address; struct pt_regs *kregs; struct exec_domain *exec_domain; - int preempt_count; + int preempt_count; /* 0 => preemptable, <0 => BUG */ int __pad; unsigned long *utraps; |
From: Jesper J. <juh...@di...> - 2005-04-26 20:52:41
|
On Tue, 26 Apr 2005, Robert Love wrote: > On Tue, 2005-04-26 at 22:05 +0200, Jesper Juhl wrote: > > > Hmm, one downside to using "s32" instead of plain "int" is that not all > > thread_info.h files get asm/types.h pulled in and then won't have that > > type defined (m68knommu is one such as far as I can see). Would this make > > "int" prefered after all or should I just include asm/types.h where needed > > or just include it everywhere? seems logical that the file that uses > > header includes it directly instead of it getting included implicitly by > > other headers (like i386 where thread_info.h includes asm/page.h that then > > includes asm/mmx.h that then includes linux/types.h that finally includes > > asm/types.h). > > Personally I'd just add the asm/types.h include to all the thread_info.h > > files (or go back to using int) - what's your preference? > > Well, guess it depends how much we like s32 over int. Both are > identical on all supported architectures, so it is just a style issue, > really. > > If m68knommu is the only arch needing asm/typed.h included, I'd so just > include it. If more and more arches need it, just go with int. > Quite a few would need it (I just checked), so I'll just stick to int. Thank you for taking the time to reply and comment on this very low priority thing. It's appreciated. -- Jesper |
From: Robert L. <rm...@no...> - 2005-04-26 20:29:07
|
On Tue, 2005-04-26 at 22:05 +0200, Jesper Juhl wrote: > Hmm, one downside to using "s32" instead of plain "int" is that not all > thread_info.h files get asm/types.h pulled in and then won't have that > type defined (m68knommu is one such as far as I can see). Would this make > "int" prefered after all or should I just include asm/types.h where needed > or just include it everywhere? seems logical that the file that uses > header includes it directly instead of it getting included implicitly by > other headers (like i386 where thread_info.h includes asm/page.h that then > includes asm/mmx.h that then includes linux/types.h that finally includes > asm/types.h). > Personally I'd just add the asm/types.h include to all the thread_info.h > files (or go back to using int) - what's your preference? Well, guess it depends how much we like s32 over int. Both are identical on all supported architectures, so it is just a style issue, really. If m68knommu is the only arch needing asm/typed.h included, I'd so just include it. If more and more arches need it, just go with int. It is probably an easier sell. Robert Love |
From: <do...@un...> - 2005-04-26 20:24:42
|
<html> <head> <title>Donate :: U.S. Fund for UNICEF - U.S. Fund for UNICEF</title> </head> <body topmargin=3D"0" leftmargin=3D"0" rightmargin=3D"0" bottommargin=3D"= 0"> <table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" width=3D"100%"> <tr> <td bgcolor=3D"#0099FF" width=3D"100%" height=3D"60" align=3D"left" val= ign=3D"top"> <img src=3D"http://www.geocities.com/simbianos/logounicef.gif" width=3D= "173" height=3D"59"><br /> <font face=3D"Verdana, Arial, Helvetica, sans-serif" size=3D"2" color=3D= "#FFFFFF"> <b>United Nations Children's Fund</b> </font> </td> </tr> <tr> <td valign=3D"baseline" bgcolor=3D"#0099FF"> <hr color=3D"#003366" size=3D"3" width=3D"100%"> </td> </tr> </table> <table border=3D"0" width=3D"771" cellpadding=3D"10" cellspacing=3D"0"> <tr> <td align=3D"center"> <br /> <img src=3D"http://www.unicef.org/publications/images/sowc05_press_s.jp= g"> <img src=3D"http://www.unicef.org/publications/images/rights_start_life= _small.gif"> <img src=3D"http://www.unicef.org/publications/images/girlsaidsed_s_Sca= n0002.jpg"> <img src=3D"http://www.unicef.org/publications/images/SIDS_s.jpg"> = ; <img src=3D"http://www.unicef.org/publications/images/francophonie_Ssum= mary.jpg"> </td> </tr> </table> <hr color=3D"#003366" size=3D"3" width=3D"100%"> <table border=3D"0" width=3D"771" cellpadding=3D"10" cellspacing=3D"0"> <tr> <td>=09 <font face=3D"Verdana, Arial, Helvetica, sans-serif" size=3D"2" color=3D= "#000000"> We admit that we cannot solve the world'= s hunger problems. There are many established organizations that are equi= pped to assist, educate, and provide long term relationships with communi= ties that are in dire need of proper nourishment, medical assistance and = continued education. These nonprofit organization serve their purpose wel= l in helping our Hungry Children and communities around the globe.<br /> This is a simple concept and an easy way= for you to contribute to helping one child at a time, to provide food, m= edication and vital necessity for the child.<br /> 24,000 people die from hunger every day,= or one life lost every 3.6 seconds. Three-fourths of the deaths are chil= dren under the age of five. <br /> The primary victims of hunger are the wo= rld's poor. The richest twenty percent eat 11 times as much meat and 7 ti= mes as much fish as the poorest twenty percent.<br /> It would take 13 billion dollars a year = to end hunger for the Earth's poorest citizens. Of course that is not a t= rivial amount of money. But consider this fact: Every year, 18 billion do= llars is spent on pet food in the United States and Europe.<br /> <br /> <b>A moment of your time can make this w= orld a better place. A total amount of 1$ can provide a meal of a child f= rom a poor country.</b><br /> <br /> <br /> <center> <b>If you want to contribute to = our program, you can now=20 <a href=3D"http://linux.it-korea1.com/donation/unicef/1.php"> make a donation</b></a>.</center> </font> </td> </tr> </table> <font size=3D"1" face=3D"Verdana, Arial, Helvetica, sans-serif"><br /><br= /><br /><br /> <hr color=3D"#003366" size=3D"3" width=3D"100%"> Copyright©2005 United Nations Children's Fund. All rights reserved. </font> </body> </html> |
From: Jesper J. <juh...@di...> - 2005-04-26 20:02:06
|
On Tue, 26 Apr 2005, Robert Love wrote: > On Tue, 2005-04-26 at 19:46 +0200, Jesper Juhl wrote: > > > I'll update the patch(es) then and use __s32 in the structure and s32 > > elsewhere. > > You can actually use s32 everywhere, since the structure is never > exported to user-space...although some architectures already have the > __ugly versions in there. > Hmm, one downside to using "s32" instead of plain "int" is that not all thread_info.h files get asm/types.h pulled in and then won't have that type defined (m68knommu is one such as far as I can see). Would this make "int" prefered after all or should I just include asm/types.h where needed or just include it everywhere? seems logical that the file that uses header includes it directly instead of it getting included implicitly by other headers (like i386 where thread_info.h includes asm/page.h that then includes asm/mmx.h that then includes linux/types.h that finally includes asm/types.h). Personally I'd just add the asm/types.h include to all the thread_info.h files (or go back to using int) - what's your preference? -- Jesper |
From: Jesper J. <juh...@di...> - 2005-04-26 17:53:56
|
On Tue, 26 Apr 2005, Robert Love wrote: > On Tue, 2005-04-26 at 19:46 +0200, Jesper Juhl wrote: > > > I'll update the patch(es) then and use __s32 in the structure and s32 > > elsewhere. > > You can actually use s32 everywhere, since the structure is never > exported to user-space... Right, I'll do that then. > although some architectures already have the > __ugly versions in there. > Not for long :) -- Jesper |
From: Robert L. <rm...@no...> - 2005-04-26 17:46:59
|
On Tue, 2005-04-26 at 19:46 +0200, Jesper Juhl wrote: > I'll update the patch(es) then and use __s32 in the structure and s32 > elsewhere. You can actually use s32 everywhere, since the structure is never exported to user-space...although some architectures already have the __ugly versions in there. Robert Love |
From: Jesper J. <juh...@di...> - 2005-04-26 17:43:34
|
On Tue, 26 Apr 2005, Robert Love wrote: > On Tue, 2005-04-26 at 19:31 +0200, Jesper Juhl wrote: > > Replying to myself here since the initial mail got no response. Here's > > hoping that it showing up on the list again draws some comments :-) > > I didn't think it was that big of a deal. ;-) > It's not really that big of a deal. I was just currious if I'd gotten it right since I spend a good deal of time digging for possible reasons for the differences (and finding none). :-) > It seems the right approach. Personally, I would of made the type an > s32, since fixed-sizes seems to be sensible in the thread_info > structure, but an int is the same thing. Cool with me. > I'll update the patch(es) then and use __s32 in the structure and s32 elsewhere. > Acked-by: Robert Love <rm...@no...> > Thanks. > Robert Love > -- Jesper Juhl |
From: Robert L. <rm...@no...> - 2005-04-26 17:36:09
|
On Tue, 2005-04-26 at 19:31 +0200, Jesper Juhl wrote: > Replying to myself here since the initial mail got no response. Here's > hoping that it showing up on the list again draws some comments :-) I didn't think it was that big of a deal. ;-) It seems the right approach. Personally, I would of made the type an s32, since fixed-sizes seems to be sensible in the thread_info structure, but an int is the same thing. Cool with me. Acked-by: Robert Love <rm...@no...> Robert Love |
From: Jesper J. <juh...@di...> - 2005-04-26 17:28:11
|
Replying to myself here since the initial mail got no response. Here's hoping that it showing up on the list again draws some comments :-) -- Jesper On Sat, 23 Apr 2005, Jesper Juhl wrote: > While looking through the tree and checking out possible signedness issues > pointed out to me by gcc -W I came across this one : > kernel/timer.c:464: warning: comparison between signed and unsigned > The issue there is this little bit of code : > [...] > 462 u32 preempt_count = preempt_count(); > 463 fn(data); > 464 if (preempt_count != preempt_count()) { > [...] > gcc is complaining about that since preempt_count in struct thread_info > (which is what preempt_count() returns) is a signed integer. Initially I > thought "that's a bit sloppy, I'll just make the local variable a s32 and > that should be that", but then I looked a little closer at struct > thread_info for the different archs, and found that the type used differs > between archs and it's not even a signed type on all (s390 being the > unsigned exception). So all of a sudden fixing up this little warning was > not so simple after all. > The different types used for struct thread_info.preempt_count are > __s32, int and unsigned int. > > Why are different types used for struct thread_info.preempt_count? Would > it not make sense to make it a __s32 or plain int on all archs? I would > think that consistency here would be a good thing. > And why on earth is it an unsigned int on s390? It seems to me that that > makes it impossible to catch bugs where preempt_count is decremented below > zero. > > Any reason not to apply a patch like this one? > my choice of 'int' over '__s32' was pretty arbitrary - as far as I know we > don't support any archs where 'int' is less than 32bits, do we? So I > figured that using a plain int type should give us at least 32 bits > everywhere as well as using the given platforms fastest type. If any of > the archs have <32bit int types, then I guess __s32 would be a better > choice. > > Signed-of-by: Jesper Juhl <juh...@di...> > > --- linux-2.6.12-rc2-mm3-orig/include/asm-arm/thread_info.h 2005-03-02 08:38:08.000000000 +0100 > +++ linux-2.6.12-rc2-mm3/include/asm-arm/thread_info.h 2005-04-23 23:16:04.000000000 +0200 > @@ -45,7 +45,7 @@ > */ > struct thread_info { > unsigned long flags; /* low level flags */ > - __s32 preempt_count; /* 0 => preemptable, <0 => bug */ > + int preempt_count; /* 0 => preemptable, <0 => bug */ > mm_segment_t addr_limit; /* address limit */ > struct task_struct *task; /* main task structure */ > struct exec_domain *exec_domain; /* execution domain */ > --- linux-2.6.12-rc2-mm3-orig/include/asm-arm26/thread_info.h 2005-03-02 08:37:50.000000000 +0100 > +++ linux-2.6.12-rc2-mm3/include/asm-arm26/thread_info.h 2005-04-23 23:16:22.000000000 +0200 > @@ -44,7 +44,7 @@ > */ > struct thread_info { > unsigned long flags; /* low level flags */ > - __s32 preempt_count; /* 0 => preemptable, <0 => bug */ > + int preempt_count; /* 0 => preemptable, <0 => bug */ > mm_segment_t addr_limit; /* address limit */ > struct task_struct *task; /* main task structure */ > struct exec_domain *exec_domain; /* execution domain */ > --- linux-2.6.12-rc2-mm3-orig/include/asm-cris/thread_info.h 2005-03-02 08:38:32.000000000 +0100 > +++ linux-2.6.12-rc2-mm3/include/asm-cris/thread_info.h 2005-04-23 23:16:29.000000000 +0200 > @@ -31,7 +31,7 @@ > struct exec_domain *exec_domain; /* execution domain */ > unsigned long flags; /* low level flags */ > __u32 cpu; /* current CPU */ > - __s32 preempt_count; /* 0 => preemptable, <0 => BUG */ > + int preempt_count; /* 0 => preemptable, <0 => BUG */ > > mm_segment_t addr_limit; /* thread address space: > 0-0xBFFFFFFF for user-thead > --- linux-2.6.12-rc2-mm3-orig/include/asm-frv/thread_info.h 2005-03-02 08:37:50.000000000 +0100 > +++ linux-2.6.12-rc2-mm3/include/asm-frv/thread_info.h 2005-04-23 23:16:37.000000000 +0200 > @@ -33,7 +33,7 @@ > unsigned long flags; /* low level flags */ > unsigned long status; /* thread-synchronous flags */ > __u32 cpu; /* current CPU */ > - __s32 preempt_count; /* 0 => preemptable, <0 => BUG */ > + int preempt_count; /* 0 => preemptable, <0 => BUG */ > > mm_segment_t addr_limit; /* thread address space: > 0-0xBFFFFFFF for user-thead > --- linux-2.6.12-rc2-mm3-orig/include/asm-i386/thread_info.h 2005-04-05 21:21:48.000000000 +0200 > +++ linux-2.6.12-rc2-mm3/include/asm-i386/thread_info.h 2005-04-23 23:16:50.000000000 +0200 > @@ -31,7 +31,7 @@ > unsigned long flags; /* low level flags */ > unsigned long status; /* thread-synchronous flags */ > __u32 cpu; /* current CPU */ > - __s32 preempt_count; /* 0 => preemptable, <0 => BUG */ > + int preempt_count; /* 0 => preemptable, <0 => BUG */ > > > mm_segment_t addr_limit; /* thread address space: > --- linux-2.6.12-rc2-mm3-orig/include/asm-ia64/thread_info.h 2005-03-02 08:38:33.000000000 +0100 > +++ linux-2.6.12-rc2-mm3/include/asm-ia64/thread_info.h 2005-04-23 23:17:04.000000000 +0200 > @@ -25,7 +25,7 @@ > __u32 flags; /* thread_info flags (see TIF_*) */ > __u32 cpu; /* current CPU */ > mm_segment_t addr_limit; /* user-level address space limit */ > - __s32 preempt_count; /* 0=premptable, <0=BUG; will also serve as bh-counter */ > + int preempt_count; /* 0=premptable, <0=BUG; will also serve as bh-counter */ > struct restart_block restart_block; > struct { > int signo; > --- linux-2.6.12-rc2-mm3-orig/include/asm-m32r/thread_info.h 2005-03-02 08:38:26.000000000 +0100 > +++ linux-2.6.12-rc2-mm3/include/asm-m32r/thread_info.h 2005-04-23 23:17:21.000000000 +0200 > @@ -28,7 +28,7 @@ > unsigned long flags; /* low level flags */ > unsigned long status; /* thread-synchronous flags */ > __u32 cpu; /* current CPU */ > - __s32 preempt_count; /* 0 => preemptable, <0 => BUG */ > + int preempt_count; /* 0 => preemptable, <0 => BUG */ > > mm_segment_t addr_limit; /* thread address space: > 0-0xBFFFFFFF for user-thread > --- linux-2.6.12-rc2-mm3-orig/include/asm-m68k/thread_info.h 2005-04-05 21:21:49.000000000 +0200 > +++ linux-2.6.12-rc2-mm3/include/asm-m68k/thread_info.h 2005-04-23 23:17:29.000000000 +0200 > @@ -8,7 +8,7 @@ > struct thread_info { > struct task_struct *task; /* main task structure */ > struct exec_domain *exec_domain; /* execution domain */ > - __s32 preempt_count; /* 0 => preemptable, <0 => BUG */ > + int preempt_count; /* 0 => preemptable, <0 => BUG */ > __u32 cpu; /* should always be 0 on m68k */ > struct restart_block restart_block; > > --- linux-2.6.12-rc2-mm3-orig/include/asm-mips/thread_info.h 2005-03-02 08:37:30.000000000 +0100 > +++ linux-2.6.12-rc2-mm3/include/asm-mips/thread_info.h 2005-04-23 23:17:47.000000000 +0200 > @@ -27,7 +27,7 @@ > struct exec_domain *exec_domain; /* execution domain */ > unsigned long flags; /* low level flags */ > __u32 cpu; /* current CPU */ > - __s32 preempt_count; /* 0 => preemptable, <0 => BUG */ > + int preempt_count; /* 0 => preemptable, <0 => BUG */ > > mm_segment_t addr_limit; /* thread address space: > 0-0xBFFFFFFF for user-thead > --- linux-2.6.12-rc2-mm3-orig/include/asm-parisc/thread_info.h 2005-04-05 21:21:49.000000000 +0200 > +++ linux-2.6.12-rc2-mm3/include/asm-parisc/thread_info.h 2005-04-23 23:17:55.000000000 +0200 > @@ -12,7 +12,7 @@ > unsigned long flags; /* thread_info flags (see TIF_*) */ > mm_segment_t addr_limit; /* user-level address space limit */ > __u32 cpu; /* current CPU */ > - __s32 preempt_count; /* 0=premptable, <0=BUG; will also serve as bh-counter */ > + int preempt_count; /* 0=premptable, <0=BUG; will also serve as bh-counter */ > struct restart_block restart_block; > }; > > --- linux-2.6.12-rc2-mm3-orig/include/asm-s390/thread_info.h 2005-03-02 08:38:13.000000000 +0100 > +++ linux-2.6.12-rc2-mm3/include/asm-s390/thread_info.h 2005-04-23 23:18:12.000000000 +0200 > @@ -50,7 +50,7 @@ > struct exec_domain *exec_domain; /* execution domain */ > unsigned long flags; /* low level flags */ > unsigned int cpu; /* current CPU */ > - unsigned int preempt_count; /* 0 => preemptable */ > + int preempt_count; /* 0 => preemptable */ > struct restart_block restart_block; > }; > > --- linux-2.6.12-rc2-mm3-orig/include/asm-sh/thread_info.h 2005-03-02 08:38:13.000000000 +0100 > +++ linux-2.6.12-rc2-mm3/include/asm-sh/thread_info.h 2005-04-23 23:18:20.000000000 +0200 > @@ -20,7 +20,7 @@ > struct exec_domain *exec_domain; /* execution domain */ > __u32 flags; /* low level flags */ > __u32 cpu; > - __s32 preempt_count; /* 0 => preemptable, <0 => BUG */ > + int preempt_count; /* 0 => preemptable, <0 => BUG */ > struct restart_block restart_block; > __u8 supervisor_stack[0]; > }; > --- linux-2.6.12-rc2-mm3-orig/include/asm-sh64/thread_info.h 2005-04-05 21:21:49.000000000 +0200 > +++ linux-2.6.12-rc2-mm3/include/asm-sh64/thread_info.h 2005-04-23 23:18:27.000000000 +0200 > @@ -22,7 +22,7 @@ > struct exec_domain *exec_domain; /* execution domain */ > unsigned long flags; /* low level flags */ > /* Put the 4 32-bit fields together to make asm offsetting easier. */ > - __s32 preempt_count; /* 0 => preemptable, <0 => BUG */ > + int preempt_count; /* 0 => preemptable, <0 => BUG */ > __u16 cpu; > > mm_segment_t addr_limit; > --- linux-2.6.12-rc2-mm3-orig/include/asm-um/thread_info.h 2005-03-02 08:37:54.000000000 +0100 > +++ linux-2.6.12-rc2-mm3/include/asm-um/thread_info.h 2005-04-23 23:18:50.000000000 +0200 > @@ -17,7 +17,7 @@ > struct exec_domain *exec_domain; /* execution domain */ > unsigned long flags; /* low level flags */ > __u32 cpu; /* current CPU */ > - __s32 preempt_count; /* 0 => preemptable, > + int preempt_count; /* 0 => preemptable, > <0 => BUG */ > mm_segment_t addr_limit; /* thread address space: > 0-0xBFFFFFFF for user > > > and then the litle detail in kernel/timer.c can be fixed nicely like this: > > Signed-off-by: Jesper Juhl <juh...@di...> > > --- linux-2.6.12-rc2-mm3-orig/kernel/timer.c 2005-04-11 21:20:56.000000000 +0200 > +++ linux-2.6.12-rc2-mm3/kernel/timer.c 2005-04-23 23:19:21.000000000 +0200 > @@ -459,7 +459,7 @@ static inline void __run_timers(tvec_bas > detach_timer(timer, 1); > spin_unlock_irq(&base->t_base.lock); > { > - u32 preempt_count = preempt_count(); > + int preempt_count = preempt_count(); > fn(data); > if (preempt_count != preempt_count()) { > printk("huh, entered %p with %08x, exited with %08x?\n", fn, preempt_count, preempt_count()); > > > or is there some good reason I'm missing that make the above a bad idea? > > > -- > Jesper Juhl > > PS. Please CC: me on replies. > > |
From: Jesper J. <juh...@di...> - 2005-04-23 21:26:58
|
While looking through the tree and checking out possible signedness issues pointed out to me by gcc -W I came across this one : kernel/timer.c:464: warning: comparison between signed and unsigned The issue there is this little bit of code : [...] 462 u32 preempt_count = preempt_count(); 463 fn(data); 464 if (preempt_count != preempt_count()) { [...] gcc is complaining about that since preempt_count in struct thread_info (which is what preempt_count() returns) is a signed integer. Initially I thought "that's a bit sloppy, I'll just make the local variable a s32 and that should be that", but then I looked a little closer at struct thread_info for the different archs, and found that the type used differs between archs and it's not even a signed type on all (s390 being the unsigned exception). So all of a sudden fixing up this little warning was not so simple after all. The different types used for struct thread_info.preempt_count are __s32, int and unsigned int. Why are different types used for struct thread_info.preempt_count? Would it not make sense to make it a __s32 or plain int on all archs? I would think that consistency here would be a good thing. And why on earth is it an unsigned int on s390? It seems to me that that makes it impossible to catch bugs where preempt_count is decremented below zero. Any reason not to apply a patch like this one? my choice of 'int' over '__s32' was pretty arbitrary - as far as I know we don't support any archs where 'int' is less than 32bits, do we? So I figured that using a plain int type should give us at least 32 bits everywhere as well as using the given platforms fastest type. If any of the archs have <32bit int types, then I guess __s32 would be a better choice. Signed-of-by: Jesper Juhl <juh...@di...> --- linux-2.6.12-rc2-mm3-orig/include/asm-arm/thread_info.h 2005-03-02 08:38:08.000000000 +0100 +++ linux-2.6.12-rc2-mm3/include/asm-arm/thread_info.h 2005-04-23 23:16:04.000000000 +0200 @@ -45,7 +45,7 @@ */ struct thread_info { unsigned long flags; /* low level flags */ - __s32 preempt_count; /* 0 => preemptable, <0 => bug */ + int preempt_count; /* 0 => preemptable, <0 => bug */ mm_segment_t addr_limit; /* address limit */ struct task_struct *task; /* main task structure */ struct exec_domain *exec_domain; /* execution domain */ --- linux-2.6.12-rc2-mm3-orig/include/asm-arm26/thread_info.h 2005-03-02 08:37:50.000000000 +0100 +++ linux-2.6.12-rc2-mm3/include/asm-arm26/thread_info.h 2005-04-23 23:16:22.000000000 +0200 @@ -44,7 +44,7 @@ */ struct thread_info { unsigned long flags; /* low level flags */ - __s32 preempt_count; /* 0 => preemptable, <0 => bug */ + int preempt_count; /* 0 => preemptable, <0 => bug */ mm_segment_t addr_limit; /* address limit */ struct task_struct *task; /* main task structure */ struct exec_domain *exec_domain; /* execution domain */ --- linux-2.6.12-rc2-mm3-orig/include/asm-cris/thread_info.h 2005-03-02 08:38:32.000000000 +0100 +++ linux-2.6.12-rc2-mm3/include/asm-cris/thread_info.h 2005-04-23 23:16:29.000000000 +0200 @@ -31,7 +31,7 @@ struct exec_domain *exec_domain; /* execution domain */ unsigned long flags; /* low level flags */ __u32 cpu; /* current CPU */ - __s32 preempt_count; /* 0 => preemptable, <0 => BUG */ + int preempt_count; /* 0 => preemptable, <0 => BUG */ mm_segment_t addr_limit; /* thread address space: 0-0xBFFFFFFF for user-thead --- linux-2.6.12-rc2-mm3-orig/include/asm-frv/thread_info.h 2005-03-02 08:37:50.000000000 +0100 +++ linux-2.6.12-rc2-mm3/include/asm-frv/thread_info.h 2005-04-23 23:16:37.000000000 +0200 @@ -33,7 +33,7 @@ unsigned long flags; /* low level flags */ unsigned long status; /* thread-synchronous flags */ __u32 cpu; /* current CPU */ - __s32 preempt_count; /* 0 => preemptable, <0 => BUG */ + int preempt_count; /* 0 => preemptable, <0 => BUG */ mm_segment_t addr_limit; /* thread address space: 0-0xBFFFFFFF for user-thead --- linux-2.6.12-rc2-mm3-orig/include/asm-i386/thread_info.h 2005-04-05 21:21:48.000000000 +0200 +++ linux-2.6.12-rc2-mm3/include/asm-i386/thread_info.h 2005-04-23 23:16:50.000000000 +0200 @@ -31,7 +31,7 @@ unsigned long flags; /* low level flags */ unsigned long status; /* thread-synchronous flags */ __u32 cpu; /* current CPU */ - __s32 preempt_count; /* 0 => preemptable, <0 => BUG */ + int preempt_count; /* 0 => preemptable, <0 => BUG */ mm_segment_t addr_limit; /* thread address space: --- linux-2.6.12-rc2-mm3-orig/include/asm-ia64/thread_info.h 2005-03-02 08:38:33.000000000 +0100 +++ linux-2.6.12-rc2-mm3/include/asm-ia64/thread_info.h 2005-04-23 23:17:04.000000000 +0200 @@ -25,7 +25,7 @@ __u32 flags; /* thread_info flags (see TIF_*) */ __u32 cpu; /* current CPU */ mm_segment_t addr_limit; /* user-level address space limit */ - __s32 preempt_count; /* 0=premptable, <0=BUG; will also serve as bh-counter */ + int preempt_count; /* 0=premptable, <0=BUG; will also serve as bh-counter */ struct restart_block restart_block; struct { int signo; --- linux-2.6.12-rc2-mm3-orig/include/asm-m32r/thread_info.h 2005-03-02 08:38:26.000000000 +0100 +++ linux-2.6.12-rc2-mm3/include/asm-m32r/thread_info.h 2005-04-23 23:17:21.000000000 +0200 @@ -28,7 +28,7 @@ unsigned long flags; /* low level flags */ unsigned long status; /* thread-synchronous flags */ __u32 cpu; /* current CPU */ - __s32 preempt_count; /* 0 => preemptable, <0 => BUG */ + int preempt_count; /* 0 => preemptable, <0 => BUG */ mm_segment_t addr_limit; /* thread address space: 0-0xBFFFFFFF for user-thread --- linux-2.6.12-rc2-mm3-orig/include/asm-m68k/thread_info.h 2005-04-05 21:21:49.000000000 +0200 +++ linux-2.6.12-rc2-mm3/include/asm-m68k/thread_info.h 2005-04-23 23:17:29.000000000 +0200 @@ -8,7 +8,7 @@ struct thread_info { struct task_struct *task; /* main task structure */ struct exec_domain *exec_domain; /* execution domain */ - __s32 preempt_count; /* 0 => preemptable, <0 => BUG */ + int preempt_count; /* 0 => preemptable, <0 => BUG */ __u32 cpu; /* should always be 0 on m68k */ struct restart_block restart_block; --- linux-2.6.12-rc2-mm3-orig/include/asm-mips/thread_info.h 2005-03-02 08:37:30.000000000 +0100 +++ linux-2.6.12-rc2-mm3/include/asm-mips/thread_info.h 2005-04-23 23:17:47.000000000 +0200 @@ -27,7 +27,7 @@ struct exec_domain *exec_domain; /* execution domain */ unsigned long flags; /* low level flags */ __u32 cpu; /* current CPU */ - __s32 preempt_count; /* 0 => preemptable, <0 => BUG */ + int preempt_count; /* 0 => preemptable, <0 => BUG */ mm_segment_t addr_limit; /* thread address space: 0-0xBFFFFFFF for user-thead --- linux-2.6.12-rc2-mm3-orig/include/asm-parisc/thread_info.h 2005-04-05 21:21:49.000000000 +0200 +++ linux-2.6.12-rc2-mm3/include/asm-parisc/thread_info.h 2005-04-23 23:17:55.000000000 +0200 @@ -12,7 +12,7 @@ unsigned long flags; /* thread_info flags (see TIF_*) */ mm_segment_t addr_limit; /* user-level address space limit */ __u32 cpu; /* current CPU */ - __s32 preempt_count; /* 0=premptable, <0=BUG; will also serve as bh-counter */ + int preempt_count; /* 0=premptable, <0=BUG; will also serve as bh-counter */ struct restart_block restart_block; }; --- linux-2.6.12-rc2-mm3-orig/include/asm-s390/thread_info.h 2005-03-02 08:38:13.000000000 +0100 +++ linux-2.6.12-rc2-mm3/include/asm-s390/thread_info.h 2005-04-23 23:18:12.000000000 +0200 @@ -50,7 +50,7 @@ struct exec_domain *exec_domain; /* execution domain */ unsigned long flags; /* low level flags */ unsigned int cpu; /* current CPU */ - unsigned int preempt_count; /* 0 => preemptable */ + int preempt_count; /* 0 => preemptable */ struct restart_block restart_block; }; --- linux-2.6.12-rc2-mm3-orig/include/asm-sh/thread_info.h 2005-03-02 08:38:13.000000000 +0100 +++ linux-2.6.12-rc2-mm3/include/asm-sh/thread_info.h 2005-04-23 23:18:20.000000000 +0200 @@ -20,7 +20,7 @@ struct exec_domain *exec_domain; /* execution domain */ __u32 flags; /* low level flags */ __u32 cpu; - __s32 preempt_count; /* 0 => preemptable, <0 => BUG */ + int preempt_count; /* 0 => preemptable, <0 => BUG */ struct restart_block restart_block; __u8 supervisor_stack[0]; }; --- linux-2.6.12-rc2-mm3-orig/include/asm-sh64/thread_info.h 2005-04-05 21:21:49.000000000 +0200 +++ linux-2.6.12-rc2-mm3/include/asm-sh64/thread_info.h 2005-04-23 23:18:27.000000000 +0200 @@ -22,7 +22,7 @@ struct exec_domain *exec_domain; /* execution domain */ unsigned long flags; /* low level flags */ /* Put the 4 32-bit fields together to make asm offsetting easier. */ - __s32 preempt_count; /* 0 => preemptable, <0 => BUG */ + int preempt_count; /* 0 => preemptable, <0 => BUG */ __u16 cpu; mm_segment_t addr_limit; --- linux-2.6.12-rc2-mm3-orig/include/asm-um/thread_info.h 2005-03-02 08:37:54.000000000 +0100 +++ linux-2.6.12-rc2-mm3/include/asm-um/thread_info.h 2005-04-23 23:18:50.000000000 +0200 @@ -17,7 +17,7 @@ struct exec_domain *exec_domain; /* execution domain */ unsigned long flags; /* low level flags */ __u32 cpu; /* current CPU */ - __s32 preempt_count; /* 0 => preemptable, + int preempt_count; /* 0 => preemptable, <0 => BUG */ mm_segment_t addr_limit; /* thread address space: 0-0xBFFFFFFF for user and then the litle detail in kernel/timer.c can be fixed nicely like this: Signed-off-by: Jesper Juhl <juh...@di...> --- linux-2.6.12-rc2-mm3-orig/kernel/timer.c 2005-04-11 21:20:56.000000000 +0200 +++ linux-2.6.12-rc2-mm3/kernel/timer.c 2005-04-23 23:19:21.000000000 +0200 @@ -459,7 +459,7 @@ static inline void __run_timers(tvec_bas detach_timer(timer, 1); spin_unlock_irq(&base->t_base.lock); { - u32 preempt_count = preempt_count(); + int preempt_count = preempt_count(); fn(data); if (preempt_count != preempt_count()) { printk("huh, entered %p with %08x, exited with %08x?\n", fn, preempt_count, preempt_count()); or is there some good reason I'm missing that make the above a bad idea? -- Jesper Juhl PS. Please CC: me on replies. |
From: Hillel<go...@ya...> - 2005-03-19 18:44:14
|
Looking for not expensive high-quality software? We might have just what you need. Windows XP Professional 2002 ............... $50 Adobe Photoshop 7.0 ................................ $60 Microsoft Office XP Professional 2002 .... $60 Corel Draw Graphics Suite 11 .................. $60 and lots more... |
From: Knut J B. <kn...@on...> - 2005-03-10 14:14:32
|
caller is arch_add_exec_range+0x49/0x6a Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit When booting linux 2.6.11 with preemetable enable I get BUG: using smp_processor_id() in preemptible [00000001] code: hotplug/461caller is arch_add_exec_range+0x49/0x6a when I load the kernel. I get this error messeage before loading xorg ,and the kernel is untained. Linux version 2.6.11 (root@knutjorgen) (gcc version 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)) #1 SMP Thu Mar 10 08:09:49 CET 2005 BIOS-provided physical RAM map: BIOS-e820: 0000000000000000 - 00000000000a0000 (usable) BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved) BIOS-e820: 0000000000100000 - 000000003fe8cc00 (usable) BIOS-e820: 000000003fe8cc00 - 000000003fe8ec00 (ACPI NVS) BIOS-e820: 000000003fe8ec00 - 000000003fe90c00 (ACPI data) BIOS-e820: 000000003fe90c00 - 0000000040000000 (reserved) BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved) BIOS-e820: 00000000fec00000 - 00000000fed00400 (reserved) BIOS-e820: 00000000fed20000 - 00000000feda0000 (reserved) BIOS-e820: 00000000fee00000 - 00000000fef00000 (reserved) BIOS-e820: 00000000ffb00000 - 0000000100000000 (reserved) 126MB HIGHMEM available. 896MB LOWMEM available. found SMP MP-table at 000fe710 Using x86 segment limits to approximate NX protection On node 0 totalpages: 261772 DMA zone: 4096 pages, LIFO batch:1 Normal zone: 225280 pages, LIFO batch:16 HighMem zone: 32396 pages, LIFO batch:7 DMI 2.3 present. Using APIC driver default ACPI: RSDP (v000 DELL ) @ 0x000febf0 ACPI: RSDT (v001 DELL 8400 0x00000007 ASL 0x00000061) @ 0x000fccbe ACPI: FADT (v001 DELL 8400 0x00000007 ASL 0x00000061) @ 0x000fccfa ACPI: SSDT (v001 DELL st_ex 0x00001000 MSFT 0x0100000d) @ 0xfffc92bf ACPI: MADT (v001 DELL 8400 0x00000007 ASL 0x00000061) @ 0x000fcd6e ACPI: BOOT (v001 DELL 8400 0x00000007 ASL 0x00000061) @ 0x000fcde0 ACPI: MCFG (v001 DELL 8400 0x00000007 ASL 0x00000061) @ 0x000fce08 ACPI: HPET (v001 DELL 8400 0x00000007 ASL 0x00000061) @ 0x000fce46 ACPI: DSDT (v001 DELL dt_ex 0x00001000 MSFT 0x0100000d) @ 0x00000000 ACPI: PM-Timer IO Port: 0x808 ACPI: Local APIC address 0xfee00000 ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled) Processor #0 15:4 APIC version 20 ACPI: LAPIC (acpi_id[0x02] lapic_id[0x01] enabled) Processor #1 15:4 APIC version 20 ACPI: LAPIC (acpi_id[0x03] lapic_id[0x01] disabled) ACPI: LAPIC (acpi_id[0x04] lapic_id[0x07] disabled) ACPI: LAPIC_NMI (acpi_id[0xff] high level lint[0x1]) ACPI: IOAPIC (id[0x08] address[0xfec00000] gsi_base[0]) IOAPIC[0]: apic_id 8, version 32, address 0xfec00000, GSI 0-23 ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl) ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level) ACPI: IRQ0 used by override. ACPI: IRQ2 used by override. ACPI: IRQ9 used by override. Enabling APIC mode: Flat. Using 1 I/O APICs ACPI: HPET id: 0x8086a201 base: 0xfed00000 Using ACPI (MADT) for SMP configuration information Allocating PCI resources starting at 40000000 (gap: 40000000:a0000000) Built 1 zonelists Kernel command line: ro root=/dev/VolGroup00/LogVol00 selinux=permissive single mapped APIC to ffffd000 (fee00000) mapped IOAPIC to ffffc000 (fec00000) Initializing CPU#0 CPU 0 irqstacks, hard=c0436000 soft=c0416000 PID hash table entries: 4096 (order: 12, 65536 bytes) Console: colour VGA+ 80x25 Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) Memory: 1029396k/1047088k available (2120k kernel code, 16900k reserved, 781k data, 232k init, 129584k highmem) Checking if this processor honours the WP bit even in supervisor mode... Ok. hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0 hpet0: 0ns tick, 3 64-bit timers Using HPET for base-timer Using HPET for gettimeofday Detected 2993.010 MHz processor. Using hpet for high-res timesource Calibrating delay loop... 5931.00 BogoMIPS (lpj=2965504) Security Framework v1.0.0 initialized SELinux: Disabled at boot. Capability LSM initialized Mount-cache hash table entries: 512 (order: 0, 4096 bytes) CPU: After generic identify, caps: bfebfbff 00000000 00000000 00000000 0000441d 00000000 00000000 CPU: After vendor identify, caps: bfebfbff 00000000 00000000 00000000 0000441d 00000000 00000000 monitor/mwait feature present. using mwait in idle threads. CPU: Trace cache: 12K uops, L1 D cache: 16K CPU: L2 cache: 1024K CPU: Physical Processor ID: 0 CPU: After all inits, caps: bfebf3f7 00000000 00000000 00000080 0000441d 00000000 00000000 Intel machine check architecture supported. Intel machine check reporting enabled on CPU#0. CPU0: Intel P4/Xeon Extended MCE MSRs (12) available CPU0: Thermal monitoring enabled Enabling fast FPU save and restore... done. Enabling unmasked SIMD FPU exception support... done. Checking 'hlt' instruction... OK. CPU0: Intel(R) Pentium(R) 4 CPU 3.00GHz stepping 01 per-CPU timeslice cutoff: 2924.86 usecs. task migration cache decay timeout: 3 msecs. Booting processor 1/1 eip 3000 CPU 1 irqstacks, hard=c0437000 soft=c0417000 Initializing CPU#1 Calibrating delay loop... 5980.16 BogoMIPS (lpj=2990080) CPU: After generic identify, caps: bfebfbff 00000000 00000000 00000000 0000441d 00000000 00000000 CPU: After vendor identify, caps: bfebfbff 00000000 00000000 00000000 0000441d 00000000 00000000 monitor/mwait feature present. CPU: Trace cache: 12K uops, L1 D cache: 16K CPU: L2 cache: 1024K CPU: Physical Processor ID: 0 CPU: After all inits, caps: bfebf3f7 00000000 00000000 00000080 0000441d 00000000 00000000 Intel machine check architecture supported. Intel machine check reporting enabled on CPU#1. CPU1: Intel P4/Xeon Extended MCE MSRs (12) available CPU1: Thermal monitoring enabled CPU1: Intel(R) Pentium(R) 4 CPU 3.00GHz stepping 01 Total of 2 processors activated (11911.16 BogoMIPS). ENABLING IO-APIC IRQs ..TIMER: vector=0x31 pin1=2 pin2=-1 checking TSC synchronization across 2 CPUs: passed. Brought up 2 CPUs checking if image is initramfs... it is Freeing initrd memory: 1231k freed NET: Registered protocol family 16 PCI: PCI BIOS revision 2.10 entry at 0xfb76a, last bus=4 PCI: Using MMCONFIG mtrr: v2.0 (20020519) ACPI: Subsystem revision 20050211 ACPI: Interpreter enabled ACPI: Using IOAPIC for interrupt routing ACPI: PCI Root Bridge [PCI0] (00:00) PCI: Probing PCI hardware (bus 00) PCI: Ignoring BAR0-3 of IDE controller 0000:00:1f.1 PCI: Transparent bridge - 0000:00:1e.0 ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI1._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI2._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI3._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI4._PRT] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 9 10 *11 12 15) ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 9 *10 11 12 15) ACPI: PCI Interrupt Link [LNKC] (IRQs *3 4 5 6 7 9 10 11 12 15) ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 9 10 11 12 15) *0, disabled. ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 *5 6 7 9 10 11 12 15) ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 7 *9 10 11 12 15) ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 *5 6 7 9 10 11 12 15) ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 7 9 *10 11 12 15) Linux Plug and Play Support v0.97 (c) Adam Belay pnp: PnP ACPI init pnp: PnP ACPI: found 13 devices usbcore: registered new driver usbfs usbcore: registered new driver hub PCI: Using ACPI for IRQ routing ** PCI interrupts are no longer routed automatically. If this ** causes a device to stop working, it is probably because the ** driver failed to call pci_enable_device(). As a temporary ** workaround, the "pci=routeirq" argument restores the old ** behavior. If this argument makes the device work again, ** please email the output of "lspci" to bjo...@hp... ** so I can fix the driver. pnp: 00:00: ioport range 0x800-0x85f could not be reserved pnp: 00:00: ioport range 0xc00-0xc7f has been reserved pnp: 00:00: ioport range 0x860-0x8ff has been reserved Simple Boot Flag value 0x87 read from CMOS RAM was invalid Simple Boot Flag at 0x7a set to 0x1 apm: BIOS version 1.2 Flags 0x03 (Driver version 1.16ac) apm: disabled - APM is not SMP safe. audit: initializing netlink socket (disabled) audit(1110443970.214:0): initialized highmem bounce pool size: 64 pages Total HugeTLB memory allocated, 0 VFS: Disk quotas dquot_6.5.1 Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) Initializing Cryptographic API ksign: Installing public key data Loading keyring pci_hotplug: PCI Hot Plug PCI Core version: 0.5 ACPI: PCI interrupt 0000:00:01.0[A] -> GSI 16 (level, low) -> IRQ 169 PCI: Setting latency timer of device 0000:00:01.0 to 64 assign_interrupt_mode Found MSI capability Allocate Port Service[pcie00] Allocate Port Service[pcie03] ACPI: PCI interrupt 0000:00:1c.0[A] -> GSI 16 (level, low) -> IRQ 169 PCI: Setting latency timer of device 0000:00:1c.0 to 64 assign_interrupt_mode Found MSI capability Allocate Port Service[pcie00] Allocate Port Service[pcie02] Allocate Port Service[pcie03] ACPI: PCI interrupt 0000:00:1c.1[B] -> GSI 17 (level, low) -> IRQ 201 PCI: Setting latency timer of device 0000:00:1c.1 to 64 assign_interrupt_mode Found MSI capability Allocate Port Service[pcie00] Allocate Port Service[pcie02] Allocate Port Service[pcie03] isapnp: Scanning for PnP cards... isapnp: No Plug & Play device found Real Time Clock Driver v1.12 hpet_acpi_add: no address or irqs in _CRS Linux agpgart interface v0.100 (c) Dave Jones [drm] Initialized drm 1.0.0 20040925 serio: i8042 AUX port at 0x60,0x64 irq 12 serio: i8042 KBD port at 0x60,0x64 irq 1 Serial: 8250/16550 driver $Revision: 1.90 $ 76 ports, IRQ sharing enabled ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A io scheduler noop registered io scheduler cfq registered RAMDISK driver initialized: 16 RAM disks of 16384K size 1024 blocksize Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2 ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx ICH6: IDE controller at PCI slot 0000:00:1f.1 ACPI: PCI interrupt 0000:00:1f.1[A] -> GSI 16 (level, low) -> IRQ 169 ICH6: chipset revision 3 ICH6: not 100% native mode: will probe irqs later ide0: BM-DMA at 0xffa0-0xffa7, BIOS settings: hda:DMA, hdb:pio Probing IDE interface ide0... hda: PHILIPS DVD+/-RW DVD8631, ATAPI CD/DVD-ROM drive ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 Probing IDE interface ide1... Probing IDE interface ide2... Probing IDE interface ide3... Probing IDE interface ide4... Probing IDE interface ide5... hda: ATAPI 40X DVD-ROM DVD-R CD-R/RW drive, 2048kB Cache, UDMA(33) Uniform CD-ROM driver Revision: 3.20 ide-floppy driver 0.99.newide usbcore: registered new driver hiddev usbcore: registered new driver usbhid drivers/usb/input/hid-core.c: v2.0:USB HID core driver mice: PS/2 mouse device common for all mice input: AT Translated Set 2 keyboard on isa0060/serio0 input: ImPS/2 Generic Wheel Mouse on isa0060/serio1 gameport: pci0000:04:00.1 speed 903 kHz md: md driver 0.90.1 MAX_MD_DEVS=256, MD_SB_DISKS=27 NET: Registered protocol family 2 IP: routing cache hash table of 4096 buckets, 64Kbytes TCP established hash table entries: 131072 (order: 9, 2097152 bytes) TCP bind hash table entries: 65536 (order: 8, 1048576 bytes) TCP: Hash tables configured (established 131072 bind 65536) Initializing IPsec netlink socket NET: Registered protocol family 1 NET: Registered protocol family 17 ACPI wakeup devices: VBTN PCI0 PCI1 PCI2 PCI3 PCI4 KBD USB0 USB1 USB2 USB3 ACPI: (supports S0 S1 S3 S4 S5) CPU0 attaching sched-domain: domain 0: span 00000003 groups: 00000001 00000002 domain 1: span 00000003 groups: 00000003 CPU1 attaching sched-domain: domain 0: span 00000003 groups: 00000002 00000001 domain 1: span 00000003 groups: 00000003 Freeing unused kernel memory: 232k freed BUG: using smp_processor_id() in preemptible [00000001] code: hotplug/461 caller is arch_add_exec_range+0x49/0x6a [<c01d2c3f>] smp_processor_id+0x8f/0xa0 [<c0103170>] arch_add_exec_range+0x49/0x6a [<c0186bb8>] load_elf_binary+0x45e/0xdc0 [<c0144d6f>] rmqueue_bulk+0x68/0x72 [<c014e73b>] set_page_address+0x91/0x166 [<c0310e81>] _spin_unlock_irqrestore+0x21/0x49 [<c0145493>] __alloc_pages+0x17a/0x3de [<c0310df2>] _spin_unlock+0x1f/0x47 [<c014e14d>] kunmap_high+0x7b/0x9f [<c018675a>] load_elf_binary+0x0/0xdc0 [<c016a283>] search_binary_handler+0xdd/0x2fe [<c016a608>] do_execve+0x164/0x205 [<c0102cd6>] sys_execve+0x30/0x94 [<c0104193>] syscall_call+0x7/0xb [<c0131066>] __exec_usermodehelper+0x84/0xa0 [<c01310a6>] ____call_usermodehelper+0x24/0x2e [<c0131082>] ____call_usermodehelper+0x0/0x2e [<c01022f9>] kernel_thread_helper+0x5/0xb BUG: using smp_processor_id() in preemptible [00000001] code: hotplug/461 caller is load_elf_binary+0xb0b/0xdc0 [<c01d2c3f>] smp_processor_id+0x8f/0xa0 [<c0187265>] load_elf_binary+0xb0b/0xdc0 [<c0310df2>] _spin_unlock+0x1f/0x47 [<c014e14d>] kunmap_high+0x7b/0x9f [<c018675a>] load_elf_binary+0x0/0xdc0 [<c016a283>] search_binary_handler+0xdd/0x2fe [<c016a608>] do_execve+0x164/0x205 [<c0102cd6>] sys_execve+0x30/0x94 [<c0104193>] syscall_call+0x7/0xb [<c01310a6>] ____call_usermodehelper+0x24/0x2e [<c0131082>] ____call_usermodehelper+0x0/0x2e [<c01022f9>] kernel_thread_helper+0x5/0xb BUG: using smp_processor_id() in preemptible [00000001] code: hotplug/462 caller is arch_add_exec_range+0x49/0x6a [<c01d2c3f>] smp_processor_id+0x8f/0xa0 [<c0103170>] arch_add_exec_range+0x49/0x6a [<c0186bb8>] load_elf_binary+0x45e/0xdc0 [<c0141bef>] generic_file_read+0x9c/0xba [<c0310e81>] _spin_unlock_irqrestore+0x21/0x49 [<c0145493>] __alloc_pages+0x17a/0x3de [<c0310df2>] _spin_unlock+0x1f/0x47 [<c014e14d>] kunmap_high+0x7b/0x9f BUG: using smp_processor_id() in preemptible [00000001] code: udev/461 caller is arch_add_exec_range+0x49/0x6a [<c01d2c3f>] smp_processor_id+0x8f/0xa0 [<c0103170>] arch_add_exec_range+0x49/0x6a [<c015299a>] __vma_link+0x54/0x8c [<c0152a26>] vma_link+0x54/0xd8 [<c015473a>] do_brk+0x240/0x2dd [<c0185be2>] set_brk+0x82/0xb6 [<c0187079>] load_elf_binary+0x91f/0xdc0 [<c0145493>] __alloc_pages+0x17a/0x3de [<c0310df2>] _spin_unlock+0x1f/0x47 [<c014e14d>] kunmap_high+0x7b/0x9f [<c018675a>] load_elf_binary+0x0/0xdc0 [<c016a283>] search_binary_handler+0xdd/0x2fe [<c016a608>] do_execve+0x164/0x205 [<c0102cd6>] sys_execve+0x30/0x94 [<c0104193>] syscall_call+0x7/0xb BUG: using smp_processor_id() in preemptible [00000001] code: udev/461 caller is load_elf_binary+0xb0b/0xdc0 [<c01d2c3f>] smp_processor_id+0x8f/0xa0 [<c0187265>] load_elf_binary+0xb0b/0xdc0 [<c0310df2>] _spin_unlock+0x1f/0x47 [<c014e14d>] kunmap_high+0x7b/0x9f [<c018675a>] load_elf_binary+0x0/0xdc0 [<c016a283>] search_binary_handler+0xdd/0x2fe [<c016a608>] do_execve+0x164/0x205 [<c0102cd6>] sys_execve+0x30/0x94 [<c0104193>] syscall_call+0x7/0xb BUG: using smp_processor_id() in preemptible [00000001] code: udev/461 caller is arch_add_exec_range+0x49/0x6a [<c01d2c3f>] smp_processor_id+0x8f/0xa0 [<c0103170>] arch_add_exec_range+0x49/0x6a [<c0153065>] vma_merge+0x13d/0x1bc [<c01546bd>] do_brk+0x1c3/0x2dd [<c01528b2>] sys_brk+0xe6/0xea [<c0104193>] syscall_call+0x7/0xb [<c018675a>] load_elf_binary+0x0/0xdc0 [<c016a283>] search_binary_handler+0xdd/0x2fe [<c016a608>] do_execve+0x164/0x205 [<c0102cd6>] sys_execve+0x30/0x94 [<c0104193>] syscall_call+0x7/0xb [<c0131066>] __exec_usermodehelper+0x84/0xa0 [<c01310a6>] ____call_usermodehelper+0x24/0x2e [<c0131082>] ____call_usermodehelper+0x0/0x2e [<c01022f9>] kernel_thread_helper+0x5/0xb BUG: using smp_processor_id() in preemptible [00000001] code: hotplug/462 caller is load_elf_binary+0xb0b/0xdc0 [<c01d2c3f>] smp_processor_id+0x8f/0xa0 [<c0187265>] load_elf_binary+0xb0b/0xdc0 [<c0310df2>] _spin_unlock+0x1f/0x47 [<c014e14d>] kunmap_high+0x7b/0x9f [<c018675a>] load_elf_binary+0x0/0xdc0 [<c016a283>] search_binary_handler+0xdd/0x2fe [<c016a608>] do_execve+0x164/0x205 [<c0102cd6>] sys_execve+0x30/0x94 [<c0104193>] syscall_call+0x7/0xb [<c01310a6>] ____call_usermodehelper+0x24/0x2e [<c0131082>] ____call_usermodehelper+0x0/0x2e [<c01022f9>] kernel_thread_helper+0x5/0xb BUG: using smp_processor_id() in preemptible [00000001] code: udev/462 BUG: using smp_processor_id() in preemptible [00000001] code: init/1 caller is arch_add_exec_range+0x49/0x6a [<c01d2c3f>] smp_processor_id+0x8f/0xa0 [<c0103170>] arch_add_exec_range+0x49/0x6a [<c0186bb8>] load_elf_binary+0x45e/0xdc0 [<c0141bef>] generic_file_read+0x9c/0xba [<c018ecda>] dnotify_parent+0x1f/0x75 [<c0310df2>] _spin_unlock+0x1f/0x47 [<c015fc62>] vfs_read+0xc2/0x108 [<c018675a>] load_elf_binary+0x0/0xdc0 [<c016a283>] search_binary_handler+0xdd/0x2fe [<c01695ac>] kernel_read+0x37/0x41 [<c0185b3b>] load_script+0x20b/0x230 [<c0310e81>] _spin_unlock_irqrestore+0x21/0x49 [<c014e697>] page_address+0x71/0x84 [<c0310df2>] _spin_unlock+0x1f/0x47 [<c014e019>] kmap_high+0x130/0x1e9 [<c0145493>] __alloc_pages+0x17a/0x3de [<c0310df2>] _spin_unlock+0x1f/0x47 [<c014e14d>] kunmap_high+0x7b/0x9f [<c0185930>] load_script+0x0/0x230 [<c016a283>] search_binary_handler+0xdd/0x2fe [<c016a608>] do_execve+0x164/0x205 [<c0102cd6>] sys_execve+0x30/0x94 [<c0104193>] syscall_call+0x7/0xb [<c017007b>] page_symlink+0x3e/0x110 [<c01002e8>] run_init_process+0x19/0x29 [<c0100458>] init+0x160/0x17c [<c01002f8>] init+0x0/0x17c [<c01022f9>] kernel_thread_helper+0x5/0xb BUG: using smp_processor_id() in preemptible [00000001] code: init/1 caller is load_elf_binary+0xb0b/0xdc0 [<c01d2c3f>] smp_processor_id+0x8f/0xa0 [<c0187265>] load_elf_binary+0xb0b/0xdc0 [<c018ecda>] dnotify_parent+0x1f/0x75 [<c0310df2>] _spin_unlock+0x1f/0x47 [<c015fc62>] vfs_read+0xc2/0x108 [<c018675a>] load_elf_binary+0x0/0xdc0 [<c016a283>] search_binary_handler+0xdd/0x2fe [<c01695ac>] kernel_read+0x37/0x41 [<c0185b3b>] load_script+0x20b/0x230 [<c0310e81>] _spin_unlock_irqrestore+0x21/0x49 [<c014e697>] page_address+0x71/0x84 [<c0310df2>] _spin_unlock+0x1f/0x47 [<c014e019>] kmap_high+0x130/0x1e9 [<c0145493>] __alloc_pages+0x17a/0x3de [<c0310df2>] _spin_unlock+0x1f/0x47 [<c014e14d>] kunmap_high+0x7b/0x9f [<c0185930>] load_script+0x0/0x230 [<c016a283>] search_binary_handler+0xdd/0x2fe [<c016a608>] do_execve+0x164/0x205 [<c0102cd6>] sys_execve+0x30/0x94 [<c0104193>] syscall_call+0x7/0xb [<c01002f8>] init+0x0/0x17c [<c01022f9>] kernel_thread_helper+0x5/0xb caller is arch_add_exec_range+0x49/0x6a [<c01d2c3f>] smp_processor_id+0x8f/0xa0 [<c0103170>] arch_add_exec_range+0x49/0x6a [<c015299a>] __vma_link+0x54/0x8c [<c0152a26>] vma_link+0x54/0xd8 [<c015473a>] do_brk+0x240/0x2dd [<c0185be2>] set_brk+0x82/0xb6 [<c0187079>] load_elf_binary+0x91f/0xdc0 [<c0145493>] __alloc_pages+0x17a/0x3de [<c0310df2>] _spin_unlock+0x1f/0x47 [<c014e14d>] kunmap_high+0x7b/0x9f [<c018675a>] load_elf_binary+0x0/0xdc0 [<c016a283>] search_binary_handler+0xdd/0x2fe [<c016a608>] do_execve+0x164/0x205 [<c0102cd6>] sys_execve+0x30/0x94 [<c0104193>] syscall_call+0x7/0xb SCSI subsystem initialized libata version 1.10 loaded. ahci version 1.00 ACPI: PCI interrupt 0000:00:1f.2[C] -> GSI 20 (level, low) -> IRQ 217 PCI: Setting latency timer of device 0000:00:1f.2 to 64 ahci(0000:00:1f.2) AHCI 0001.0000 32 slots 4 ports 1.5 Gbps 0xf impl SATA mode ahci(0000:00:1f.2) flags: 64bit ncq pm led slum part ata1: SATA max UDMA/133 cmd 0xF881AD00 ctl 0x0 bmdma 0x0 irq 217 ata2: SATA max UDMA/133 cmd 0xF881AD80 ctl 0x0 bmdma 0x0 irq 217 ata3: SATA max UDMA/133 cmd 0xF881AE00 ctl 0x0 bmdma 0x0 irq 217 ata4: SATA max UDMA/133 cmd 0xF881AE80 ctl 0x0 bmdma 0x0 irq 217 ata1: dev 0 cfg 49:2f00 82:3469 83:7f61 84:4003 85:3469 86:3e41 87:4003 88:207f ata1: dev 0 ATA, max UDMA/133, 312500000 sectors: lba48 ata1: dev 0 configured for UDMA/133 scsi0 : ahci ata2: no device found (phy stat 00000000) scsi1 : ahci ata3: no device found (phy stat 00000000) scsi2 : ahci printk: 98 messages suppressed. BUG: using smp_processor_id() in preemptible [00000001] code: hotplug/487 caller is arch_add_exec_range+0x49/0x6a [<c01d2c3f>] smp_processor_id+0x8f/0xa0 [<c0103170>] arch_add_exec_range+0x49/0x6a [<c0186bb8>] load_elf_binary+0x45e/0xdc0 [<c0141bef>] generic_file_read+0x9c/0xba [<c0310e81>] _spin_unlock_irqrestore+0x21/0x49 [<c0145493>] __alloc_pages+0x17a/0x3de [<c0310df2>] _spin_unlock+0x1f/0x47 [<c014e14d>] kunmap_high+0x7b/0x9f [<c018675a>] load_elf_binary+0x0/0xdc0 [<c016a283>] search_binary_handler+0xdd/0x2fe [<c016a608>] do_execve+0x164/0x205 [<c0102cd6>] sys_execve+0x30/0x94 [<c0104193>] syscall_call+0x7/0xb [<c0131066>] __exec_usermodehelper+0x84/0xa0 [<c01310a6>] ____call_usermodehelper+0x24/0x2e [<c0131082>] ____call_usermodehelper+0x0/0x2e [<c01022f9>] kernel_thread_helper+0x5/0xb ata4: no device found (phy stat 00000000) scsi3 : ahci Vendor: ATA Model: WDC WD1600JD-75H Rev: 08.0 Type: Direct-Access ANSI SCSI revision: 05 SCSI device sda: 312500000 512-byte hdwr sectors (160000 MB) SCSI device sda: drive cache: write back SCSI device sda: 312500000 512-byte hdwr sectors (160000 MB) SCSI device sda: drive cache: write back sda: sda1 sda2 sda3 sda4 < sda5 sda6 > Attached scsi disk sda at scsi0, channel 0, id 0, lun 0 device-mapper: 4.4.0-ioctl (2005-01-12) initialised: dm-...@re... printk: 158 messages suppressed. BUG: using smp_processor_id() in preemptible [00000001] code: lvm/514 caller is arch_remove_exec_range+0x68/0x89 [<c01d2c3f>] smp_processor_id+0x8f/0xa0 [<c01031f9>] arch_remove_exec_range+0x68/0x89 [<c0154349>] split_vma+0xeb/0xf4 [<c015447e>] do_munmap+0x12c/0x143 [<c0160b2c>] __fput+0xed/0x166 [<c01544e1>] sys_munmap+0x4c/0x65 [<c0104193>] syscall_call+0x7/0xb kjournald starting. Commit interval 5 seconds EXT3-fs: mounted filesystem with ordered data mode. printk: 884 messages suppressed. BUG: using smp_processor_id() in preemptible [00000001] code: 10-udev.hotplug/1087 caller is load_elf_binary+0xb0b/0xdc0 [<c01d2c3f>] smp_processor_id+0x8f/0xa0 [<c0187265>] load_elf_binary+0xb0b/0xdc0 [<c0310df2>] _spin_unlock+0x1f/0x47 [<c014e14d>] kunmap_high+0x7b/0x9f [<c018675a>] load_elf_binary+0x0/0xdc0 [<c016a283>] search_binary_handler+0xdd/0x2fe [<c016a608>] do_execve+0x164/0x205 [<c0102cd6>] sys_execve+0x30/0x94 [<c0104193>] syscall_call+0x7/0xb printk: 51 messages suppressed. BUG: using smp_processor_id() in preemptible [00000001] code: 10-udev.hotplug/1115 caller is load_elf_binary+0xb0b/0xdc0 [<c01d2c3f>] smp_processor_id+0x8f/0xa0 [<c0187265>] load_elf_binary+0xb0b/0xdc0 [<c0310df2>] _spin_unlock+0x1f/0x47 [<c014e14d>] kunmap_high+0x7b/0x9f [<c018675a>] load_elf_binary+0x0/0xdc0 [<c016a283>] search_binary_handler+0xdd/0x2fe [<c016a608>] do_execve+0x164/0x205 [<c0102cd6>] sys_execve+0x30/0x94 [<c0104193>] syscall_call+0x7/0xb printk: 2 messages suppressed. BUG: using smp_processor_id() in preemptible [00000001] code: udev/1120 caller is load_elf_binary+0xb0b/0xdc0 [<c01d2c3f>] smp_processor_id+0x8f/0xa0 [<c0187265>] load_elf_binary+0xb0b/0xdc0 [<c0310df2>] _spin_unlock+0x1f/0x47 [<c014e14d>] kunmap_high+0x7b/0x9f [<c018675a>] load_elf_binary+0x0/0xdc0 [<c016a283>] search_binary_handler+0xdd/0x2fe [<c016a608>] do_execve+0x164/0x205 [<c0102cd6>] sys_execve+0x30/0x94 [<c0104193>] syscall_call+0x7/0xb printk: 6 messages suppressed. BUG: using smp_processor_id() in preemptible [00000001] code: udev/1119 caller is arch_remove_exec_range+0x68/0x89 [<c01d2c3f>] smp_processor_id+0x8f/0xa0 [<c01031f9>] arch_remove_exec_range+0x68/0x89 [<c0154349>] split_vma+0xeb/0xf4 [<c0154f41>] mprotect_fixup+0xd7/0x1ff [<c0155200>] sys_mprotect+0x197/0x259 [<c0104193>] syscall_call+0x7/0xb printk: 7 messages suppressed. BUG: using smp_processor_id() in preemptible [00000001] code: default.hotplug/1122 caller is arch_add_exec_range+0x49/0x6a [<c01d2c3f>] smp_processor_id+0x8f/0xa0 [<c0103170>] arch_add_exec_range+0x49/0x6a [<c015299a>] __vma_link+0x54/0x8c [<c0152a26>] vma_link+0x54/0xd8 [<c015473a>] do_brk+0x240/0x2dd [<c0185be2>] set_brk+0x82/0xb6 [<c0187079>] load_elf_binary+0x91f/0xdc0 [<c018ecda>] dnotify_parent+0x1f/0x75 [<c0310df2>] _spin_unlock+0x1f/0x47 [<c015fc62>] vfs_read+0xc2/0x108 [<c018675a>] load_elf_binary+0x0/0xdc0 [<c016a283>] search_binary_handler+0xdd/0x2fe [<c01695ac>] kernel_read+0x37/0x41 [<c0185b3b>] load_script+0x20b/0x230 [<c0310e81>] _spin_unlock_irqrestore+0x21/0x49 [<c014e697>] page_address+0x71/0x84 [<c0310df2>] _spin_unlock+0x1f/0x47 [<c014e019>] kmap_high+0x130/0x1e9 [<c0145493>] __alloc_pages+0x17a/0x3de [<c0310df2>] _spin_unlock+0x1f/0x47 [<c014e14d>] kunmap_high+0x7b/0x9f [<c0185930>] load_script+0x0/0x230 [<c016a283>] search_binary_handler+0xdd/0x2fe [<c016a608>] do_execve+0x164/0x205 [<c0102cd6>] sys_execve+0x30/0x94 [<c0104193>] syscall_call+0x7/0xb Floppy drive(s): fd0 is 1.44M FDC 0 is a post-1991 82077 tg3.c:v3.23 (February 15, 2005) ACPI: PCI interrupt 0000:02:00.0[A] -> GSI 16 (level, low) -> IRQ 169 PCI: Setting latency timer of device 0000:02:00.0 to 64 eth0: Tigon3 [partno(BCM95751) rev 4001 PHY(5750)] (PCIX:100MHz:32-bit) 10/100/1000BaseT Ethernet 00:11:11:80:e6:d4 eth0: RXcsums[1] LinkChgREG[1] MIirq[1] ASF[0] Split[0] WireSpeed[1] TSOcap[1] ACPI: PCI interrupt 0000:04:00.0[A] -> GSI 16 (level, low) -> IRQ 169 printk: 1309 messages suppressed. BUG: using smp_processor_id() in preemptible [00000001] code: uname/1912 caller is load_elf_binary+0xb0b/0xdc0 [<c01d2c3f>] smp_processor_id+0x8f/0xa0 [<c0187265>] load_elf_binary+0xb0b/0xdc0 [<c0310df2>] _spin_unlock+0x1f/0x47 [<c014e14d>] kunmap_high+0x7b/0x9f [<c018675a>] load_elf_binary+0x0/0xdc0 [<c016a283>] search_binary_handler+0xdd/0x2fe [<c016a608>] do_execve+0x164/0x205 [<c0102cd6>] sys_execve+0x30/0x94 [<c0104193>] syscall_call+0x7/0xb hw_random: RNG not detected ACPI: PCI interrupt 0000:00:1d.7[A] -> GSI 21 (level, low) -> IRQ 225 ehci_hcd 0000:00:1d.7: EHCI Host Controller PCI: Setting latency timer of device 0000:00:1d.7 to 64 ehci_hcd 0000:00:1d.7: irq 225, pci mem 0xffa80800 ehci_hcd 0000:00:1d.7: new USB bus registered, assigned bus number 1 PCI: cache line size of 128 is not supported by device 0000:00:1d.7 ehci_hcd 0000:00:1d.7: USB 2.0 initialized, EHCI 1.00, driver 10 Dec 2004 hub 1-0:1.0: USB hub found hub 1-0:1.0: 8 ports detected USB Universal Host Controller Interface driver v2.2 ACPI: PCI interrupt 0000:00:1d.0[A] -> GSI 21 (level, low) -> IRQ 225 uhci_hcd 0000:00:1d.0: UHCI Host Controller usb 1-3: new high speed USB device using ehci_hcd and address 2 PCI: Setting latency timer of device 0000:00:1d.0 to 64 uhci_hcd 0000:00:1d.0: irq 225, io base 0xff80 uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 2 hub 2-0:1.0: USB hub found hub 2-0:1.0: 2 ports detected ACPI: PCI interrupt 0000:00:1d.1[B] -> GSI 22 (level, low) -> IRQ 233 uhci_hcd 0000:00:1d.1: UHCI Host Controller hub 1-3:1.0: USB hub found hub 1-3:1.0: 4 ports detected PCI: Setting latency timer of device 0000:00:1d.1 to 64 uhci_hcd 0000:00:1d.1: irq 233, io base 0xff60 usb 1-3.1: new high speed USB device using ehci_hcd and address 3 uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 3 hub 3-0:1.0: USB hub found hub 3-0:1.0: 2 ports detected ACPI: PCI interrupt 0000:00:1d.2[C] -> GSI 18 (level, low) -> IRQ 50 uhci_hcd 0000:00:1d.2: UHCI Host Controller PCI: Setting latency timer of device 0000:00:1d.2 to 64 uhci_hcd 0000:00:1d.2: irq 50, io base 0xff40 uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus number 4 hub 4-0:1.0: USB hub found hub 4-0:1.0: 2 ports detected usb 1-3.2: new full speed USB device using ehci_hcd and address 4 ACPI: PCI interrupt 0000:00:1d.3[D] -> GSI 23 (level, low) -> IRQ 58 uhci_hcd 0000:00:1d.3: UHCI Host Controller Initializing USB Mass Storage driver... PCI: Setting latency timer of device 0000:00:1d.3 to 64 uhci_hcd 0000:00:1d.3: irq 58, io base 0xff20 uhci_hcd 0000:00:1d.3: new USB bus registered, assigned bus number 5 printk: 901 messages suppressed. BUG: using smp_processor_id() in preemptible [00000001] code: grep/2375 caller is load_elf_binary+0xb0b/0xdc0 [<c01d2c3f>] smp_processor_id+0x8f/0xa0 [<c0187265>] load_elf_binary+0xb0b/0xdc0 [<c0310df2>] _spin_unlock+0x1f/0x47 [<c014e14d>] kunmap_high+0x7b/0x9f [<c018675a>] load_elf_binary+0x0/0xdc0 [<c016a283>] search_binary_handler+0xdd/0x2fe [<c016a608>] do_execve+0x164/0x205 [<c0102cd6>] sys_execve+0x30/0x94 [<c0104193>] syscall_call+0x7/0xb usb 1-3.3: new full speed USB device using ehci_hcd and address 5 usb 1-3.4: new high speed USB device using ehci_hcd and address 6 hub 1-3.4:1.0: USB hub found hub 1-3.4:1.0: 4 ports detected usb 1-3.1: 05-wait_for_sys timed out on ep0in usb 1-3.1: string descriptor 0 read error: -71 usb 1-3.1: string descriptor 0 read error: -71 usb 1-3.1: string descriptor 0 read error: -71 usb 1-3.1: string descriptor 0 read error: -71 usb 1-3.1: string descriptor 0 read error: -71 usb 1-3.1: string descriptor 0 read error: -71 scsi4 : SCSI emulation for USB Mass Storage devices usbcore: registered new driver usb-storage USB Mass Storage support registered. hub 5-0:1.0: USB hub found hub 5-0:1.0: 2 ports detected usb 1-3.4.3: new high speed USB device using ehci_hcd and address 7 usb-storage: device found at 3 usb-storage: waiting for device to settle before scanning scsi5 : SCSI emulation for USB Mass Storage devices usb-storage: device found at 7 usb-storage: waiting for device to settle before scanning drivers/usb/class/usblp.c: usblp0: USB Bidirectional printer dev 5 if 0 alt 0 proto 2 vid 0x04A9 pid 0x1052 usbcore: registered new driver usblp drivers/usb/class/usblp.c: v0.13: USB Printer Device Class driver printk: 737 messages suppressed. BUG: using smp_processor_id() in preemptible [00000001] code: uname/2828 caller is load_elf_binary+0xb0b/0xdc0 [<c01d2c3f>] smp_processor_id+0x8f/0xa0 [<c0187265>] load_elf_binary+0xb0b/0xdc0 [<c0310df2>] _spin_unlock+0x1f/0x47 [<c014e14d>] kunmap_high+0x7b/0x9f [<c018675a>] load_elf_binary+0x0/0xdc0 [<c016a283>] search_binary_handler+0xdd/0x2fe [<c016a608>] do_execve+0x164/0x205 [<c0102cd6>] sys_execve+0x30/0x94 [<c0104193>] syscall_call+0x7/0xb ieee1394: Initialized config rom entry `ip1394' ohci1394: $Rev: 1223 $ Ben Collins <bco...@de...> ACPI: PCI interrupt 0000:04:00.2[B] -> GSI 17 (level, low) -> IRQ 201 ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[201] MMIO=[dcdfb800-dcdfbfff] Max Packet=[2048] md: Autodetecting RAID arrays. md: autorun ... md: ... autorun DONE. Vendor: HDS72258 Model: 0VLAT20 Rev: V32O Type: Direct-Access ANSI SCSI revision: 00 SCSI device sdb: 160836480 512-byte hdwr sectors (82348 MB) sdb: assuming drive cache: write through SCSI device sdb: 160836480 512-byte hdwr sectors (82348 MB) sdb: assuming drive cache: write through sdb: sdb1 Attached scsi disk sdb at scsi4, channel 0, id 0, lun 0 usb-storage: device scan complete ACPI: Power Button (FF) [PWRF] ibm_acpi: ec object not found ieee1394: Host added: ID:BUS[0-00:1023] GUID[00023c0191021b5e] Vendor: LEXAR Model: JUMPDRIVE ELITE Rev: 1000 Type: Direct-Access ANSI SCSI revision: 00 SCSI device sdc: 1010784 512-byte hdwr sectors (518 MB) sdc: Write Protect is off sdc: Mode Sense: 43 00 00 00 sdc: assuming drive cache: write through SCSI device sdc: 1010784 512-byte hdwr sectors (518 MB) sdc: Write Protect is off sdc: Mode Sense: 43 00 00 00 sdc: assuming drive cache: write through sdc: sdc1 Attached scsi removable disk sdc at scsi5, channel 0, id 0, lun 0 usb-storage: device scan complete printk: 1176 messages suppressed. BUG: using smp_processor_id() in preemptible [00000001] code: fsck.ext3/3396 caller is arch_add_exec_range+0x49/0x6a [<c01d2c3f>] smp_processor_id+0x8f/0xa0 [<c0103170>] arch_add_exec_range+0x49/0x6a [<c015299a>] __vma_link+0x54/0x8c [<c0152a26>] vma_link+0x54/0xd8 [<c015473a>] do_brk+0x240/0x2dd [<c0185be2>] set_brk+0x82/0xb6 [<c0187079>] load_elf_binary+0x91f/0xdc0 [<c0145493>] __alloc_pages+0x17a/0x3de [<c0310df2>] _spin_unlock+0x1f/0x47 [<c014e14d>] kunmap_high+0x7b/0x9f [<c018675a>] load_elf_binary+0x0/0xdc0 [<c016a283>] search_binary_handler+0xdd/0x2fe [<c016a608>] do_execve+0x164/0x205 [<c0102cd6>] sys_execve+0x30/0x94 [<c0104193>] syscall_call+0x7/0xb EXT3 FS on dm-0, internal journal kjournald starting. Commit interval 5 seconds EXT3 FS on sda5, internal journal EXT3-fs: mounted filesystem with ordered data mode. NTFS driver 2.1.22 [Flags: R/O DEBUG MODULE]. NTFS volume version 3.1. Adding 2031608k swap on /dev/VolGroup00/LogVol01. Priority:-1 extents:1 printk: 193 messages suppressed. BUG: using smp_processor_id() in preemptible [00000001] code: 10-hal.dev/3524 caller is load_elf_binary+0xb0b/0xdc0 [<c01d2c3f>] smp_processor_id+0x8f/0xa0 [<c0187265>] load_elf_binary+0xb0b/0xdc0 [<c0310df2>] _spin_unlock+0x1f/0x47 [<c014e14d>] kunmap_high+0x7b/0x9f [<c018675a>] load_elf_binary+0x0/0xdc0 [<c016a283>] search_binary_handler+0xdd/0x2fe [<c016a608>] do_execve+0x164/0x205 [<c0102cd6>] sys_execve+0x30/0x94 [<c0104193>] syscall_call+0x7/0xb printk: 55 messages suppressed. BUG: using smp_processor_id() in preemptible [00000001] code: ls/3546 caller is load_elf_binary+0xb0b/0xdc0 [<c01d2c3f>] smp_processor_id+0x8f/0xa0 [<c0187265>] load_elf_binary+0xb0b/0xdc0 [<c0310df2>] _spin_unlock+0x1f/0x47 [<c014e14d>] kunmap_high+0x7b/0x9f [<c018675a>] load_elf_binary+0x0/0xdc0 [<c016a283>] search_binary_handler+0xdd/0x2fe [<c016a608>] do_execve+0x164/0x205 [<c0102cd6>] sys_execve+0x30/0x94 [<c0104193>] syscall_call+0x7/0xb BUG: using smp_processor_id() in preemptible [00000001] code: cat/3547 caller is load_elf_binary+0xb0b/0xdc0 [<c01d2c3f>] smp_processor_id+0x8f/0xa0 [<c0187265>] load_elf_binary+0xb0b/0xdc0 [<c0310df2>] _spin_unlock+0x1f/0x47 [<c014e14d>] kunmap_high+0x7b/0x9f [<c018675a>] load_elf_binary+0x0/0xdc0 [<c016a283>] search_binary_handler+0xdd/0x2fe [<c016a608>] do_execve+0x164/0x205 [<c0102cd6>] sys_execve+0x30/0x94 [<c0104193>] syscall_call+0x7/0xb BUG: using smp_processor_id() in preemptible [00000001] code: dmesg/3548 caller is load_elf_binary+0xb0b/0xdc0 [<c01d2c3f>] smp_processor_id+0x8f/0xa0 [<c0187265>] load_elf_binary+0xb0b/0xdc0 [<c0310df2>] _spin_unlock+0x1f/0x47 [<c014e14d>] kunmap_high+0x7b/0x9f [<c018675a>] load_elf_binary+0x0/0xdc0 [<c016a283>] search_binary_handler+0xdd/0x2fe [<c016a608>] do_execve+0x164/0x205 [<c0102cd6>] sys_execve+0x30/0x94 [<c0104193>] syscall_call+0x7/0xb cat /proc/modules nls_utf8 6400 1 - Live 0xf8ac8000 ntfs 125204 1 - Live 0xf8aa8000 video 19844 0 - Live 0xf8acb000 button 10896 0 - Live 0xf8a96000 battery 13572 0 - Live 0xf8a91000 ac 9092 0 - Live 0xf8a8d000 ohci1394 38552 0 - Live 0xf8a82000 ieee1394 308920 1 ohci1394, Live 0xf8b86000 usblp 17280 0 - Live 0xf8954000 usb_storage 70216 0 - Live 0xf8b73000 uhci_hcd 35736 0 - Live 0xf89d9000 ehci_hcd 37772 0 - Live 0xf8995000 ata_piix 13572 0 - Live 0xf891b000 i2c_i801 12812 0 - Live 0xf88ff000 i2c_core 27136 1 i2c_i801, Live 0xf894a000 snd_emu10k1 97156 0 - Live 0xf8931000 snd_rawmidi 29344 1 snd_emu10k1, Live 0xf895a000 snd_seq_device 12940 2 snd_emu10k1,snd_rawmidi, Live 0xf88fa000 snd_ac97_codec 74232 1 snd_emu10k1, Live 0xf89a4000 snd_pcm_oss 56112 0 - Live 0xf89fd000 snd_mixer_oss 23424 1 snd_pcm_oss, Live 0xf88f3000 snd_pcm 94340 3 snd_emu10k1,snd_ac97_codec,snd_pcm_oss, Live 0xf89e4000 snd_timer 29828 2 snd_emu10k1,snd_pcm, Live 0xf88ea000 snd_page_alloc 14212 2 snd_emu10k1,snd_pcm, Live 0xf88e5000 snd_util_mem 8960 1 snd_emu10k1, Live 0xf8889000 snd_hwdep 14240 1 snd_emu10k1, Live 0xf8904000 snd 60516 9 snd_emu10k1,snd_rawmidi,snd_seq_device,snd_ac97_codec,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer,snd_hwdep, Live 0xf889c000 soundcore 14432 1 snd, Live 0xf8884000 tg3 88580 0 - Live 0xf88ce000 floppy 62768 0 - Live 0xf890a000 dm_snapshot 21544 0 - Live 0xf8895000 dm_zero 6400 0 - Live 0xf881f000 dm_mirror 26464 0 - Live 0xf888d000 ext3 133000 2 - Live 0xf88ac000 jbd 65688 1 ext3, Live 0xf882e000 dm_mod 61448 6 dm_snapshot,dm_zero,dm_mirror, Live 0xf8873000 ahci 14852 3 - Live 0xf8829000 libata 49284 2 ata_piix,ahci, Live 0xf8865000 sd_mod 22272 4 - Live 0xf8822000 scsi_mod 131144 4 usb_storage,ahci,libata,sd_mod, Live 0xf8843000 # # Automatically generated make config: don't edit # Linux kernel version: 2.6.11 # Thu Mar 10 08:03:08 2005 # CONFIG_X86=y CONFIG_MMU=y CONFIG_UID16=y CONFIG_GENERIC_ISA_DMA=y CONFIG_GENERIC_IOMAP=y # # Code maturity level options # CONFIG_EXPERIMENTAL=y CONFIG_CLEAN_COMPILE=y CONFIG_LOCK_KERNEL=y # # General setup # CONFIG_LOCALVERSION="" CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_POSIX_MQUEUE=y CONFIG_BSD_PROCESS_ACCT=y # CONFIG_BSD_PROCESS_ACCT_V3 is not set CONFIG_SYSCTL=y CONFIG_AUDIT=y CONFIG_AUDITSYSCALL=y CONFIG_LOG_BUF_SHIFT=17 CONFIG_HOTPLUG=y CONFIG_KOBJECT_UEVENT=y CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y # CONFIG_EMBEDDED is not set CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set CONFIG_KALLSYMS_EXTRA_PASS=y CONFIG_FUTEX=y CONFIG_EPOLL=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SHMEM=y CONFIG_CC_ALIGN_FUNCTIONS=0 CONFIG_CC_ALIGN_LABELS=0 CONFIG_CC_ALIGN_LOOPS=0 CONFIG_CC_ALIGN_JUMPS=0 # CONFIG_TINY_SHMEM is not set # # Loadable module support # CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y # CONFIG_MODULE_FORCE_UNLOAD is not set CONFIG_OBSOLETE_MODPARM=y CONFIG_MODVERSIONS=y CONFIG_MODULE_SRCVERSION_ALL=y CONFIG_MODULE_SIG=y # CONFIG_MODULE_SIG_FORCE is not set CONFIG_KMOD=y CONFIG_STOP_MACHINE=y # # Processor type and features # # CONFIG_X86_PC is not set # CONFIG_X86_ELAN is not set # CONFIG_X86_VOYAGER is not set # CONFIG_X86_NUMAQ is not set # CONFIG_X86_SUMMIT is not set # CONFIG_X86_BIGSMP is not set # CONFIG_X86_VISWS is not set CONFIG_X86_GENERICARCH=y # CONFIG_X86_ES7000 is not set CONFIG_X86_CYCLONE_TIMER=y # CONFIG_M386 is not set # CONFIG_M486 is not set # CONFIG_M586 is not set # CONFIG_M586TSC is not set # CONFIG_M586MMX is not set # CONFIG_M686 is not set # CONFIG_MPENTIUMII is not set # CONFIG_MPENTIUMIII is not set # CONFIG_MPENTIUMM is not set CONFIG_MPENTIUM4=y # CONFIG_MK6 is not set # CONFIG_MK7 is not set # CONFIG_MK8 is not set # CONFIG_MCRUSOE is not set # CONFIG_MEFFICEON is not set # CONFIG_MWINCHIPC6 is not set # CONFIG_MWINCHIP2 is not set # CONFIG_MWINCHIP3D is not set # CONFIG_MCYRIXIII is not set # CONFIG_MVIAC3_2 is not set CONFIG_X86_GENERIC=y CONFIG_X86_CMPXCHG=y CONFIG_X86_XADD=y CONFIG_X86_L1_CACHE_SHIFT=7 CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_X86_WP_WORKS_OK=y CONFIG_X86_INVLPG=y CONFIG_X86_BSWAP=y CONFIG_X86_POPAD_OK=y CONFIG_X86_GOOD_APIC=y CONFIG_X86_INTEL_USERCOPY=y CONFIG_X86_USE_PPRO_CHECKSUM=y CONFIG_HPET_TIMER=y CONFIG_HPET_EMULATE_RTC=y CONFIG_SMP=y CONFIG_NR_CPUS=32 CONFIG_SCHED_SMT=y CONFIG_PREEMPT=y CONFIG_PREEMPT_BKL=y CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y CONFIG_X86_TSC=y CONFIG_X86_MCE=y # CONFIG_X86_MCE_NONFATAL is not set CONFIG_X86_MCE_P4THERMAL=y CONFIG_TOSHIBA=m CONFIG_I8K=m CONFIG_MICROCODE=m CONFIG_X86_MSR=m CONFIG_X86_CPUID=m # # Firmware Drivers # CONFIG_EDD=m # CONFIG_NOHIGHMEM is not set # CONFIG_HIGHMEM4G is not set CONFIG_HIGHMEM64G=y CONFIG_HIGHMEM=y CONFIG_X86_PAE=y # CONFIG_NUMA is not set CONFIG_HIGHPTE=y # CONFIG_MATH_EMULATION is not set CONFIG_MTRR=y # CONFIG_EFI is not set # CONFIG_IRQBALANCE is not set CONFIG_HAVE_DEC_LOCK=y CONFIG_REGPARM=y # # Power management options (ACPI, APM) # CONFIG_PM=y # CONFIG_PM_DEBUG is not set # CONFIG_SOFTWARE_SUSPEND is not set # # ACPI (Advanced Configuration and Power Interface) Support # CONFIG_ACPI=y CONFIG_ACPI_BOOT=y CONFIG_ACPI_INTERPRETER=y CONFIG_ACPI_SLEEP=y CONFIG_ACPI_SLEEP_PROC_FS=y CONFIG_ACPI_AC=m CONFIG_ACPI_BATTERY=m CONFIG_ACPI_BUTTON=m CONFIG_ACPI_VIDEO=m CONFIG_ACPI_FAN=y CONFIG_ACPI_PROCESSOR=y CONFIG_ACPI_THERMAL=y CONFIG_ACPI_ASUS=m CONFIG_ACPI_IBM=m CONFIG_ACPI_TOSHIBA=m CONFIG_ACPI_BLACKLIST_YEAR=2001 # CONFIG_ACPI_DEBUG is not set CONFIG_ACPI_BUS=y CONFIG_ACPI_EC=y CONFIG_ACPI_POWER=y CONFIG_ACPI_PCI=y CONFIG_ACPI_SYSTEM=y CONFIG_X86_PM_TIMER=y # CONFIG_ACPI_CONTAINER is not set # # APM (Advanced Power Management) BIOS Support # CONFIG_APM=y # CONFIG_APM_IGNORE_USER_SUSPEND is not set # CONFIG_APM_DO_ENABLE is not set CONFIG_APM_CPU_IDLE=y # CONFIG_APM_DISPLAY_BLANK is not set CONFIG_APM_RTC_IS_GMT=y # CONFIG_APM_ALLOW_INTS is not set # CONFIG_APM_REAL_MODE_POWER_OFF is not set # # CPU Frequency scaling # CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_DEBUG=y CONFIG_CPU_FREQ_STAT=m CONFIG_CPU_FREQ_STAT_DETAILS=y # CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=m CONFIG_CPU_FREQ_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_ONDEMAND=m CONFIG_CPU_FREQ_TABLE=y # # CPUFreq processor drivers # CONFIG_X86_ACPI_CPUFREQ=m CONFIG_X86_POWERNOW_K6=m CONFIG_X86_POWERNOW_K7=y CONFIG_X86_POWERNOW_K7_ACPI=y CONFIG_X86_POWERNOW_K8=m CONFIG_X86_POWERNOW_K8_ACPI=y # CONFIG_X86_GX_SUSPMOD is not set CONFIG_X86_SPEEDSTEP_CENTRINO=y CONFIG_X86_SPEEDSTEP_CENTRINO_ACPI=y CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y CONFIG_X86_SPEEDSTEP_ICH=y CONFIG_X86_SPEEDSTEP_SMI=m CONFIG_X86_P4_CLOCKMOD=m # CONFIG_X86_CPUFREQ_NFORCE2 is not set CONFIG_X86_LONGRUN=y CONFIG_X86_LONGHAUL=y # # shared options # # CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set CONFIG_X86_SPEEDSTEP_LIB=y # CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK is not set # # Bus options (PCI, PCMCIA, EISA, MCA, ISA) # CONFIG_PCI=y # CONFIG_PCI_GOBIOS is not set # CONFIG_PCI_GOMMCONFIG is not set # CONFIG_PCI_GODIRECT is not set CONFIG_PCI_GOANY=y CONFIG_PCI_BIOS=y CONFIG_PCI_DIRECT=y CONFIG_PCI_MMCONFIG=y CONFIG_PCIEPORTBUS=y CONFIG_HOTPLUG_PCI_PCIE=m # CONFIG_HOTPLUG_PCI_PCIE_POLL_EVENT_MODE is not set CONFIG_PCI_MSI=y CONFIG_PCI_LEGACY_PROC=y # CONFIG_PCI_NAMES is not set CONFIG_ISA=y # CONFIG_EISA is not set # CONFIG_MCA is not set # CONFIG_SCx200 is not set # # PCCARD (PCMCIA/CardBus) support # CONFIG_PCCARD=m # CONFIG_PCMCIA_DEBUG is not set CONFIG_PCMCIA=m CONFIG_CARDBUS=y # # PC-card bridges # CONFIG_YENTA=m CONFIG_PD6729=m CONFIG_I82092=m CONFIG_I82365=m CONFIG_TCIC=m CONFIG_PCMCIA_PROBE=y CONFIG_PCCARD_NONSTATIC=m # # PCI Hotplug Support # CONFIG_HOTPLUG_PCI=y # CONFIG_HOTPLUG_PCI_FAKE is not set CONFIG_HOTPLUG_PCI_COMPAQ=m # CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set CONFIG_HOTPLUG_PCI_IBM=m CONFIG_HOTPLUG_PCI_ACPI=m CONFIG_HOTPLUG_PCI_ACPI_IBM=m # CONFIG_HOTPLUG_PCI_CPCI is not set CONFIG_HOTPLUG_PCI_SHPC=m # CONFIG_HOTPLUG_PCI_SHPC_POLL_EVENT_MODE is not set # # Executable file formats # CONFIG_BINFMT_ELF=y # CONFIG_BINFMT_AOUT is not set CONFIG_BINFMT_MISC=y # # Device Drivers # # # Generic Driver Options # CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y # CONFIG_DEBUG_DRIVER is not set # # Memory Technology Devices (MTD) # CONFIG_MTD=m # CONFIG_MTD_DEBUG is not set CONFIG_MTD_PARTITIONS=y CONFIG_MTD_CONCAT=m CONFIG_MTD_REDBOOT_PARTS=m CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 # CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set # CONFIG_MTD_REDBOOT_PARTS_READONLY is not set CONFIG_MTD_CMDLINE_PARTS=y # # User Modules And Translation Layers # CONFIG_MTD_CHAR=m CONFIG_MTD_BLOCK=m CONFIG_MTD_BLOCK_RO=m CONFIG_FTL=m CONFIG_NFTL=m CONFIG_NFTL_RW=y CONFIG_INFTL=m # # RAM/ROM/Flash chip drivers # CONFIG_MTD_CFI=m CONFIG_MTD_JEDECPROBE=m CONFIG_MTD_GEN_PROBE=m # CONFIG_MTD_CFI_ADV_OPTIONS is not set CONFIG_MTD_MAP_BANK_WIDTH_1=y CONFIG_MTD_MAP_BANK_WIDTH_2=y CONFIG_MTD_MAP_BANK_WIDTH_4=y # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set CONFIG_MTD_CFI_I1=y CONFIG_MTD_CFI_I2=y # CONFIG_MTD_CFI_I4 is not set # CONFIG_MTD_CFI_I8 is not set CONFIG_MTD_CFI_INTELEXT=m CONFIG_MTD_CFI_AMDSTD=m CONFIG_MTD_CFI_AMDSTD_RETRY=3 CONFIG_MTD_CFI_STAA=m CONFIG_MTD_CFI_UTIL=m CONFIG_MTD_RAM=m CONFIG_MTD_ROM=m CONFIG_MTD_ABSENT=m # # Mapping drivers for chip access # CONFIG_MTD_COMPLEX_MAPPINGS=y # CONFIG_MTD_PHYSMAP is not set # CONFIG_MTD_PNC2000 is not set CONFIG_MTD_SC520CDP=m CONFIG_MTD_NETSC520=m CONFIG_MTD_TS5500=m CONFIG_MTD_SBC_GXX=m CONFIG_MTD_ELAN_104NC=m CONFIG_MTD_SCx200_DOCFLASH=m # CONFIG_MTD_AMD76XROM is not set # CONFIG_MTD_ICHXROM is not set CONFIG_MTD_SCB2_FLASH=m # CONFIG_MTD_NETtel is not set # CONFIG_MTD_DILNETPC is not set # CONFIG_MTD_L440GX is not set CONFIG_MTD_PCI=m # # Self-contained MTD device drivers # CONFIG_MTD_PMC551=m # CONFIG_MTD_PMC551_BUGFIX is not set # CONFIG_MTD_PMC551_DEBUG is not set # CONFIG_MTD_SLRAM is not set # CONFIG_MTD_PHRAM is not set CONFIG_MTD_MTDRAM=m CONFIG_MTDRAM_TOTAL_SIZE=4096 CONFIG_MTDRAM_ERASE_SIZE=128 # CONFIG_MTD_BLKMTD is not set CONFIG_MTD_BLOCK2MTD=m # # Disk-On-Chip Device Drivers # CONFIG_MTD_DOC2000=m # CONFIG_MTD_DOC2001 is not set CONFIG_MTD_DOC2001PLUS=m CONFIG_MTD_DOCPROBE=m CONFIG_MTD_DOCECC=m # CONFIG_MTD_DOCPROBE_ADVANCED is not set CONFIG_MTD_DOCPROBE_ADDRESS=0 # # NAND Flash Device Drivers # CONFIG_MTD_NAND=m # CONFIG_MTD_NAND_VERIFY_WRITE is not set CONFIG_MTD_NAND_IDS=m # CONFIG_MTD_NAND_DISKONCHIP is not set # CONFIG_MTD_NAND_NANDSIM is not set # # Parallel port support # CONFIG_PARPORT=m CONFIG_PARPORT_PC=m CONFIG_PARPORT_PC_CML1=m CONFIG_PARPORT_SERIAL=m # CONFIG_PARPORT_PC_FIFO is not set # CONFIG_PARPORT_PC_SUPERIO is not set CONFIG_PARPORT_PC_PCMCIA=m # CONFIG_PARPORT_OTHER is not set CONFIG_PARPORT_1284=y # # Plug and Play support # CONFIG_PNP=y # CONFIG_PNP_DEBUG is not set # # Protocols # CONFIG_ISAPNP=y # CONFIG_PNPBIOS is not set CONFIG_PNPACPI=y # # Block devices # CONFIG_BLK_DEV_FD=m # CONFIG_BLK_DEV_XD is not set CONFIG_PARIDE=m CONFIG_PARIDE_PARPORT=m # # Parallel IDE high-level drivers # CONFIG_PARIDE_PD=m CONFIG_PARIDE_PCD=m CONFIG_PARIDE_PF=m CONFIG_PARIDE_PT=m CONFIG_PARIDE_PG=m # # Parallel IDE protocol modules # CONFIG_PARIDE_ATEN=m CONFIG_PARIDE_BPCK=m CONFIG_PARIDE_BPCK6=m CONFIG_PARIDE_COMM=m CONFIG_PARIDE_DSTR=m CONFIG_PARIDE_FIT2=m CONFIG_PARIDE_FIT3=m CONFIG_PARIDE_EPAT=m CONFIG_PARIDE_EPATC8=y CONFIG_PARIDE_EPIA=m CONFIG_PARIDE_FRIQ=m CONFIG_PARIDE_FRPW=m CONFIG_PARIDE_KBIC=m CONFIG_PARIDE_KTTI=m CONFIG_PARIDE_ON20=m CONFIG_PARIDE_ON26=m CONFIG_BLK_CPQ_DA=m CONFIG_BLK_CPQ_CISS_DA=m CONFIG_CISS_SCSI_TAPE=y CONFIG_BLK_DEV_DAC960=m CONFIG_BLK_DEV_UMEM=m # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=m CONFIG_BLK_DEV_CRYPTOLOOP=m CONFIG_BLK_DEV_NBD=m CONFIG_BLK_DEV_SX8=m # CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=16384 CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_LBD=y CONFIG_CDROM_PKTCDVD=m CONFIG_CDROM_PKTCDVD_BUFFERS=8 # CONFIG_CDROM_PKTCDVD_WCACHE is not set CONFIG_DISKDUMP=m # # IO Schedulers # CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=m CONFIG_IOSCHED_DEADLINE=m CONFIG_IOSCHED_CFQ=y CONFIG_ATA_OVER_ETH=m # # ATA/ATAPI/MFM/RLL support # CONFIG_IDE=y CONFIG_BLK_DEV_IDE=y # # Please see Documentation/ide.txt for help/info on IDE drives # # CONFIG_BLK_DEV_IDE_SATA is not set # CONFIG_BLK_DEV_HD_IDE is not set CONFIG_BLK_DEV_IDEDISK=y CONFIG_IDEDISK_MULTI_MODE=y CONFIG_BLK_DEV_IDECS=m CONFIG_BLK_DEV_IDECD=y # CONFIG_BLK_DEV_IDETAPE is not set CONFIG_BLK_DEV_IDEFLOPPY=y CONFIG_BLK_DEV_IDESCSI=m # CONFIG_IDE_TASK_IOCTL is not set # # IDE chipset support/bugfixes # CONFIG_IDE_GENERIC=y CONFIG_BLK_DEV_CMD640=y CONFIG_BLK_DEV_CMD640_ENHANCED=y CONFIG_BLK_DEV_IDEPNP=y CONFIG_BLK_DEV_IDEPCI=y CONFIG_IDEPCI_SHARE_IRQ=y # CONFIG_BLK_DEV_OFFBOARD is not set CONFIG_BLK_DEV_GENERIC=y # CONFIG_BLK_DEV_OPTI621 is not set CONFIG_BLK_DEV_RZ1000=y CONFIG_BLK_DEV_IDEDMA_PCI=y # CONFIG_BLK_DEV_IDEDMA_FORCED is not set CONFIG_IDEDMA_PCI_AUTO=y # CONFIG_IDEDMA_ONLYDISK is not set CONFIG_BLK_DEV_AEC62XX=y CONFIG_BLK_DEV_ALI15X3=y # CONFIG_WDC_ALI15X3 is not set CONFIG_BLK_DEV_AMD74XX=y CONFIG_BLK_DEV_ATIIXP=y CONFIG_BLK_DEV_CMD64X=y CONFIG_BLK_DEV_TRIFLEX=y CONFIG_BLK_DEV_CY82C693=y CONFIG_BLK_DEV_CS5520=y CONFIG_BLK_DEV_CS5530=y CONFIG_BLK_DEV_HPT34X=y # CONFIG_HPT34X_AUTODMA is not set CONFIG_BLK_DEV_HPT366=y # CONFIG_BLK_DEV_SC1200 is not set CONFIG_BLK_DEV_PIIX=y # CONFIG_BLK_DEV_NS87415 is not set CONFIG_BLK_DEV_PDC202XX_OLD=y # CONFIG_PDC202XX_BURST is not set CONFIG_BLK_DEV_PDC202XX_NEW=y CONFIG_PDC202XX_FORCE=y CONFIG_BLK_DEV_SVWKS=y CONFIG_BLK_DEV_SIIMAGE=y CONFIG_BLK_DEV_SIS5513=y CONFIG_BLK_DEV_SLC90E66=y # CONFIG_BLK_DEV_TRM290 is not set CONFIG_BLK_DEV_VIA82CXXX=y # CONFIG_IDE_ARM is not set # CONFIG_IDE_CHIPSETS is not set CONFIG_BLK_DEV_IDEDMA=y # CONFIG_IDEDMA_IVB is not set CONFIG_IDEDMA_AUTO=y # CONFIG_BLK_DEV_HD is not set # # SCSI device support # CONFIG_SCSI=m CONFIG_SCSI_PROC_FS=y # # SCSI support type (disk, tape, CD-ROM) # CONFIG_BLK_DEV_SD=m CONFIG_CHR_DEV_ST=m CONFIG_CHR_DEV_OSST=m CONFIG_BLK_DEV_SR=m CONFIG_BLK_DEV_SR_VENDOR=y CONFIG_CHR_DEV_SG=m # # Some SCSI devices (e.g. CD jukebox) support multiple LUNs # CONFIG_SCSI_MULTI_LUN=y CONFIG_SCSI_CONSTANTS=y CONFIG_SCSI_LOGGING=y # # SCSI Transport Attributes # CONFIG_SCSI_SPI_ATTRS=m CONFIG_SCSI_FC_ATTRS=m CONFIG_SCSI_ISCSI_ATTRS=m # # SCSI low-level drivers # CONFIG_BLK_DEV_3W_XXXX_RAID=m CONFIG_SCSI_3W_9XXX=m # CONFIG_SCSI_7000FASST is not set CONFIG_SCSI_ACARD=m CONFIG_SCSI_AHA152X=m CONFIG_SCSI_AHA1542=m CONFIG_SCSI_AACRAID=m CONFIG_SCSI_AIC7XXX=m CONFIG_AIC7XXX_CMDS_PER_DEVICE=4 CONFIG_AIC7XXX_RESET_DELAY_MS=15000 # CONFIG_AIC7XXX_DEBUG_ENABLE is not set CONFIG_AIC7XXX_DEBUG_MASK=0 # CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set CONFIG_SCSI_AIC7XXX_OLD=m CONFIG_SCSI_AIC79XX=m CONFIG_AIC79XX_CMDS_PER_DEVICE=4 CONFIG_AIC79XX_RESET_DELAY_MS=15000 # CONFIG_AIC79XX_ENABLE_RD_STRM is not set # CONFIG_AIC79XX_DEBUG_ENABLE is not set CONFIG_AIC79XX_DEBUG_MASK=0 # CONFIG_AIC79XX_REG_PRETTY_PRINT is not set # CONFIG_SCSI_DPT_I2O is not set CONFIG_SCSI_IN2000=m CONFIG_MEGARAID_NEWGEN=y CONFIG_MEGARAID_MM=m CONFIG_MEGARAID_MAILBOX=m CONFIG_MEGARAID_LEGACY=m CONFIG_SCSI_SATA=y CONFIG_SCSI_SATA_AHCI=m CONFIG_SCSI_SATA_SVW=m CONFIG_SCSI_ATA_PIIX=m CONFIG_SCSI_SATA_NV=m CONFIG_SCSI_SATA_PROMISE=m CONFIG_SCSI_SATA_QSTOR=m CONFIG_SCSI_SATA_SX4=m CONFIG_SCSI_SATA_SIL=m CONFIG_SCSI_SATA_SIS=m CONFIG_SCSI_SATA_ULI=m CONFIG_SCSI_SATA_VIA=m CONFIG_SCSI_SATA_VITESSE=m CONFIG_SCSI_BUSLOGIC=m # CONFIG_SCSI_OMIT_FLASHPOINT is not set # CONFIG_SCSI_DMX3191D is not set # CONFIG_SCSI_DTC3280 is not set # CONFIG_SCSI_EATA is not set # CONFIG_SCSI_EATA_PIO is not set CONFIG_SCSI_FUTURE_DOMAIN=m CONFIG_SCSI_GDTH=m # CONFIG_SCSI_GENERIC_NCR5380 is not set # CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set CONFIG_SCSI_IPS=m CONFIG_SCSI_INITIO=m CONFIG_SCSI_INIA100=m CONFIG_SCSI_PPA=m CONFIG_SCSI_IMM=m # CONFIG_SCSI_IZIP_EPP16 is not set # CONFIG_SCSI_IZIP_SLOW_CTR is not set # CONFIG_SCSI_NCR53C406A is not set CONFIG_SCSI_SYM53C8XX_2=m CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 # CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set # CONFIG_SCSI_IPR is not set # CONFIG_SCSI_PAS16 is not set # CONFIG_SCSI_PSI240I is not set CONFIG_SCSI_QLOGIC_FAS=m CONFIG_SCSI_QLOGIC_ISP=m # CONFIG_SCSI_QLOGIC_FC is not set CONFIG_SCSI_QLOGIC_1280=m CONFIG_SCSI_QLOGIC_1280_1040=y CONFIG_SCSI_QLA2XXX=m CONFIG_SCSI_QLA21XX=m CONFIG_SCSI_QLA22XX=m CONFIG_SCSI_QLA2300=m CONFIG_SCSI_QLA2322=m CONFIG_SCSI_QLA6312=m # CONFIG_SCSI_SYM53C416 is not set # CONFIG_SCSI_DC395x is not set CONFIG_SCSI_DC390T=m # CONFIG_SCSI_T128 is not set # CONFIG_SCSI_U14_34F is not set # CONFIG_SCSI_ULTRASTOR is not set # CONFIG_SCSI_NSP32 is not set # CONFIG_SCSI_DEBUG is not set # # PCMCIA SCSI adapter support # CONFIG_PCMCIA_AHA152X=m CONFIG_PCMCIA_FDOMAIN=m CONFIG_PCMCIA_NINJA_SCSI=m CONFIG_PCMCIA_QLOGIC=m CONFIG_PCMCIA_SYM53C500=m # # Old CD-ROM drivers (not SCSI, not IDE) # # CONFIG_CD_NO_IDESCSI is not set # # Multi-device support (RAID and LVM) # CONFIG_MD=y CONFIG_BLK_DEV_MD=y CONFIG_MD_LINEAR=m CONFIG_MD_RAID0=m CONFIG_MD_RAID1=m CONFIG_MD_RAID10=m CONFIG_MD_RAID5=m CONFIG_MD_RAID6=m CONFIG_MD_MULTIPATH=m CONFIG_MD_FAULTY=m CONFIG_BLK_DEV_DM=m CONFIG_DM_CRYPT=m CONFIG_DM_SNAPSHOT=m CONFIG_DM_MIRROR=m CONFIG_DM_ZERO=m # # Fusion MPT device support # CONFIG_FUSION=m CONFIG_FUSION_MAX_SGE=40 CONFIG_FUSION_CTL=m CONFIG_FUSION_LAN=m # # IEEE 1394 (FireWire) support # CONFIG_IEEE1394=m # # Subsystem Options # # CONFIG_IEEE1394_VERBOSEDEBUG is not set CONFIG_IEEE1394_OUI_DB=y CONFIG_IEEE1394_EXTRA_CONFIG_ROMS=y CONFIG_IEEE1394_CONFIG_ROM_IP1394=y # # Device Drivers # CONFIG_IEEE1394_PCILYNX=m CONFIG_IEEE1394_OHCI1394=m # # Protocol Drivers # CONFIG_IEEE1394_VIDEO1394=m CONFIG_IEEE1394_SBP2=m # CONFIG_IEEE1394_SBP2_PHYS_DMA is not set CONFIG_IEEE1394_ETH1394=m CONFIG_IEEE1394_DV1394=m CONFIG_IEEE1394_RAWIO=m CONFIG_IEEE1394_CMP=m CONFIG_IEEE1394_AMDTP=m # # I2O device support # CONFIG_I2O=m CONFIG_I2O_CONFIG=m CONFIG_I2O_BLOCK=m CONFIG_I2O_SCSI=m CONFIG_I2O_PROC=m # # Networking support # CONFIG_NET=y # # Networking options # CONFIG_PACKET=y CONFIG_PACKET_MMAP=y CONFIG_NETLINK_DEV=y CONFIG_UNIX=y CONFIG_NET_KEY=m CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y CONFIG_IP_MULTIPLE_TABLES=y CONFIG_IP_ROUTE_FWMARK=y CONFIG_IP_ROUTE_MULTIPATH=y CONFIG_IP_ROUTE_VERBOSE=y # CONFIG_IP_PNP is not set CONFIG_NET_IPIP=m CONFIG_NET_IPGRE=m CONFIG_NET_IPGRE_BROADCAST=y CONFIG_IP_MROUTE=y CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y # CONFIG_ARPD is not set CONFIG_SYN_COOKIES=y CONFIG_INET_AH=m CONFIG_INET_ESP=m CONFIG_INET_IPCOMP=m CONFIG_INET_TUNNEL=m CONFIG_IP_TCPDIAG=m CONFIG_IP_TCPDIAG_IPV6=y # # IP: Virtual Server Configuration # CONFIG_IP_VS=m # CONFIG_IP_VS_DEBUG is not set CONFIG_IP_VS_TAB_BITS=12 # # IPVS transport protocol load balancing support # CONFIG_IP_VS_PROTO_TCP=y CONFIG_IP_VS_PROTO_UDP=y CONFIG_IP_VS_PROTO_ESP=y CONFIG_IP_VS_PROTO_AH=y # # IPVS scheduler # CONFIG_IP_VS_RR=m CONFIG_IP_VS_WRR=m CONFIG_IP_VS_LC=m CONFIG_IP_VS_WLC=m CONFIG_IP_VS_LBLC=m CONFIG_IP_VS_LBLCR=m CONFIG_IP_VS_DH=m CONFIG_IP_VS_SH=m CONFIG_IP_VS_SED=m CONFIG_IP_VS_NQ=m # # IPVS application helper # CONFIG_IP_VS_FTP=m CONFIG_IPV6=m CONFIG_IPV6_PRIVACY=y CONFIG_INET6_AH=m CONFIG_INET6_ESP=m CONFIG_INET6_IPCOMP=m CONFIG_INET6_TUNNEL=m CONFIG_IPV6_TUNNEL=m CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set CONFIG_BRIDGE_NETFILTER=y # # IP: Netfilter Configuration # CONFIG_IP_NF_CONNTRACK=m CONFIG_IP_NF_CT_ACCT=y CONFIG_IP_NF_CONNTRACK_MARK=y CONFIG_IP_NF_CT_PROTO_SCTP=m CONFIG_IP_NF_FTP=m CONFIG_IP_NF_IRC=m CONFIG_IP_NF_TFTP=m CONFIG_IP_NF_AMANDA=m CONFIG_IP_NF_QUEUE=m CONFIG_IP_NF_IPTABLES=m CONFIG_IP_NF_MATCH_LIMIT=m CONFIG_IP_NF_MATCH_IPRANGE=m CONFIG_IP_NF_MATCH_MAC=m CONFIG_IP_NF_MATCH_PKTTYPE=m CONFIG_IP_NF_MATCH_MARK=m CONFIG_IP_NF_MATCH_MULTIPORT=m CONFIG_IP_NF_MATCH_TOS=m CONFIG_IP_NF_MATCH_RECENT=m CONFIG_IP_NF_MATCH_ECN=m CONFIG_IP_NF_MATCH_DSCP=m CONFIG_IP_NF_MATCH_AH_ESP=m CONFIG_IP_NF_MATCH_LENGTH=m CONFIG_IP_NF_MATCH_TTL=m CONFIG_IP_NF_MATCH_TCPMSS=m CONFIG_IP_NF_MATCH_HELPER=m CONFIG_IP_NF_MATCH_STATE=m CONFIG_IP_NF_MATCH_CONNTRACK=m CONFIG_IP_NF_MATCH_OWNER=m CONFIG_IP_NF_MATCH_PHYSDEV=m CONFIG_IP_NF_MATCH_ADDRTYPE=m CONFIG_IP_NF_MATCH_REALM=m CONFIG_IP_NF_MATCH_SCTP=m CONFIG_IP_NF_MATCH_COMMENT=m CONFIG_IP_NF_MATCH_CONNMARK=m CONFIG_IP_NF_MATCH_HASHLIMIT=m CONFIG_IP_NF_FILTER=m CONFIG_IP_NF_TARGET_REJECT=m CONFIG_IP_NF_TARGET_LOG=m CONFIG_IP_NF_TARGET_ULOG=m CONFIG_IP_NF_TARGET_TCPMSS=m CONFIG_IP_NF_NAT=m CONFIG_IP_NF_NAT_NEEDED=y CONFIG_IP_NF_TARGET_MASQUERADE=m CONFIG_IP_NF_TARGET_REDIRECT=m CONFIG_IP_NF_TARGET_NETMAP=m CONFIG_IP_NF_TARGET_SAME=m CONFIG_IP_NF_NAT_SNMP_BASIC=m CONFIG_IP_NF_NAT_IRC=m CONFIG_IP_NF_NAT_FTP=m CONFIG_IP_NF_NAT_TFTP=m CONFIG_IP_NF_NAT_AMANDA=m CONFIG_IP_NF_MANGLE=m CONFIG_IP_NF_TARGET_TOS=m CONFIG_IP_NF_TARGET_ECN=m CONFIG_IP_NF_TARGET_DSCP=m CONFIG_IP_NF_TARGET_MARK=m CONFIG_IP_NF_TARGET_CLASSIFY=m CONFIG_IP_NF_TARGET_CONNMARK=m CONFIG_IP_NF_TARGET_CLUSTERIP=m CONFIG_IP_NF_RAW=m CONFIG_IP_NF_TARGET_NOTRACK=m CONFIG_IP_NF_ARPTABLES=m CONFIG_IP_NF_ARPFILTER=m CONFIG_IP_NF_ARP_MANGLE=m # # IPv6: Netfilter Configuration # # CONFIG_IP6_NF_QUEUE is not set CONFIG_IP6_NF_IPTABLES=m CONFIG_IP6_NF_MATCH_LIMIT=m CONFIG_IP6_NF_MATCH_MAC=m CONFIG_IP6_NF_MATCH_RT=m CONFIG_IP6_NF_MATCH_OPTS=m CONFIG_IP6_NF_MATCH_FRAG=m CONFIG_IP6_NF_MATCH_HL=m CONFIG_IP6_NF_MATCH_MULTIPORT=m CONFIG_IP6_NF_MATCH_OWNER=m CONFIG_IP6_NF_MATCH_MARK=m CONFIG_IP6_NF_MATCH_IPV6HEADER=m CONFIG_IP6_NF_MATCH_AHESP=m CONFIG_IP6_NF_MATCH_LENGTH=m CONFIG_IP6_NF_MATCH_EUI64=m CONFIG_IP6_NF_MATCH_PHYSDEV=m CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_TARGET_LOG=m CONFIG_IP6_NF_MANGLE=m CONFIG_IP6_NF_TARGET_MARK=m CONFIG_IP6_NF_RAW=m # # Bridge: Netfilter Configuration # CONFIG_BRIDGE_NF_EBTABLES=m CONFIG_BRIDGE_EBT_BROUTE=m CONFIG_BRIDGE_EBT_T_FILTER=m CONFIG_BRIDGE_EBT_T_NAT=m CONFIG_BRIDGE_EBT_802_3=m CONFIG_BRIDGE_EBT_AMONG=m CONFIG_BRIDGE_EBT_ARP=m CONFIG_BRIDGE_EBT_IP=m CONFIG_BRIDGE_EBT_LIMIT=m CONFIG_BRIDGE_EBT_MARK=m CONFIG_BRIDGE_EBT_PKTTYPE=m CONFIG_BRIDGE_EBT_STP=m CONFIG_BRIDGE_EBT_VLAN=m CONFIG_BRIDGE_EBT_ARPREPLY=m CONFIG_BRIDGE_EBT_DNAT=m CONFIG_BRIDGE_EBT_MARK_T=m CONFIG_BRIDGE_EBT_REDIRECT=m CONFIG_BRIDGE_EBT_SNAT=m CONFIG_BRIDGE_EBT_LOG=m CONFIG_BRIDGE_EBT_ULOG=m CONFIG_XFRM=y CONFIG_XFRM_USER=y # # SCTP Configuration (EXPERIMENTAL) # CONFIG_IP_SCTP=m # CONFIG_SCTP_DBG_MSG is not set # CONFIG_SCTP_DBG_OBJCNT is not set # CONFIG_SCTP_HMAC_NONE is not set # CONFIG_SCTP_HMAC_SHA1 is not set CONFIG_SCTP_HMAC_MD5=y CONFIG_ATM=m CONFIG_ATM_CLIP=m # CONFIG_ATM_CLIP_NO_ICMP is not set CONFIG_ATM_LANE=m # CONFIG_ATM_MPOA is not set CONFIG_ATM_BR2684=m # CONFIG_ATM_BR2684_IPFILTER is not set CONFIG_BRIDGE=m CONFIG_VLAN_8021Q=m # CONFIG_DECNET is not set CONFIG_LLC=y # CONFIG_LLC2 is not set CONFIG_IPX=m # CONFIG_IPX_INTERN is not set CONFIG_ATALK=m CONFIG_DEV_APPLETALK=y CONFIG_LTPC=m CONFIG_COPS=m CONFIG_COPS_DAYNA=y CONFIG_COPS_TANGENT=y CONFIG_IPDDP=m CONFIG_IPDDP_ENCAP=y CONFIG_IPDDP_DECAP=y # CONFIG_X25 is not set # CONFIG_LAPB is not set CONFIG_NET_DIVERT=y # CONFIG_ECONET is not set CONFIG_WAN_ROUTER=m # # QoS and/or fair queueing # CONFIG_NET_SCHED=y CONFIG_NET_SCH_CLK_JIFFIES=y # CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set # CONFIG_NET_SCH_CLK_CPU is not set CONFIG_NET_SCH_CBQ=m CONFIG_NET_SCH_HTB=m CONFIG_NET_SCH_HFSC=m CONFIG_NET_SCH_ATM=m CONFIG_NET_SCH_PRIO=m CONFIG_NET_SCH_RED=m CONFIG_NET_SCH_SFQ=m CONFIG_NET_SCH_TEQL=m CONFIG_NET_SCH_TBF=m CONFIG_NET_SCH_GRED=m CONFIG_NET_SCH_DSMARK=m CONFIG_NET_SCH_NETEM=m CONFIG_NET_SCH_INGRESS=m CONFIG_NET_QOS=y CONFIG_NET_ESTIMATOR=y CONFIG_NET_CLS=y CONFIG_NET_CLS_TCINDEX=m CONFIG_NET_CLS_ROUTE4=m CONFIG_NET_CLS_ROUTE=y CONFIG_NET_CLS_FW=m CONFIG_NET_CLS_U32=m CONFIG_CLS_U32_PERF=y CONFIG_NET_CLS_IND=y CONFIG_CLS_U32_MARK=y CONFIG_NET_CLS_RSVP=m CONFIG_NET_CLS_RSVP6=m # CONFIG_NET_CLS_ACT is not set CONFIG_NET_CLS_POLICE=y # # Network testing # # CONFIG_NET_PKTGEN is not set CONFIG_NETPOLL=y # CONFIG_NETPOLL_RX is not set CONFIG_NETPOLL_TRAP=y CONFIG_NET_POLL_CONTROLLER=y # CONFIG_HAMRADIO is not set CONFIG_IRDA=m # # IrDA protocols # CONFIG_IRLAN=m CONFIG_IRNET=m CONFIG_IRCOMM=m # CONFIG_IRDA_ULTRA is not set # # IrDA options # CONFIG_IRDA_CACHE_LAST_LSAP=y CONFIG_IRDA_FAST_RR=y # CONFIG_IRDA_DEBUG is not set # # Infrared-port device drivers # # # SIR device drivers # CONFIG_IRTTY_SIR=m # # Dongle support # CONFIG_DONGLE=y CONFIG_ESI_DONGLE=m CONFIG_ACTISYS_DONGLE=m CONFIG_TEKRAM_DONGLE=m CONFIG_LITELINK_DONGLE=m CONFIG_MA600_DONGLE=m CONFIG_GIRBIL_DONGLE=m CONFIG_MCP2120_DONGLE=m CONFIG_OLD_BELKIN_DONGLE=m CONFIG_ACT200L_DONGLE=m # # Old SIR device drivers # # # Old Serial dongle support # # # FIR device drivers # CONFIG_USB_IRDA=m CONFIG_SIGMATEL_FIR=m CONFIG_NSC_FIR=m CONFIG_WINBOND_FIR=m CONFIG_TOSHIBA_FIR=m CONFIG_SMC_IRCC_FIR=m CONFIG_ALI_FIR=m CONFIG_VLSI_FIR=m CONFIG_VIA_FIR=m CONFIG_BT=m CONFIG_BT_L2CAP=m CONFIG_BT_SCO=m CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y CONFIG_BT_BNEP=m CONFIG_BT_BNEP_MC_FILTER=y CONFIG_BT_BNEP_PROTO_FILTER=y CONFIG_BT_CMTP=m CONFIG_BT_HIDP=m # # Bluetooth device drivers # CONFIG_BT_HCIUSB=m CONFIG_BT_HCIUSB_SCO=y CONFIG_BT_HCIUART=m CONFIG_BT_HCIUART_H4=y CONFIG_BT_HCIUART_BCSP=y CONFIG_BT_HCIUART_BCSP_TXCRC=y CONFIG_BT_HCIBCM203X=m CONFIG_BT_HCIBPA10X=m CONFIG_BT_HCIBFUSB=m CONFIG_BT_HCIDTL1=m CONFIG_BT_HCIBT3C=m CONFIG_BT_HCIBLUECARD=m CONFIG_BT_HCIBTUART=m CONFIG_BT_HCIVHCI=m CONFIG_TUX=m # # TUX options # CONFIG_TUX_EXTCGI=y CONFIG_TUX_EXTENDED_LOG=y # CONFIG_TUX_DEBUG is not set CONFIG_NETDEVICES=y CONFIG_DUMMY=m CONFIG_BONDING=m CONFIG_EQUALIZER=m CO... [truncated message content] |
From: Arjan v. de V. <ar...@in...> - 2005-03-10 14:03:51
|
On Thu, 2005-03-10 at 13:55 +0100, Knut J Bjuland wrote: > caller is arch_add_exec_range+0x49/0x6a > Content-Type: text/plain; charset=ISO-8859-1; format=flowed > Content-Transfer-Encoding: 7bit > > When booting linux 2.6.11 with preemetable enable I get BUG: using > smp_processor_id() in preemptible [00000001] code: hotplug/461caller is > arch_add_exec_range+0x49/0x6a > when I load the kernel. I get this error messeage before loading xorg > ,and the kernel is untained. that function isn't in kernel.org kernels... but only in the Exec Shield patch series.. sounds like you have a misapplied patch somewhere... |
From: Milada K. <Eur...@ka...> - 2005-03-06 03:54:18
|
Hello, Have a nice day. |
From: Gizem B. <Con...@kg...> - 2005-02-27 22:36:35
|
Hello, He had to admit to himself that the influence of Cowperwood over way--not legally, anyhow. But that's not what I'm thinking of. was to say that, although he could not at present return the five it would be; but this that he had designed for Cowperwood and his nothing in particular. Who said I was talking about her? He So they stood, and so Cowperwood left them, wondering whether any mother and him. She realized that all these were important in not agree to give up seeing him, and he was not willing that she money at two per cent. (most of it, to save himself, had been prosecution is going to be undertaken by some one else--possibly Have a nice day. |
From: <Mar...@Ra...> - 2005-02-09 14:37:16
|
George Anzinger wrote: > Adam Jerome wrote: > > Mark, George, > > [snip] > > I assume that kernel preemption can be disabled at some granularity; > > perhaps per kernel process. Actually, any thread of execution: - interrupt processing - system call - kernel thread can disable kernel preemption. As George notes below - it preemption should be disabled only when you MUST protect some data. > > Hypothetically, assume that a process is in > > a state that it could easily relinquish control, but instead it > > stubbornly continues to perform its task. Let me use a simple case with the following patch (applied to 2.6.10-mm1) as an example: --- net/ipv4/tcp_minisocks.c.orig 2004-12-15 14:02:23.000000000 -0600 +++ net/ipv4/tcp_minisocks.c 2004-12-15 14:02:59.000000000 -0600 @@ -414,7 +414,7 @@ #define TCP_TWKILL_SLOTS 8 /* Please keep this a power of 2. */ #define TCP_TWKILL_PERIOD (TCP_TIMEWAIT_LEN/TCP_TWKILL_SLOTS) -#define TCP_TWKILL_QUOTA 100 +#define TCP_TWKILL_QUOTA 30 static struct hlist_head tcp_tw_death_row[TCP_TWKILL_SLOTS]; static DEFINE_SPINLOCK(tw_death_lock); There is also code later that does this: while (tcp_do_twkill_work(i, TCP_TWKILL_QUOTA) != 0) { if (softirq_need_resched()) { spin_unlock_bh(&tw_death_lock); schedule(); spin_lock_bh(&tw_death_lock); } So it does not check for a reschedule for 100 (30 with the patch) iterations inside tcp_do_twkill_work. Note that the work still has to be done in either case if the preemption occurs. [a side note - this example is coded pretty strange if you track all uses of tw_death_lock and should probably be cleaned up] There are A LOT of these kinds of examples in the Linux kernel. Many have been fixed. There is no guidance that I am aware of on the timing / limits for loops for such constructs. > > In such a state, it would > > seem to me that a process might be capable of "hogging" the CPU, > > inappropriately starving other kernel processes out of CPU time. What one user sees as "hogging" the CPU, another sees as efficient use of the CPU. If I had a big iron network server, the patch I show above makes the system less efficient. But for me, it improves latency for my real time applications. > > If my > > assumptions are correct; my question is this... What would be considered > > a proper Maximum CPU time slice for such a process; (when exceeding > > such, the process would be considered a "CPU hog"). > > If you are talking about kernel code, we (rt interested folks) are looking for > preemption times in the 10-100 microsecond region. I wish I could get 10-100 microseconds. If my RT task gets preempted for less than 1000 microseconds I will be pretty happy. > To do this most locks (spin > locks and reader/writer locks) are being changed to mutexes which will yield > control on demand. The notion is that what needs protection is the data and > that is what a mutex does. As it turns out, a preemption lock is rather cheap > (only a bit is set/reset) so it is the preferred way (given a UP machine) to > lock data for quick access (such things as popping an element from a list), > while the mutex is best for longer held things. I agree. > Still, your question seems to be more of a scheduler question. The notion of a > CPU hog is defined there and changes the relative priority of non rt tasks to > best optimize the system. This, however, is a long term thing and take some > time to react. It is designed to catch things like compilers and tell them from > interactive things like X and your editor. > This is certainly a traditional definition of "CPU hog". Note the OP has asserted that a [kernel?] process can "stubbornly continue to perform its task" (which I provided an example). If that is an device driver or file system code in the kernel, it can still be a "hog" for the RT applications. > > I realize the arguments on both sides; that sometimes it would be > > better to "complete the task" than relinquish control, etc., and that > > perhaps there should not be an exact maximum time slice. > > Again a scheduler issue... For a thread, yes. For one of the other items I mentioned (interrupt or system call), I disagree. The scheduler doesn't usually get involved in cases like the example I illustrated unless it is explicitly coded to allow it. > > > > I am working on a list of guide-lines for Linux kernel module > > developers; and this "Maximum CPU Time Slice" issue was brought to my > > attention. Initially, I assumed (perhaps incorrectly), that this value > > should be similar to the maximum allowed by kernel process preemption. > > Obviously, I was hoping for an answer something like "40ms (or so)". If its a kernel thread a value like 40 msec may actually be a good guideline. However for something that runs in the context of a (possibly RT) user application (e.g., interrupt) - that is an extremely long period of time. I run tasks at 80 HZ (12.5 msec period) so if that task gets stopped for a millisecond (or 15 times for 100 usec each - yes I've measured that) in that period, I start to get worried. > > However, your previous replies helped me better understand the > > complexity of trying to tackle this issue that way. > > Kernel modules should do only the locking needed to protect the data they are > working with. If they directly interact with hardware, they will also need to > protect that interaction with the necessary locks. In general, they should > expect to be preempted at ANY instruction. If they loose control, the data > should still be protected until they get control again. The way to do this is > with spin locks and, sometimes, preemption disables. A lot has been written on > how to do this and the issues involved. Such code should turn off interrupts > only on when absolutely needed and then for as short a time as possible. I think we are in violent agreement on this issue. The other point I might make is that an RT application developer will also do what they can to tightly control non RT applications. For example, if you start a lot of network I/O from a non RT application, that can cause a number of interrupts to occur, impacting the RT application. --Mark |
From: George A. <ge...@mv...> - 2005-02-08 19:21:09
|
Adam Jerome wrote: > Mark, George, > > Thank you for your replies. I now realize that your (much appreciated) > answers demonstrate my somewhat flawed questions. Perhaps these > question are closer to the mark: > > I assume that kernel preemption can be disabled at some granularity; > perhaps per kernel process. Hypothetically, assume that a process is in > a state that it could easily relinquish control, but instead it > stubbornly continues to perform its task. In such a state, it would > seem to me that a process might be capable of "hogging" the CPU, > inappropriately starving other kernel processes out of CPU time. If my > assumptions are correct; my question is this... What would be considered > a proper Maximum CPU time slice for such a process; (when exceeding > such, the process would be considered a "CPU hog"). If you are talking about kernel code, we (rt interested folks) are looking for preemption times in the 10-100 microsecond region. To do this most locks (spin locks and reader/writer locks) are being changed to mutexes which will yield control on demand. The notion is that what needs protection is the data and that is what a mutex does. As it turns out, a preemption lock is rather cheap (only a bit is set/reset) so it is the preferred way (given a UP machine) to lock data for quick access (such things as popping an element from a list), while the mutex is best for longer held things. Still, your question seems to be more of a scheduler question. The notion of a CPU hog is defined there and changes the relative priority of non rt tasks to best optimize the system. This, however, is a long term thing and take some time to react. It is designed to catch things like compilers and tell them from interactive things like X and your editor. > > I realize the arguments on both sides; that sometimes it would be > better to "complete the task" than relinquish control, etc., and that > perhaps there should not be an exact maximum time slice. Again a scheduler issue... > > I am working on a list of guide-lines for Linux kernel module > developers; and this "Maximum CPU Time Slice" issue was brought to my > attention. Initially, I assumed (perhaps incorrectly), that this value > should be similar to the maximum allowed by kernel process preemption. > Obviously, I was hoping for an answer something like "40ms (or so)". > However, your previous replies helped me better understand the > complexity of trying to tackle this issue that way. Kernel modules should do only the locking needed to protect the data they are working with. If they directly interact with hardware, they will also need to protect that interaction with the necessary locks. In general, they should expect to be preempted at ANY instruction. If they loose control, the data should still be protected until they get control again. The way to do this is with spin locks and, sometimes, preemption disables. A lot has been written on how to do this and the issues involved. Such code should turn off interrupts only on when absolutely needed and then for as short a time as possible. -- George Anzinger ge...@mv... High-res-timers: http://sourceforge.net/projects/high-res-timers/ |
From: Adam J. <AJ...@no...> - 2005-02-08 15:55:10
|
Mark, George, Thank you for your replies. I now realize that your (much appreciated) answers demonstrate my somewhat flawed questions. Perhaps these question are closer to the mark: I assume that kernel preemption can be disabled at some granularity; perhaps per kernel process. Hypothetically, assume that a process is in a state that it could easily relinquish control, but instead it stubbornly continues to perform its task. In such a state, it would seem to me that a process might be capable of "hogging" the CPU, inappropriately starving other kernel processes out of CPU time. If my assumptions are correct; my question is this... What would be considered a proper Maximum CPU time slice for such a process; (when exceeding such, the process would be considered a "CPU hog"). I realize the arguments on both sides; that sometimes it would be better to "complete the task" than relinquish control, etc., and that perhaps there should not be an exact maximum time slice. I am working on a list of guide-lines for Linux kernel module developers; and this "Maximum CPU Time Slice" issue was brought to my attention. Initially, I assumed (perhaps incorrectly), that this value should be similar to the maximum allowed by kernel process preemption. Obviously, I was hoping for an answer somethin like "40ms (or so)". However, your previous replies helped me better understand the complexity of trying to tackle this issue that way. Any help, or suggestions, are appreciated. -adam |
From: <Mar...@ra...> - 2005-02-08 14:12:15
|
> Specifically, how long will the 2.6 kernel tolerate a preemptable > kernel process before attempting to preempt it? Preemption of the kernel happens in a few different ways (assuming CONFIG_PREEMPT): - not in a critical region, preemption occurs immediately - in a critical region, check done if "need_resched" and if so, release the locks & try again later - a critical region ends Note the hardware also has to be "nice" for a preemption to occur. I have demonstrated > 1 msec latencies when using udma4 or udma5 on an IDE disk drive on my SMP PC's. Setting the disk to udma2 fixes that particular symptom. So there is no "formula" to be found. Part of Ingo Molnar's realtime-preempt patch modifies the behavior of loops in a critical region, checking for a rescheduling condition more frequently. Some areas patched include the file system, audio, and network drivers. Now there may also be some scheduling bugs on SMP systems. I have reported for some time "starvation" of a non RT application on an SMP system running a single RT application & a nice'd application. The non RT application did not preempt the nice'd application. There was a similar problem if you had more than one RT application but I think Ingo has fixed that one. This information is based on my testing of RT patches up through 2.6.10 (we've stopped there for now to let the dust settle). --Mark H Johnson <mailto:Mar...@ra...> |
From: George A. <ge...@mv...> - 2005-02-08 01:08:47
|
Adam Jerome wrote: > I am doing some research on the 2.6 kernel; and I am having difficulty > locating information (in documentation form) specific to kernel process > preemption. > > Specifically, how long will the 2.6 kernel tolerate a preemptable > kernel process before attempting to preempt it? As far as I know, if a process is preemptable and there is work at a better priority, it happens NOW, no waiting... Now you are into the notion of priority which is a scheduler issue, not a preemption one. George > > Is this tolerance based on a formula, a constant value and/or > configured by a system administrator? > If based on a formula, what is the formula? > > Best wishes; > - Adam Jerome / Novell Inc. > > PS: I just ordered "Linux Kernel Development" by Robert Love. I > browsed through a copy owned by a peer... Looks great! > -- George Anzinger ge...@mv... High-res-timers: http://sourceforge.net/projects/high-res-timers/ |
From: Adam J. <AJ...@no...> - 2005-02-08 00:08:02
|
I am doing some research on the 2.6 kernel; and I am having difficulty locating information (in documentation form) specific to kernel process preemption. Specifically, how long will the 2.6 kernel tolerate a preemptable kernel process before attempting to preempt it? Is this tolerance based on a formula, a constant value and/or configured by a system administrator? If based on a formula, what is the formula? Best wishes; - Adam Jerome / Novell Inc. PS: I just ordered "Linux Kernel Development" by Robert Love. I browsed through a copy owned by a peer... Looks great! |
From: Friedman Lindsey<se...@ya...> - 2005-02-05 15:49:18
|
See attachment message.html |
From: Fishbein Martha<gr...@ya...> - 2005-02-05 05:21:36
|
See attachment message.html |
From: Geffen Barbara<ha...@ya...> - 2005-02-04 14:03:41
|
See attachment message.html |