Re: 2.6.13-rc6-mm1

2005-08-20 Thread Andrew Morton
Reuben Farrelly <[EMAIL PROTECTED]> wrote:
>
> Hi,
> 
> On 19/08/2005 11:37 a.m., Andrew Morton wrote:
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.13-rc6/2.6.13-rc6-mm1/
> > 
> > - Lots of fixes, updates and cleanups all over the place.
> > 
> > - If you have the right debugging options set, this kernel will generate
> >   a storm of sleeping-in-atomic-code warnings at boot, from the scsi code.
> >   It is being worked on.
> > 
> > 
> > Changes since 2.6.13-rc5-mm1:
> > 
> >  linus.patch
> 
> Noted this in my log earlier today.
> 
> Is this inotify related?
> 
> Aug 21 08:33:04 tornado kernel: idr_remove called for id=2048 which is not 
> allocated.
> Aug 21 08:33:04 tornado kernel:  [] dump_stack+0x17/0x19
> Aug 21 08:33:04 tornado kernel:  [] idr_remove_warning+0x1b/0x1d
> Aug 21 08:33:04 tornado kernel:  [] sub_remove+0x88/0xea
> Aug 21 08:33:04 tornado kernel:  [] idr_remove+0x1b/0x7f
> Aug 21 08:33:04 tornado kernel:  [] remove_watch_no_event+0x7a/0x12e
> Aug 21 08:33:04 tornado kernel:  [] inotify_release+0x8f/0x1af
> Aug 21 08:33:04 tornado kernel:  [] __fput+0xaf/0x199
> Aug 21 08:33:04 tornado kernel:  [] fput+0x22/0x3b
> Aug 21 08:33:04 tornado kernel:  [] filp_close+0x41/0x67
> Aug 21 08:33:04 tornado kernel:  [] sys_close+0x70/0x92
> Aug 21 08:33:04 tornado kernel:  [] sysenter_past_esp+0x54/0x75
> Aug 21 08:33:04 tornado kernel: idr_remove called for id=3072 which is not 
> allocated.
> Aug 21 08:33:05 tornado kernel:  [] dump_stack+0x17/0x19
> Aug 21 08:33:05 tornado kernel:  [] idr_remove_warning+0x1b/0x1d
> Aug 21 08:33:05 tornado kernel:  [] sub_remove+0x88/0xea
> Aug 21 08:33:05 tornado kernel:  [] idr_remove+0x1b/0x7f
> Aug 21 08:33:05 tornado kernel:  [] remove_watch_no_event+0x7a/0x12e
> Aug 21 08:33:05 tornado kernel:  [] inotify_release+0x8f/0x1af
> Aug 21 08:33:05 tornado kernel:  [] __fput+0xaf/0x199
> Aug 21 08:33:05 tornado kernel:  [] fput+0x22/0x3b
> Aug 21 08:33:05 tornado kernel:  [] filp_close+0x41/0x67
> Aug 21 08:33:05 tornado kernel:  [] sys_close+0x70/0x92
> Aug 21 08:33:05 tornado kernel:  [] sysenter_past_esp+0x54/0x75
> 
> This would have been triggered by using dovecot IMAP which is configured to 
> use inotify on Maildir.
> I'm also seeing some userspace errors logged for dovecot:
> 
> "Aug 21 04:17:22 Error: IMAP(reuben): inotify_rm_watch() failed: Invalid 
> argument"
> 
> I'll deal with those with the guy who wrote the inotify code in dovecot.
> 
> I'm not so sure userspace should be able or need to cause the kernel to dump 
> stack traces like that though?
> 

Yes, the stack dumps would appear to be due to an inotify bug.

The message from dovecot is allegedly due to dovecot passing in a file
descriptor which was not obtained from the inotify_init() syscall.  But
until we know what caused those stack dumps we cannot definitely say
whether dovecot is at fault.

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


2.6.12.5 stalls on boot

2005-08-20 Thread j.t. holmes


2.6.12.5 and others below that to 2.6.10  stall on boot. The problem is 
udev.


It stalls between 1 to 3 minutes.

I have the latest 


udev
hotplug
klibc

u name it

Something happened about 2.6.11.X and I see others writing about
similar items

The base system is Suse 9.2  and I am beginning to wonder if
there is something that Suse wrote that is interferring w/the boot.
Since they shipped 9.2 with a 2.6.8-24 and there have been a lot
of changes up to 2.6.12.5

In any case the  boot  stalls  just after it prints these two lines

input: AT Translated Set 2 keyboard on isa0060/serio0
input: PS/2 Generic Mouse on isa0060/serio4

and about 2 mins + -  later it prints this

EXT2-fs warning (device hda6): ext2_fill_super: mounting ext3 filesystem 
as ext2

and then continue normal boot

I sent in  an  ALT SYSREQ  P  and T  trace a few weeks ago
but didnt get an answer.

Am I incorrect in assuming that everything up until the root disk is mounted
is primarily kernel activity? If not then where else can I look.

I can provide any info desired.

Just in case this is Suse related I am going to load  9.3  early next week
and compile  2.6.12.5 on it and see it I encounter the stall problem. I will
post the results from the activity.






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


Re: 2.6.13-rc6-mm1

2005-08-20 Thread Reuben Farrelly

Hi,

On 19/08/2005 11:37 a.m., Andrew Morton wrote:

ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.13-rc6/2.6.13-rc6-mm1/

- Lots of fixes, updates and cleanups all over the place.

- If you have the right debugging options set, this kernel will generate
  a storm of sleeping-in-atomic-code warnings at boot, from the scsi code.
  It is being worked on.


Changes since 2.6.13-rc5-mm1:

 linus.patch


Noted this in my log earlier today.

Is this inotify related?

Aug 21 08:33:04 tornado kernel: idr_remove called for id=2048 which is not 
allocated.

Aug 21 08:33:04 tornado kernel:  [] dump_stack+0x17/0x19
Aug 21 08:33:04 tornado kernel:  [] idr_remove_warning+0x1b/0x1d
Aug 21 08:33:04 tornado kernel:  [] sub_remove+0x88/0xea
Aug 21 08:33:04 tornado kernel:  [] idr_remove+0x1b/0x7f
Aug 21 08:33:04 tornado kernel:  [] remove_watch_no_event+0x7a/0x12e
Aug 21 08:33:04 tornado kernel:  [] inotify_release+0x8f/0x1af
Aug 21 08:33:04 tornado kernel:  [] __fput+0xaf/0x199
Aug 21 08:33:04 tornado kernel:  [] fput+0x22/0x3b
Aug 21 08:33:04 tornado kernel:  [] filp_close+0x41/0x67
Aug 21 08:33:04 tornado kernel:  [] sys_close+0x70/0x92
Aug 21 08:33:04 tornado kernel:  [] sysenter_past_esp+0x54/0x75
Aug 21 08:33:04 tornado kernel: idr_remove called for id=3072 which is not 
allocated.

Aug 21 08:33:05 tornado kernel:  [] dump_stack+0x17/0x19
Aug 21 08:33:05 tornado kernel:  [] idr_remove_warning+0x1b/0x1d
Aug 21 08:33:05 tornado kernel:  [] sub_remove+0x88/0xea
Aug 21 08:33:05 tornado kernel:  [] idr_remove+0x1b/0x7f
Aug 21 08:33:05 tornado kernel:  [] remove_watch_no_event+0x7a/0x12e
Aug 21 08:33:05 tornado kernel:  [] inotify_release+0x8f/0x1af
Aug 21 08:33:05 tornado kernel:  [] __fput+0xaf/0x199
Aug 21 08:33:05 tornado kernel:  [] fput+0x22/0x3b
Aug 21 08:33:05 tornado kernel:  [] filp_close+0x41/0x67
Aug 21 08:33:05 tornado kernel:  [] sys_close+0x70/0x92
Aug 21 08:33:05 tornado kernel:  [] sysenter_past_esp+0x54/0x75

This would have been triggered by using dovecot IMAP which is configured to 
use inotify on Maildir.

I'm also seeing some userspace errors logged for dovecot:

"Aug 21 04:17:22 Error: IMAP(reuben): inotify_rm_watch() failed: Invalid 
argument"

I'll deal with those with the guy who wrote the inotify code in dovecot.

I'm not so sure userspace should be able or need to cause the kernel to dump 
stack traces like that though?


reuben

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


Re: 2.6.13-rc6-mm1

2005-08-20 Thread Reuben Farrelly

Hi,

On 21/08/2005 1:40 a.m., David Woodhouse wrote:

On Fri, 2005-08-19 at 18:36 -0700, Andrew Morton wrote:

Reuben Farrelly <[EMAIL PROTECTED]> wrote:

...

4. PAM is complaining about "PAM audit_open() failed: Protocol not suppor
ted" and I can't log in as any user including root.  I would have picked this 
was a userspace problem, but it doesn't break with -rc5-mm1, yet reproduceably 
breaks with -rc6-mm1.  Weird.

hm.  How come you're able to use the machine then?
Machine was booting up ok, and things were being written to syslog.  Rebooted 
into -rc5-mm1 to investigate, and of course could boot into rc6-mm1 in single 
user mode, test and bring services up one by one from there.  Having two boxes 
helped too.



Is it possible to get an strace of this failure somehow?
Not sure if this is needed anymore, as I found that the problem goes away when 
I compile in kernel auditing.  This not required for -rc5-mm1.  Is that change 
intended?



Sounds wrong to me, especially if 2.6.13-rc6 doesn't do that.


Hm. It sounds like you'd configured PAM to require the pam_loginuid
module even though you didn't have auditing enabled in your kernel. That
seems strange and wrong to me, and _is_ a userspace problem.


I haven't touched my pam config since it was installed a long time ago - it's 
one of those things that is too annoying to fix once broked, so I leave it 
alone at the system defaults ;)


I had logged this as a Fedora bug as I figured the pam_loginuid
detection of the presence of auditing in the kernel is not very robust.  There 
was a patch modified in pam-0.80-6 at the start of August which was to fix 
this on non audit enabled kernels, which works for anything up to and older 
than 2.6.12-rc5-mm1.


https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=166422

It was closed 8 mins later, and the suggestion made that I take it to a pam 
development list instead.  Redhat don't seem so interested in fixing things as 
a result of breakage when running an -mm kernel.



I'd also agree that it shouldn't have changed with the new kernel though
-- and I can't think of anything I changed recently which would have
that effect. An strace would still be useful.


Done.  Posted up at  http://www.reub.net/kernel/strace-login


Can you double-check that you didn't have auditing enabled in your
older, working kernel?


Definitely wasn't enabled.  I still have the .config that I used to build
-rc5-mm1 with and my original -rc6-mm1 and it reads:

CONFIG_SYSCTL=y
# CONFIG_AUDIT is not set
CONFIG_HOTPLUG=y

Thanks for taking a look.

Reuben




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


Re: s390 build fix.

2005-08-20 Thread Dave Jones
On Sun, Aug 21, 2005 at 06:11:31AM +0100, Al Viro wrote:
 > On Sun, Aug 21, 2005 at 12:38:39AM -0400, Dave Jones wrote:
 > > {standard input}: Assembler messages:
 > > {standard input}:397: Error: symbol `.Litfits' is already defined
 > > {standard input}:585: Error: symbol `.Litfits' is already defined
 > > 
 > > Newer gcc's inline this it seems, which blows up.
 > 
 > Eeek...  Much easier (and already sent to Linus):

Sure, that works for me too.

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


Re: 2.6.12.5: psmouse mouse detection doesn't work

2005-08-20 Thread Joseph Fannin
On Sun, Aug 21, 2005 at 06:42:23AM +0200, Harald Dunkel wrote:
> Hi folks,
>
> At boot time my Logitech mouse is detected as
>
> I: Bus=0011 Vendor=0002 Product=0001 Version=
> N: Name="PS/2 Generic Mouse"
> P: Phys=isa0060/serio1/input0
> H: Handlers=event1 ts0 mouse0
> B: EV=7
> B: KEY=7 0 0 0 0
> B: REL=3
>
> After manually reloading psmouse I get the expected
>
> I: Bus=0011 Vendor=0002 Product=0002 Version=0049
> N: Name="PS2++ Logitech Mouse"
> P: Phys=isa0060/serio1/input0
> H: Handlers=event1 ts0 mouse0
> B: EV=7
> B: KEY=f 0 0 0 0
> B: REL=3
>
> Using psmouse_noext=1 at boot time does not help.
>
> How comes that this doesn't work on the first run?
>
> I asked this more than a year ago, and somebody posted
> a fix, but obviously it wasn't accepted.
>
> What needs to be done to fix this?

If psmouse is a module, you'd need to pass proto=bare as a module
parameter rather than on the kernel command line.  Check `modinfo
psmouse`.

Are you sure proto=imps hasn't found its way into
/etc/modprobe.conf or so?  I could imagine a distribution shipping
this way.

--
Joseph Fannin
[EMAIL PROTECTED]

 /* So there I am, in the middle of my `netfilter-is-wonderful'
talk in Sydney, and someone asks `What happens if you try
to enlarge a 64k packet here?'. I think I said something
eloquent like `fuck'. - RR */
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: 2.6.12.5: psmouse mouse detection doesn't work

2005-08-20 Thread Dmitry Torokhov
On Saturday 20 August 2005 23:42, Harald Dunkel wrote:
> Hi folks,
> 
> At boot time my Logitech mouse is detected as
> 
> I: Bus=0011 Vendor=0002 Product=0001 Version=
> N: Name="PS/2 Generic Mouse"
> P: Phys=isa0060/serio1/input0
> H: Handlers=event1 ts0 mouse0
> B: EV=7
> B: KEY=7 0 0 0 0
> B: REL=3
> 
> After manually reloading psmouse I get the expected
> 
> I: Bus=0011 Vendor=0002 Product=0002 Version=0049
> N: Name="PS2++ Logitech Mouse"
> P: Phys=isa0060/serio1/input0
> H: Handlers=event1 ts0 mouse0
> B: EV=7
> B: KEY=f 0 0 0 0
> B: REL=3
> 

Does booting with "usb-handoff" on the kernel boot line help?

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


Re: 2.6.12.5: psmouse mouse detection doesn't work

2005-08-20 Thread Michael Krufky

Harald Dunkel wrote:


At boot time my Logitech mouse is detected as

I: Bus=0011 Vendor=0002 Product=0001 Version=
N: Name="PS/2 Generic Mouse"
P: Phys=isa0060/serio1/input0
H: Handlers=event1 ts0 mouse0
B: EV=7
B: KEY=7 0 0 0 0
B: REL=3

After manually reloading psmouse I get the expected

I: Bus=0011 Vendor=0002 Product=0002 Version=0049
N: Name="PS2++ Logitech Mouse"
P: Phys=isa0060/serio1/input0
H: Handlers=event1 ts0 mouse0
B: EV=7
B: KEY=f 0 0 0 0
B: REL=3

Using psmouse_noext=1 at boot time does not help.

How comes that this doesn't work on the first run?

I asked this more than a year ago, and somebody posted
a fix, but obviously it wasn't accepted.

What needs to be done to fix this?
 


Harri-

I was having problems with my psmouse also.  Try the kernel boot option 
"usb-handoff", see if that helps.  This is just a suggestion.  I have 
nothing to do with the development of that driver.


Good Luck.

--
Michael Krufky

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


Re: s390 build fix.

2005-08-20 Thread Al Viro
On Sun, Aug 21, 2005 at 12:38:39AM -0400, Dave Jones wrote:
> {standard input}: Assembler messages:
> {standard input}:397: Error: symbol `.Litfits' is already defined
> {standard input}:585: Error: symbol `.Litfits' is already defined
> 
> Newer gcc's inline this it seems, which blows up.

Eeek...  Much easier (and already sent to Linus):

diff -urN RC13-rc6-git2-arm-float/arch/s390/kernel/cpcmd.c 
RC13-rc6-git2-s390/arch/s390/kernel/cpcmd.c
--- RC13-rc6-git2-arm-float/arch/s390/kernel/cpcmd.c2005-08-10 
10:37:46.0 -0400
+++ RC13-rc6-git2-s390/arch/s390/kernel/cpcmd.c 2005-08-10 20:38:56.0 
-0400
@@ -46,9 +46,9 @@
"lra3,0(%4)\n"
"lr 5,%5\n"
"diag   2,4,0x8\n"
-   "brc8, .Litfits\n"
+   "brc8, 1f\n"
"ar 5, %5\n"
-   ".Litfits: \n"
+   "1: \n"
"lr %0,4\n"
"lr %1,5\n"
: "=d" (return_code), "=d" (return_len)
@@ -64,9 +64,9 @@
"sam31\n"
"diag   2,4,0x8\n"
"sam64\n"
-   "brc8, .Litfits\n"
+   "brc8, 1f\n"
"agr5, %5\n"
-   ".Litfits: \n"
+   "1: \n"
"lgr%0,4\n"
"lgr%1,5\n"
: "=d" (return_code), "=d" (return_len)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Schedulers benchmark - Was: [ANNOUNCE][RFC] PlugSched-5.2.4 for 2.6.12 and 2.6.13-rc6

2005-08-20 Thread Con Kolivas
On Sun, 21 Aug 2005 14:44, Michal Piotrowski wrote:
> On 8/21/05, Con Kolivas <[EMAIL PROTECTED]> wrote:
> > Well it will survive all right, but eventually get into swap thrash
> > territory and that's not a meaningful cpu scheduler benchmark.
> >
> > Cheers,
> > Con
>
> Ok. How about make -j? It's one of kernbench test runs, on my box load
> average > 1500 ;).

Just do that if you wish to overload the system. It's a vm benchmark. No doubt 
the cpu scheduler contributes to how the vm behaves, but it isn't a primary 
cpu scheduler test.

> BTW I have only 1 gb ram, so high values of -j are road to hell for my
> system... I'm still learning, but it's fun ;). Now I'll try your latest
> -ck. Thanks for "1Gb Low Memory Support".

You're welcome,
Con
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Schedulers benchmark - Was: [ANNOUNCE][RFC] PlugSched-5.2.4 for 2.6.12 and 2.6.13-rc6

2005-08-20 Thread Michal Piotrowski
On 8/21/05, Con Kolivas <[EMAIL PROTECTED]> wrote:
> Well it will survive all right, but eventually get into swap thrash territory
> and that's not a meaningful cpu scheduler benchmark.
> 
> Cheers,
> Con
> 


Ok. How about make -j? It's one of kernbench test runs, on my box load
average > 1500 ;).

BTW I have only 1 gb ram, so high values of -j are road to hell for my system...
I'm still learning, but it's fun ;). Now I'll try your latest -ck.
Thanks for "1Gb Low Memory Support".

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


2.6.12.5: psmouse mouse detection doesn't work

2005-08-20 Thread Harald Dunkel
Hi folks,

At boot time my Logitech mouse is detected as

I: Bus=0011 Vendor=0002 Product=0001 Version=
N: Name="PS/2 Generic Mouse"
P: Phys=isa0060/serio1/input0
H: Handlers=event1 ts0 mouse0
B: EV=7
B: KEY=7 0 0 0 0
B: REL=3

After manually reloading psmouse I get the expected

I: Bus=0011 Vendor=0002 Product=0002 Version=0049
N: Name="PS2++ Logitech Mouse"
P: Phys=isa0060/serio1/input0
H: Handlers=event1 ts0 mouse0
B: EV=7
B: KEY=f 0 0 0 0
B: REL=3

Using psmouse_noext=1 at boot time does not help.

How comes that this doesn't work on the first run?

I asked this more than a year ago, and somebody posted
a fix, but obviously it wasn't accepted.

What needs to be done to fix this?


Regards

Harri


signature.asc
Description: OpenPGP digital signature


s390 build fix.

2005-08-20 Thread Dave Jones
{standard input}: Assembler messages:
{standard input}:397: Error: symbol `.Litfits' is already defined
{standard input}:585: Error: symbol `.Litfits' is already defined

Newer gcc's inline this it seems, which blows up.

--- linux-2.6.12/arch/s390/kernel/cpcmd.c~  2005-08-18 15:12:51.0 
-0400
+++ linux-2.6.12/arch/s390/kernel/cpcmd.c   2005-08-18 15:13:35.0 
-0400
@@ -46,9 +46,9 @@ int  __cpcmd(const char *cmd, char *resp
"lra3,0(%4)\n"
"lr 5,%5\n"
"diag   2,4,0x8\n"
-   "brc8, .Litfits\n"
+   "brc8, .Litfits%=\n"
"ar 5, %5\n"
-   ".Litfits: \n"
+   ".Litfits%=: \n"
"lr %0,4\n"
"lr %1,5\n"
: "=d" (return_code), "=d" (return_len)
@@ -64,9 +64,9 @@ int  __cpcmd(const char *cmd, char *resp
"sam31\n"
"diag   2,4,0x8\n"
"sam64\n"
-   "brc8, .Litfits\n"
+   "brc8, .Litfits%=\n"
"agr5, %5\n"
-   ".Litfits: \n"
+   ".Litfits%=: \n"
"lgr%0,4\n"
"lgr%1,5\n"
: "=d" (return_code), "=d" (return_len)

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


Re: Schedulers benchmark - Was: [ANNOUNCE][RFC] PlugSched-5.2.4 for 2.6.12 and 2.6.13-rc6

2005-08-20 Thread Con Kolivas
On Sun, 21 Aug 2005 14:16, Michal Piotrowski wrote:
> Hi,
>
> On 8/21/05, Con Kolivas <[EMAIL PROTECTED]> wrote:
> > On Sun, 21 Aug 2005 11:34, Michal Piotrowski wrote:
> > > Hi,
> >
> > Hi
> >
> > > here are kernbench results:
> >
> > Nice to see you using kernbench :)
> >
> > > ./kernbench -M -o 128
> > > [..]
> > > Average Optimal -j 128 Load Run:
> >
> > Was there any reason you chose 128? Optimal usually works out
> > automatically from kernbench to 4x number_cpus. If I recall correctly you
> > have 4 cpus? Not sure what 128 represents.
> >
> > Cheers,
> > Con
>
> No, I just have 1 pentium 4 with ht ;).
>
> Why I chose 128? I just want very high loads. Now I'll try -j192 and
> -j256, but I don't know how does my system survive it.

Well it will survive all right, but eventually get into swap thrash territory 
and that's not a meaningful cpu scheduler benchmark.

Cheers,
Con
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Schedulers benchmark - Was: [ANNOUNCE][RFC] PlugSched-5.2.4 for 2.6.12 and 2.6.13-rc6

2005-08-20 Thread Michal Piotrowski
Hi,

On 8/21/05, Con Kolivas <[EMAIL PROTECTED]> wrote:
> On Sun, 21 Aug 2005 11:34, Michal Piotrowski wrote:
> > Hi,
> 
> Hi
> 
> > here are kernbench results:
> 
> Nice to see you using kernbench :)
> 
> > ./kernbench -M -o 128
> > [..]
> > Average Optimal -j 128 Load Run:
> 
> Was there any reason you chose 128? Optimal usually works out automatically
> from kernbench to 4x number_cpus. If I recall correctly you have 4 cpus? Not
> sure what 128 represents.
> 
> Cheers,
> Con
> 

No, I just have 1 pentium 4 with ht ;).

Why I chose 128? I just want very high loads. Now I'll try -j192 and
-j256, but I don't know how does my system survive it.

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


Re: [linux-usb-devel] Re: Problems with connect/disconnect cycles

2005-08-20 Thread Norbert Preining
On Sam, 20 Aug 2005, Alan Stern wrote:
> Speaking in broad terms, it's normal to see new device connection and
> configuration messages like the ones above when a USB device is plugged in
> to your computer.  What's not normal is to see disconnects.  So you should

Mind that this is an *internal* builtin card reader on my laptop. I will
go through the log files and look if I find patterns.

> why is the card reader disconnecting?  Turning on CONFIG_USB_DEBUG may 

ok.

Best wishes

Norbert

---
Dr. Norbert Preining  Università di Siena
sip:[EMAIL PROTECTED] +43 (0) 59966-690018
gpg DSA: 0x09C5B094  fp: 14DF 2E6C 0307 BE6D AD76  A9C0 D2BF 4AA3 09C5 B094
---
AASLEAGH (n.)
A liqueur made only for drinking at the end of a revoltingly long
bottle party when all the drinkable drink has been drunk.
--- Douglas Adams, The Meaning of Liff
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: largefile-support-for-accounting.patch added to -mm tree

2005-08-20 Thread Chris Wedgwood
On Sat, Aug 20, 2005 at 05:33:27PM -0700, [EMAIL PROTECTED] wrote:

> Another annoying problem is that once the system reaches this 2GB
> limit, then every process which exits will receive a signal,
> SIGXFSZ.  This signal is generated because an attempt was made to
> write beyond the limit for the file descriptor.  This signal makes
> it look like every process has exited due to a signal, when in fact,
> they have not.

Eeek.

> The solution is to add the O_LARGEFILE flag to the list of flags
> used to open the accounting file.  The rest of the accounting
> support is already largefile safe.

That fixes the larger accounting file problem but it doesn't address
the fact that signals resulting writes to the accounting file are
delivered incorrectly.

We could still have issues if the accounting file as over quota for
example.  Surely all accounting file writes should be insulated from
the processes involved?

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


Re: [linux-usb-devel] Re: Problems with connect/disconnect cycles

2005-08-20 Thread Alan Stern
On Sun, 21 Aug 2005, Norbert Preining wrote:

> Hi USB developers, hi Andrew!
> 
> On Mon, 21 Mär 2005, preining wrote:
> > Dear usb developers, dear Andrew!
> > 
> > I found that my builtin sd card reader connected via USB port
> > experiences several connect/reconnect cycles every time I boot.
> > 
> > I am using 2.6.11-mm4.
> 
> Same now with 2.6.13-rc6-mm1. This time it got really bad:
> 
> Aug 20 14:00:19 gandalf vmunix: usb 2-2: USB disconnect, address 2
> Aug 20 14:00:19 gandalf kernel: usb 2-2: new full speed USB device using 
> uhci_hcd and address 3
> Aug 20 14:00:19 gandalf kernel: scsi1 : SCSI emulation for USB Mass Storage 
> devices
> Aug 20 14:00:19 gandalf kernel: usb-storage: device found at 3
> Aug 20 14:00:19 gandalf kernel: usb-storage: waiting for device to settle 
> before scanning
> Aug 20 14:00:21 gandalf usb.agent[6109]:  usb-storage: already loaded
> Aug 20 14:00:24 gandalf vmunix:   Vendor: Generic   Model: Flash R/W 
> Rev: 2002
> Aug 20 14:00:24 gandalf vmunix:   Type:   Direct-Access  
> ANSI SCSI revision: 02
> Aug 20 14:00:24 gandalf vmunix: Attached scsi removable disk sda at scsi1, 
> channel 0, id 0, lun 0
> Aug 20 14:00:24 gandalf kernel: usb-storage: device scan complete
> Aug 20 14:00:26 gandalf scsi.agent[6154]:  sd_mod: loaded successfully 
> (for disk)

> Unfortunately I cannot in any way track down this problem to specific
> kernels, or specific work situations. It sometimes happens, sometimes
> not. 
> 
> If anyone has any idea how to debug such a stupid problem, I would be
> glad. 

Speaking in broad terms, it's normal to see new device connection and
configuration messages like the ones above when a USB device is plugged in
to your computer.  What's not normal is to see disconnects.  So you should
be concentrating on what happens just before the log entries you posted --
why is the card reader disconnecting?  Turning on CONFIG_USB_DEBUG may 
provide more help.

Alan Stern

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


Re: Schedulers benchmark - Was: [ANNOUNCE][RFC] PlugSched-5.2.4 for 2.6.12 and 2.6.13-rc6

2005-08-20 Thread Con Kolivas
On Sun, 21 Aug 2005 11:34, Michal Piotrowski wrote:
> Hi,

Hi

> here are kernbench results:

Nice to see you using kernbench :)

> ./kernbench -M -o 128
> [..]
> Average Optimal -j 128 Load Run:

Was there any reason you chose 128? Optimal usually works out automatically 
from kernbench to 4x number_cpus. If I recall correctly you have 4 cpus? Not 
sure what 128 represents. 

Cheers,
Con
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Schedulers benchmark - Was: [ANNOUNCE][RFC] PlugSched-5.2.4 for 2.6.12 and 2.6.13-rc6

2005-08-20 Thread Michal Piotrowski
[1.] One line summary of the problem:
oops when shuting down system

[2.] Full description of the problem/report:
After kernbenching nicksched (heav load make -j128) I just record
results on cd and shutdown system.

[3.] Keywords (i.e., modules, networking, kernel):
plugsched, nicksched, sysfs, vfs

[4.] Kernel version (from /proc/version):
Linux version 2.6.13-rc6-2 ([EMAIL PROTECTED]) (gcc version 3.3.5 (Debian
1:3.3.5-13)) #14 SMP Mon Aug 15 08:50:46 CEST 2005

[5.] Output of Oops
Aug 21 03:21:32 ng02 shutdown[9216]: shutting down for system halt
Aug 21 03:21:33 ng02 kernel: c0003eac
Aug 21 03:21:33 ng02 kernel: PREEMPT SMP
Aug 21 03:21:33 ng02 kernel: Modules linked in: nls_iso8859_1 isofs
nls_base zliAug 21 03:21:33 ng02 kernel: CPU:0
Aug 21 03:21:33 ng02 kernel: EIP:0060:[]Not tainted VLI
Aug 21 03:21:33 ng02 kernel: EFLAGS: 00010246   (2.6.13-rc6-2)
Aug 21 03:21:33 ng02 kernel: EIP is at 0xc0003eac
Aug 21 03:21:33 ng02 kernel: eax: e668b000   ebx: f7cec680   ecx:
   edxAug 21 03:21:33 ng02 kernel: esi: f7cec688   edi:
c036dd04   ebp: ca8f5440   espAug 21 03:21:33 ng02 kernel: ds: 007b  
es: 007b   ss: 0068
Aug 21 03:21:33 ng02 kernel: Process udev (pid: 9771,
threadinfo=cfa39000 task=fAug 21 03:21:33 ng02 kernel: Stack: c02386f2
f7cec680 e668b000 f6cfb0c0 c01a8fedAug 21 03:21:33 ng02 kernel:   
 f6cfb0c0 f744e980 080c6f48 Aug 21 03:21:33 ng02
kernel:f744e980 080c6f48 1000 c016e629 f744e980Aug 21
03:21:33 ng02 kernel: Call Trace:
Aug 21 03:21:33 ng02 kernel:  [] class_device_attr_show+0x32/0x40
Aug 21 03:21:33 ng02 kernel:  [] fill_read_buffer+0x5d/0xa0
Aug 21 03:21:33 ng02 kernel:  [] sysfs_read_file+0x31/0x70
Aug 21 03:21:33 ng02 kernel:  [] vfs_read+0xe9/0x1b0
Aug 21 03:21:33 ng02 kernel:  [] sys_read+0x51/0x80
Aug 21 03:21:33 ng02 kernel:  [] syscall_call+0x7/0xb
Aug 21 03:21:33 ng02 kernel: Code: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Aug 21 03:21:37 ng02 kernel: Kernel logging (proc) stopped.

[7.] Environment

[7.1.] Software
If some fields are empty or look unusual you may have an old version.
Compare to the current minimal requirements in Documentation/Changes.
 
Linux ng02.pl 2.6.13-rc6-2 #14 SMP Mon Aug 15 08:50:46 CEST 2005 i686 GNU/Linux
 
Gnu C  3.3.5
Gnu make   3.80
binutils   2.15
util-linux 2.12p
mount  2.12p
module-init-tools  3.2-pre1
e2fsprogs  1.37
reiserfsprogs  line
reiser4progs   line
PPP2.4.3
nfs-utils  1.0.6
Linux C Library2.3.2
Dynamic linker (ldd)   2.3.2
Linux C++ Library  6.0.4
Procps 3.2.1
Net-tools  1.60
Console-tools  0.2.3
Sh-utils   5.2.1
udev   056
Modules Loaded md5 ipv6 af_packet snd_intel8x0 snd_ac97_codec
snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd soundcore
snd_page_alloc hw_random ehci_hcd uhci_hcd usbcore sk98lin i2c_isa
i2c_i801 i2c_core ide_cd cdrom unix

[8.] Config file
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.13-rc6
# Mon Aug 15 08:41:41 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 is not set
CONFIG_CLEAN_COMPILE=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32

#
# General setup
#
CONFIG_LOCALVERSION="-2"
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_SYSCTL=y
CONFIG_AUDIT=y
CONFIG_AUDITSYSCALL=y
CONFIG_HOTPLUG=y
CONFIG_KOBJECT_UEVENT=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
# CONFIG_CPUSETS is not set
CONFIG_PLUGSCHED=y
CONFIG_CPUSCHED_DEFAULT_INGO=y
# CONFIG_CPUSCHED_DEFAULT_STAIRCASE is not set
# CONFIG_CPUSCHED_DEFAULT_SPA_NF is not set
# CONFIG_CPUSCHED_DEFAULT_ZAPHOD is not set
# CONFIG_CPUSCHED_DEFAULT_NICK is not set
# CONFIG_EMBEDDED is not set
CONFIG_CPUSCHED_INGO=y
CONFIG_CPUSCHED_STAIRCASE=y
CONFIG_CPUSCHED_SPA=y
CONFIG_CPUSCHED_SPA_NF=y
CONFIG_CPUSCHED_ZAPHOD=y
CONFIG_CPUSCHED_NICK=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
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
CONFIG_BASE_SMALL=0

#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_OBSOLETE_MODPARM=y
CONFIG_MODULE_SRCVERSION_ALL=y
CONFIG_KMOD=y
CONFIG_STOP_MACHINE=y

#
# Processor type and features
#
CONFIG_X86_PC=y
# 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 is not set
# CONFIG_X86_ES7000 is not set
# CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# 

Re: Schedulers benchmark - Was: [ANNOUNCE][RFC] PlugSched-5.2.4 for 2.6.12 and 2.6.13-rc6

2005-08-20 Thread Michal Piotrowski
Hi,
here are kernbench results:

cpusched=ingosched

./kernbench -M -o 128
[..]
Average Optimal -j 128 Load Run:
Elapsed Time 365,4
User Time 620,8
System Time 64,6
Percent CPU 187,2
Context Switches 38296,8
Sleeps 37867

(reboot)

---

cpusched=staircase

./kernbench -M -o 128
[..]
Average Optimal -j 128 Load Run:
Elapsed Time 611,6
User Time 616,4
System Time 81
Percent CPU 114,8
Context Switches 96470,2
Sleeps 122413

(reboot)

---

sched_compute=1

./kernbench -M -o 128
[..]
Average Optimal -j 128 Load Run:
Elapsed Time 354,6
User Time 615,2
System Time 61
Percent CPU 190
Context Switches 9876,4
Sleeps 18510,4

(reboot)

---

cpusched=spa_no_frills

./kernbench -M -o 128
[..]
Average Optimal -j 128 Load Run:
Elapsed Time 352
User Time 624
System Time 60
Percent CPU 193,8
Context Switches 19185,4
Sleeps 18205,8

(reboot)

---

cpusched=zaphod

max_ia_bonus=default
max_tpt_bonus=default

./kernbench -M -o 128
[..]
Average Optimal -j 128 Load Run:
Elapsed Time 389,4
User Time 607,8
System Time 58,8
Percent CPU 170,8
Context Switches 44965,2
Sleeps 27352,8

(reboot)

---

max_ia_bonus=0
max_tpt_bonus=default

./kernbench -M -o 128
[..]
Average Optimal -j 128 Load Run:
Elapsed Time 351,4
User Time 623,4
System Time 59,8
Percent CPU 194
Context Switches 21264,6
Sleeps 20284,6

(reboot)

---

max_ia_bonus=default
max_tpt_bonus=0

./kernbench -M -o 128
[..]
Elapsed Time 387,6
User Time 608
System Time 57,6
Percent CPU 171,6
Context Switches 43684,8
Sleeps 26757,4

(reboot)

---

max_ia_bonus=0
max_tpt_bonus=0

./kernbench -M -o 128
[..]
Average Optimal -j 128 Load Run:
Elapsed Time 351
User Time 623,4
System Time 60,4
Percent CPU 194,2
Context Switches 21241,8
Sleeps 19751,6

(reboot)

---

cpusched=nicksched

./kernbench -M -o 128
[..]
Average Optimal -j 128 Load Run:
Elapsed Time 776,4
User Time 590,8
System Time 85,4
Percent CPU 95,4
Context Switches 99664,8
Sleeps 147169

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


Re: Problems with connect/disconnect cycles

2005-08-20 Thread Norbert Preining
Hi USB developers, hi Andrew!

On Mon, 21 Mär 2005, preining wrote:
> Dear usb developers, dear Andrew!
> 
> I found that my builtin sd card reader connected via USB port
> experiences several connect/reconnect cycles every time I boot.
> 
> I am using 2.6.11-mm4.

Same now with 2.6.13-rc6-mm1. This time it got really bad:

Aug 20 14:00:19 gandalf vmunix: usb 2-2: USB disconnect, address 2
Aug 20 14:00:19 gandalf kernel: usb 2-2: new full speed USB device using 
uhci_hcd and address 3
Aug 20 14:00:19 gandalf kernel: scsi1 : SCSI emulation for USB Mass Storage 
devices
Aug 20 14:00:19 gandalf kernel: usb-storage: device found at 3
Aug 20 14:00:19 gandalf kernel: usb-storage: waiting for device to settle 
before scanning
Aug 20 14:00:21 gandalf usb.agent[6109]:  usb-storage: already loaded
Aug 20 14:00:24 gandalf vmunix:   Vendor: Generic   Model: Flash R/W 
Rev: 2002
Aug 20 14:00:24 gandalf vmunix:   Type:   Direct-Access  
ANSI SCSI revision: 02
Aug 20 14:00:24 gandalf vmunix: Attached scsi removable disk sda at scsi1, 
channel 0, id 0, lun 0
Aug 20 14:00:24 gandalf kernel: usb-storage: device scan complete
Aug 20 14:00:26 gandalf scsi.agent[6154]:  sd_mod: loaded successfully (for 
disk)



Aug 21 01:55:44 gandalf vmunix: usb 2-2: USB disconnect, address 32
Aug 21 01:55:44 gandalf kernel: usb 2-2: new full speed USB device using 
uhci_hcd and address 33
Aug 21 01:55:44 gandalf kernel: scsi32 : SCSI emulation for USB Mass Storage 
devices
Aug 21 01:55:44 gandalf kernel: usb-storage: device found at 33
Aug 21 01:55:44 gandalf kernel: usb-storage: waiting for device to settle 
before scanning
Aug 21 01:55:47 gandalf usb.agent[17503]:  usb-storage: already loaded
Aug 21 01:55:49 gandalf vmunix:   Vendor: Generic   Model: Flash R/W 
Rev: 2002
Aug 21 01:55:49 gandalf vmunix:   Type:   Direct-Access  
ANSI SCSI revision: 02
Aug 21 01:55:49 gandalf kernel: Attached scsi removable disk sda at scsi32, 
channel 0, id 0, lun 0
Aug 21 01:55:49 gandalf vmunix: usb-storage: device scan complete
Aug 21 01:55:50 gandalf scsi.agent[17544]:  sd_mod: loaded successfully 
(for disk)


uuu, now many of these

Aug 21 02:09:18 gandalf vmunix: ACPI-0131: *** Error: Invalid owner_id: 00


and many many more of these:

Aug 21 03:07:19 gandalf vmunix: ACPI-0096: *** Error: Could not allocate 
new owner_id (32 max), AE_OWNER_ID_LIMIT



Unfortunately I cannot in any way track down this problem to specific
kernels, or specific work situations. It sometimes happens, sometimes
not. 

If anyone has any idea how to debug such a stupid problem, I would be
glad. 

Best wishes

Norbert

---
Dr. Norbert Preining  Università di Siena
sip:[EMAIL PROTECTED] +43 (0) 59966-690018
gpg DSA: 0x09C5B094  fp: 14DF 2E6C 0307 BE6D AD76  A9C0 D2BF 4AA3 09C5 B094
---
HUCKNALL (vb.)
To crouch upwards: as in the movement of a seated person's feet and
legs made in order to allow a cleaner's hoover to pass beneath them.
--- Douglas Adams, The Meaning of Liff
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: sched_yield() makes OpenLDAP slow

2005-08-20 Thread Robert Hancock

Howard Chu wrote:
I'll note that we removed a number of the yield calls (that were in 
OpenLDAP 2.2) for the 2.3 release, because I found that they were 
redundant and causing unnecessary delays. My own test system is running 
on a Linux 2.6.12.3 kernel (installed over a SuSE 9.2 x86_64 distro), 
and OpenLDAP 2.3 runs perfectly well here, now that those redundant 
calls have been removed. But I also found that I needed to add a new 
yield(), to work around yet another unexpected issue on this system - we 
have a number of threads waiting on a condition variable, and the thread 
holding the mutex signals the var, unlocks the mutex, and then 
immediately relocks it. The expectation here is that upon unlocking the 
mutex, the calling thread would block while some waiting thread (that 
just got signaled) would get to run. In fact what happened is that the 
calling thread unlocked and relocked the mutex without allowing any of 
the waiting threads to run. In this case the only solution was to insert 
a yield() after the mutex_unlock(). So again, for those of you claiming 
"oh, all you need to do is use a condition variable or any of the other 
POSIX synchronization primitives" - yes, that's a nice theory, but 
reality says otherwise.


I encountered a similar issue with some software that I wrote, and used 
a similar workaround, however this was basically because there wasn't 
enough time available at the time to redesign things to work properly. 
The problem here is essentially caused by the fact that the mutex is 
being locked for an excessively large proportion of the time and not 
letting other threads in. In the case I am thinking of, posting the 
messages to the thread that was hogging the mutex via a signaling queue 
would have been a better solution than using yield and having correct 
operation depend on undefined parts of thread scheduling behavior..


--
Robert Hancock  Saskatoon, SK, Canada
To email, remove "nospam" from [EMAIL PROTECTED]
Home Page: http://www.roberthancock.com/

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


Re: [PATCH 2.6.13-rc6 1/2] New Syscall: get rlimits of any process

2005-08-20 Thread Andrew Morton
Wieland Gmeiner <[EMAIL PROTECTED]> wrote:
>
> +asmlinkage long sys_getprlimit(pid_t pid, unsigned int resource, struct 
> rlimit __user *rlim)
>  +{
>  +struct rlimit value;
>  +task_t *p;
>  +int retval = -EINVAL;
>  +
>  +if (resource >= RLIM_NLIMITS)
>  +goto out_nounlock;
>  +
>  +if (pid < 0)
>  +goto out_nounlock;
>  +
>  +retval = -ESRCH;
>  +if (pid == 0) {
>  +p = current;
>  +} else {
>  +read_lock(&tasklist_lock);
>  +p = find_task_by_pid(pid);
>  +}
>  +if (p) {
>  +retval = -EPERM;
>  +if ((current->euid ^ p->suid) && (current->euid ^ p->uid) &&
>  +(current->uid ^ p->suid) && (current->uid ^ p->uid) &&
>  +!capable(CAP_SYS_RESOURCE))
>  +goto out_unlock;
>  +
>  +task_lock(p->group_leader);
>  +value = p->signal->rlim[resource];
>  +task_unlock(p->group_leader);

There isn't much point in taking task_lock() here.  The value can change
after the lock has been dropped anyway.

>  +retval = copy_to_user(rlim, &value, sizeof(*rlim)) ? 
> -EFAULT : 0;

It's not legal to perform copy_*_user() (which sleeps) inside read_lock(),
write_lock(), spin_lock(), preempt_diable() or, really,
local_irq_disable().

>  +}
>  +if (pid == 0)
>  +goto out_nounlock;
>  +
>  +out_unlock:
>  +read_unlock(&tasklist_lock);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [OT]Linus trademarks Linux?!!

2005-08-20 Thread Linus Torvalds

Gaah. I don't tend to bother about slashdot, because quite frankly, the 
whole _point_ of slashdot is to have this big public wanking session with 
people getting together and making their own "insightful" comment on any 
random topic, whether they know anything about it or not.

[ And don't get me wrong - I follow slashdot too, exactly because it's fun 
  to see people argue. I'm not complaining ;]

And I don't tend to worry about the Inquirer and the Register, because 
both of them are all about being rough and saying things in ways that 
might not be acceptable in other places, and that's what makes them fun to 
read. So when they then write something nasty about Linux (or me), hey, it 
goes with the territory.

But I was really hoping this particular wanking session wouldn't overflow 
into Linux-kernel.

Anyway, the posting Jesper points to is a fine one. Partly to show that
this trademark thing sure as hell isn't anything new, and partly because
the rules really haven't changed.

So let's repeat that link again, just as background,

http://boudicca.tux.org/hypermail/linux-kernel/2000week04/0654.html

and then people should think a bit (and maybe research) what a trademark 
really means.

A trademark exists to set up some rules about using a "mark" (name, logo,
you name it) in trade. The people who pay to license (or get a unique
trademark of their own) a certain name do so because they care about that
particular name. People who don't care, don't pay. It's really that easy. 
It's about getting legal protection for a particular name.

For example, this means that a _user_ would never pay a single cent over a 
trademark. I don't know why/how the Inq even came to that "companies to 
pay for using free software" idea. It shows a total lack of understanding 
about what a trademark is in the first place.

Now, a company that has a company name usually _does_ want to protect
their name. Not always, but it's kind of embarrassing (and easily an
expensive and big bother) if somebody else trademarks that name, and then
sends a cease-and-desist order to you and forces you to switch to 
something else.

So you'll find that most commerical entities protect their name some way,
regardless of _what_ that name is. For example, let's say that you called 
your company or distribution "Lipro", then you'd like to trademark that. 
Goodie. It's pretty expensive, but most companies feel that it's more than 
worth it to know that you've got exclusive rights to that name, and nobody 
else can force you to change,

So the first point here is that regardless of you call your Linux
distribution "Linux Something" or something totally different, you'll want
to protect that name if you are serious about making a big commercial
distribution. Exactly because you do _not_ want to be in the situation
that somebody else hijacks your name from you.

Now, you can do that protection two different ways: you can make up a 
unique name of your own ("Red Hat" or "Linspire" or "Debian" or whatever), 
and trademark that. Then the trademark office keeps track of things, and 
guarantees that there are no clashes (within your business area). 

Or, alternatively, you can ask somebody else who already has a unique name
if they might "sublicense" their name in combination with something else.  
In the case of "Linux", that name is already guaranteed unique by the
trademark office, so let's say that you felt that you wanted to have a
unique name that contained that, you'd approach LMI and say "I want to
call my magazine LinuxJournal, can you write up paperwork that makes sure
that nobody else can do so"?

And let's repeat: somebody who doesn't want to _protect_ that name would 
never do this. You can call anything "MyLinux", but the downside is that 
you may have somebody else who _did_ protect himself come along and send 
you a cease-and-desist letter. Or, if the name ends up showing up in a 
trademark search that LMI needs to do every once in a while just to 
protect the trademark (another legal requirement for trademarks), LMI 
itself might have to send you a cease-and-desist-or-sublicense it letter. 

At which point you either rename it to something else, or you sublicense 
it. See? It's all about whether _you_ need the protection or not, not 
about whether LMI wants the money or not.

As to the "cease-and-desist or sublicense the mark" letters, they are 
sadly directly brought on by the requirements of maintaining a trademark. 
If you have a trademark, you have to police it, which means that you have 
to do trademark searches to see who uses it in a commercial setting, and 
make sure that they use it properly.

So to answer a particular question that came up here on Linux-kernel:  
"Does the linuxjournal.com pay $5000?".

First off, I don't know where the $5000 came from - it's different for
different classes of people. Secondly, LinuxJournal was one of the
companies that raised the money to get the "Linux" trademark in the first
place! As

[PATHC] remove a redundant variable in sys_prctl()

2005-08-20 Thread Jesper Juhl
Here's a re-send of a small patch I sent on Aug. 9.

The patch removes a redundant variable `sig' from sys_prctl().

For some reason, when sys_prctl is called with option == PR_SET_PDEATHSIG
then the value of arg2 is assigned to an int variable named sig. Then sig
is tested with valid_signal() and later used to set the value of 
current->pdeath_signal . 
There is no reason to use this intermediate variable since valid_signal() 
takes a unsigned long argument, so it can handle being passed arg2 directly, 
and if the call to valid_signal is OK, then we know the value of arg2 is in 
the range  zero to _NSIG and thus it'll easily fit in a plain int and thus 
there's no problem assigning it later to current->pdeath_signal (which is 
an int).

The patch gets rid of the pointless variable `sig'.
This reduces the size of kernel/sys.o in 2.6.13-rc6-mm1 by 32 bytes on my 
system.

Patch has been compile tested, boot tested, and just to make damn sure I 
didn't break anything I wrote a quick test app that calls 
prctl(PR_SET_PDEATHSIG ...) with the entire range of values for a 
unsigned long, and it behaves as expected with and without the patch.


Signed-off-by: Jesper Juhl <[EMAIL PROTECTED]>
---

 kernel/sys.c |6 ++
 1 files changed, 2 insertions(+), 4 deletions(-)

--- linux-2.6.13-rc6-mm1-orig/kernel/sys.c  2005-08-19 19:21:25.0 
+0200
+++ linux-2.6.13-rc6-mm1/kernel/sys.c   2005-08-21 01:30:03.0 +0200
@@ -1709,7 +1709,6 @@ asmlinkage long sys_prctl(int option, un
  unsigned long arg4, unsigned long arg5)
 {
long error;
-   int sig;
 
error = security_task_prctl(option, arg2, arg3, arg4, arg5);
if (error)
@@ -1717,12 +1716,11 @@ asmlinkage long sys_prctl(int option, un
 
switch (option) {
case PR_SET_PDEATHSIG:
-   sig = arg2;
-   if (!valid_signal(sig)) {
+   if (!valid_signal(arg2)) {
error = -EINVAL;
break;
}
-   current->pdeath_signal = sig;
+   current->pdeath_signal = arg2;
break;
case PR_GET_PDEATHSIG:
error = put_user(current->pdeath_signal, (int __user 
*)arg2);



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


Re: sched_yield() makes OpenLDAP slow

2005-08-20 Thread Nick Piggin

Howard Chu wrote:

Lee Revell wrote:


 On Sat, 2005-08-20 at 11:38 -0700, Howard Chu wrote:
> But I also found that I needed to add a new yield(), to work around
> yet another unexpected issue on this system - we have a number of
> threads waiting on a condition variable, and the thread holding the
> mutex signals the var, unlocks the mutex, and then immediately
> relocks it. The expectation here is that upon unlocking the mutex,
> the calling thread would block while some waiting thread (that just
> got signaled) would get to run. In fact what happened is that the
> calling thread unlocked and relocked the mutex without allowing any
> of the waiting threads to run. In this case the only solution was
> to insert a yield() after the mutex_unlock().

 That's exactly the behavior I would expect.  Why would you expect
 unlocking a mutex to cause a reschedule, if the calling thread still
 has timeslice left?



That's beside the point. Folks are making an assertion that 
sched_yield() is meaningless; this example demonstrates that there are 
cases where sched_yield() is essential.




The point is, with SCHED_OTHER scheduling, sched_yield() need not
do anything. It may not let any other tasks run.

The fact that it does on Linux is because we do attempt to do
something expected... but the simple matter is that you can't realy
on it to do what you expect.

I'm not sure exactly how you would solve the above problem, but I'm
sure it can be achieved using mutexes (for example, you could have
a queue where every thread waits on its own private mutex) but I
don't do much userspace C programming sorry.

Send instant messages to your online friends http://au.messenger.yahoo.com 


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


Re: RTL8139, the final patch ?

2005-08-20 Thread OGAWA Hirofumi
Nick Warne <[EMAIL PROTECTED]> writes:

> On Saturday 20 August 2005 21:53, you wrote:
>> I have a problem with it:
>> It's about patching, reverting, patching, reverting,...
>> I got lost. That's why I asked for a... "straighter" one :-)
>
>>> But I looked at what he said and found the real problem on my system (after 
>>> all that):
>>> http://www.ussg.iu.edu/hypermail/linux/kernel/0403.1/1537.html
>
>> It's about a configuration option in the kernel?
>> The patch is about adding the option, if i'm right.
>
> No, what happened was on 2.6.2 all was well.  When 2.6.3 came out I got these 
> timeout errors on the NIC's - but using the 2.6.2 8139too.c file in 2.6.3 
> worked.  Mr Hirofumi then took up the challenge and sent me patches.  Slowly 
> he resolved the issue, but the conclusion was it wasn't the code causing it.
>
> It was an option in my BIOS PCI level/edge settings as I posted.  People on 
> laptops get this error, like you, but there is no BIOS option as such... :-/

Yes. Thanks Nick.

Rakotomandimby, can you try attached patch?

It would solve the problem, if the cause is level/edge trigger.
(Actually, patch is just hideing the problem.)

And please send dmesg, lspci -vvvxxx, cat /proc/interrupts, 8259A.pl, mptable.
In some cases, we may be able to add workaround. But we need to find
the cause of problem before it.
-- 
OGAWA Hirofumi <[EMAIL PROTECTED]>


Disable 8139too NAPI for testing the Leval-Edge trigger problem

Signed-off-by: OGAWA Hirofumi <[EMAIL PROTECTED]>
---

 drivers/net/8139too.c |   37 ++---
 1 files changed, 30 insertions(+), 7 deletions(-)

diff -puN drivers/net/8139too.c~8139too-napi-revert drivers/net/8139too.c
--- linux-2.6.13-rc6/drivers/net/8139too.c~8139too-napi-revert	2005-08-16 03:42:13.0 +0900
+++ linux-2.6.13-rc6-hirofumi/drivers/net/8139too.c	2005-08-16 03:52:15.0 +0900
@@ -112,7 +112,7 @@
 #include 
 #include 
 
-#define RTL8139_DRIVER_NAME   DRV_NAME " Fast Ethernet driver " DRV_VERSION
+#define RTL8139_DRIVER_NAME   DRV_NAME " Fast Ethernet driver (Disable NAPI) " DRV_VERSION
 #define PFX DRV_NAME ": "
 
 /* Default Message level */
@@ -120,6 +120,7 @@
  NETIF_MSG_PROBE  | \
  NETIF_MSG_LINK)
 
+//#define ENABLE_NAPI
 
 /* enable PIO instead of MMIO, if CONFIG_8139TOO_PIO is selected */
 #ifdef CONFIG_8139TOO_PIO
@@ -624,7 +625,9 @@ static void rtl8139_tx_timeout (struct n
 static void rtl8139_init_ring (struct net_device *dev);
 static int rtl8139_start_xmit (struct sk_buff *skb,
 			   struct net_device *dev);
+#ifdef ENABLE_NAPI
 static int rtl8139_poll(struct net_device *dev, int *budget);
+#endif
 #ifdef CONFIG_NET_POLL_CONTROLLER
 static void rtl8139_poll_controller(struct net_device *dev);
 #endif
@@ -974,8 +977,10 @@ static int __devinit rtl8139_init_one (s
 	/* The Rtl8139-specific entries in the device structure. */
 	dev->open = rtl8139_open;
 	dev->hard_start_xmit = rtl8139_start_xmit;
+#ifdef ENABLE_NAPI
 	dev->poll = rtl8139_poll;
 	dev->weight = 64;
+#endif
 	dev->stop = rtl8139_close;
 	dev->get_stats = rtl8139_get_stats;
 	dev->set_multicast_list = rtl8139_set_rx_mode;
@@ -2024,8 +2029,11 @@ no_early_rx:
 			dev->last_rx = jiffies;
 			tp->stats.rx_bytes += pkt_size;
 			tp->stats.rx_packets++;
-
+#ifdef ENABLE_NAPI
 			netif_receive_skb (skb);
+#else
+			netif_rx (skb);
+#endif
 		} else {
 			if (net_ratelimit()) 
 printk (KERN_WARNING
@@ -2103,7 +2111,7 @@ static void rtl8139_weird_interrupt (str
 			dev->name, pci_cmd_status);
 	}
 }
-
+#ifdef ENABLE_NAPI
 static int rtl8139_poll(struct net_device *dev, int *budget)
 {
 	struct rtl8139_private *tp = netdev_priv(dev);
@@ -2137,7 +2145,7 @@ static int rtl8139_poll(struct net_devic
 
 	return !done;
 }
-
+#endif /* !ENABLE_NAPI */
 /* The interrupt handler does all of the Rx thread work and cleans up
after the Tx thread. */
 static irqreturn_t rtl8139_interrupt (int irq, void *dev_instance,
@@ -2149,8 +2157,14 @@ static irqreturn_t rtl8139_interrupt (in
 	u16 status, ackstat;
 	int link_changed = 0; /* avoid bogus "uninit" warning */
 	int handled = 0;
+#ifndef ENABLE_NAPI
+	int boguscnt = 20;
+#endif
 
 	spin_lock (&tp->lock);
+#ifndef ENABLE_NAPI
+retry:
+#endif
 	status = RTL_R16 (IntrStatus);
 
 	/* shared irq? */
@@ -2162,13 +2176,13 @@ static irqreturn_t rtl8139_interrupt (in
 	/* h/w no longer present (hotplug?) or major error, bail */
 	if (unlikely(status == 0x)) 
 		goto out;
-
+#ifdef ENABLE_NAPI
 	/* close possible race's with dev_close */
 	if (unlikely(!netif_running(dev))) {
 		RTL_W16 (IntrMask, 0);
 		goto out;
 	}
-
+#endif
 	/* Acknowledge all of the current interrupt sources ASAP, but
 	   an first get an additional status bit from CSCR. */
 	if (unlikely(status & RxUnderrun))
@@ -2178,6 +2192,7 @@ static irqreturn_t rtl8139_interrupt (in
 	if (ackstat)
 		RTL_W16 (IntrStatus, ackstat);
 
+#ifdef ENABLE_NAPI
 	/* Receive packets are processed by pol

Re: [-mm patch] net/core/sysctl_net_core.c: fix PROC_FS=n compile

2005-08-20 Thread David S. Miller
From: Adrian Bunk <[EMAIL PROTECTED]>
Date: Sat, 20 Aug 2005 21:03:09 +0200

> This breaks the compilation with CONFIG_PROC_FS=n:
 ..
> Signed-off-by: Adrian Bunk <[EMAIL PROTECTED]>

Applied, thanks Adrian.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH/RFT 4/5] CLOCK-Pro page replacement

2005-08-20 Thread Horst von Brand
Rusty Russell <[EMAIL PROTECTED]> wrote:
> On Fri, 2005-08-19 at 00:10 -0700, Andrew Morton wrote:
> > Rusty Russell <[EMAIL PROTECTED]> wrote:
> > > I believe we just ignored sparc64.  That usually works for solving these
> > > kind of bugs. 8)
> > 
> > heh.  iirc, it was demonstrable on x86 also.
> 
> No.  gcc-2.95 on Sparc64 put uninititialized vars into the bss, ignoring
> the __attribute__((section(".data.percpu"))) directive.  x86 certainly
> doesn't have this, I just tested it w/2.95.
> 
> Really, it's Sparc64 + gcc-2.95.  Send an urgent telegram to the user
> telling them to upgrade.

I recently asked if gcc-2.95 was really still supported, and was told that
it is in common use for its speed...
-- 
Dr. Horst H. von Brand   User #22616 counter.li.org
Departamento de Informatica Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria  +56 32 654239
Casilla 110-V, Valparaiso, ChileFax:  +56 32 797513
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 0/5] improve i2c probing

2005-08-20 Thread Mark Underwood
Interestingly (we for me at least ;-) I have been
working on an SPI subsystem that was/is a copy of the
I2C subsystem with changes as SPI doesn’t have a
protocol like I2C. I am at the stage of tidying up the
structures in the head files and looking at where they
are used in the core layer.
To me, what I have, like I2C, doesn’t tie in very well
with the new driver model (although I’m not overly
familiar with it, I think I finally understand
platform devices :-). The current I2C core layer seems
to be only registering a bus type and devices so you
can see them in sysfs as none of the functions seem to
do anything.
I wonder how much work the new kernel subsystems can
do for us to cut down the size of i2c-core (and thus
also spi-core).
I guess there is no escaping the fact that I’m going
to gave to do some more homework and study the code.
Any thoughts or insights would be very welcome.

Mark

--- David Brownell <[EMAIL PROTECTED]> wrote:

> Hmm, some of this resembles my prototype from last
> month:
> 
>   
>
http://lists.lm-sensors.org/pipermail/lm-sensors/2005-July/013012.html
> 
> Both ended up with new driver probe() methods
> attaching to *devices* not
> to busses, and used the probe signature the i2c core
> already handles.
> That helps eliminate one of the surprises hitting
> anyone starting to use
> the I2C driver stack.  But not the more fundamental
> one...
> 
> What would you think about actually making I2C
> probing work more like
> standard driver model probing, instead?  That is,
> have the probe method
> signature look like this:
> 
> int probe(struct i2c_client *dev, void
> *driver_data)
> 
> In normal driver model usage, infrastructure creates
> the devices, and the
> device drivers just bind to them.  But I2C doesn't
> support that even for
> the submodel where it's very appropriate:  devices
> that have been probed,
> or which (as with platform_bus) were explicitly
> declared to exist.
> 
> I2C drivers would either continue the old school way
> ... or could start
> acting more like they do in other mainstream Linux
> driver frameworks.
> 
> - Dave
> 
> 
> -
> To unsubscribe from this list: send the line
> "unsubscribe linux-kernel" in
> the body of a message to [EMAIL PROTECTED]
> More majordomo info at 
> http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
> 




___ 
To help you stay safe and secure online, we've developed the all new Yahoo! 
Security Centre. http://uk.security.yahoo.com
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 2.6.13-rc6] dcdbas: add Dell Systems Management Base Driver with sysfs support

2005-08-20 Thread Doug Warzecha
This patch adds the Dell Systems Management Base Driver with sysfs support.

This patch incorporates changes based on comments from the previous posting.

Summary of changes:

* Changed permissions on sysfs files so that only owner can read.
* Changed to use __uNN/__sNN types in structs.
* smi_data_write will grow smi_data_buf if needed.
* Renamed struct callintf_cmd to struct smi_cmd.
* Renamed callintf_smi to smi_request.
* Added 2 more supported values that were requested in smi_request_store.
* Hold rtc_lock across SMI in host_control_smi.

Signed-off-by: Doug Warzecha <[EMAIL PROTECTED]>
---

diff -uprN linux-2.6.13-rc6.orig/Documentation/dcdbas.txt 
linux-2.6.13-rc6/Documentation/dcdbas.txt
--- linux-2.6.13-rc6.orig/Documentation/dcdbas.txt  1969-12-31 
18:00:00.0 -0600
+++ linux-2.6.13-rc6/Documentation/dcdbas.txt   2005-08-19 18:45:37.0 
-0500
@@ -0,0 +1,87 @@
+Overview
+
+The Dell Systems Management Base Driver provides a sysfs interface for
+systems management software such as Dell OpenManage to perform system
+management interrupts and host control actions (system power cycle or
+power off after OS shutdown) on certain Dell systems.
+
+Dell OpenManage requires this driver on the following Dell PowerEdge systems:
+300, 1300, 1400, 400SC, 500SC, 1500SC, 1550, 600SC, 1600SC, 650, 1655MC,
+700, and 750.  Other Dell software such as the open source Libsmbios library
+is expected to make use of this driver, and it may include the use of this
+driver on other Dell systems.
+
+
+System Management Interrupt
+
+On some Dell systems, systems management software must access certain
+management information via a system management interrupt (SMI).  The SMI data
+buffer must reside in 32-bit address space, and the physical address of the
+buffer is required for the SMI.  The driver maintains the memory required for
+the SMI and provides a way for the application to generate the SMI.
+The driver creates the following sysfs entries for systems management
+software to perform these system management interrupts:
+
+/sys/devices/platform/dcdbas/smi_data
+/sys/devices/platform/dcdbas/smi_data_buf_phys_addr
+/sys/devices/platform/dcdbas/smi_data_buf_size
+/sys/devices/platform/dcdbas/smi_request
+
+Systems management software must perform the following steps to execute
+a SMI using this driver:
+
+1) Lock smi_data.
+2) Write system management command to smi_data.
+3) Write "1" to smi_request to generate a calling interface SMI or
+   "2" to generate a raw SMI.
+4) Read system management command response from smi_data.
+5) Unlock smi_data.
+
+
+Host Control Action
+
+Dell OpenManage supports a host control feature that allows the administrator
+to perform a power cycle or power off of the system after the OS has finished
+shutting down.  On some Dell systems, this host control feature requires that
+a driver perform a SMI after the OS has finished shutting down.
+
+The driver creates the following sysfs entries for systems management software
+to schedule the driver to perform a power cycle or power off host control
+action after the system has finished shutting down:
+
+/sys/devices/platform/dcdbas/host_control_action
+/sys/devices/platform/dcdbas/host_control_smi_type
+/sys/devices/platform/dcdbas/host_control_on_shutdown
+
+Dell OpenManage performs the following steps to execute a power cycle or
+power off host control action using this driver:
+
+1) Write host control action to be performed to host_control_action.
+2) Write type of SMI that driver needs to perform to host_control_smi_type.
+3) Write "1" to host_control_on_shutdown to enable host control action.
+4) Initiate OS shutdown.
+   (Driver will perform host control SMI when it is notified that the OS
+   has finished shutting down.)
+
+
+Host Control SMI Type
+
+The following table shows the value to write to host_control_smi_type to
+perform a power cycle or power off host control action:
+
+PowerEdge SystemHost Control SMI Type
+-
+  300 HC_SMITYPE_TYPE1
+ 1300 HC_SMITYPE_TYPE1
+ 1400 HC_SMITYPE_TYPE2
+  500SC   HC_SMITYPE_TYPE2
+ 1500SC   HC_SMITYPE_TYPE2
+ 1550 HC_SMITYPE_TYPE2
+  600SC   HC_SMITYPE_TYPE2
+ 1600SC   HC_SMITYPE_TYPE2
+  650 HC_SMITYPE_TYPE2
+ 1655MC   HC_SMITYPE_TYPE2
+  700 HC_SMITYPE_TYPE3
+  750 HC_SMITYPE_TYPE3
+
+
diff -uprN linux-2.6.13-rc6.orig/drivers/firmware/dcdbas.c 
linux-2.6.13-rc6/drivers/firmware/dcdbas.c
--- linux-2.6.13-rc6.orig/drivers/firmware/dcdbas.c 1969-12-31 
18:00:00.0 -0600
+++ linux-2.6.13-rc6/drivers/firmware/dcdbas.c  2005-08-19 19:07:50.823719952 
-0500
@@ -0,0 +1,593 @@
+/*
+ *  dcdbas.c: Dell Systems Management Base Driver
+ *
+ *  The Dell Systems Management Base Driver provides a sysfs interface for
+ *  systems management software to perform System Managemen

Re: 2.6.13-rc6-rt9

2005-08-20 Thread Jeff Dike
On Sat, Aug 20, 2005 at 09:27:25PM +0200, Peter Zijlstra wrote:
> Jeff, could you help us out here?
> What exactly does uml need to get out of the calibrate delay loop?

Interrupts, it's not too demanding :-)

If it's not seeing VTALRM, then it will never leave the calibration loop.

Try stracing it and see what it's getting.

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


use of uninitialized pointer in jffs_create()

2005-08-20 Thread Jesper Juhl
gcc kindly pointed me at jffs_create() with this warning : 

fs/jffs/inode-v23.c:1279: warning: `inode' might be used uninitialized
in this function

And looking at the function :

static int
jffs_create(struct inode *dir, struct dentry *dentry, int mode,
struct nameidata *nd)
{
struct jffs_raw_inode raw_inode;
struct jffs_control *c;
struct jffs_node *node;
struct jffs_file *dir_f; /* JFFS representation of the directory.  */
struct inode *inode;
int err;

truncate_inode_pages(&inode->i_data, 0);
...

I think it is correct. How on earth is that call to
truncate_inode_pages() going to avoid blowing up? inode has not yet
been initialized... Looks like a bug to me.
Unfortunately I don't know anything about this code, so I haven't
attempted to fix it.

-- 
Jesper Juhl <[EMAIL PROTECTED]>
Don't top-post  http://www.catb.org/~esr/jargon/html/T/top-post.html
Plain text mails only, please  http://www.expita.com/nomime.html
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: RTL8139, the final patch ?

2005-08-20 Thread Nick Warne
On Saturday 20 August 2005 21:53, you wrote:
> I have a problem with it:
> It's about patching, reverting, patching, reverting,...
> I got lost. That's why I asked for a... "straighter" one :-)

>> But I looked at what he said and found the real problem on my system (after 
>> all that):
>> http://www.ussg.iu.edu/hypermail/linux/kernel/0403.1/1537.html

> It's about a configuration option in the kernel?
> The patch is about adding the option, if i'm right.

No, what happened was on 2.6.2 all was well.  When 2.6.3 came out I got these 
timeout errors on the NIC's - but using the 2.6.2 8139too.c file in 2.6.3 
worked.  Mr Hirofumi then took up the challenge and sent me patches.  Slowly 
he resolved the issue, but the conclusion was it wasn't the code causing it.

It was an option in my BIOS PCI level/edge settings as I posted.  People on 
laptops get this error, like you, but there is no BIOS option as such... :-/

Nick
-- 
"When you're chewing on life's gristle,
Don't grumble, Give a whistle..."
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: sched_yield() makes OpenLDAP slow

2005-08-20 Thread Nikita Danilov
Howard Chu writes:
 > Nikita Danilov wrote:
 > > That returns us to the core of the problem: sched_yield() is used to
 > > implement a synchronization primitive and non-portable assumptions are
 > > made about its behavior: SUS defines that after sched_yield() thread
 > > ceases to run on the CPU "until it again becomes the head of its thread
 > > list", and "thread list" discipline is only defined for real-time
 > > scheduling policies. E.g., 
 > >
 > > int sched_yield(void)
 > > {
 > >return 0;
 > > }
 > >
 > > and
 > >
 > > int sched_yield(void)
 > > {
 > >sleep(100);
 > >return 0;
 > > }
 > >
 > > are both valid sched_yield() implementation for non-rt (SCHED_OTHER)
 > > threads.
 > I think you're mistaken:
 > http://groups.google.com/group/comp.programming.threads/browse_frm/thread/0d4eaf3703131e86/da051ebe58976b00#da051ebe58976b00
 > 
 > sched_yield() is required to be supported even if priority scheduling is 
 > not supported, and it is required to cause the calling thread (not 
 > process) to yield the processor.

Of course sched_yield() is required to be supported, the question is for
how long CPU is yielded. Here is the quote from the SUS (actually the
complete definition of sched_yield()):

The sched_yield() function shall force the running thread to
relinquish the processor until it again becomes the head of its
thread list.

As far as I can see, SUS doesn't specify how "thread list" is maintained
for non-RT scheduling policy, and implementation that immediately places
SCHED_OTHER thread that called sched_yield() back at the head of its
thread list is perfectly valid. Also valid is an implementation that
waits for 100 seconds and then places sched_yield() caller to the head
of the list, etc. Basically, while semantics of sched_yield() are well
defined for RT scheduling policy, for SCHED_OTHER policy standard leaves
it implementation defined.

 > 
 > -- 
 >   -- Howard Chu

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


Re: RTL8139, the final patch ?

2005-08-20 Thread Rakotomandimby Mihamina
On Sat, 2005-08-20 at 21:53 +0100, Nick Warne wrote:
> Here is the 'final' post after Mr Hirofumi 
> found the cause of my issues:
> http://www.ussg.iu.edu/hypermail/linux/kernel/0402.3/1709.html

I have a problem with it:
It's about patching, reverting, patching, reverting,...
I got lost. That's why I asked for a... "straighter" one :-)

> But I looked at what he said and found the real problem on my system (after 
> all that):
> http://www.ussg.iu.edu/hypermail/linux/kernel/0403.1/1537.html

It's about a configuration option in the kernel?
The patch is about adding the option, if i'm right.

-- 
Administration & Formation à l'administration
de serveurs dédiés:
http://www.google.fr/search?q=aspo+infogerance+serveur

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


Re: [PATCH] Posix file attribute support on VFAT (take #2)

2005-08-20 Thread Joseph Fannin
On Thu, Aug 18, 2005 at 07:52:23PM +0900, Hiroyuki Machida wrote:
> Christoph Hellwig wrote:
> >On Wed, Aug 17, 2005 at 04:07:03AM +0900, Machida, Hiroyuki wrote:

> >>This is a take 2 of posix file attribute support on VFAT.
> >
> >
> >Sorry, but this is far too scary.  Please just use one of the sane
> >filesystems linux supports.
> >
>
> I would say that purpose of the feature is having ability to
> build root fs for small embedded device, not support full posix 
> attributes top of VFAT. I think the situation is like uclinux, 
> which has no MMU support and many restriction, however it's still
> very helpful for small embedded device.

This doesn't seem so different from umsdos to me -- which was only
removed from the kernel because it was unmaintained.  It might have
its place.

However, I'd guess you'd need to demonstrate that someone is
actually going to use and maintain this feature before it would be
considered for inclusion in the kernel.

--
Joseph Fannin
[EMAIL PROTECTED]

"Bull in pure form is rare; there is usually some contamination by data."
-- William Graves Perry Jr.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: sched_yield() makes OpenLDAP slow

2005-08-20 Thread Lee Revell
On Sat, 2005-08-20 at 11:38 -0700, Howard Chu wrote:
> Nick Piggin wrote:
> >  Robert Hancock wrote:
> > > I fail to see how sched_yield is going to be very helpful in this
> > > situation. Since that call can sleep from a range of time ranging
> > > from zero to a long time, it's going to give unpredictable results.
> 
> >  Well, not sleep technically, but yield the CPU for some undefined
> >  amount of time.
> 
> Since the slapd server was not written to run in realtime, nor is it 
> commonly run on realtime operating systems, I don't believe predictable 
> timing here is a criteria we care about. One could say the same of 
> sigsuspend() by the way - it can pause a process for a range of time 
> ranging from zero to a long time. Should we tell application writers not 
> to use this function either, regardless of whether the developer thinks 
> they have a good reason to use it?

Of course not.  We should tell them that if they use sigsuspend() they
cannot assume that the process will not wake up immediately.

Lee


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


Re: [OT]Linus trademarks Linux?!!

2005-08-20 Thread Jesper Juhl
On 8/20/05, Alejandro Bonilla Beeche <[EMAIL PROTECTED]> wrote:
> On Fri, 2005-08-19 at 22:13 -0700, alan wrote:
> > On Sat, 20 Aug 2005, Kernel Hacker wrote:
> >
> > > Friend,
> > > What fact is behind this article
> > > http://www.theinquirer.net/?article=25529.
> >
> > The article is also wrong.
> >
> > Try this one instead...
> >
> > http://os.newsforge.com/os/05/08/19/1842249.shtml?tid=2&tid=138
> 
> OK, now I would like to see a more official statement about this. Does
> the linuxjournal.com pay $5000?
> 
> If I ever do something commercial with linuxwireless.org, I will need to
> pay $5000?
> 
> Linus?
> 

Linux being a registered trademark is old news.

Linus clarified the whole "Linux is a registered trademark of Linus
Torvalds" thing back in 2000 in a lengthy email to LKML.

He explained both why Linux was registered as a trademark, why he has
to enforce/police it to keep it, and what the groundrules regarding
its use are (and don't worry, it's all quite sensible).

You can find the email here :
http://boudicca.tux.org/hypermail/linux-kernel/2000week04/0654.html


-- 
Jesper Juhl <[EMAIL PROTECTED]>
Don't top-post  http://www.catb.org/~esr/jargon/html/T/top-post.html
Plain text mails only, please  http://www.expita.com/nomime.html
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: 2.6.13-rc6-git10 test report [x86_64](WITHOUT NVIDIA MODULE)

2005-08-20 Thread Joseph Fannin
On Fri, Aug 19, 2005 at 09:22:09AM -0700, Peter Buckingham wrote:

> >The machine is working quite a bit better with pci=noacpi in leu of
> >disabling ACPI in the BIOS, but there are still those nasty errors in
> >reference to the ACPI tables being broken:
> >ACPI-0362: *** Error: Looking up [\_SB_.PCI0.LNK0] in namespace,
> >AE_NOT_FOUND
> >search_node 8101428572c0 start_node 8101428572c0 return_node
> >
>
> since it doesn't look like you'll get a bios fix for this you may want
> to look at building a custom dsdt. the kernel can load a custom dsdt
> from an initrd/initramfs. have a look at the acpi site (acpi.sf.net?).
> they talk about what's needed to do this. basically you can get your
> dsdt from /proc/acpi/dsdt and disassemble it using the iasl tools, fix
> it and then load it with an initrd. note that this is not really a
> trivial task :-(

Also, please file a bug report against the ACPI component at
http://bugzilla.kernel.org .  Ultimately the Linux ACPI component must
deal with these sorts of errors, or convince the BIOS authors not to
make them!

--
Joseph Fannin
[EMAIL PROTECTED]

"That's all I have to say about that." -- Forrest Gump.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: sched_yield() makes OpenLDAP slow

2005-08-20 Thread Howard Chu

Lee Revell wrote:

 On Sat, 2005-08-20 at 11:38 -0700, Howard Chu wrote:
> But I also found that I needed to add a new yield(), to work around
> yet another unexpected issue on this system - we have a number of
> threads waiting on a condition variable, and the thread holding the
> mutex signals the var, unlocks the mutex, and then immediately
> relocks it. The expectation here is that upon unlocking the mutex,
> the calling thread would block while some waiting thread (that just
> got signaled) would get to run. In fact what happened is that the
> calling thread unlocked and relocked the mutex without allowing any
> of the waiting threads to run. In this case the only solution was
> to insert a yield() after the mutex_unlock().

 That's exactly the behavior I would expect.  Why would you expect
 unlocking a mutex to cause a reschedule, if the calling thread still
 has timeslice left?


That's beside the point. Folks are making an assertion that 
sched_yield() is meaningless; this example demonstrates that there are 
cases where sched_yield() is essential.


--
 -- Howard Chu
 Chief Architect, Symas Corp.  http://www.symas.com
 Director, Highland Sunhttp://highlandsun.com/hyc
 OpenLDAP Core Teamhttp://www.openldap.org/project/

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


[PATCH] Permissions don't stick on ConfigFS attributes (revised)

2005-08-20 Thread Daniel Phillips
On Saturday 20 August 2005 13:01, Greg KH wrote:
> On Sat, Aug 20, 2005 at 10:50:51AM +1000, Daniel Phillips wrote:
> > Permissions set on ConfigFS attributes (aka files) do not stick.
>
> The recent changes to sysfs should be ported to configfs to do this.

No, it should go the other way, my fix is better.  It would not require sysfs
to have its own version of setattr.  What I do like about Maneesh's fix is the
handling of other inode attributes besides mode flags, however that is a
detail, let's get the structural elements right first.

The revised patch fixes the vanishing permissions bug and kills the configfs
bogon that made my first attempt subtly wrong (changed permissions for all
attribute files instead of just the chmoded one).

diff -up --recursive 2.6.12-mm2.clean/fs/configfs/dir.c 
2.6.12-mm2/fs/configfs/dir.c
--- 2.6.12-mm2.clean/fs/configfs/dir.c  2005-08-12 00:53:06.0 -0400
+++ 2.6.12-mm2/fs/configfs/dir.c2005-08-20 16:16:34.0 -0400
@@ -64,6 +64,17 @@ static struct dentry_operations configfs
.d_delete   = configfs_d_delete,
 };
 
+static int configfs_d_delete_attr(struct dentry *dentry)
+{
+   ((struct configfs_dirent *)dentry->d_fsdata)->s_mode = 
dentry->d_inode->i_mode;
+   return 1;
+}
+
+static struct dentry_operations configfs_attr_dentry_ops = {
+   .d_delete = configfs_d_delete_attr,
+   .d_iput = configfs_d_iput,
+};
+
 /*
  * Allocates a new configfs_dirent and links it to the parent configfs_dirent
  */
@@ -238,14 +249,11 @@ static void configfs_remove_dir(struct c
  */
 static int configfs_attach_attr(struct configfs_dirent * sd, struct dentry * 
dentry)
 {
-   struct configfs_attribute * attr = sd->s_element;
-   int error;
-
-   error = configfs_create(dentry, (attr->ca_mode & S_IALLUGO) | S_IFREG, 
init_file);
+   int error = configfs_create(dentry, sd->s_mode, init_file);
if (error)
return error;
 
-   dentry->d_op = &configfs_dentry_ops;
+   dentry->d_op = &configfs_attr_dentry_ops;
dentry->d_fsdata = configfs_get(sd);
sd->s_dentry = dentry;
d_rehash(dentry);

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


Re: sched_yield() makes OpenLDAP slow

2005-08-20 Thread Lee Revell
On Sat, 2005-08-20 at 11:38 -0700, Howard Chu wrote:
> But I also found that I needed to add a new 
> yield(), to work around yet another unexpected issue on this system -
> we have a number of threads waiting on a condition variable, and the
> thread holding the mutex signals the var, unlocks the mutex, and then 
> immediately relocks it. The expectation here is that upon unlocking
> the mutex, the calling thread would block while some waiting thread
> (that just got signaled) would get to run. In fact what happened is
> that the calling thread unlocked and relocked the mutex without
> allowing any of the waiting threads to run. In this case the only
> solution was to insert a yield() after the mutex_unlock(). 

That's exactly the behavior I would expect.  Why would you expect
unlocking a mutex to cause a reschedule, if the calling thread still has
timeslice left?

Lee

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


Re: RTL8139, the final patch ?

2005-08-20 Thread Nick Warne
Rakotomandimby Mihamina wrote:

> Hi,
> 
> I now use a notebook that uses RTL8139, and I encounter exactly the same
> problems as this:
> 
> http://www.ussg.iu.edu/hypermail/linux/kernel/0402.3/1289.html
> 
> I know use Fedora Core 4 on this box.
> With a Linux FC4 kernel (not customized yet).
> 
> As well as I still encounter the problem, I guess the solution has not
> been found.

Hi, this was my original post.

I did indeed get a solution - and occasionally I see people still have this 
issue and some of them mail me, so I have a prepared mail :-)


Here is the 'final' post after Mr Hirofumi 
found the cause of my issues:

http://www.ussg.iu.edu/hypermail/linux/kernel/0402.3/1709.html

But I looked at what he said and found the real problem on my system (after 
all that):

http://www.ussg.iu.edu/hypermail/linux/kernel/0403.1/1537.html

Nick

-- 
"When you're chewing on life's gristle,
Don't grumble, Give a whistle..."
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Fix up befs compile.

2005-08-20 Thread Dave Jones
On Sat, Aug 20, 2005 at 08:58:07PM +0100, Al Viro wrote:
 > On Sat, Aug 20, 2005 at 03:48:40PM -0400, Dave Jones wrote:
 > > fs/befs/linuxvfs.c:466: error: conflicting types for 'befs_follow_link'
 > > fs/befs/linuxvfs.c:44: error: previous declaration of 'befs_follow_link' 
 > > was here
 > > fs/befs/linuxvfs.c: In function 'befs_follow_link':
 > > fs/befs/linuxvfs.c:490: warning: return makes integer from pointer without 
 > > a cast
 > 
 > It should be void *, not void.

Duh. Yes. of course.

Signed-off-by: Dave Jones <[EMAIL PROTECTED]>

--- linux-2.6.12/fs/befs/linuxvfs.c~2005-08-20 15:46:30.0 -0400
+++ linux-2.6.12/fs/befs/linuxvfs.c 2005-08-20 15:47:25.0 -0400
@@ -461,7 +461,7 @@ befs_destroy_inodecache(void)
  * The data stream become link name. Unless the LONG_SYMLINK
  * flag is set.
  */
-static int
+static void *
 befs_follow_link(struct dentry *dentry, struct nameidata *nd)
 {
befs_inode_info *befs_ino = BEFS_I(dentry->d_inode);

Dave

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


Re: [RFC][PATCH] Rename PageChecked as PageMiscFS

2005-08-20 Thread Daniel Phillips
On Saturday 20 August 2005 20:45, David Howells wrote:
> Daniel Phillips <[EMAIL PROTECTED]> wrote:
> > Biased.  Fs is a mixed case acronym, nuff said.
>
> But I'm still right:-)

Of course you are!  We're only impugning your taste, not your logic ;-)

OK, the questions re your global consistency model are a bazillion times more 
significant.  I have not forgotten about that, please stay tuned.

Regards,

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


Re: Fix up befs compile.

2005-08-20 Thread Al Viro
On Sat, Aug 20, 2005 at 03:48:40PM -0400, Dave Jones wrote:
> fs/befs/linuxvfs.c:466: error: conflicting types for 'befs_follow_link'
> fs/befs/linuxvfs.c:44: error: previous declaration of 'befs_follow_link' was 
> here
> fs/befs/linuxvfs.c: In function 'befs_follow_link':
> fs/befs/linuxvfs.c:490: warning: return makes integer from pointer without a 
> cast
> 
> Signed-off-by: Dave Jones <[EMAIL PROTECTED]>
> 

It should be void *, not void.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: sched_yield() makes OpenLDAP slow

2005-08-20 Thread Howard Chu

Nikita Danilov wrote:

That returns us to the core of the problem: sched_yield() is used to
implement a synchronization primitive and non-portable assumptions are
made about its behavior: SUS defines that after sched_yield() thread
ceases to run on the CPU "until it again becomes the head of its thread
list", and "thread list" discipline is only defined for real-time
scheduling policies. E.g., 


int sched_yield(void)
{
   return 0;
}

and

int sched_yield(void)
{
   sleep(100);
   return 0;
}

are both valid sched_yield() implementation for non-rt (SCHED_OTHER)
threads.

I think you're mistaken:
http://groups.google.com/group/comp.programming.threads/browse_frm/thread/0d4eaf3703131e86/da051ebe58976b00#da051ebe58976b00

sched_yield() is required to be supported even if priority scheduling is 
not supported, and it is required to cause the calling thread (not 
process) to yield the processor.


--
 -- Howard Chu
 Chief Architect, Symas Corp.  http://www.symas.com
 Director, Highland Sunhttp://highlandsun.com/hyc
 OpenLDAP Core Teamhttp://www.openldap.org/project/

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


Fix up befs compile.

2005-08-20 Thread Dave Jones
fs/befs/linuxvfs.c:466: error: conflicting types for 'befs_follow_link'
fs/befs/linuxvfs.c:44: error: previous declaration of 'befs_follow_link' was 
here
fs/befs/linuxvfs.c: In function 'befs_follow_link':
fs/befs/linuxvfs.c:490: warning: return makes integer from pointer without a 
cast

Signed-off-by: Dave Jones <[EMAIL PROTECTED]>


--- linux-2.6.12/fs/befs/linuxvfs.c~2005-08-20 15:46:30.0 -0400
+++ linux-2.6.12/fs/befs/linuxvfs.c 2005-08-20 15:47:25.0 -0400
@@ -461,7 +461,7 @@ befs_destroy_inodecache(void)
  * The data stream become link name. Unless the LONG_SYMLINK
  * flag is set.
  */
-static int
+static void
 befs_follow_link(struct dentry *dentry, struct nameidata *nd)
 {
befs_inode_info *befs_ino = BEFS_I(dentry->d_inode);
@@ -487,7 +487,6 @@ befs_follow_link(struct dentry *dentry, 
}
 
nd_set_link(nd, link);
-   return NULL;
 }
 
 static void befs_put_link(struct dentry *dentry, struct nameidata *nd, void *p)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[2.6 patch] mm/filemap.c: make two functions static

2005-08-20 Thread Adrian Bunk
This patch makes two needlessly global functions static.


Signed-off-by: Adrian Bunk <[EMAIL PROTECTED]>

--- linux-2.6.13-rc6-mm1/mm/filemap.c.old   2005-08-20 14:37:27.0 
+0200
+++ linux-2.6.13-rc6-mm1/mm/filemap.c   2005-08-20 14:46:24.0 +0200
@@ -2034,7 +2034,7 @@
 }
 EXPORT_SYMBOL(generic_file_buffered_write);
 
-ssize_t
+static ssize_t
 __generic_file_aio_write_nolock(struct kiocb *iocb, const struct iovec *iov,
unsigned long nr_segs, loff_t *ppos)
 {
@@ -2134,7 +2134,7 @@
return ret;
 }
 
-ssize_t
+static ssize_t
 __generic_file_write_nolock(struct file *file, const struct iovec *iov,
unsigned long nr_segs, loff_t *ppos)
 {

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


[RFC: -mm patch] kcalloc(): INT_MAX -> ULONG_MAX

2005-08-20 Thread Adrian Bunk
This change could (at least in theory) allow a compiler better 
optimization (especially in the n=1 case).

The practical effect seems to be nearly zero:
text   data bss  dechex filename
256172075850138 1827016 332943611fc0819 vmlinux-old
256171915850138 1827016 332943451fc0809 vmlinux-patched

Is there any reason against this patch?


Signed-off-by: Adrian Bunk <[EMAIL PROTECTED]>

--- linux-2.6.13-rc6-mm1-full/include/linux/slab.h.old  2005-08-20 
04:10:09.0 +0200
+++ linux-2.6.13-rc6-mm1-full/include/linux/slab.h  2005-08-20 
04:11:04.0 +0200
@@ -113,7 +113,7 @@
  */
 static inline void *kcalloc(size_t n, size_t size, unsigned int __nocast flags)
 {
-   if (n != 0 && size > INT_MAX / n)
+   if (n != 0 && size > ULONG_MAX / n)
return NULL;
return kzalloc(n * size, flags);
 }

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


Re: 2.6.13-rc6-rt9

2005-08-20 Thread Peter Zijlstra
On Fri, 2005-08-19 at 11:43 -0700, Paul E. McKenney wrote:
> On Fri, Aug 19, 2005 at 08:30:05PM +0200, Peter Zijlstra wrote:
> > On Fri, 2005-08-19 at 18:56 +0200, Peter Zijlstra wrote:
> > > Hi Ingo, Paul, others,
> > > 
> > > I'm trying to run a user-mode-linux guest under the RT kernel however
> > > the uml process never gets out of the calibrate delay loop. It seems as
> > > if the signal never gets through.
> > > 
> > one clarification: the guest kernel is a non -rt kernel, a modified
> > 2.6.13-rc6 in my case.
> > 
> > > A non -rt host kernel does work (with a similar .config).
> > > 
> > > Could this be related to pauls task list changes?
> 
> Possibly.  What signal?  This is a signal to a single process, right?
> 
Jeff, could you help us out here?
What exactly does uml need to get out of the calibrate delay loop?

Kind regards,

Peter Zijlstra

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


[2.6 patch] drivers/scsi/constants.c should include scsi_dbg.h

2005-08-20 Thread Adrian Bunk
C files should include the files with the prototypes for their global 
functions.


Signed-off-by: Adrian Bunk <[EMAIL PROTECTED]>

--- linux-2.6.13-rc6-mm1/drivers/scsi/constants.c.old   2005-08-20 
14:42:12.0 +0200
+++ linux-2.6.13-rc6-mm1/drivers/scsi/constants.c   2005-08-20 
14:43:03.0 +0200
@@ -17,6 +17,7 @@
 #include 
 #include 
 #include 
+#include 
 
 
 

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


[2.6 patch] include/linux/quotaops.h: "extern inline" doesn't make sense

2005-08-20 Thread Adrian Bunk
"extern inline" doesn't make sense.


Signed-off-by: Adrian Bunk <[EMAIL PROTECTED]>

---

 include/linux/quotaops.h |   12 ++--
 1 files changed, 6 insertions(+), 6 deletions(-)

--- linux-2.6.13-rc6-mm1/include/linux/quotaops.h.old   2005-08-20 
14:40:53.0 +0200
+++ linux-2.6.13-rc6-mm1/include/linux/quotaops.h   2005-08-20 
14:41:30.0 +0200
@@ -198,38 +198,38 @@
 #define DQUOT_SYNC(sb) do { } while(0)
 #define DQUOT_OFF(sb)  do { } while(0)
 #define DQUOT_TRANSFER(inode, iattr)   (0)
-extern __inline__ int DQUOT_PREALLOC_SPACE_NODIRTY(struct inode *inode, 
qsize_t nr)
+static inline int DQUOT_PREALLOC_SPACE_NODIRTY(struct inode *inode, qsize_t nr)
 {
inode_add_bytes(inode, nr);
return 0;
 }
 
-extern __inline__ int DQUOT_PREALLOC_SPACE(struct inode *inode, qsize_t nr)
+static inline int DQUOT_PREALLOC_SPACE(struct inode *inode, qsize_t nr)
 {
DQUOT_PREALLOC_SPACE_NODIRTY(inode, nr);
mark_inode_dirty(inode);
return 0;
 }
 
-extern __inline__ int DQUOT_ALLOC_SPACE_NODIRTY(struct inode *inode, qsize_t 
nr)
+static inline int DQUOT_ALLOC_SPACE_NODIRTY(struct inode *inode, qsize_t nr)
 {
inode_add_bytes(inode, nr);
return 0;
 }
 
-extern __inline__ int DQUOT_ALLOC_SPACE(struct inode *inode, qsize_t nr)
+static inline int DQUOT_ALLOC_SPACE(struct inode *inode, qsize_t nr)
 {
DQUOT_ALLOC_SPACE_NODIRTY(inode, nr);
mark_inode_dirty(inode);
return 0;
 }
 
-extern __inline__ void DQUOT_FREE_SPACE_NODIRTY(struct inode *inode, qsize_t 
nr)
+static inline void DQUOT_FREE_SPACE_NODIRTY(struct inode *inode, qsize_t nr)
 {
inode_sub_bytes(inode, nr);
 }
 
-extern __inline__ void DQUOT_FREE_SPACE(struct inode *inode, qsize_t nr)
+static inline void DQUOT_FREE_SPACE(struct inode *inode, qsize_t nr)
 {
DQUOT_FREE_SPACE_NODIRTY(inode, nr);
mark_inode_dirty(inode);

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


[-mm patch] net/core/sysctl_net_core.c: fix PROC_FS=n compile

2005-08-20 Thread Adrian Bunk
On Fri, Aug 19, 2005 at 04:33:31AM -0700, Andrew Morton wrote:
>...
> Changes since 2.6.13-rc5-mm1:
>...
>  git-net.patch
>...
>  Subsystem trees
>...

This breaks the compilation with CONFIG_PROC_FS=n:

<--  snip  -->

...
  CC  net/core/sysctl_net_core.o
net/core/sysctl_net_core.c:50: error: 'sysctl_wmem_default' undeclared here 
(not in a function)
net/core/sysctl_net_core.c:58: error: 'sysctl_rmem_default' undeclared here 
(not in a function)
make[2]: *** [net/core/sysctl_net_core.o] Error 1

<--  snip  -->


The fix is simple.


Signed-off-by: Adrian Bunk <[EMAIL PROTECTED]>

--- linux-2.6.13-rc6-mm1-full/include/net/sock.h.old2005-08-20 
15:39:23.0 +0200
+++ linux-2.6.13-rc6-mm1-full/include/net/sock.h2005-08-20 
15:39:39.0 +0200
@@ -1372,9 +1372,7 @@
 extern int sysctl_optmem_max;
 #endif
 
-#ifdef CONFIG_PROC_FS
 extern __u32 sysctl_wmem_default;
 extern __u32 sysctl_rmem_default;
-#endif
 
 #endif /* _SOCK_H */

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


SCSI- unexpected disconnect with kernel-2.6.13-r6

2005-08-20 Thread mikep
I am using a LSIU160/Symbios 53c1010 Ultra3 scsi adapter and it works at 
full speed (75 MB/sec) with kernel-2.6.12. And dmesg shows:


kernel:  target0:0:0: Beginning Domain Validation
kernel:  target0:0:0: asynchronous.
kernel: WIDTH IS 1
kernel:  target0:0:0: wide asynchronous.
kernel:  target0:0:0: FAST-80 WIDE SCSI 160.0 MB/s DT (12.5 ns, offset 62)
kernel:  target0:0:0: Ending Domain Validation
kernel: sym1: <1010-33> rev 0x1 at pci :01:07.1 irq 11
kernel: sym1: Symbios NVRAM, ID 7, Fast-80, SE, parity checking
kernel: sym1: open drain IRQ line driver
kernel: sym1: using LOAD/STORE-based firmware.
kernel: sym1: handling phase mismatch from SCRIPTS.
kernel: sym1: SCSI BUS has been reset.
kernel: scsi1 : sym-2.2.0
kernel: libata version 1.11 loaded.

With kernel-2.6.13-r6 the speed drops back to 2.70 MB/sec because of
validation failure and dmesg shows:

kernel:  target0:0:0: Beginning Domain Validation
kernel:  target0:0:0: asynchronous.
kernel:  target0:0:0: wide asynchronous.
kernel:  target0:0:0: FAST-80 WIDE SCSI 160.0 MB/s DT IU QAS (
kernel: sym0: unexpected disconnect
kernel:  target0:0:0: Write Buffer failure 700ff
kernel:  target0:0:0: Domain Validation Disabing Information units
kernel:  0:0:0:0: phase change 6-7 [EMAIL PROTECTED] resid=10.
kernel:  target0:0:0: asynchronous.
kernel: sym0: unexpected disconnect
target0:0:0: Write Buffer failure 700ff
target0:0:0: Domain Validation detected failure, dropping back
kernel:  target0:0:0: asynchronous.
target0:0:0: Ending Domain Validation
kernel: sym1: <1010-33> rev 0x1 at pci :01:07.1 irq 11
kernel: sym1: Symbios NVRAM, ID 7, Fast-80, SE, parity checkingkernel: 
sym1:

open drain IRQ line driver, using on-chip SRAM
kernel: sym1: using LOAD/STORE-based firmware.
kernel: sym1: handling phase mismatch from SCRIPTS.
kernel: sym1: SCSI BUS has been reset.
kernel: scsi1 : sym-2.2.1
kernel: libata version 1.11 loaded.

The kernel config has:

CONFIG_SCSI_SYM53C8XX_2=y
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

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


[2.6 patch] drivers/ide/: possible cleanups

2005-08-20 Thread Adrian Bunk
This patch contains the following possible cleanups:
- pci/cy82c693.c: make a needlessly global function static
- remove the following unneeded EXPORT_SYMBOL's:
  - ide-taskfile.c: do_rw_taskfile
  - ide-iops.c: default_hwif_iops
  - ide-iops.c: default_hwif_transport
  - ide-iops.c: wait_for_ready

Signed-off-by: Adrian Bunk <[EMAIL PROTECTED]>

---

 drivers/ide/ide-iops.c |6 --
 drivers/ide/ide-taskfile.c |2 --
 drivers/ide/pci/cy82c693.c |2 +-
 3 files changed, 1 insertion(+), 9 deletions(-)

--- linux-2.6.11-rc3-mm1-full/drivers/ide/ide-taskfile.c.old2005-02-05 
02:57:03.0 +0100
+++ linux-2.6.11-rc3-mm1-full/drivers/ide/ide-taskfile.c2005-02-05 
02:57:12.0 +0100
@@ -161,8 +161,6 @@
return ide_stopped;
 }
 
-EXPORT_SYMBOL(do_rw_taskfile);
-
 /*
  * set_multmode_intr() is invoked on completion of a WIN_SETMULT cmd.
  */

--- linux-2.6.12-rc2-mm3-full/drivers/ide/pci/cy82c693.c.old2005-04-17 
21:11:22.0 +0200
+++ linux-2.6.12-rc2-mm3-full/drivers/ide/pci/cy82c693.c2005-04-17 
21:11:30.0 +0200
@@ -469,7 +469,7 @@
 
 static __initdata ide_hwif_t *primary;
 
-void __devinit init_iops_cy82c693(ide_hwif_t *hwif)
+static void __devinit init_iops_cy82c693(ide_hwif_t *hwif)
 {
if (PCI_FUNC(hwif->pci_dev->devfn) == 1)
primary = hwif;
--- linux-2.6.12-rc2-mm3-full/drivers/ide/ide-iops.c.old2005-04-17 
21:12:44.0 +0200
+++ linux-2.6.12-rc2-mm3-full/drivers/ide/ide-iops.c2005-04-17 
21:12:54.0 +0200
@@ -104,8 +104,6 @@
hwif->INSL  = ide_insl;
 }
 
-EXPORT_SYMBOL(default_hwif_iops);
-
 /*
  * MMIO operations, typically used for SATA controllers
  */
@@ -329,8 +327,6 @@
hwif->atapi_output_bytes= atapi_output_bytes;
 }
 
-EXPORT_SYMBOL(default_hwif_transport);
-
 /*
  * Beginning of Taskfile OPCODE Library and feature sets.
  */
@@ -525,8 +525,6 @@
return 0;
 }
 
-EXPORT_SYMBOL(wait_for_ready);
-
 /*
  * This routine busy-waits for the drive status to be not "busy".
  * It then checks the status for all of the "good" bits and none

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


[2.6 patch] sound/core/memalloc.c: fix PROC_FS=n compilation

2005-08-20 Thread Adrian Bunk
This patch fixes the following compile error with CONFIG_PROC_FS=n:

<--  snip  -->

...
  CC  sound/core/memalloc.o
sound/core/memalloc.c: In function 'snd_mem_exit':
sound/core/memalloc.c:658: error: 'snd_mem_proc' undeclared (first use in this 
function)
sound/core/memalloc.c:658: error: (Each undeclared identifier is reported only 
once
sound/core/memalloc.c:658: error: for each function it appears in.)
make[2]: *** [sound/core/memalloc.o] Error 1

<--  snip  -->



Signed-off-by: Adrian Bunk <[EMAIL PROTECTED]>

--- linux-2.6.13-rc6-mm1-full/sound/core/memalloc.c.old 2005-08-20 
15:12:55.0 +0200
+++ linux-2.6.13-rc6-mm1-full/sound/core/memalloc.c 2005-08-20 
15:16:55.0 +0200
@@ -506,13 +506,13 @@
up(&list_mutex);
 }
 
+static struct proc_dir_entry *snd_mem_proc;
 
 #ifdef CONFIG_PROC_FS
 /*
  * proc file interface
  */
 #define SND_MEM_PROC_FILE  "driver/snd-page-alloc"
-static struct proc_dir_entry *snd_mem_proc;
 
 static int snd_mem_proc_read(char *page, char **start, off_t off,
 int count, int *eof, void *data)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [2.6 patch] adapt scripts/ver_linux to new util-linux version strings

2005-08-20 Thread Adrian Bunk
On Sat, Aug 20, 2005 at 09:55:32AM +0400, Alexey Dobriyan wrote:
> On Sat, Aug 20, 2005 at 05:58:53AM +0200, Adrian Bunk wrote:
> > --- linux-2.6.13-rc6-mm1-full/scripts/ver_linux.old
> > +++ linux-2.6.13-rc6-mm1-full/scripts/ver_linux
> 
> > -fdformat --version | awk -F\- '{print "util-linux", $NF}'
> > +fdformat --version | awk '{print "util-linux", $NF}' \
> > +| awk -F\) '{print $1}'
> >  
> > -mount --version | awk -F\- '{print "mount ", $NF}'
> > +mount --version | awk '{print "mount ", $NF}' | \
> > +awk -F\) '{print $1}'
> 
> -util-linux 2.12i
> -mount  2.12i
> +util-linux util-linux-2.12i
> +mount  mount-2.12i
>   ^^
> 
> Is this intentional?

After this patch, the new format is parsed correctly instead of 
completely wrong.

You've found the small regression parsing the old format.

IMHO this is not a problem. If you disagree, feel free to send a better 
patch.

cu
Adrian

-- 

   "Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
   "Only a promise," Lao Er said.
   Pearl S. Buck - Dragon Seed

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


Re: [patch 2.6.13-rc6] i386: semaphore ownership tracking

2005-08-20 Thread Lee Revell
On Sat, 2005-08-20 at 03:07 -0400, Chuck Ebbert wrote:
> On Fri, 19 Aug 2005 at 20:02:27 -0700, Andrew Morton wrote:
> 
> > Chuck Ebbert <[EMAIL PROTECTED]> wrote:
> > >
> > >  This patch enables tracking semaphore ownership.
> > 
> > Why?  I can't think of any bug in recent years which needed this..
> 
>  It might be useful in new driver development.  OTOH it is really ugly
> even if it's a small patch.

How is it different from the ownership tracking used for PI in the -rt
kernel?

Lee

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


Re: Schedulers benchmark - Was: [ANNOUNCE][RFC] PlugSched-5.2.4 for 2.6.12 and 2.6.13-rc6

2005-08-20 Thread Lee Revell
On Sat, 2005-08-20 at 10:31 +1000, Con Kolivas wrote:
> It's an X problem and it's being fixed. Get over it, we're not tuning
> the scheduler for a broken app.
> 

You're right, this problem seems much, much better in Xorg 6.8.2.  I
think the Damage extension might be responsible.  There's definitely
something different happening because when I switch windows quickly,
instead of a grey box that gets slowly re-packed with widgets, I see a
black box that packs very fast, and seems to be filled in large
rectangular chunks rather than one widget at a time.  X is also using a
lot less CPU.  Very nice work...

Lee

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


2.6.13-rc6: halt instead of reboot

2005-08-20 Thread Meelis Roos
I'm currently running 2.6.13-rc6+git as of today and whan I tell my 
computer to reboot, it starts a reboot as sual and when it reached 
kernel telling "Rebooting" the computer halts instead. I noticed it just 
with an earlier post-rc6 snapshot and it's still there with current git.


PC, Duron 1.3 GHz CPU, VIA 686A chipset mainboard. Reboot has worked 
normally before.


config:
CONFIG_X86=y
CONFIG_MMU=y
CONFIG_UID16=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y
CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION=""
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_SYSCTL=y
CONFIG_HOTPLUG=y
CONFIG_KOBJECT_UEVENT=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
CONFIG_KALLSYMS_EXTRA_PASS=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SHMEM=y
CONFIG_CC_ALIGN_FUNCTIONS=0
CONFIG_CC_ALIGN_LABELS=0
CONFIG_CC_ALIGN_LOOPS=0
CONFIG_CC_ALIGN_JUMPS=0
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_OBSOLETE_MODPARM=y
CONFIG_MODVERSIONS=y
CONFIG_KMOD=y
CONFIG_X86_PC=y
CONFIG_MK7=y
CONFIG_X86_CMPXCHG=y
CONFIG_X86_XADD=y
CONFIG_X86_L1_CACHE_SHIFT=6
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_X86_USE_3DNOW=y
CONFIG_PREEMPT=y
CONFIG_PREEMPT_BKL=y
CONFIG_X86_UP_APIC=y
CONFIG_X86_UP_IOAPIC=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
CONFIG_X86_TSC=y
CONFIG_X86_MCE=y
CONFIG_X86_MCE_NONFATAL=y
CONFIG_X86_REBOOTFIXUPS=y
CONFIG_X86_MSR=m
CONFIG_X86_CPUID=m
CONFIG_EDD=m
CONFIG_NOHIGHMEM=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_MTRR=y
CONFIG_HAVE_DEC_LOCK=y
CONFIG_REGPARM=y
CONFIG_SECCOMP=y
CONFIG_HZ_250=y
CONFIG_HZ=250
CONFIG_PHYSICAL_START=0x10
CONFIG_PM=y
CONFIG_ACPI=y
CONFIG_ACPI_BOOT=y
CONFIG_ACPI_INTERPRETER=y
CONFIG_ACPI_SLEEP=y
CONFIG_ACPI_SLEEP_PROC_FS=y
CONFIG_ACPI_BUTTON=y
CONFIG_ACPI_VIDEO=y
CONFIG_ACPI_FAN=y
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_THERMAL=y
CONFIG_ACPI_BLACKLIST_YEAR=0
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_APM=m
CONFIG_APM_IGNORE_USER_SUSPEND=y
CONFIG_APM_DO_ENABLE=y
CONFIG_APM_CPU_IDLE=y
CONFIG_APM_DISPLAY_BLANK=y
CONFIG_APM_REAL_MODE_POWER_OFF=y
CONFIG_PCI=y
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_MMCONFIG=y
CONFIG_PCI_MSI=y
CONFIG_PCI_LEGACY_PROC=y
CONFIG_PCI_NAMES=y
CONFIG_ISA_DMA_API=y
CONFIG_ISA=y
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_AOUT=m
CONFIG_BINFMT_MISC=m
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y
CONFIG_UNIX=y
CONFIG_XFRM=y
CONFIG_XFRM_USER=m
CONFIG_NET_KEY=m
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_ASK_IP_FIB_HASH=y
CONFIG_IP_FIB_HASH=y
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_IP_ROUTE_FWMARK=y
CONFIG_IP_ROUTE_MULTIPATH=y
CONFIG_IP_ROUTE_MULTIPATH_CACHED=y
CONFIG_IP_ROUTE_MULTIPATH_RR=m
CONFIG_IP_ROUTE_MULTIPATH_RANDOM=m
CONFIG_IP_ROUTE_MULTIPATH_WRANDOM=m
CONFIG_IP_ROUTE_MULTIPATH_DRR=m
CONFIG_IP_ROUTE_VERBOSE=y
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_SYN_COOKIES=y
CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_INET_TUNNEL=m
CONFIG_IP_TCPDIAG=y
CONFIG_TCP_CONG_ADVANCED=y
CONFIG_TCP_CONG_BIC=y
CONFIG_TCP_CONG_WESTWOOD=m
CONFIG_TCP_CONG_HTCP=m
CONFIG_TCP_CONG_HSTCP=m
CONFIG_TCP_CONG_HYBLA=m
CONFIG_TCP_CONG_VEGAS=m
CONFIG_TCP_CONG_SCALABLE=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_BRIDGE_NETFILTER=y
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_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_MASQ

Re: sched_yield() makes OpenLDAP slow

2005-08-20 Thread Howard Chu

Nick Piggin wrote:

 Robert Hancock wrote:
> I fail to see how sched_yield is going to be very helpful in this
> situation. Since that call can sleep from a range of time ranging
> from zero to a long time, it's going to give unpredictable results.



 Well, not sleep technically, but yield the CPU for some undefined
 amount of time.


Since the slapd server was not written to run in realtime, nor is it 
commonly run on realtime operating systems, I don't believe predictable 
timing here is a criteria we care about. One could say the same of 
sigsuspend() by the way - it can pause a process for a range of time 
ranging from zero to a long time. Should we tell application writers not 
to use this function either, regardless of whether the developer thinks 
they have a good reason to use it?



> It seems to me that this sort of thing is why we have POSIX pthread
> synchronization primitives.. sched_yield is basically there for a
> process to indicate that "what I'm doing doesn't matter much, let
> other stuff run". Any other use of it generally constitutes some
> kind of hack.


In terms of transaction recovery, we do an exponential backoff on the 
retries, because our benchmarks showed that under heavy lock contention, 
immediate retries only made things worse. In fact, having arbitrarily 
long backoff delays here was shown to improve transaction throughput. 
(We use select() with an increasing timeval in combination with the 
yield() call. One way or another we get a longer delay as desired.)


sched_yield is there for a *thread* to indicate "what I'm doing doesn't 
matter much, let other stuff run."


I suppose it may be a hack. But then so is TCP congestion control. In 
both cases, empirical evidence indicates the hack is worthwhile. If you 
haven't done the analysis then you're in no position to deny the value 
of the approach.



 In SCHED_OTHER mode, you're right, sched_yield is basically
 meaningless.



 In a realtime system, there is a very well defined and probably
 useful behaviour.



 Eg. If 2 SCHED_FIFO processes are running at the same priority, One
 can call sched_yield to deterministically give the CPU to the other
 guy.


Well yes, the point of a realtime system is to provide deterministic 
response times to unpredictable input.


I'll note that we removed a number of the yield calls (that were in 
OpenLDAP 2.2) for the 2.3 release, because I found that they were 
redundant and causing unnecessary delays. My own test system is running 
on a Linux 2.6.12.3 kernel (installed over a SuSE 9.2 x86_64 distro), 
and OpenLDAP 2.3 runs perfectly well here, now that those redundant 
calls have been removed. But I also found that I needed to add a new 
yield(), to work around yet another unexpected issue on this system - we 
have a number of threads waiting on a condition variable, and the thread 
holding the mutex signals the var, unlocks the mutex, and then 
immediately relocks it. The expectation here is that upon unlocking the 
mutex, the calling thread would block while some waiting thread (that 
just got signaled) would get to run. In fact what happened is that the 
calling thread unlocked and relocked the mutex without allowing any of 
the waiting threads to run. In this case the only solution was to insert 
a yield() after the mutex_unlock(). So again, for those of you claiming 
"oh, all you need to do is use a condition variable or any of the other 
POSIX synchronization primitives" - yes, that's a nice theory, but 
reality says otherwise.


To say that sched_yield is basically meaningless is far overstating your 
point.

--
 -- Howard Chu
 Chief Architect, Symas Corp.  http://www.symas.com
 Director, Highland Sunhttp://highlandsun.com/hyc
 OpenLDAP Core Teamhttp://www.openldap.org/project/

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


RTL8139, the final patch ?

2005-08-20 Thread Rakotomandimby Mihamina
Hi,

I now use a notebook that uses RTL8139, and I encounter exactly the same
problems as this:

http://www.ussg.iu.edu/hypermail/linux/kernel/0402.3/1289.html

I know use Fedora Core 4 on this box.
With a Linux FC4 kernel (not customized yet).

As well as I still encounter the problem, I guess the solution has not
been found. 

Is there a summary of what should be done to resolv it? 

I would like to apply the needed patches. The only problem is I am not a
very very good C coder so that I could do it the wrong way.

Thank you :-)

-- 
Administration & Formation à l'administration
de serveurs dédiés:
http://www.google.fr/search?q=aspo+infogerance+serveur

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


Re: open("foo", 3)

2005-08-20 Thread Steven Rostedt
On Sat, 2005-08-20 at 10:30 -0700, Linus Torvalds wrote:
> 
> On Sat, 20 Aug 2005, Miklos Szeredi wrote:
> > 
> > My question is: is this deliberate or accidental?  Wouldn't it be more
> > logical to not require any permission to open such file?  Or is there
> > some security concern with that?
> 
> It's deliberate but historical. It's been a long time since I worked on
> it, but it was meant for "special opens".
> 
> I _think_ it was used for things like "open block device without media
> check" etc (we use O_NONBLOCK for that now), and it was used for directory
> opens before we had O_DIRECTORY. (It's literally been years, so my 
> recollection may be bogus).
> 
> I don't think anything uses it any more, and it should probably be 
> deprecated rather than extended upon.

It may also be dangerous, since I see several drivers using 

if ((filp->f_flags & O_ACCMODE) != RD_ONLY) {
  /* do something assuming we have write access */
   ...
}


Perhaps that access mode may not allow for getting to code like this,
but, since it's so old, you may have those that forget about the 3 mode,
and we lose the protection somewhere along the line.

It probably be better to not allow for it.  Or maybe an audit of such
code needs to be replaced with:

if (filp->f_mode & FMODE_WRITE) {
  ...
}

Just my $0.02

-- Steve



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


[PATCH 0/5] improve i2c probing

2005-08-20 Thread David Brownell
Hmm, some of this resembles my prototype from last month:

   http://lists.lm-sensors.org/pipermail/lm-sensors/2005-July/013012.html

Both ended up with new driver probe() methods attaching to *devices* not
to busses, and used the probe signature the i2c core already handles.
That helps eliminate one of the surprises hitting anyone starting to use
the I2C driver stack.  But not the more fundamental one...

What would you think about actually making I2C probing work more like
standard driver model probing, instead?  That is, have the probe method
signature look like this:

int probe(struct i2c_client *dev, void *driver_data)

In normal driver model usage, infrastructure creates the devices, and the
device drivers just bind to them.  But I2C doesn't support that even for
the submodel where it's very appropriate:  devices that have been probed,
or which (as with platform_bus) were explicitly declared to exist.

I2C drivers would either continue the old school way ... or could start
acting more like they do in other mainstream Linux driver frameworks.

- Dave


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


Re: [PATCH 2.6.13-rc6-rt9] PI aware dynamic priority adjustment

2005-08-20 Thread Oleg Nesterov
Thomas Gleixner wrote:
> 
> On Sat, 2005-08-20 at 18:10 +0400, Oleg Nesterov wrote:
> 
> > posix_timer_event() first checks that the thread (SIGEV_THREAD_ID
> > case) does not have PF_EXITING flag, then it calls send_sigqueue()
> > which locks task list. But if the thread exits in between the kernel
> > will oops.
> 
> > posix_timer_event() runs under k_itimer.it_lock, but this does not
> > help if that thread was not the only one in thread group, in this
> > case we don't call exit_itimers().
> 
> I added exit_notify_itimers() for that case. It is synchronized vs.
> posix_timer_event() via the timer lock and therefor protects against the
> race described above.
> 
> It solves the problem for the only user of send_sigqueue for now, but I
> think we should have a more general interface to such functionality to
> allow simple usage.
> 
> tglx
> 
> Signed-off-by: Thomas Gleixner <[EMAIL PROTECTED]>
> 
> diff -uprN --exclude-from=/usr/local/bin/diffit.exclude 
> linux-2.6.13-rc6/include/linux/sched.h 
> linux-2.6.13-rc6.work/include/linux/sched.h
> --- linux-2.6.13-rc6/include/linux/sched.h  2005-08-13 12:25:56.0 
> +0200
> +++ linux-2.6.13-rc6.work/include/linux/sched.h 2005-08-20 17:43:36.0 
> +0200
> @@ -1051,6 +1051,7 @@ extern void __exit_signal(struct task_st
>  extern void exit_sighand(struct task_struct *);
>  extern void __exit_sighand(struct task_struct *);
>  extern void exit_itimers(struct signal_struct *);
> +extern void exit_notify_itimers(struct signal_struct *);
> 
>  extern NORET_TYPE void do_group_exit(int);
> 
> diff -uprN --exclude-from=/usr/local/bin/diffit.exclude 
> linux-2.6.13-rc6/kernel/posix-timers.c 
> linux-2.6.13-rc6.work/kernel/posix-timers.c
> --- linux-2.6.13-rc6/kernel/posix-timers.c  2005-08-13 12:25:58.0 
> +0200
> +++ linux-2.6.13-rc6.work/kernel/posix-timers.c 2005-08-20 17:43:36.0 
> +0200
> @@ -1169,6 +1169,33 @@ void exit_itimers(struct signal_struct *
>  }
> 
>  /*
> + * This is called by __exit_signal, when there are still references to
> + * the shared signal_struct
> + */
> +void exit_notify_itimers(struct signal_struct *sig)
> +{
> +   struct k_itimer *timer;
> +   struct list_head *tmp;
> +   unsigned long flags;
> +
> +   list_for_each(tmp, &sig->posix_timers) {
> +
> +   timer = list_entry(tmp, struct k_itimer, list);
> +
> +   /* Protect against posix_timer_fn */
> +   spin_lock_irqsave(&timer->it_lock, flags);

I think this is deadlockable. We already (release_task) hold
tasklist_lock here. What if this timer has no SIGEV_THREAD_ID ?

posix_timer_fn locks timer->it_lock first, then locks tasklist_lock
in send_group_sigqueue().

Also, sys_timer_delete() locks ->it_lock, then ->sighand.lock.

I think the better fix would be re-check ->sighand in send_sigqueue,
like Paul's patches do.

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


Re: [Documentation] Use doxygen or another tool to generate a documentation ?

2005-08-20 Thread Sam Ravnborg
On Sat, Aug 20, 2005 at 11:19:41AM +0200, Stephane Wirtel wrote:
> Le Saturday 20 August 2005 a 09:08, Sam Ravnborg ecrivait: 
> > > 
> > > Ok, with scripts/kernel-doc, I can produce some html files containing 
> > > the functions' documentation.
> > > 
> > > make pdfdocs or others targets don't work :|
> > 
> > You probarly need some additional packages.
> > But it's not easy to help you with no log of what happened.
> Yes, sorry, 
> 
> Kernel : 2.6.12 from the git repository of Linus.
> 
> In make_docs.log.tar.bz2, you can find log files from make htmldocs,
> make psdocs and make pdfdocs.

>From your log-files I could not see what went wrong. It seems to be
error in the generated files.
Maybe Martin can help - Martin?

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


2.6.13-rc6-mm1: git-ocfs2.patch breaks jffs

2005-08-20 Thread Adrian Bunk
On Fri, Aug 19, 2005 at 04:33:31AM -0700, Andrew Morton wrote:
>...
> Changes since 2.6.13-rc5-mm1:
>...
>  git-ocfs2.patch
>...
>  Subsystem trees
>...

gcc correctly tells that at least a part of this patch incorrect (not 
that gcc says "is used", not "might be used"):

<--  snip  -->

...
  CC  fs/jffs/inode-v23.o
fs/jffs/inode-v23.c: In function 'jffs_create':
fs/jffs/inode-v23.c:1282: warning: 'inode' is used uninitialized in this 
function
...

<--  snip  -->

Looking at the code, it's trivial to verify that gcc is right.

cu
Adrian

-- 

   "Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
   "Only a promise," Lao Er said.
   Pearl S. Buck - Dragon Seed

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


Re: open("foo", 3)

2005-08-20 Thread Linus Torvalds


On Sat, 20 Aug 2005, Miklos Szeredi wrote:
> 
> My question is: is this deliberate or accidental?  Wouldn't it be more
> logical to not require any permission to open such file?  Or is there
> some security concern with that?

It's deliberate but historical. It's been a long time since I worked on
it, but it was meant for "special opens".

I _think_ it was used for things like "open block device without media
check" etc (we use O_NONBLOCK for that now), and it was used for directory
opens before we had O_DIRECTORY. (It's literally been years, so my 
recollection may be bogus).

I don't think anything uses it any more, and it should probably be 
deprecated rather than extended upon.

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


[PATCH] fix send_sigqueue() vs thread exit race

2005-08-20 Thread Oleg Nesterov
[PATCH] fix send_sigqueue() vs thread exit race

posix_timer_event() first checks that the thread (SIGEV_THREAD_ID
case) does not have PF_EXITING flag, then it calls send_sigqueue()
which locks task list. But if the thread exits in between the kernel
will oops (->sighand == NULL after __exit_sighand).

This patch moves the PF_EXITING check into the send_sigqueue(), it
must be done atomically under tasklist_lock. When send_sigqueue()
detects exiting thread it returns -1. In that case posix_timer_event
will send the signal to thread group.

Also, this patch fixes task_struct use-after-free in posix_timer_event.

Signed-off-by: Oleg Nesterov <[EMAIL PROTECTED]>

--- 2.6.13-rc6/kernel/signal.c~ 2005-08-18 23:10:28.0 +0400
+++ 2.6.13-rc6/kernel/signal.c  2005-08-20 23:05:21.0 +0400
@@ -1366,16 +1366,16 @@ send_sigqueue(int sig, struct sigqueue *
unsigned long flags;
int ret = 0;
 
-   /*
-* We need the tasklist lock even for the specific
-* thread case (when we don't need to follow the group
-* lists) in order to avoid races with "p->sighand"
-* going away or changing from under us.
-*/
BUG_ON(!(q->flags & SIGQUEUE_PREALLOC));
-   read_lock(&tasklist_lock);  
+   read_lock(&tasklist_lock);
+
+   if (unlikely(p->flags & PF_EXITING)) {
+   ret = -1;
+   goto out_err;
+   }
+
spin_lock_irqsave(&p->sighand->siglock, flags);
-   
+
if (unlikely(!list_empty(&q->list))) {
/*
 * If an SI_TIMER entry is already queue just increment
@@ -1385,7 +1385,7 @@ send_sigqueue(int sig, struct sigqueue *
BUG();
q->info.si_overrun++;
goto out;
-   } 
+   }
/* Short-circuit ignored signals.  */
if (sig_ignored(p, sig)) {
ret = 1;
@@ -1400,8 +1400,10 @@ send_sigqueue(int sig, struct sigqueue *
 
 out:
spin_unlock_irqrestore(&p->sighand->siglock, flags);
+out_err:
read_unlock(&tasklist_lock);
-   return(ret);
+
+   return ret;
 }
 
 int
--- 2.6.13-rc6/kernel/posix-timers.c~   2005-08-18 21:37:08.0 +0400
+++ 2.6.13-rc6/kernel/posix-timers.c2005-08-20 23:21:23.0 +0400
@@ -427,21 +427,23 @@ int posix_timer_event(struct k_itimer *t
timr->sigq->info.si_code = SI_TIMER;
timr->sigq->info.si_tid = timr->it_id;
timr->sigq->info.si_value = timr->it_sigev_value;
+
if (timr->it_sigev_notify & SIGEV_THREAD_ID) {
-   if (unlikely(timr->it_process->flags & PF_EXITING)) {
-   timr->it_sigev_notify = SIGEV_SIGNAL;
-   put_task_struct(timr->it_process);
-   timr->it_process = timr->it_process->group_leader;
-   goto group;
-   }
-   return send_sigqueue(timr->it_sigev_signo, timr->sigq,
-   timr->it_process);
-   }
-   else {
-   group:
-   return send_group_sigqueue(timr->it_sigev_signo, timr->sigq,
-   timr->it_process);
+   struct task_struct *leader;
+   int ret = send_sigqueue(timr->it_sigev_signo, timr->sigq,
+   timr->it_process);
+
+   if (likely(ret >= 0))
+   return ret;
+
+   timr->it_sigev_notify = SIGEV_SIGNAL;
+   leader = timr->it_process->group_leader;
+   put_task_struct(timr->it_process);
+   timr->it_process = leader;
}
+
+   return send_group_sigqueue(timr->it_sigev_signo, timr->sigq,
+  timr->it_process);
 }
 EXPORT_SYMBOL_GPL(posix_timer_event);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


open("foo", 3)

2005-08-20 Thread Miklos Szeredi
Linus et Al,

Access mode of 3 is undocumented but it does do something halfway sane
on all linuxes (checked back to 2.0.X).

The open requires both read and write permission to succeed, but the
resulting file descriptor can neither be read nor written.

The responsible code in filp_open() is this:

namei_flags = flags;
if ((namei_flags+1) & O_ACCMODE)
namei_flags++;

/* ... */

error = open_namei(filename, namei_flags, mode, &nd);
if (!error)
return dentry_open(nd.dentry, nd.mnt, flags);

And in dentry_open():

f->f_mode = ((flags+1) & O_ACCMODE) | /* ... */

Note, that open_namei() is checking permissions, and dentry_open()
sets f->f_mode, but calculates it differently.

My question is: is this deliberate or accidental?  Wouldn't it be more
logical to not require any permission to open such file?  Or is there
some security concern with that?

Thanks,
Miklos
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [2.6 patch] fs/adfs/adfs.h: "extern inline" doesn't make sense

2005-08-20 Thread Russell King
On Sat, Aug 20, 2005 at 01:44:43AM +0200, Adrian Bunk wrote:
> "extern inline" doesn't make sense.
> 
> Signed-off-by: Adrian Bunk <[EMAIL PROTECTED]>

Thanks Adrian - I've committed it to my tree.

-- 
Russell King
 Linux kernel2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:  2.6 Serial core
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 2.6.13-rc6-rt9] PI aware dynamic priority adjustment

2005-08-20 Thread Thomas Gleixner
On Sat, 2005-08-20 at 18:10 +0400, Oleg Nesterov wrote:

> posix_timer_event() first checks that the thread (SIGEV_THREAD_ID
> case) does not have PF_EXITING flag, then it calls send_sigqueue()
> which locks task list. But if the thread exits in between the kernel
> will oops.

> posix_timer_event() runs under k_itimer.it_lock, but this does not
> help if that thread was not the only one in thread group, in this
> case we don't call exit_itimers().

I added exit_notify_itimers() for that case. It is synchronized vs.
posix_timer_event() via the timer lock and therefor protects against the
race described above.

It solves the problem for the only user of send_sigqueue for now, but I
think we should have a more general interface to such functionality to
allow simple usage.

tglx

Signed-off-by: Thomas Gleixner <[EMAIL PROTECTED]>


diff -uprN --exclude-from=/usr/local/bin/diffit.exclude 
linux-2.6.13-rc6/include/linux/sched.h 
linux-2.6.13-rc6.work/include/linux/sched.h
--- linux-2.6.13-rc6/include/linux/sched.h  2005-08-13 12:25:56.0 
+0200
+++ linux-2.6.13-rc6.work/include/linux/sched.h 2005-08-20 17:43:36.0 
+0200
@@ -1051,6 +1051,7 @@ extern void __exit_signal(struct task_st
 extern void exit_sighand(struct task_struct *);
 extern void __exit_sighand(struct task_struct *);
 extern void exit_itimers(struct signal_struct *);
+extern void exit_notify_itimers(struct signal_struct *);
 
 extern NORET_TYPE void do_group_exit(int);
 
diff -uprN --exclude-from=/usr/local/bin/diffit.exclude 
linux-2.6.13-rc6/kernel/posix-timers.c 
linux-2.6.13-rc6.work/kernel/posix-timers.c
--- linux-2.6.13-rc6/kernel/posix-timers.c  2005-08-13 12:25:58.0 
+0200
+++ linux-2.6.13-rc6.work/kernel/posix-timers.c 2005-08-20 17:43:36.0 
+0200
@@ -1169,6 +1169,33 @@ void exit_itimers(struct signal_struct *
 }
 
 /*
+ * This is called by __exit_signal, when there are still references to
+ * the shared signal_struct
+ */
+void exit_notify_itimers(struct signal_struct *sig)
+{
+   struct k_itimer *timer;
+   struct list_head *tmp;
+   unsigned long flags;
+
+   list_for_each(tmp, &sig->posix_timers) {
+
+   timer = list_entry(tmp, struct k_itimer, list);
+
+   /* Protect against posix_timer_fn */
+   spin_lock_irqsave(&timer->it_lock, flags);
+   if (timer->it_process == current) {
+   
+   if (timer->it_sigev_notify == 
(SIGEV_SIGNAL|SIGEV_THREAD_ID))
+   timer->it_sigev_notify = SIGEV_SIGNAL;
+   
+   timer->it_process = timer->it_process->group_leader;
+   } 
+   spin_lock_irqrestore(&timer->it_lock, flags);
+   }
+}
+
+/*
  * And now for the "clock" calls
  *
  * These functions are called both from timer functions (with the timer
diff -uprN --exclude-from=/usr/local/bin/diffit.exclude 
linux-2.6.13-rc6/kernel/signal.c linux-2.6.13-rc6.work/kernel/signal.c
--- linux-2.6.13-rc6/kernel/signal.c2005-08-13 12:25:58.0 +0200
+++ linux-2.6.13-rc6.work/kernel/signal.c   2005-08-20 17:57:46.0 
+0200
@@ -390,6 +390,7 @@ void __exit_signal(struct task_struct *t
sig->nvcsw += tsk->nvcsw;
sig->nivcsw += tsk->nivcsw;
sig->sched_time += tsk->sched_time;
+   exit_notify_itimers(sig);
spin_unlock(&sighand->siglock);
sig = NULL; /* Marker for below.  */
}
@@ -1381,13 +1382,12 @@ send_sigqueue(int sig, struct sigqueue *
int ret = 0;
 
/*
-* We need the tasklist lock even for the specific
-* thread case (when we don't need to follow the group
-* lists) in order to avoid races with "p->sighand"
-* going away or changing from under us.
+* No need to hold tasklist lock here. 
+* posix_timer_event() is synchronized via 
+* exit_itimers() and exit_notify_itimers() to 
+* be protected against p->sighand == NULL
 */
BUG_ON(!(q->flags & SIGQUEUE_PREALLOC));
-   read_lock(&tasklist_lock);  
spin_lock_irqsave(&p->sighand->siglock, flags);

if (unlikely(!list_empty(&q->list))) {
@@ -1414,7 +1414,6 @@ send_sigqueue(int sig, struct sigqueue *
 
 out:
spin_unlock_irqrestore(&p->sighand->siglock, flags);
-   read_unlock(&tasklist_lock);
return(ret);
 }
 


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


Re: 2.6.13-rc6-mm1 [i6300escb.c 2 bugs, little cleanup]

2005-08-20 Thread Jiri Slaby
In i6300esb.c watchdog card driver were 2 bugs (misused pc_match_device
and pci_dev_put wasn't called in one error case) and one little cleanup
was done (long line was converted to a shorter one with using built-in
macro).

Generated in 2.6.13-rc6-mm1 kernel version.

Signed-off-by: Jiri Slaby <[EMAIL PROTECTED]>

i6300esb.c |9 +
1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/char/watchdog/i6300esb.c b/drivers/char/watchdog/i6300esb.c
--- a/drivers/char/watchdog/i6300esb.c
+++ b/drivers/char/watchdog/i6300esb.c
@@ -349,7 +349,7 @@ static struct notifier_block esb_notifie
  * want to register another driver on the same PCI id.
  */
 static struct pci_device_id esb_pci_tbl[] = {
-{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ESB_9, PCI_ANY_ID, 
PCI_ANY_ID, },
+{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ESB_9), },
 { 0, }, /* End of list */
 };
 MODULE_DEVICE_TABLE (pci, esb_pci_tbl);
@@ -369,7 +369,7 @@ static unsigned char __init esb_getdevic
  */
 
 for_each_pci_dev(dev)
-if (pci_match_device(esb_pci_tbl, dev)) {
+if (pci_match_id(esb_pci_tbl, dev)) {
 esb_pci = dev;
 break;
 }
@@ -377,7 +377,7 @@ static unsigned char __init esb_getdevic
 if (esb_pci) {
if (pci_enable_device(esb_pci)) {
printk (KERN_ERR PFX "failed to enable device\n");
-   goto out;
+   goto err_devput;
}
 
if (pci_request_region(esb_pci, 0, ESB_MODULE_NAME)) {
@@ -429,9 +429,10 @@ err_release:
pci_release_region(esb_pci, 0);
 err_disable:
pci_disable_device(esb_pci);
+err_devput:
pci_dev_put(esb_pci);
}
-out:
+
return 0;
 }
 
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: SATA status report updated

2005-08-20 Thread Rainer Koenig
Hi Jeff,

Jeff Garzik <[EMAIL PROTECTED]> writes:

> Here is a list of problems with the patch.  I'll paste this into the
> bug as well:

[Lot of interesting issues]

> 8) The DMA pad code is very buggy.  It uses the dma_map_single() to
> map a buffer, but never synchronizes nor flushes the buffer.  This can
> and will lead to data corruption, particularly on x86-64 platform.

That's very bad since the target platform for that chipset is able
to support AMD64. :-(

>From your comments I've learned that my patch (just the device ID) is
too tiny and the SiS provided patch is doing too much things that it
shouldn't do. How can we find a solution for that? 

Would it make sense that I try to find the "goods" in the SiS patch and
merge them somehow in the actual kernel? But: What kernel shall I take
to do that work? The latest development kernel, the kernel of my 
distribution (whatever this will be, sooner or later it has to work
with all distributions) or just a kernel that is "close" to the patch
from SiS, e.g. 2.6.10? 

As I mentioned before, getting hardware to try out patches wouldn't be
that big deal since I'm located in a PC factory and I can get test 
machines if needed. What would be good tests to e.g. detect the problems
that you mentioned above? Are there hardware specific tests for SATA
hard disks around? I would be very interested in that since testing 
also under Linux will become daily work for me and my colleauges from
the system test department.

Best regards
Rainer (posting from home)
-- 
Please send NO spam to my mail addresses.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: 2.6.13-rc6-rt9

2005-08-20 Thread Darren Hart

Thomas Gleixner wrote:

On Fri, 2005-08-19 at 15:13 -0700, Darren Hart wrote:

I was trying to use another HRT clock source and couldn't get menuconfig 
to let me select acpi-pm-timer, turns out it has been disabled in 
arch/i386/Kconfig, but the description is still in the help...



# config HIGH_RES_TIMER_ACPI_PM
#   bool "ACPI-pm-timer"

Is the pm timer incompatible with the RT portion of this patch?



The only timesource I came around to fixup is TSC in combination with
PIT or preferred Local APIC. Add "lapic" to your kernel command line for
UP boxen. Therefor it is disabled for now.


I'm looking into getting HRT and RT booting on a SUMMIT NUMA machine 
(cyclone timer), but after s/error/warning/ in arch/i386/timers/timer.c 
for the HRT cyclone ifdef, I still get the following link error:



It should be simple to fix this. Just not right now. I have no such box
and restricted time resources. Can you test a patch when I find a slot?


Absolutely.


But of course you are heartely invited to fix it yourself :)


As always :-)



tglx



Thanks for the response, I wanted to hear your take on this rather than making 
any assumptions as to the state of the patch.









--
Darren Hart
IBM Linux Technology Center
Linux Kernel Team
Phone: 503 578 3185
  T/L: 775 3185
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Linux-2.4.31-hf4

2005-08-20 Thread Willy Tarreau
Hello !

After having accumulated a few weeks delay, the fourth hotfix for kernel
2.4.31 is finally out. It was also the right time to release it now that
the isofs and zlib stories came to an end.

Because of the ZISOFS security fix, users of older -hf or plain 2.4.X
should upgrade either to latest -hf or to 2.4.32-pre3. Other fixes are
less important.

As usual, I've also updated 2.4.29 and 2.4.30. So all 3 Kernels 2.4.29-hf14,
2.4.30-hf7 and 2.4.31-hf4 are available as individual, full, and incremental
patches here:

http://linux.exosec.net/kernel/2.4/2.4-hf/

The changelog is appended to this mail. I've built 2.4.31-hf4 with all
modules, and nothing more yet, but Grant Coady will soon report the
full build and run test here :

http://bugsplatter.mine.nu/test/linux-2.4/  (warning! URL changed)

Regards,
Willy

--

Changelog From 2.4.31-hf3 to 2.4.31-hf4
---
'+' = added ; '-' = removed

- 2.4.31-zlib-security-bugs-1(Tim Yamin)
+ 2.4.31-zlib-security-bugs-2 (Tim Yamin, Sergey Vlasov)

  Reverted the Z_OK to Z_DATA_ERROR changes in inftrees.c (& PPC).

+ 2.4.31-zisofs-check-deflatebound-1(Linus Torvalds)

  [PATCH] PATCH: Fix outstanding gzip/zlib security issues
  Add fakey 'deflateBound()' function to the in-kernel zlib routines.
  It's not the real deflateBound() in newer zlib libraries, partly because
  the upcoming usage of it won't have the "stream" available, so we can't
  have the same interfaces anyway. Problem noted by Tim Yamin.

+ 2.4.31-nat-fix-memory-corruption-1   (Patrick McHardy)

  [NETFILTER]: Fix potential memory corruption in NAT code (aka memory NAT)

+ 2.4.31-isofs-option-parse-fix-1   (Horms + Andrey J.Melnikoff)

  Fix isofs option parser. If iocharset, map or session are matched,
  then none of the if or else if clauses under sbsector will match
  (that is none of these clauses match iocharset, map or session),
  and thus the else clause will be hit, and the function will return
  1 without parsing any furhter options. Also fix gcc-3.4 warnings.

+ 2.4.31-netfilter-tcp-unclean-1.diff  (Patrick McHardy)

  [NETFILTER]: Ignore PSH on SYN/ACK in ipt_unclean

+ 2.4.31-redblacktree-missing-returns-1  ([EMAIL PROTECTED])

  [PATCH] fix RedBlackTree rb_next/rb_prev functions. I have found a
  bug in the source of rbtree.c file in /lib. In Kernel 2.6 it's ok,
  but 2.4.31 has this error. We try to use it with the jffs2 source
  code and only with this fix it works fine.

+ 2.4.31-alpha-cabriolet-needs-ns87312-1   (Bill Dupree)

  [PATCH] Fix Alpha AXP Cabriolet build. Alpha AXP Cabriolet build
  fails with unresolved reference to ns87312_enable_ide().

-- END --

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


[PATCH] ia64 cpuset + build_sched_domains() mangles structures

2005-08-20 Thread John Hawkes
I've already sent this to the maintainers, and this is now being sent to a
larger community audience.  I have fixed a problem with the ia64 version of
build_sched_domains(), but a similar fix still needs to be made to the
generic build_sched_domains() in kernel/sched.c.

The "dynamic sched domains" functionality has recently been merged into
2.6.13-rcN that sees the dynamic declaration of a cpu-exclusive (a.k.a.
"isolated") cpuset and rebuilds the CPU Scheduler sched domains and sched
groups to separate away the CPUs in this cpu-exclusive cpuset from the
remainder of the non-isolated CPUs.  This allows the non-isolated CPUs to
completely ignore the isolated CPUs when doing load-balancing.

Unfortunately, build_sched_domains() expects that a sched domain will
include all the CPUs of each node in the domain, i.e., that no node will
belong in both an isolated cpuset and a non-isolated cpuset.  Declaring
a cpuset that violates this presumption will produce flawed data
structures and will oops the kernel.

To trigger the problem (on a NUMA system with >1 CPUs per node):
   cd /dev/cpuset
   mkdir newcpuset
   cd newcpuset
   echo 0 >cpus
   echo 0 >mems
   echo 1 >cpu_exclusive

I have fixed this shortcoming for ia64 NUMA (with multiple CPUs per node).
A similar shortcoming exists in the generic build_sched_domains() (in
kernel/sched.c) for NUMA, and that needs to be fixed also.  The fix involves
dynamically allocating sched_group_nodes[] and sched_group_allnodes[] for
each invocation of build_sched_domains(), rather than using global arrays
for these structures.  Care must be taken to remember kmalloc() addresses
so that arch_destroy_sched_domains() can properly kfree() the new dynamic
structures.

This is a patch against 2.6.13-rc6.

Signed-off-by: John Hawkes <[EMAIL PROTECTED]>

Index: linux/arch/ia64/kernel/domain.c
===
--- linux.orig/arch/ia64/kernel/domain.c2005-08-19 08:54:00.0 
-0700
+++ linux/arch/ia64/kernel/domain.c 2005-08-20 07:39:32.0 -0700
@@ -120,10 +120,10 @@
  * gets dynamically allocated.
  */
 static DEFINE_PER_CPU(struct sched_domain, node_domains);
-static struct sched_group *sched_group_nodes[MAX_NUMNODES];
+static struct sched_group **sched_group_nodes_bycpu[NR_CPUS];
 
 static DEFINE_PER_CPU(struct sched_domain, allnodes_domains);
-static struct sched_group sched_group_allnodes[MAX_NUMNODES];
+static struct sched_group *sched_group_allnodes_bycpu[NR_CPUS];
 
 static int cpu_to_allnodes_group(int cpu)
 {
@@ -138,6 +138,21 @@
 void build_sched_domains(const cpumask_t *cpu_map)
 {
int i;
+#ifdef CONFIG_NUMA
+   struct sched_group **sched_group_nodes = NULL;
+   struct sched_group *sched_group_allnodes = NULL;
+
+   /*
+* Allocate the per-node list of sched groups
+*/
+   sched_group_nodes = kmalloc(sizeof(struct sched_group*)*MAX_NUMNODES,
+  GFP_ATOMIC);
+   if (!sched_group_nodes) {
+   printk(KERN_WARNING "Can not alloc sched group node list\n");
+   return;
+   }
+   sched_group_nodes_bycpu[first_cpu(*cpu_map)] = sched_group_nodes;
+#endif
 
/*
 * Set up domains for cpus specified by the cpu_map.
@@ -150,8 +165,21 @@
cpus_and(nodemask, nodemask, *cpu_map);
 
 #ifdef CONFIG_NUMA
-   if (num_online_cpus()
+   if (cpus_weight(*cpu_map)
> SD_NODES_PER_DOMAIN*cpus_weight(nodemask)) {
+   if (!sched_group_allnodes) {
+   sched_group_allnodes
+   = kmalloc(sizeof(struct sched_group)
+   * MAX_NUMNODES,
+ GFP_KERNEL);
+   if (!sched_group_allnodes) {
+   printk(KERN_WARNING
+   "Can not alloc allnodes sched group\n");
+   break;
+   }
+   sched_group_allnodes_bycpu[i]
+   = sched_group_allnodes;
+   }
sd = &per_cpu(allnodes_domains, i);
*sd = SD_ALLNODES_INIT;
sd->span = *cpu_map;
@@ -214,8 +242,9 @@
}
 
 #ifdef CONFIG_NUMA
-   init_sched_build_groups(sched_group_allnodes, *cpu_map,
-   &cpu_to_allnodes_group);
+   if (sched_group_allnodes)
+   init_sched_build_groups(sched_group_allnodes, *cpu_map,
+   &cpu_to_allnodes_group);
 
for (i = 0; i < MAX_NUMNODES; i++) {
/* Set up node groups */
@@ -226,8 +255,10 @@
int j;
 
cpus_and(nodemask, nodemask, *cpu_m

Re: 2.6.13-rc6-mm1

2005-08-20 Thread Martin J. Bligh
--Andrew Morton <[EMAIL PROTECTED]> wrote (on Friday, August 19, 2005 04:33:31 
-0700):

> 
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.13-rc6/2.6.13-rc6-mm1/
> 
> - Lots of fixes, updates and cleanups all over the place.
> 
> - If you have the right debugging options set, this kernel will generate
>   a storm of sleeping-in-atomic-code warnings at boot, from the scsi code.
>   It is being worked on.

Get a couple of debug warnings as you mention ... but then it panics.


scsi0 : Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 7.0

aic7899: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBs

scsi1 : Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 7.0

aic7899: Ultra160 Wide Channel B, SCSI Id=7, 32/253 SCBs

  Vendor: IBM   Model: GNHv1 S2  Rev: 0   
  Type:   Processor  ANSI SCSI revision: 02
 target1:0:9: Beginning Domain Validation
 target1:0:9: Ending Domain Validation
  Vendor: IBM-ESXS  Model: DTN036C1UCDY10F   Rev: S25J
  Type:   Direct-Access  ANSI SCSI revision: 03
scsi1:A:12:0: Tagged Queuing enabled.  Depth 253
 target1:0:12: Beginning Domain Validation
 target1:0:12: wide asynchronous.
 target1:0:12: FAST-80 WIDE SCSI 160.0 MB/s DT (12.5 ns, offset 127)
 target1:0:12: Ending Domain Validation
  Vendor: IBM-ESXS  Model: DTN036C1UCDY10F   Rev: S25J
  Type:   Direct-Access  ANSI SCSI revision: 03
scsi1:A:13:0: Tagged Queuing enabled.  Depth 253
 target1:0:13: Beginning Domain Validation
 target1:0:13: wide asynchronous.
 target1:0:13: FAST-80 WIDE SCSI 160.0 MB/s DT (12.5 ns, offset 127)
 target1:0:13: Ending Domain Validation
scsi2 : Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 7.0

aic7899: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBs

scheduling while atomic: swapper/0x0100/0
 [] schedule+0x45/0x724
 [] __wake_up+0x31/0x3c
 [] dcache_shrinker_del+0x2e/0x38
 [] dput_recursive+0x232/0x270
 [] dput_recursive+0x265/0x270
 [] __down+0x7f/0x108
 [] default_wake_function+0x0/0x1c
 [] __down_failed+0x7/0xc
 [] .text.lock.attribute_container+0x8b/0xc1
 [] transport_remove_device+0xf/0x14
 [] transport_remove_classdev+0x0/0x58
 [] scsi_target_reap+0x86/0xb4
 [] scsi_device_dev_release+0x134/0x15c
 [] device_release+0x14/0x4c
 [] kobject_cleanup+0x47/0x6c
 [] kobject_release+0x0/0x14
 [] kobject_release+0xd/0x14
 [] kref_put+0x79/0x89
 [] kobject_put+0x16/0x1c
 [] kobject_release+0x0/0x14
 [] put_device+0x11/0x18
 [] scsi_put_command+0xa5/0xb0
 [] scsi_next_command+0x11/0x1c
 [] scsi_end_request+0xa9/0xb4
 [] scsi_io_completion+0x489/0x494
 [] scsi_generic_done+0x32/0x38
 [] scsi_finish_command+0xa0/0xa8
 [] scsi_softirq+0x139/0x154
 [] __do_softirq+0x8d/0x100
 [] do_softirq+0x2f/0x34
 [] irq_exit+0x34/0x38
 [] do_IRQ+0x20/0x28
 [] common_interrupt+0x1a/0x20
 [] default_idle+0x0/0x2c
 [] default_idle+0x23/0x2c
 [] cpu_idle+0x7b/0x8c
 [] rest_init+0x28/0x2c
 [] start_kernel+0x197/0x19c
scheduling while atomic: swapper/0x0100/0
 [] schedule+0x45/0x724
 [] default_wake_function+0x17/0x1c
 [] __wake_up_common+0x37/0x50
 [] __wake_up+0x31/0x3c
 [] wait_for_completion+0x90/0xe8
 [] default_wake_function+0x0/0x1c
 [] default_wake_function+0x0/0x1c
 [] call_usermodehelper_keys+0x144/0x15a
 [] __call_usermodehelper+0x0/0x4c
 [] __call_usermodehelper+0x0/0x4c
 [] kobject_hotplug+0x255/0x280
 [] class_device_del+0x8d/0xa8
 [] attribute_container_class_device_del+0x11/0x18
 [] transport_remove_classdev+0x4f/0x58
 [] attribute_container_device_trigger+0x7f/0xb8
 [] transport_remove_device+0xf/0x14
 [] transport_remove_classdev+0x0/0x58
 [] scsi_target_reap+0x86/0xb4
 [] scsi_device_dev_release+0x134/0x15c
 [] device_release+0x14/0x4c
 [] kobject_cleanup+0x47/0x6c
 [] kobject_release+0x0/0x14
 [] kobject_release+0xd/0x14
 [] kref_put+0x79/0x89
 [] kobject_put+0x16/0x1c
 [] kobject_release+0x0/0x14
 [] put_device+0x11/0x18
 [] scsi_put_command+0xa5/0xb0
 [] scsi_next_command+0x11/0x1c
 [] scsi_end_request+0xa9/0xb4
 [] scsi_io_completion+0x489/0x494
 [] scsi_generic_done+0x32/0x38
 [] scsi_finish_command+0xa0/0xa8
 [] scsi_softirq+0x139/0x154
 [] __do_softirq+0x8d/0x100
 [] do_softirq+0x2f/0x34
 [] irq_exit+0x34/0x38
 [] do_IRQ+0x20/0x28
 [] common_interrupt+0x1a/0x20
 [] default_idle+0x0/0x2c
 [] default_idle+0x23/0x2c
 [] cpu_idle+0x7b/0x8c
 [] rest_init+0x28/0x2c
 [] start_kernel+0x197/0x19c
Unable to handle kernel NULL pointer dereference at virtual address 
 printing eip:
c0263cf2
*pde = 0042c001
*pte = 
Oops:  [#1]
SMP 
last sysfs file: 
CPU:0
EIP:0060:[]Not tainted VLI
EFLAGS: 00010282   (2.6.13-rc6-mm1-autokern1) 
EIP is at scsi_run_queue+0xe/0xb4
eax: d777ce30   ebx: d777ce30   ecx: 0282   edx: d6c4cc00
esi: d777ce30   edi:    ebp: 0246   esp: c03dde98
ds: 007b   es: 007b   ss: 0068
Process swapper (pid: 0, threadinfo=c03dc000 task=c0373be0)
Stack: d777ce30 d777ce30 d76fb500 0246 c0263dfb d777ce30 

CLOCK_TICK_RATE for slowing down the system clock?

2005-08-20 Thread ijs
For my own purpose I would like to slow down the clock maintained by
the Linux kernel.

I want to simulate 10Gb/s network connection with roughly 1 TCP
connections.  For this I want to use two (perhaps dual processor if
need be) PC computers connected with 1Gb/s Ethernet.  To achieve this
goal I need to trick the Linux TCP implementation that it's running on
a 10x faster setup.

Therefore I have the following idea, which I partially tested.  So far
I have not tested the TCP performance, but only some general system
performance.  I did some simple tests with Linux 2.6.12 on my laptop
with Pentium 4, 2.8 GHz, no hyperthreading.

The idea is to slow down 10 times the clock maintained by the Linux
kernel.  Software that relies on the system clock (such as the TCP
Linux kernel implementation, and other software such as the top
command) should be tricked to think that it runs on a 10 times faster
computer with a 10Gb/s link.

The simplest hack I have came up with to slow down the clock is to
compile the kernel with a different frequency of the hardware clock as
defined in the linux-2.6.12/include/asm-i386/timex.h file:

#  define CLOCK_TICK_RATE 1193182 /* Underlying HZ */

I multiplied this value by 10:

#  define CLOCK_TICK_RATE 11931820 /* Underlying HZ */

I recompiled and installed the new kernel.  Once we are running (with
the noapic option at boot time) the new kernel, a simple way of making
sure the system clock is running slower is to use the date command and
see how slow the time is passing.  And yes, the system clock was
running 10 times slower.  But unfortunately, not only the system clock
was running slower...

Some tasks were running slower.  Linux would boot 5 times slower, and
it would shut down 5 times slower, which might be caused by the sleep
and usleep commands used in the /etc/init.d scripts.  Naturally, I
expected some software to run 10 times slower, such as the top
command, which is supposed to report results every 3 seconds.

My simple test was to copy a 1GB file between two disc partitions.  On
a regular kernel I ran:

~ >time cp 1GB /jaguar/ijs/
real1m50.529s
user0m0.185s
sys 0m6.869s

Then on the slow kernel I ran:

~ >time cp 1GB /jaguar/ijs/

real0m10.444s
user0m0.013s
sys 0m0.578s

Sometimes I had an impression that on the slow kernel some things
worked slightly slower, such as logging in.

Overall, however, it seems that the system was performing 10 times
faster when measured with the slowed down system clock.  Therefore my
simple tests give me some courage to pursue this path.  But before I
start working on this and spend more time on testing and implementing
my software, I want to make sure that I hope for too much and that my
plan is viable.

MY QUESTION IS: Are there some pitfalls or problems which I failed to
notice?

Thanks for reading!


Best,
Irek

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


Re: [PATCH 2.6.13-rc6-rt9] PI aware dynamic priority adjustment

2005-08-20 Thread Oleg Nesterov
Thomas Gleixner wrote:
>
> send_sigqueue is called from posix_timer_fn() and acquires
> tasklist_lock, which makes no sense to me.
>
> send_sigqueue()s (l)onl(e)y user is the posix_timer function
> (posix_timer_fn(), calling posix_timer_event()).
>
> Each posix timer blocks the task from vanishing away by
> get_task_struct(), which is protected by the held tasklist_lock.
>
> The task can neither go away nor the signal handler can change until
> put_task_struct() is called inside release_posix_timer(), which removes
> any chance to do an invalid access to either task or sighand because the
> relevant timer is deleted before the call to put_task_struct(). Also
> this call is protected by tasklist_lock().

Yes, the task_struct can't go away, but if process exited this
task_struct is just chunk of garbage. I think the intent was to
protect against this case.

However, I agree with you, locking the tasklist_lock can't help,
and the code is wrong.

posix_timer_event() first checks that the thread (SIGEV_THREAD_ID
case) does not have PF_EXITING flag, then it calls send_sigqueue()
which locks task list. But if the thread exits in between the kernel
will oops.

posix_timer_event() runs under k_itimer.it_lock, but this does not
help if that thread was not the only one in thread group, in this
case we don't call exit_itimers().

The comment is wrong too. ->sighand can't change, we are clearing
posix timer on exec, and tasklist can't prevent ->sighand from
going away..

Ingo, Roland, George, am I wrong?

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


Re: sched_yield() makes OpenLDAP slow

2005-08-20 Thread Andi Kleen
Howard Chu <[EMAIL PROTECTED]> writes:

> In this specific example, we use whatever
> BerkeleyDB provides and we're certainly not about to write our own
> transactional embedded database engine just for this.

BerkeleyDB is free software after all that comes with source code. 
Surely it can be fixed without rewriting it from scratch.

Has anybody contacted the Sleepycat people with a description of the 
problem yet?

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


Re: 2.6.13-rc6-mm1

2005-08-20 Thread David Woodhouse
On Fri, 2005-08-19 at 18:36 -0700, Andrew Morton wrote:
> Reuben Farrelly <[EMAIL PROTECTED]> wrote:
> >
> > ...
> > >> 4. PAM is complaining about "PAM audit_open() failed: Protocol not suppor
> > >> ted" and I can't log in as any user including root.  I would have picked 
> > >> this 
> > >> was a userspace problem, but it doesn't break with -rc5-mm1, yet 
> > >> reproduceably 
> > >> breaks with -rc6-mm1.  Weird.
> > > 
> > > hm.  How come you're able to use the machine then?
> > 
> > Machine was booting up ok, and things were being written to syslog.  
> > Rebooted 
> > into -rc5-mm1 to investigate, and of course could boot into rc6-mm1 in 
> > single 
> > user mode, test and bring services up one by one from there.  Having two 
> > boxes 
> > helped too.
> > 
> > > Is it possible to get an strace of this failure somehow?
> > 
> > Not sure if this is needed anymore, as I found that the problem goes away 
> > when 
> > I compile in kernel auditing.  This not required for -rc5-mm1.  Is that 
> > change 
> > intended?
> > 
> 
> Sounds wrong to me, especially if 2.6.13-rc6 doesn't do that.

Hm. It sounds like you'd configured PAM to require the pam_loginuid
module even though you didn't have auditing enabled in your kernel. That
seems strange and wrong to me, and _is_ a userspace problem.

I'd also agree that it shouldn't have changed with the new kernel though
-- and I can't think of anything I changed recently which would have
that effect. An strace would still be useful.

Can you double-check that you didn't have auditing enabled in your
older, working kernel?

-- 
dwmw2

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


Re: sched_yield() makes OpenLDAP slow

2005-08-20 Thread Nikita Danilov
Howard Chu writes:
 > Nikita Danilov wrote:

[...]

 > 
 > >  What prevents transaction monitor from using, say, condition
 > >  variables to "yield cpu"? That would have an additional advantage of
 > >  blocking thread precisely until specific event occurs, instead of
 > >  blocking for some vague indeterminate load and platform dependent
 > >  amount of time.
 > 
 > Condition variables offer no control over which thread is waken up. 

When only one thread waits on a condition variable, which is exactly a
scenario involved, --sorry if I weren't clear enough-- condition signal
provides precise control over which thread is woken up.

 > We're wandering into the design of the SleepyCat BerkeleyDB library 
 > here, and we don't exert any control over that either. BerkeleyDB 
 > doesn't appear to use pthread condition variables; it seems to construct 
 > its own synchronization mechanisms on top of mutexes (and yield calls). 

That returns us to the core of the problem: sched_yield() is used to
implement a synchronization primitive and non-portable assumptions are
made about its behavior: SUS defines that after sched_yield() thread
ceases to run on the CPU "until it again becomes the head of its thread
list", and "thread list" discipline is only defined for real-time
scheduling policies. E.g., 

int sched_yield(void)
{
   return 0;
}

and

int sched_yield(void)
{
   sleep(100);
   return 0;
}

are both valid sched_yield() implementation for non-rt (SCHED_OTHER)
threads.

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


Re: Kernel bug: Bad page state: related to generic symlink code and mmap

2005-08-20 Thread Anton Altaparmakov
Hi Linus,

On Fri, 19 Aug 2005, Linus Torvalds wrote:
> On Fri, 19 Aug 2005, Anton Altaparmakov wrote:
> > Yes, sure.  I have applied your patch to our 2.6.11.4 tree (with the one 
> > liner change I emailed you just now) and have kicked off a compile.
> 
> Actually, hold on. The original patch had another problem: it returned an
> uninitialized "page" pointer when page_getlink() failed.

I copied the fix to that problem from your new patch by hand and 
recompiled the kernel (that way I didn't have to rebuild the modules 
again).  Note I did not apply any of the fs specific changes.  I only did 
the VFS part of your patch that was actually necessary.  And I reverted my 
ncpfs fix so it is now again using the vfs supplied symlink helpers.

Having booted the new kernel and trying nautilus it worked fine accessing 
the same symlink that failed before, so your patch fixes the ncpfs 
problem as one would expect but always good to be sure.  (-:

btw. It may be an idea to switch smbfs to use the fixed generic symlink 
functions, too, so it benefits from symlink caching...

Best regards,

Anton
-- 
Anton Altaparmakov  (replace at with @)
Unix Support, Computing Service, University of Cambridge, CB2 3QH, UK
Linux NTFS maintainer / IRC: #ntfs on irc.freenode.net
WWW: http://linux-ntfs.sf.net/ & http://www-stu.christs.cam.ac.uk/~aia21/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 2.6-mm] tms380tr: remove prototypes in Space.c

2005-08-20 Thread Adrian Bunk
On Fri, Aug 19, 2005 at 03:07:09AM -0400, Jeff Garzik wrote:

> these two patches look OK to me, but didn't apply.
> 
> Can you please resend, according to
> 
>   http://linux.yyz.us/patch-format.html
> 
> ?

It seems the second of Jochen's patches does no longer apply (at least 
against the latest -mm), but what was wrong with the format of his 
patches?

>   Jeff

cu
Adrian

-- 

   "Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
   "Only a promise," Lao Er said.
   Pearl S. Buck - Dragon Seed

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


Re: [patch 2.6.13-rc6] docs: fix misinformation about overcommit_memory

2005-08-20 Thread Adrian Bunk
On Fri, Aug 19, 2005 at 11:14:39PM -0400, Chuck Ebbert wrote:

> Someone complained about the docs for vm_overcommit_memory being wrong.
> This patch copies the text from the vm documentation into procfs.
> Please apply.
>...

Do we really need two copies of the same text?

Couldn't you instead write some kind of "please look at 
Documentation/vm/overcommit-accounting"?

> Chuck

cu
Adrian

-- 

   "Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
   "Only a promise," Lao Er said.
   Pearl S. Buck - Dragon Seed

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


Re: [RFC][PATCH] Rename PageChecked as PageMiscFS

2005-08-20 Thread David Howells
Daniel Phillips <[EMAIL PROTECTED]> wrote:

> Biased.  Fs is a mixed case acronym, nuff said.

But I'm still right:-)

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


Re: [PATCH 2/2] external interrupts: IOC4 driver

2005-08-20 Thread Christoph Hellwig
> +config EXTINT_SGI_IOC4
> + tristate "Device driver for SGI IOC4 external interrupts"
> + depends on (IA64_GENERIC || IA64_SGI_SN2) && EXTINT && BLK_DEV_SGIIOC4

Is the ioc4 core abstraction config symbol really BLK_DEV_SGIIOC4?
That probably wants fixing in a separate patch.

> +   This option enables support for the external interrupt ingest
> +   and generation capabilities of SGI IOC4 IO controllers.  If
> +   you have an SGI Altix with an IOC4 based IO card, say Y.
> +   Otherwise, say N.

Is there any Altix without an ioc4?

> + */
> +static ssize_t ioc4_extint_get_modelist(struct extint_device *ed, char *buf) 
> {

opening brace on a separate line please.

> +#if PAGE_SIZE <= IOC4_A_INT_OUT_LENGTH
> + /* Only set up INT_OUT register alias page if the system page size
> +  * is equal to or less than the register alias page size.  Otherwise
> +  * the user would have access to registers other than INT_OUT.
> +  */
> + a_int_out = pci_resource_start(ied->idd->idd_pdev, 0) +
> + IOC4_A_INT_OUT_OFFSET;
> + if (!a_int_out) {
> + printk(KERN_WARNING
> +"%s: Unable to get IOC4 int_out alias mapping "
> +"for pci_dev 0x%p.\n", __FUNCTION__, ied->idd->idd_pdev);
> + goto skip_alias;
> + }
> + if (!request_region(a_int_out, IOC4_A_INT_OUT_LENGTH,
> + "ioc4_a_int_out")) {

This looks rather bad.  So the driver silently has less functionality
when using a bigger page size?

> + /* Enable interrupt input */
> + ret = ioc4_extint_input_enable(ied);
> + if (ret)
> + goto out_enable;
> +
> + return 0;
> +
> +out_enable:
> + extint_device_unregister(idd->idd_extint_data);
> +out_register:
> + ioc4_extint_device_destroy(ied);
> +out_device:
> + ioc4_extint_input_teardown(ied);
> + ioc4_extint_output_teardown(ied);
> + kfree(ied);
> +out:
> + return ret;
> +}
> +
> +static int ioc4_extint_remove(struct ioc4_driver_data *idd)
> +{
> + struct extint_device *ed = idd->idd_extint_data;
> + struct ioc4_extint_device *ied;
> +
> + /* If probe failed, avoid trying to remove */
> + if (ed)
> + ied = extint_get_devdata(ed);
> + else
> + return -ENXIO;

This should at lease be written:

if (!ed)
return -ENXIO;
ied = extint_get_devdata(ed);

but I don't understand how it can happen anyway.  ->remove shoould
never be called unless ->probe initialized the device fully and
returned 0

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


Re: lost ticks and Hangcheck

2005-08-20 Thread Nathan Becker

Please make sure this issue is reproducible without any binary only
drivers.


I uninstalled the NVIDIA drivers and tried again with the nv x.org driver. 
Same problem.  I also tried remaining in text mode (with no NVIDIA drivers 
loaded).  Same problem.  In both cases it occurs when I start seriously 
loading the CPU.


One thing that may be of interest is that the message in dmesg is 
different if I'm in text mode vs. x.org.  If I'm in text mode the message 
is:


Losing some ticks... checking if CPU frequency changed.

If I'm running x.org then I get

warning: many lost ticks.
Your time source seems to be instable or some driver is hogging interupts
rip default_idle+0x20/0x30

OK, I'll open a bug report in bugzilla.  I don't think this is the same as 
bug #3341.  My clock comes up normal 100% of the time on boot up.  Things 
only go awry when I start putting a load on the CPU.


Thanks very much for your help, and please cc. me if you find anything out 
since I'm not a regular subscriber.


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


Re: [PATCH 1/2] external interrupts: abstraction layer

2005-08-20 Thread Christoph Hellwig
> diff --git a/drivers/char/extint.c b/drivers/char/extint.c
> new file mode 100644
> --- /dev/null
> +++ b/drivers/char/extint.c
> @@ -0,0 +1,673 @@
> +/*
> + * This file is subject to the terms and conditions of the GNU General Public
> + * License.  See the file "COPYING" in the main directory of this archive
> + * for more details.
> + *
> + * Copyright (C) 2005 Silicon Graphics, Inc.  All Rights Reserved.
> + */
> +
> +/* This file provides an abstraction for lowlevel external interrupt
> + * operation.
> + *
> + * External interrupts are hardware mechanisms to generate or ingest
> + * a simple interrupt signal.
> + *
> + * Generation typically involves driving an output circuit voltage
> + * level, with a variety of single or recurring waveforms (e.g.
> + * a one-shot pulse, a square wave, etc.)  The repetition period
> + * for recurring waveforms can be set within hardware restrictions.
> + *
> + * Ingest typically involves responding to an input circuit voltage
> + * level or transition.  Multiple input sources may be available.
> + *
> + * 2005.07.27Brent Casavant <[EMAIL PROTECTED]> Initial code
> + */
> +
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +
> +/**
> + * Module global data *
> + **/
> +
> +/* Device numbers */
> +#define EXTINT_NUMDEVS   255 /* Number of minor devices to reserve */
> +static dev_t firstdev;   /* Start of dynamic range */
> +static dev_t nextdev;/* Next number to assign */
> +static DEFINE_SPINLOCK(nextdev_lock);
> +
> +/* Device status.  Controls whether new callouts can be registered. */
> +enum extint_state {
> + EXTINT_COMING,
> + EXTINT_ALIVE,
> + EXTINT_GOING,
> + EXTINT_DEAD
> +};
> +
> +/**
> + * Abstracted devices *
> + **/
> +
> +static struct page *extint_counter_vma_nopage(struct vm_area_struct *vma,
> +   unsigned long address, int *type)
> +{
> + struct extint_device *ed = vma->vm_private_data;
> + struct page *page;
> +
> + /* Only a single page is ever mapped */
> + if (address >= vma->vm_start + PAGE_SIZE)
> + return NOPAGE_SIGBUS;
> +
> + /* virt_to_page can be expensive, but this is executed
> +  * only once each time the counter page is mapped.
> +  */
> + page = virt_to_page(ed->counter_page);

I think you should store both the struct page pointer and the virtual
address in struct extint_device.  This avoids doing the virt_to_page
at every pagefauls.  It's also cleaner as you an juse use alloc_page()
and the page_address() to get the kernel virtual address.

> + get_page(page);
> +
> + if (type)
> + *type = VM_FAULT_MINOR;
> +
> + return page;
> +}
> +
> +static struct vm_operations_struct extint_counter_vm_ops = {
> + .nopage = extint_counter_vma_nopage,
> +};
> +
> +static int extint_counter_open(struct inode *inode, struct file *filp)
> +{
> + struct extint_device *ed = file_to_extint_device(filp);

you don't need the file but just the inode (strictly speaking the cdev),
and doing this based on the file is rather confusing to the reader because
the struct file passed to ->open has just been allocated.

> +
> + /* Counter is always read-only */
> + if (filp->f_mode & FMODE_WRITE)
> + return -EPERM;
> +
> + /* Prevent low-level module from unloading while
> +  * corresponding abstracted device is open
> +  */
> + if (!try_module_get(ed->props->owner))
> + return -ENXIO;
> +
> + /* Snapshot initial value, for later use by poll */
> + filp->private_data = (void *)*ed->counter_page;

What about storing the whole extint_device pointer in file->private_data?
That's get rid of a lot of casting and would make possible future additions
easier.

> +
> + return 0;
> +}
> +
> +static int extint_counter_release(struct inode *inode, struct file *filp)
> +{
> + struct extint_device *ed = file_to_extint_device(filp);
> +
> + /* Allow low-level module to unload now that the
> +  * corresponding abstracted device is really closed.
> +  */
> + module_put(ed->props->owner);
> +
> + return 0;
> +}
> +
> +static ssize_t
> +extint_counter_read(struct file *filp, char *buff, size_t count, loff_t * 
> offp)
> +{
> + struct extint_device *ed = file_to_extint_device(filp);
> + char outbuff[21];   /* 20 chars for value of 2^64, plus \0 */
> +
> + /* Snapshot last value read, for later use by poll */
> + memset(outbuff, 0, 21);
> + filp->private_data = (void *)*ed->counter_page;
> + snprintf(outbuff, 21, "%ld", (unsigned long)filp->private_data);
> + outbuff[20] = '\0';
> +
> + return simple_read_from_buffer(buff, count, offp, outbuff,
> +strlen(outbuff));
> +}
> +
> +stati

Re: [Documentation] Use doxygen or another tool to generate a documentation ?

2005-08-20 Thread Stephane Wirtel
Le Saturday 20 August 2005 a 09:08, Sam Ravnborg ecrivait: 
> > 
> > Ok, with scripts/kernel-doc, I can produce some html files containing 
> > the functions' documentation.
> > 
> > make pdfdocs or others targets don't work :|
> 
> You probarly need some additional packages.
> But it's not easy to help you with no log of what happened.
Yes, sorry, 

Kernel : 2.6.12 from the git repository of Linus.

In make_docs.log.tar.bz2, you can find log files from make htmldocs,
make psdocs and make pdfdocs.

Thanks, 

Stephane



-- 
Stephane Wirtel <[EMAIL PROTECTED]>
<[EMAIL PROTECTED]>




make_docs.log.tar.bz2
Description: Binary data


Re: [2.6 patch] simplify SOFTWARE_SUSPEND dependencies

2005-08-20 Thread Pavel Machek
Hi!

> This patch expresses the same dependencies in a more simple way.

I have this currently in my tree:

depends on PM && SWAP && (X86 || ((FVR || PPC32) && !SMP))

(I really want to remove experimental), but it is not urgent enough to
push heavily.
Pavel

> Signed-off-by: Adrian Bunk <[EMAIL PROTECTED]>
> 
> --- linux-2.6.13-rc6-mm1-full/kernel/power/Kconfig.old2005-08-20 
> 06:02:49.0 +0200
> +++ linux-2.6.13-rc6-mm1-full/kernel/power/Kconfig2005-08-20 
> 06:03:13.0 +0200
> @@ -28,7 +28,7 @@
>  
>  config SOFTWARE_SUSPEND
>   bool "Software Suspend"
> - depends on EXPERIMENTAL && PM && SWAP && ((X86 && SMP) || ((FVR || 
> PPC32 || X86) && !SMP))
> + depends on EXPERIMENTAL && PM && SWAP && (X86 || ((FVR || PPC32) && 
> !SMP))
>   ---help---
> Enable the possibility of suspending the machine.
> It doesn't need APM.
> 

-- 
if you have sharp zaurus hardware you don't need... you know my address
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[2.6 PATCH] SLAB : removes local_irq_save()/local_irq_restore() pair in ksize()

2005-08-20 Thread Eric Dumazet

This patch removes unnecessary critical section in ksize() function, as cli/sti 
are rather expensive on modern CPUS.


Signed-off-by: Eric Dumazet <[EMAIL PROTECTED]>

diff -Nru linux-2.6.13-rc6-ed/mm/slab.c linux-2.6.13-rc6/mm/slab.c
--- linux-2.6.13-rc6-ed/mm/slab.c   2005-08-20 09:22:29.0 +0200
+++ linux-2.6.13-rc6/mm/slab.c  2005-08-20 09:39:42.0 +0200
@@ -3080,10 +3080,8 @@
unsigned int size = 0;
 
if (likely(objp != NULL)) {
-   local_irq_save(flags);
c = GET_PAGE_CACHE(virt_to_page(objp));
size = kmem_cache_size(c);
-   local_irq_restore(flags);
}
 
return size;


Re: [Documentation] Use doxygen or another tool to generate a documentation ?

2005-08-20 Thread Sam Ravnborg
> 
> Ok, with scripts/kernel-doc, I can produce some html files containing 
> the functions' documentation.
> 
> make pdfdocs or others targets don't work :|

You probarly need some additional packages.
But it's not easy to help you with no log of what happened.

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


Re: [PATCH] Permissions don't stick on ConfigFS attributes

2005-08-20 Thread Daniel Phillips
On Saturday 20 August 2005 16:31, Joel Becker wrote:
> On Fri, Aug 19, 2005 at 08:01:17PM -0700, Greg KH wrote:
> > The recent changes to sysfs should be ported to configfs to do this.
>
>   Yeah, I've been meaning to do something, and resusing code is
> always a good plan.

Ending up with the same code in core kernel in two different places is always 
a bad plan.  Oh man.  Just look at these two bodies of code, configfs is 
mostly just large tracts that are identical to sysfs except for name changes.  
Listen to what the code is trying to tell you!

SysFS:

struct kobject {
const char  * k_name;
charname[KOBJ_NAME_LEN];
struct kref kref;
struct list_headentry;
struct kobject  * parent;
struct kset * kset;
struct kobj_type* ktype;
struct dentry   * dentry;
};

ConfigFS:

struct config_item {
char*ci_name;
charci_namebuf[CONFIGFS_ITEM_NAME_LEN];
struct kref ci_kref;
struct list_headci_entry;
struct config_item  *ci_parent;
struct config_group *ci_group;
struct config_item_type *ci_type;
struct dentry   *ci_dentry;
};

Big difference, huh?

As designer of configfs, could you please offer your take on why it cannot be 
rolled back into sysfs, considering that it is mostly identical already?

Regards,

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


Re: [PATCH 2.6.13-rc6-rt9] PI aware dynamic priority adjustment

2005-08-20 Thread George Anzinger

Thomas Gleixner wrote:
~


2. Drift of cyclic timers (armed by set_timer()):

Due to rounding errors and the drift adjustment code, the fixed
increment which is precalculated when the timer is set up and added on
rearm, I see creeping deviation from the timeline. 


I have a patch lined up to base the rearm on human (nsac) units, so this
effect will go away. But this is waste of time until (1.) is not solved.

George ???


Could I (we) see what you have in mind?




--
George Anzinger   george@mvista.com
HRT (High-res-timers):  http://sourceforge.net/projects/high-res-timers/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 2.6.13-rc6-rt9] PI aware dynamic priority adjustment

2005-08-20 Thread George Anzinger

Thomas Gleixner wrote:

George,

On Fri, 2005-08-19 at 17:19 -0700, George Anzinger wrote:


2. Drift of cyclic timers (armed by set_timer()):

Due to rounding errors and the drift adjustment code, the fixed
increment which is precalculated when the timer is set up and added on
rearm, I see creeping deviation from the timeline. 


I have a patch lined up to base the rearm on human (nsac) units, so this
effect will go away. But this is waste of time until (1.) is not solved.

George ???


Could I (we) see what you have in mind?



Nothing which applies clean at the moment and I have no access to the
box where the patch floats around.

It's simply explained.

Current code:

set_timer()
calc interval->jiffies / interval->arch_cycles;
based on it.interval

rearm()
timer->expires += interval->jiffies;
timer->arch_cycle_expires += interval->arch_cycles;
normalize(timer);

Patched code:

set_timer()
	timer.interval = it.interval; 
	timer.next_expire = it.value; 
	both stored as timespec


rearm()
next_expire += interval;
calc timer->expires/arch_cycle_expires;

So on each rearm we eliminate the rounding errors and take the drift
adjustment into account.

It adds some calculation overhead to each rearm, but 

I think the standard was written to eliminate the need for this.  The 
notion is that we have a resolution which we use in the calculations so 
while there may be drift WRT his request, there should be no drift WRT 
the requested value rounded up to the next resolution.


Still, if we can't keep that resolution in arch_cycles...

On another issue along this line, I have been thinking of changing the 
x86 TSC arch cycle size to 1ns.  (NOT the resolution, the units for the 
arch cycle.)  The reason to do this is to correctly track changes in cpu 
frequency as it is today, we would need to track down and update all 
pending HR timers when ever the frequency changed.  By using a common 
unit all we need to do is change the conversion constants (well I guess 
they would not be constants any more :).  I REALLY don't want to do this 
as it does add conversion overhead, but I can not think of another clean 
way to track TSC frequency changes.


--
George Anzinger   george@mvista.com
HRT (High-res-timers):  http://sourceforge.net/projects/high-res-timers/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


  1   2   >