Re: 2.4.0-test9-pre2: pcmcia 3c59x doesn't work

2000-09-19 Thread Derek Wildstar

On Tue, 19 Sep 2000, Tigran Aivazian wrote:

> On Mon, 18 Sep 2000, Horst von Brand wrote:
> 
> > Tigran Aivazian <[EMAIL PROTECTED]> said:
> > 
> > [...]
> > 
> > > did you try this patch?
> > > 
> > > --- linux/drivers/pci/pci.c   Mon Sep 18 12:35:11 2000
> > > +++ work/drivers/pci/pci.cMon Sep 18 13:12:20 2000
> > > @@ -714,7 +714,7 @@
> > >* We need to blast all three values with a single write.
> > >*/
> > >   pci_write_config_dword(dev, PCI_PRIMARY_BUS, buses);
> > > - if (!is_cardbus) {
> > > + if (is_cardbus) {
> > >   /* Now we can scan all subordinate buses... */
> > >   max = pci_do_scan_bus(child);
> > >   } else {
> > 
> > No changes, same:
> 
> ok, my "plan b)" didn't work for you, then :) we'll have to actually
> _understand_ what's going on then...

Your "plan b" worked for me...on test9-pre4 my Xircom is working with that
patch, and gets the same old "pci allocation" error without.

-dwild


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



Re: [PATCH] Useless inode semaphore locking in 2.4.0-test8

2000-09-19 Thread Alexander Viro



On Tue, 19 Sep 2000, Jeff V. Merkey wrote:

> 
> This will break NWFS and require I put back in all the locks Al Viro
> told me to remove.  

This will also break _every_ writable filesystem in tree and outside. Case
closed. Author of suggestion took it back about a week ago, IIRC.

BTW, Linus, congrats on combing through your mailbox - wish I had time to
do the same ;-)

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



Re: SCSI scanning changes break RAID autorun

2000-09-19 Thread Russell King

Linus Torvalds writes:
> [ Btw, has autorun ever worked with non-scsi devices? They've mostly had
>   the new initialization order for a long time.. ]

Hmm, I hope it will do, since a 2.2.17 kernel with Ingos RAID patches
works, and it'd be a shame to break all those RAID root filesystems out
there for 2.4.

(says me who only got Ingo raid running on 2.2.17 a couple of days
ago on ARM). ;)
   _
  |_| - ---+---+-
  |   | Russell King[EMAIL PROTECTED]  --- ---
  | | | | http://www.arm.linux.org.uk/personal/aboutme.html   /  /  |
  | +-+-+ --- -+-
  /   |   THE developer of ARM Linux  |+| /|\
 /  | | | ---  |
+-+-+ -  /\\\  |
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: An elevator algorithm (patch)

2000-09-19 Thread Andrea Arcangeli

On Tue, Sep 19, 2000 at 08:30:05PM +0200, Peter Osterlund wrote:
> It is however possible to decide in O(1) time if the correct insertion
> point is at the end of the queue. We have to keep track of the point,

Right.

> [..] How long
> can the request queue be? Does it have a fixed upper size, or is it

It have a fixed upper size (it's a #define).

> [..] Note that the worst case
> complexity is still O(n) for all algorithms discussed so far.

Right.

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



Re: (reiserfs) Re: An elevator algorithm (patch)

2000-09-19 Thread Jens Axboe

On Tue, Sep 19 2000, Peter Osterlund wrote:
> > 2) the block number is smaller than head (or head->next
> >if the current request is unplugged)
> 
> The second condition is not so simple in the case of latency control.
> Consider the following queue:
> 
> sector:   100 200 300 400 10 20 30
> sequence: 1   1   1   1   0  1  1
> 
> In this case it would be correct to insert 150 at the end even though
> it is >100, because no more requests are allowed to pass the "10"
> request.
> 
> It is however possible to decide in O(1) time if the correct insertion
> point is at the end of the queue. We have to keep track of the point,
> p, where no more requests may pass. (10 in the example above.) The logic
> would then be:
> 
>   int insert_at_tail = 0;
>   if (IN_ORDER(p, last)) {
>   if (IN_ORDER(last, req) || IN_ORDER(req, p))
>   insert_at_tail = 1;
>   } else {
>   if (IN_ORDER(last, req) && IN_ORDER(req, p))
>   insert_at_tail = 1;
>   }
>   if (insert_at_tail) {
>   /* Do it in O(1) */
>   } else {
>   /* Do normal O(n) scan and update latencies */
>   }

But there may be several p points in the queue, how are you going
to keep track of all of them?

> The question is if this is worth the extra code complexity. How long
> can the request queue be? Does it have a fixed upper size, or is it
> limited only by available memory? If the request queue is always
> short, the O(n) complexity shouldn't matter. Note that the worst case
> complexity is still O(n) for all algorithms discussed so far.

See QUEUE_NR_REQUESTS in blkdev.h -- the standard size is 256 requests
per queue.

-- 
* Jens Axboe <[EMAIL PROTECTED]>
* SuSE Labs
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: (reiserfs) Re: An elevator algorithm (patch)

2000-09-19 Thread Jens Axboe

On Tue, Sep 19 2000, Rik van Riel wrote:
> This is a bug in Andrea's idea.  The request should only
> be inserted at the end of the list if:
> 
> 1) the block numbre is bigger than head->prev (which you
>already have)

Of course.

> 2) the block number is smaller than head (or head->next
>if the current request is unplugged)

Not necessarily, that's what we have the sequencing numbers for. It
still allows sorting, as long as we are allowed to pass the request.
And note that it is only head->next when the queue is unplugged with
an active head.

-- 
* Jens Axboe <[EMAIL PROTECTED]>
* SuSE Labs
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: [PATCH] Useless inode semaphore locking in 2.4.0-test8

2000-09-19 Thread Jeff V. Merkey


This will break NWFS and require I put back in all the locks Al Viro
told me to remove.  

Jeff

Linus Torvalds wrote:
> 
> In article <[EMAIL PROTECTED]>,
> Eric PAIRE  <[EMAIL PROTECTED]> wrote:
> >
> >In open.c:do_truncate(), the call to notify_change() is protected by
> >the inode->i_sem, which seems to me useless, and thus can be removed.
> 
> And exactly how do you now protect against the race of another process
> doing a write() at the same time, and in particular the updates of
> "inode->i_size"?
> 
> As far as I can tell, you removing the semaphore means that _nothing_
> protects inode->i_size any more, and you can get basically random
> values. That would be bad.
> 
> Linus
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [EMAIL PROTECTED]
> Please read the FAQ at http://www.tux.org/lkml/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: __ucmpdi2

2000-09-19 Thread Jeff V. Merkey



Linus Torvalds wrote:
> 
> I'd love to link against libgcc, but for the fact that
> 
>  - gcc developers have sometimes done horribly stupid things, and NOT
>linking against libgcc has been an excellent way of not getting
>bitten by it. Things like the exception handling etc, where not
>linking against libgcc caused the kernel to not link - where that was
>the RIGHT thing to do, because gcc had inserted completely bogus
>exception handling into the code.
> 
>Proper fix: -fno-exceptions
> 
>  - Linux developers often do horribly stupid things, and use 64-bit
>division etc instead of using a simple shift. Again, not linking
>against libgcc finds those things early rather than late, because the
>horribly stupid things end up requireing libgcc support.
> 
> In the case of __ucmpdi2, it appears to be a combination of kernel and
> compiler stupidity - there's no reason why __ucmpdi2 should not be done
> inline by the compiler, but at the same time there is probably also
> little reason to use a slow "long long" comparison in the kernel.
> 
> So again, not linking libgcc showed a problem. Good for us.
> 
> But yes, it is often much more convenient to not know about problems
> like this. And some people don't think they are a big deal. I'd rather
> nip them in the bud early than be "convenient", myself.
> 
> Linus
> -

Linus,

You forgot to mention that some folks also code with C++ in these user
libs -- result, new and constructor/destructor operations will create
all kinds of hidden memory allocations all over the place that the C++
compiler hides from the coder and that impact performance.  

NetWare uses a model close to yours with a pico-kernel-lib for the
kernel proper and all the other lib crap goes up in the user environment
-- the kernel does not link to any commercial libs either for the
reasons you stated, and the problems with C++ code in kernel.  C++ let's
programmers get sloppy and lets them create convoluted code that is so
unreadable and unmaintainable it assures job security.  I sometimes
believe this is why C++ was created to begin with.  

Alot of the W2K kernel is C++, which explains why it's such a pig. 
Structured exception handling is nice, but the hidden memory allocations
can really bite on performance.

:-)

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



Re: /dev/f1

2000-09-19 Thread Richard B. Johnson

On Tue, 19 Sep 2000, Daniel Lange wrote:

> Hi all,
>   I don't know how relevant to this list my question is, as I'm a quite
> new subscriber, but I was perusing the linux kernel (2.2.16) Makefiles and
> ran into this in /usr/src/linux/net/ethernet/Makefile:
> 
>tar -cvf /dev/f1 .
> 

I think you found an old remanent of something that's not used
anymore. It exists even in 2.2.15:

./net/unix/Makefile:tar:
./net/802/Makefile:tar:
./net/appletalk/Makefile:tar:
./net/ax25/Makefile:tar:
./net/core/Makefile:tar:
./net/ethernet/Makefile:tar:
./net/ipv4/Makefile:tar:
./net/ipx/Makefile:tar:
./net/netrom/Makefile:tar:
./net/bridge/Makefile:tar:
./net/lapb/Makefile:tar:
./net/x25/Makefile:tar:
./net/rose/Makefile:tar:
./net/wanrouter/Makefile:tar:
./net/irda/Makefile:tar:
./net/irda/compressors/Makefile:tar:
./net/irda/ircomm/Makefile:tar:
./net/irda/irlan/Makefile:tar:


`make -C $dir tar` is never executed from the top Makefile
so it will never happen.


Cheers,
Dick Johnson

Penguin : Linux version 2.2.15 on an i686 machine (797.90 BogoMips).

"Memory is like gasoline. You use it up when you are running. Of
course you get it all back when you reboot..."; Actual explanation
obtained from the Micro$oft help desk.


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



Re: [PATCH] Useless inode semaphore locking in 2.4.0-test8

2000-09-19 Thread Linus Torvalds

In article <[EMAIL PROTECTED]>,
Eric PAIRE  <[EMAIL PROTECTED]> wrote:
>
>In open.c:do_truncate(), the call to notify_change() is protected by
>the inode->i_sem, which seems to me useless, and thus can be removed.

And exactly how do you now protect against the race of another process
doing a write() at the same time, and in particular the updates of
"inode->i_size"?

As far as I can tell, you removing the semaphore means that _nothing_
protects inode->i_size any more, and you can get basically random
values. That would be bad.

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



Re: __ucmpdi2

2000-09-19 Thread Linus Torvalds

In article <[EMAIL PROTECTED]>,
Richard Henderson  <[EMAIL PROTECTED]> wrote:
>On Tue, Sep 19, 2000 at 12:22:41PM +0200, Andreas Schwab wrote:
>> IMHO it's a bug in gcc that it does not inline the comparison inside the
>> switch expression, since it already does it in all other places.  Perhaps
>> some problem with the patterns in the machine description.
>
>Perhaps, but without a test case it's hard to know.  My guess is that
>he's using gcc 2.7.2 or something decrepit like that; I couldn't reproduce
>the problem on current source with a simple test case.
>
>That said, I also think it is a bug that the kernel does not link 
>against libgcc.

I'd love to link against libgcc, but for the fact that

 - gcc developers have sometimes done horribly stupid things, and NOT
   linking against libgcc has been an excellent way of not getting
   bitten by it. Things like the exception handling etc, where not
   linking against libgcc caused the kernel to not link - where that was
   the RIGHT thing to do, because gcc had inserted completely bogus
   exception handling into the code.

   Proper fix: -fno-exceptions

 - Linux developers often do horribly stupid things, and use 64-bit
   division etc instead of using a simple shift. Again, not linking
   against libgcc finds those things early rather than late, because the
   horribly stupid things end up requireing libgcc support.

In the case of __ucmpdi2, it appears to be a combination of kernel and
compiler stupidity - there's no reason why __ucmpdi2 should not be done
inline by the compiler, but at the same time there is probably also
little reason to use a slow "long long" comparison in the kernel.

So again, not linking libgcc showed a problem. Good for us.

But yes, it is often much more convenient to not know about problems
like this. And some people don't think they are a big deal. I'd rather
nip them in the bud early than be "convenient", myself.

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



Linux kernel 2.2.17 appears not support >512M RAM Disk

2000-09-19 Thread Ryan Tokarek


On Linux kernel 2.2.17 running on an intel PIII system with 1GB RAM I 
cannot successfully create a ramdisk of greater than 512MB. The relevant 
kernel parameter (CONFIG_BLK_DEV_RAM_SIZE) was set to 737280 before 
rebuilding the kernel. 

So I do the following from the command line:

dd bs=1024 if=/dev/zero of=/dev/ram0 count=737280
mke2fs /dev/ram0 524288
mount /dev/ram0 /ramdisk

This works, but if I increase the size passed to mke2fs beyond 524288 
(like to 700 megs or so... or anything in between), mke2fs succeeds, but 
mount does not! This happens even after a clean reboot. 

mount returns an error on the console of:

EXT2-fs: Magic mismatch, very weird!
mount: wrong fs type, bad option, bad superblock on /dev/ram0, 
   or too many mounted file systems.

/proc/meminfo indicates that a huge chunk of RAM has been set aside for 
buffers, but mount can't apparently make anything of what's there. 

I can try and provide more info if anybody would like. I'm rather stuck. 

Can anybody offer some insight as to a solution?

Also, if I'm sending this to the wrong place, please redirect me. 

Thanks

Ryan Tokarek
Unix SysAdmin
Wolfram Research
(not speaking for my employer)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: 2.4.0-test9-pre2: pcmcia 3c59x doesn't work

2000-09-19 Thread Linus Torvalds

In article <[EMAIL PROTECTED]>, Dag Bakke  <[EMAIL PROTECTED]> wrote:
>Tigran Aivazian wrote:
>> 
>> On Mon, 18 Sep 2000, Derek Wildstar wrote:
>> 
>> > On 18 Sep 2000, Alex Romosan wrote:
>> >
>> > I get the same thing with a Xircon realport 10/100/modem card.  Works
>> > great in test9-pre1 and test8.
>> >
>> > -dwild
>> >
>> 
>> did you try this patch?
>> 
>> --- linux/drivers/pci/pci.c Mon Sep 18 12:35:11 2000
>> +++ work/drivers/pci/pci.c  Mon Sep 18 13:12:20 2000
>> @@ -714,7 +714,7 @@
>>  * We need to blast all three values with a single write.
>>  */
>> pci_write_config_dword(dev, PCI_PRIMARY_BUS, buses);
>> -   if (!is_cardbus) {
>> +   if (is_cardbus) {
>> /* Now we can scan all subordinate buses... */
>> max = pci_do_scan_bus(child);
>> } else {
>> 
>
>
>I did.
>Didn't work for me. 
>My Xircom is still being detected. But PCI resource allocation still fails.
>I'll be happy to set up a remote debug session for anyone interested...

There seem to be two potential problems with the new code. How about
this instead:

First off, it's doing the subordinate bus write with a byte write, which
is, as far as I can tell, not legal.  When you update the bus
information, you have to update it all at the same time. 

Does it help if you change drivers/pci/pci.c pci_scan_bridge(), the line
that says

pci_write_config_byte(dev, PCI_SUBORDINATE_BUS, max);

and you replace that with

buses = (buses & 0xff00) | ((unsigned int)(child->subordinate) << 16);
pci_write_config_dword(dev, PCI_PRIMARY_BUS, buses);

instead.

Second, if the cardbus bridge is already allocated by the BIOS, the "max
bus" logic looks bogus.  It looks like

if (!is_cardbus) {
unsigned int cmax = pci_do_scan_bus(child);
if (cmax > max) max = cmax;
}

and it _should_ probably have something like

if (!is_cardbus) {
.. same logic ..
} else {
unsigned int cmax = child->subordinate + 3;
if (cmax > max) max = cmax;
}

because otherwise we'd completely ignore the cardbus "max" values as far
as I can tell, and if the machine has another bus it might be given the
same bus value as the already-configured cardbus bridge. 

Do the above two fixes help? If not, I suspect that we're better off
just reverting the new PCI bus allocation until it's fixed. 

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



/dev/f1

2000-09-19 Thread Daniel Lange

Hi all,
  I don't know how relevant to this list my question is, as I'm a quite
new subscriber, but I was perusing the linux kernel (2.2.16) Makefiles and
ran into this in /usr/src/linux/net/ethernet/Makefile:

   tar -cvf /dev/f1 .

  Since I do all my compiling for the i386 tree, I don't know if this line
is ever executed, but I can't seem to find any documentation on /dev/f1.
I've looked in /usr/src/linux/Documentation/devices.txt, and it's not in
there.  So what is this "f1" device? It almost sounds like it should be a
floppy device, but I can't be sure of that.

  Thanks for the info.

Dan Lange

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



Re: An elevator algorithm (patch)

2000-09-19 Thread Peter Osterlund

Rik van Riel <[EMAIL PROTECTED]> writes:

> This is a bug in Andrea's idea.  The request should only
> be inserted at the end of the list if:
> 
> 1) the block numbre is bigger than head->prev (which you
>already have)
> 
> AND
> 
> 2) the block number is smaller than head (or head->next
>if the current request is unplugged)

The second condition is not so simple in the case of latency control.
Consider the following queue:

sector:   100 200 300 400 10 20 30
sequence: 1   1   1   1   0  1  1

In this case it would be correct to insert 150 at the end even though
it is >100, because no more requests are allowed to pass the "10"
request.

It is however possible to decide in O(1) time if the correct insertion
point is at the end of the queue. We have to keep track of the point,
p, where no more requests may pass. (10 in the example above.) The logic
would then be:

int insert_at_tail = 0;
if (IN_ORDER(p, last)) {
if (IN_ORDER(last, req) || IN_ORDER(req, p))
insert_at_tail = 1;
} else {
if (IN_ORDER(last, req) && IN_ORDER(req, p))
insert_at_tail = 1;
}
if (insert_at_tail) {
/* Do it in O(1) */
} else {
/* Do normal O(n) scan and update latencies */
}

The question is if this is worth the extra code complexity. How long
can the request queue be? Does it have a fixed upper size, or is it
limited only by available memory? If the request queue is always
short, the O(n) complexity shouldn't matter. Note that the worst case
complexity is still O(n) for all algorithms discussed so far.

-- 
Peter Österlund  Email: [EMAIL PROTECTED]
Sköndalsvägen 35[EMAIL PROTECTED]
S-128 66 Sköndal Home page: http://home1.swipnet.se/~w-15919
Sweden   Phone: +46 8 942647

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



Re: GCC proposal for "@" asm constraint

2000-09-19 Thread Andrea Arcangeli

On Tue, Sep 19, 2000 at 07:22:48PM +0200, Jamie Lokier wrote:
> That instruction loads the _value_ of p.  I.e. reads the memory from
> location 0x80495a4 into %eax.  The source instruction was:
> 
>movl p,%eax
> 
> The instructions that you're thinking of, that load fixed addresses,
> look like these:
> 
>mov $0x80495a4,%eax
>lea 0x80495a4,%eax
> 
> or in source form:
> 
>movl $p,%eax
>leal p,%eax

Thanks for noticing my error.

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



Re: stuck on TLB IPI wait (CPU#0) at 2.2.17+reiserfs+ide+raid

2000-09-19 Thread Hisaaki Shibata

Thanks, Chris Mason,

> > few weeks ago, I installed a PROMISE Ultra66 IDE card into my SMP Linux
> > box. But my box sometimes hang up at high load average with "stuck on TLB
> > IPI wait (CPU#0)" messages.

> > My kernel is linux-2.2.17 with following patches.
> > linux-2.2.17-reiserfs-3.5.25-patch.gz
> > ide.2.2.17.all.2904.patch.bz2
> > raid-2.2.17-A0

> This is a known issue with the way reiserfs uses the scheduler task queue.
> The following patch from Andi Kleen should take care of it for you:
> 
> --- linux/kernel/sched.c-oWed Feb  9 14:27:20 2000
> +++ linux/kernel/sched.c  Wed Mar 29 12:53:41 2000
> @@ -803,6 +803,7 @@
>   goto handle_bh_back;
>  
>  handle_tq_scheduler:
> + __sti(); 
>   run_task_queue(&tq_scheduler);
>   goto tq_scheduler_back;

After using this patch, My linux box work very well with high load average
and heavy disk access application like encoding MP3s.

Thank you very much and best regards,

-- 
 W  [EMAIL PROTECTED]
 |O-O|  Hisaaki Shibata @ Fukuoka-shi JAPAN
0(mmm)0 P-mail: 070-5419-3233IRC: #luky
   ~http://his.luky.org/ last update:2000.3.12
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: GCC proposal for "@" asm constraint

2000-09-19 Thread Andrea Arcangeli

On Tue, Sep 19, 2000 at 10:23:05AM -0700, Richard Henderson wrote:
> On Tue, Sep 19, 2000 at 04:32:16PM +0200, Andrea Arcangeli wrote:
> > Wrong: it's really loading the _address_.
> [...]
> >  80483f5:   a1 a4 95 04 08  mov0x80495a4,%eax
> >^^^ ^
> 
> No, that's an absolute memory load.  If we were loading
> the address, there'd be a '$' before that number.

I see. So Jamie was right and we reproduced a case of miscompilation.

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



Re: [PATCH] Fix queued SIGIO

2000-09-19 Thread Robert H. de Vries

On Mon, 18 Sep 2000, Alan Cox wrote:
>> The problem is really that SI_SIGIO is negative, but it should be positive
>> to make SI_FROMUSER return false on it.
>>
>> Changing it would unfortunately break binary compatibility. This patch
>

It would be better to change SI_SIGIO in all the 
include/asm-*/siginfo.h files from -5 to __SI_CODE(__SI_SIGIO, -5)
__SI_SIGIO would become (6 << 16).
The code in arch/*/kernel/signal.c only copies the lower 16 bits to user 
space. This means that the test SI_FROMKERNEL returns true and user space 
still gets the same values as before.

The same trick is indeed used also in my POSIX timer patch.

Robert

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



Re: 2.4.0-test9-pre3 boots, 2.4.0-test9-pre4 doesn't (SCSI)

2000-09-19 Thread Linus Torvalds



On Tue, 19 Sep 2000, Andries Brouwer wrote:
> 
> The same here. However, reverting the 1-line change in
> linux/drivers/scsi/Makefile makes things work again.

Yes, the SCSI layer is fragile wrt some initialization ordering. The devfs
setup in particular, but there might be other things there too. The
one-liner changes the ordering slightly, but there are some other issues
too, like the fact that we should order the linking to match the old
detection order in hosts.c etc. Torben is working on it..

Linus

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



NMI Watchdog detected LOCKUP on CPU1 (stext_lock)(2.4.0-test9-pre2)

2000-09-19 Thread Jorge Nerin

Hello, using 2.4.0-test9-pre2 and thinking that there are no major bugs
I found this again, I have observed what I think it's the same bug since
2.4.0-test7.

All the traces end up in stext_lock, so I think it' the same bug, this
time it happened when I was about to use the iomega parport zip with
autofs.

The modprobe of ppa failed but it was inserted (???) because of the
rename of sd.o back again to sd_mod.o


ksymoops 2.3.4 on i586 2.4.0-test9-pre2.  Options used
 -V (default)
 -k /proc/ksyms (default)
 -l /proc/modules (default)
 -o /lib/modules/2.4.0-test9-pre2/ (default)
 -m /boot/System.map-2.4.0-test9-pre2 (specified)

cpu: 0, clocks: 668188, slice: 222729
cpu: 1, clocks: 668188, slice: 222729
NMI Watchdog detected LOCKUP on CPU1, registers:
CPU:1
EIP:0010:[]
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 0082
eax: 0306   ebx: 0246   ecx: 0006   edx: 0041b1cb
esi: 0306   edi: 000c   ebp: 5864   esp: c583ded8
ds: 0018   es: 0018   ss: 0018
Process syslogd (pid: 389, stackpage=c583d000)
Stack: c28aaf80 0002 c015db32 0306 c28aaf80  0001
c28aaf80 
   0006 c015dd03 0001 c28aaf80 c28aad40 c10e7878 
c38ee8bc 
   0400 c01256b5 0001 0001 c583df30 c1054460 c28aaf80
c012576e 
Call Trace: [] [] [] []
[] [] [] 
   [] [] 
Code: f3 90 7e f5 e9 a6 da f7 ff 80 3d 90 e7 21 c0 00 f3 90 7e f5 

>>EIP; c01df3aa<=
Trace; c015db32 
Trace; c015dd03 
Trace; c01256b5 
Trace; c012576e 
Trace; c01257cd 
Trace; c0125680 
Trace; c0150c6d 
Trace; c0133526 
Trace; c01094b7 
Code;  c01df3aa 
 <_EIP>:
Code;  c01df3aa<=
   0:   f3 90 repz nop<=
Code;  c01df3ac 
   2:   7e f5 jlefff9 <_EIP+0xfff9>
c01df3a3 
Code;  c01df3ae 
   4:   e9 a6 da f7 ffjmpfff7daaf <_EIP+0xfff7daaf>
c015ce59 
Code;  c01df3b3 
   9:   80 3d 90 e7 21 c0 00  cmpb   $0x0,0xc021e790
Code;  c01df3ba 
  10:   f3 90 repz nop 
Code;  c01df3bc 
  12:   7e f5 jle9 <_EIP+0x9> c01df3b3


NMI Watchdog detected LOCKUP on CPU0, registers:
CPU:0
EIP:0010:[]
EFLAGS: 0082
eax: 0306   ebx: 0246   ecx: 0006   edx: 0041b1cb
esi: 0306   edi: 000c   ebp: 801e   esp: c5fb1f74
ds: 0018   es: 0018   ss: 0018
Process kflushd (pid: 5, stackpage=c5fb1000)
Stack: c5edeaa0 0002 c015db32 0306 c5edeaa0  0001
c5edeaa0 
   0006 c015dd03 0001 c5edeaa0 0007 c14e2260 0001
c5fb 
   0400 c0136149 0001 0001 c5fb1fd8 0001 c5fb
0ad0 
Call Trace: [] [] [] []
[] 
Code: f3 90 7e f5 e9 a6 da f7 ff 80 3d 90 e7 21 c0 00 f3 90 7e f5 

>>EIP; c01df3aa<=
Trace; c015db32 
Trace; c015dd03 
Trace; c0136149 
Trace; c01363fd 
Trace; c01079bb 
Code;  c01df3aa 
 <_EIP>:
Code;  c01df3aa<=
   0:   f3 90 repz nop<=
Code;  c01df3ac 
   2:   7e f5 jlefff9 <_EIP+0xfff9>
c01df3a3 
Code;  c01df3ae 
   4:   e9 a6 da f7 ffjmpfff7daaf <_EIP+0xfff7daaf>
c015ce59 
Code;  c01df3b3 
   9:   80 3d 90 e7 21 c0 00  cmpb   $0x0,0xc021e790
Code;  c01df3ba 
  10:   f3 90 repz nop 
Code;  c01df3bc 
  12:   7e f5 jle9 <_EIP+0x9> c01df3b3



-- 
Jorge Nerin
<[EMAIL PROTECTED]>
<[EMAIL PROTECTED]>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: generic scsi gone in 2.4.0test9pre4

2000-09-19 Thread Marko Kreen

On Tue, Sep 19, 2000 at 09:32:09AM -0700, Christoph Lameter wrote:
> Tried burning a cd with pre4 and devfs. There is no /dev/sg0 and /dev/scsi
> is empty.
It 'moved'.  Do a 'cd /dev/scsi; ln ../host0' for temporary workaround.

Well, I 'tried to boot' from scsi, its even more fun...

-- 
marko

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



Re: Question: Using floating point in the kernel

2000-09-19 Thread Timur Tabi

** Reply to message from "Richard B. Johnson" <[EMAIL PROTECTED]> on Tue,
19 Sep 2000 11:58:34 -0400 (EDT)


> Tell the driver maintainer that you found a BUG. There is no floating-
> point allowed in the kernel because the state of the FP Unit is
> undefined in the kernel. If you 'define' it, i.e., `finit` then you
> will mess up somebody who was using the FP Unit in user-mode.
> 
> Also, the '386 FP emulation, which is still supported, can produce a
> double-fault if you try to use it (at some places) in kernel-mode
> code.
> 
> Basically, there is nothing in the kernel that will ever require
> floating point. Use fixed point if you need 'decimals' and stuff for
> printing.

What about MMX?  It uses floating point registers, but it's not technically
floating point.



-- 
Timur Tabi - [EMAIL PROTECTED]
Interactive Silicon - http://www.interactivesi.com

When replying to a mailing-list message, please don't cc: me, because then I'll just 
get two copies of the same message.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: GCC proposal for "@" asm constraint

2000-09-19 Thread Richard Henderson

On Tue, Sep 19, 2000 at 04:32:16PM +0200, Andrea Arcangeli wrote:
> Wrong: it's really loading the _address_.
[...]
>  80483f5:   a1 a4 95 04 08  mov0x80495a4,%eax
>^^^ ^

No, that's an absolute memory load.  If we were loading
the address, there'd be a '$' before that number.


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



Re: Question: Using floating point in the kernel

2000-09-19 Thread Marcus Sundberg

[EMAIL PROTECTED] (Michael Vines) writes:

> I was just wondering if you can use floating point while servicing a
> syscall in the kernel?  Doing a 
> find -name \*.c -exec grep float {} \; -print 
> turned up a couple drivers that seem to be using fp.  Are there any
> known issues that I should to be aware off?

You can not use floating point in the kernel, for the reasons
Richard gave you.

That said, after some checking I actually did find two offenders that
generate floating point instructions in 2.4.0-test6.

These are:
drivers/video/sgivwfb.c and
drivers/video/sisfb.c
(authors cc:ed)

//Marcus
-- 
---+---
Marcus Sundberg|   Phone: +46 707 452062
  Embedded Systems Consultant  |  Email: [EMAIL PROTECTED]
   Cendio Systems AB   |   http://www.cendio.com
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: 2.4.0-test9-pre3 boots, 2.4.0-test9-pre4 doesn't (SCSI)

2000-09-19 Thread Torben Mathiasen

On Tue, Sep 19 2000, Andries Brouwer wrote:
> On Tue, Sep 19, 2000 at 11:29:31AM -0400, Simon Kirby wrote:
> > Hello,
> > 
> > 2.4.0-test9-pre3 seems to boot and work fine, but 2.4.0-test9-pre4 with
> > the same .config doesn't.  It stops here:
> 
> The same here. However, reverting the 1-line change in
> linux/drivers/scsi/Makefile makes things work again.
>

I'm doing a patch to fix the link order of scsi. This will hopefully
fix most problems. Stay tuned...

-- 
Torben Mathiasen <[EMAIL PROTECTED]>
Linux ThunderLAN maintainer 
http://tlan.kernel.dk
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: SCSI scanning changes break RAID autorun

2000-09-19 Thread Matthew Kirkwood

On Tue, 19 Sep 2000, Linus Torvalds wrote:

> > moving the software RAID drivers into drivers/md/,

> Make it so.

OK.  Apply the attached diff and then:

$ mv drivers/block/{md,raid{0,1,5},xor}.c drivers/md/

and all might be well.

The Config.in should probably move at some stage too.

I'm not very au-fait with the kernel build system (nor
makefiles in general) so I'm not sure it's 100% correct,
but it build and linked with my .config, so it can't be
all bad.

Matthew.


diff -ruN linux-2.4.0-test8/Makefile linux/Makefile
--- linux-2.4.0-test8/Makefile  Sun Sep 10 12:36:04 2000
+++ linux/Makefile  Tue Sep 19 17:40:20 2000
@@ -176,6 +176,7 @@
 DRIVERS-$(CONFIG_I2C) += drivers/i2c/i2c.o
 DRIVERS-$(CONFIG_PHONE) += drivers/telephony/telephony.a
 DRIVERS-$(CONFIG_ACPI_INTERPRETER) += drivers/acpi/acpi.o
+DRIVERS-$(CONFIG_BLK_DEV_MD) += drivers/md/mddev.o
 
 DRIVERS += $(DRIVERS-y)
 
diff -ruN linux-2.4.0-test8/drivers/Makefile linux/drivers/Makefile
--- linux-2.4.0-test8/drivers/Makefile  Sun Sep  3 19:35:31 2000
+++ linux/drivers/Makefile  Tue Sep 19 17:16:40 2000
@@ -12,7 +12,7 @@
 ALL_SUB_DIRS := $(SUB_DIRS) pci sgi ide scsi sbus cdrom isdn pnp i2o \
ieee1394 macintosh video dio zorro fc4 \
usb nubus tc atm pcmcia i2c telephony \
-   acpi mtd input
+   acpi mtd input md
 
 ifdef CONFIG_DIO
 SUB_DIRS += dio
@@ -128,6 +128,15 @@
 else
   ifeq ($(CONFIG_SCSI),m)
   MOD_SUB_DIRS += scsi
+  endif
+endif
+
+ifeq ($(CONFIG_BLK_DEV_MD),y)
+SUB_DIRS += md
+MOD_SUB_DIRS += md
+else
+  ifeq ($(CONFIG_BLK_DEV_MD),m)
+  MOD_SUB_DIRS += md
   endif
 endif
 
diff -ruN linux-2.4.0-test8/drivers/block/Makefile linux/drivers/block/Makefile
--- linux-2.4.0-test8/drivers/block/MakefileSun Sep  3 19:35:02 2000
+++ linux/drivers/block/MakefileTue Sep 19 17:45:30 2000
@@ -14,7 +14,7 @@
 
 O_TARGET := block.o
 
-export-objs:= ll_rw_blk.o blkpg.o loop.o DAC960.o md.o xor.o
+export-objs:= ll_rw_blk.o blkpg.o loop.o DAC960.o
 list-multi := lvm-mod.o
 lvm-mod-objs   := lvm.o lvm-snap.o
 
@@ -35,12 +35,6 @@
 obj-$(CONFIG_BLK_CPQ_DA)   += cpqarray.o
 obj-$(CONFIG_BLK_DEV_DAC960)   += DAC960.o
 obj-$(CONFIG_BLK_DEV_LVM)  += lvm-mod.o
-
-obj-$(CONFIG_BLK_DEV_MD)   += md.o
-obj-$(CONFIG_MD_LINEAR)+= linear.o
-obj-$(CONFIG_MD_RAID0) += raid0.o
-obj-$(CONFIG_MD_RAID1) += raid1.o
-obj-$(CONFIG_MD_RAID5) += raid5.o xor.o
 
 obj-$(CONFIG_BLK_DEV_NBD)  += nbd.o
 
diff -ruN linux-2.4.0-test8/drivers/md/Makefile linux/drivers/md/Makefile
--- linux-2.4.0-test8/drivers/md/Makefile   Thu Jan  1 01:00:00 1970
+++ linux/drivers/md/Makefile   Tue Sep 19 17:45:22 2000
@@ -0,0 +1,29 @@
+#
+# Makefile for the kernel software RAID drivers.
+#
+
+O_TARGET   := mddev.o
+SUB_DIRS   :=
+ALL_SUB_DIRS   :=
+MOD_SUB_DIRS   :=
+
+export-objs:= md.o xor.o
+
+obj-y  :=
+obj-m  :=
+obj-n  :=
+obj-   :=
+
+obj-$(CONFIG_BLK_DEV_MD)   += md.o
+obj-$(CONFIG_MD_LINEAR)+= linear.o
+obj-$(CONFIG_MD_RAID0) += raid0.o
+obj-$(CONFIG_MD_RAID1) += raid1.o
+obj-$(CONFIG_MD_RAID5) += raid5.o xor.o
+
+# Translate to Rules.make lists.
+O_OBJS := $(filter-out $(export-objs), $(obj-y))
+OX_OBJS:= $(filter $(export-objs), $(obj-y))
+M_OBJS := $(sort $(filter-out $(export-objs), $(obj-m)))
+MX_OBJS:= $(sort $(filter  $(export-objs), $(obj-m)))
+
+include $(TOPDIR)/Rules.make



Re: Linux-2.4.0-test9-pre2

2000-09-19 Thread Andi Kleen

On Tue, Sep 19, 2000 at 07:50:05AM -0700, Linus Torvalds wrote:
> 
> 
> On Tue, 19 Sep 2000, Rogier Wolff wrote:
> > 
> > If gcc starts shouting:
> > 
> > somefile.c:1234: declared inline function 'serial_paranoia_check' is 
> > somefile.c:1234: larger than 1k. Declining to honor the inline directive. 
> 
> That's not what gcc does.
> 
> Gcc silently just doesn't inline it. 

Unless you define -Winline

I always wondered why it isn't the default in the kernel source, I use it 
regularly.


-Andi

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



Re: relocation truncated to fit: R_386_PC32

2000-09-19 Thread Paul Gortmaker

Keith Owens wrote:

> 
> Sections marked __exit get discarded when the code is linked into the
> kernel, they are kept when the code is a module.  But the spin lock
> code is kept (in another section) and relocation from .text.lock back
> to .text.exit fails.  Possible fixes:
> 
> Use RTC as a module.
> Remove __exit from rtc_exit.
> Compile rtc_exit conditional on not being a module.
> Remove the spin locks.

... or 

5) Delete paranoia check altogether.

Thanks,
Paul.


--- drivers/char/rtc.c~ Sun Jul 23 03:39:15 2000
+++ drivers/char/rtc.c  Tue Sep 19 11:08:47 2000
@@ -723,17 +723,6 @@
 
 static void __exit rtc_exit (void)
 {
-   /* interrupts and maybe timer disabled at this point by rtc_release */
-   /* FIXME: Maybe??? */
-
-   if (rtc_status & RTC_TIMER_ON) {
-   spin_lock_irq (&rtc_lock);
-   rtc_status &= ~RTC_TIMER_ON;
-   del_timer(&rtc_irq_timer);
-   spin_unlock_irq (&rtc_lock);
-
-   printk(KERN_WARNING "rtc_exit(), and timer still running.\n");
-   }
 
remove_proc_entry ("driver/rtc", NULL);
misc_deregister(&rtc_dev);





__
Do You Yahoo!?
Talk to your friends online with Yahoo! Messenger.
http://im.yahoo.com
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: 2.4.0-test9-pre3 boots, 2.4.0-test9-pre4 doesn't (SCSI)

2000-09-19 Thread Andries Brouwer

On Tue, Sep 19, 2000 at 11:29:31AM -0400, Simon Kirby wrote:
> Hello,
> 
> 2.4.0-test9-pre3 seems to boot and work fine, but 2.4.0-test9-pre4 with
> the same .config doesn't.  It stops here:

The same here. However, reverting the 1-line change in
linux/drivers/scsi/Makefile makes things work again.

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



Re: kernel governance

2000-09-19 Thread mberglund

On Tue, 19 Sep 2000, Riley Williams wrote:

> Additional comments from other developers should be cc'd to Tony as I
> don't think he's on this list. However, I am on the list, so there is
> no need to CC to me...
> 
>  > any hints?
> 
> Well, I'm not even sure what you mean by "kernel governance" but the
> way to get your code into the kernel is well documented. Here's a
> basic summary of the procedure:
> 
>  1. Subscribe to the Linux-Kernel mailing list. This is where
> ALL issues relating to the ENTIRE Linux kernel are thrown
> open for discussion.

Some issues are _hardware_ specific. Quite often these don't make it to
this list until after resolution on that _hardware_ list.

For example, S390 bogomips are being discussed on the S390 list, but so
far, there is no mention of that here.

Later,
Matt

Unix is best described as an old, sturdy tree.
It is well structured, always growing, and has passed the test of time.

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



generic scsi gone in 2.4.0test9pre4

2000-09-19 Thread Christoph Lameter

Tried burning a cd with pre4 and devfs. There is no /dev/sg0 and /dev/scsi
is empty.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: The INN/mmap bug

2000-09-19 Thread Daniel Phillips

Daniel Phillips wrote:
> Alexander Viro wrote:
> > On Tue, 19 Sep 2000, Daniel Phillips wrote:
> >
> > >   !Mapped, !Uptodate,  Dirty:  pending map and write
> >
> > Wrong. It's an instant BUG at line 711 in ll_rw_blk.c - remember these
> > reports?

Yes, correct, this state should not escape from prepare_write, though
that's only a limitation of the current code.

Here's the corrected, corrected table:

 Mapped,  Uptodate,  Dirty:  pending write
!Mapped,  Uptodate,  Dirty:  not possible
 Mapped, !Uptodate,  Dirty:  not possible
!Mapped, !Uptodate,  Dirty:  not possible
 Mapped,  Uptodate, !Dirty:  regular block
!Mapped,  Uptodate, !Dirty:  hole of zeroes
 Mapped, !Uptodate, !Dirty:  unread
!Mapped, !Uptodate, !Dirty:  pending map

And here's the punchline: why not have 5 states instead of 3 bits and
set the state with a single function call, instead of the mutiple bit
sets we see now.

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



Re: 2.2.17: set_rtc_mmss: can't update from 53 to 4

2000-09-19 Thread Kamlesh Bans

It looks like the reason for this error was that my hardware real time 
clock was not functioning properly.  I ran the server's hardware 
diagnostics and that seems to have fixed the problem.

>Date: Wed, 13 Sep 2000 17:04:02 -0700
>To: [EMAIL PROTECTED]
>From: Kamlesh Bans <[EMAIL PROTECTED]>
>Subject: 2.2.17: set_rtc_mmss: can't update from 53 to 4
>
>On my system, in ./arch/i386/kernel/time.c, set_rtc_mmss is outputting the 
>messages
>
>Sep 13 15:40:04 newton kernel: set_rtc_mmss: can't update from 57 to 10
>Sep 13 15:41:05 newton kernel: set_rtc_mmss: can't update from 57 to 11
>Sep 13 16:04:08 newton kernel: set_rtc_mmss: can't update from 53 to 4
>Sep 13 16:05:09 newton kernel: set_rtc_mmss: can't update from 53 to 5
>
>Any ideas on what the problem might be? I'm running kernel 2.2.17 with a 
>Debian 2.2 distribution on an HP NetServer 5/133 LS2 with dual Pentium 
>133's, 128 MB RAM, SCSI drives, no IDE, using an SMP kernel.
>
>Thanks,
>Kamlesh Bans
>Corsair Communications
>Irvine, CA, USA
>+1-949-838-3107


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



Re: [PATCH] Re: SCSI scanning

2000-09-19 Thread Torben Mathiasen

On Tue, Sep 19 2000, Alan Cox wrote:
> > Thus my gut tells me the correct link order should be:
> > 
> > 1) SCSI core.
> > 2) low-level drivers (in same order as specified in hosts.c).
> > 3) upper level drivers.
> 
> You need to get the i2o scsi driver run last afte the low level and before
> the high level drivers despite being in drivers/i2o. There are some other
> drivers which arent in drivers/scsi too 
>

Did anyone start to cook up a patch for this? Otherwise I'll take look tonight.
(which is now, BTW.)


-- 
Torben Mathiasen <[EMAIL PROTECTED]>
Linux ThunderLAN maintainer 
http://tlan.kernel.dk
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: test9-pre4 bugs

2000-09-19 Thread Torben Mathiasen

On Tue, Sep 19 2000, Marko Kreen wrote:
> Tried running pre4, here notes:
> 
> 1) scsi devfs: /dev/scsi/host0 is now /dev/host0, /dev/scsi exist
>but is empty.
> 2) lots of messages: Warning - running *really* short on DMA buffers
>No oops yet.
>

Probaly because we used the module part of dma pool allocation. I'll
take a look at it.

-- 
Torben Mathiasen <[EMAIL PROTECTED]>
Linux ThunderLAN maintainer 
http://tlan.kernel.dk
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: Question: Using floating point in the kernel

2000-09-19 Thread Richard B. Johnson

On Tue, 19 Sep 2000, Michael Vines wrote:

> I was just wondering if you can use floating point while servicing a
> syscall in the kernel?  Doing a 
> find -name \*.c -exec grep float {} \; -print 
> turned up a couple drivers that seem to be using fp.  Are there any
> known issues that I should to be aware off?
> 
>   Thanks,
>  Mike
> 

Tell the driver maintainer that you found a BUG. There is no floating-
point allowed in the kernel because the state of the FP Unit is
undefined in the kernel. If you 'define' it, i.e., `finit` then you
will mess up somebody who was using the FP Unit in user-mode.

Also, the '386 FP emulation, which is still supported, can produce a
double-fault if you try to use it (at some places) in kernel-mode
code.

Basically, there is nothing in the kernel that will ever require
floating point. Use fixed point if you need 'decimals' and stuff for
printing.

Note that many of the drivers, such as
../linux/drivers/net/hamradio/soundmodem, have programs which execute
during compile-time to generate tables of integer values. These programs,
which execute in user-mode during compile, can (and do) use any math that
they want including floating-point.

So a `grep` of the sources doesn't give you enough information. Also
there are some floating-point operations to be executed by the compiler,
the result being an integer constant such as:

long int radians = (long) (2.0 * 3.141592654 * (float) HZ);

You really need to look at the source to see if floating-point is
being used in the kernel. It should not be. Sometimes, there are
little bits that sneak through. This usually doesn't hurt anybody
because it occurs once during the startup code of a driver. Now
that drivers can be modules, that can be inserted at any time, it
is particularly important to make sure FP operations are not occurring
to print some simple sign-on string.

Cheers,
Dick Johnson

Penguin : Linux version 2.2.15 on an i686 machine (797.90 BogoMips).

"Memory is like gasoline. You use it up when you are running. Of
course you get it all back when you reboot..."; Actual explanation
obtained from the Micro$oft help desk.


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



Re: The INN/mmap bug

2000-09-19 Thread Daniel Phillips

Alexander Viro wrote:
> 
> On Tue, 19 Sep 2000, Daniel Phillips wrote:
> 
> > The more I think about it the less clear and ambiguous I find it.
> > When you add the dirty bit into the pot you get:
> >
> >Mapped,  Uptodate,  Dirty:  not possible
> 
> Sure, it is possible - that's how the write happens
> 
> >   !Mapped,  Uptodate,  Dirty:  not possible
> >Mapped, !Uptodate,  Dirty:  pending write
> 
> s/pending write/obvious bug/, damnit. Daniel, just think for a second: we
> have the buffer read to be picked by bdflush and written to disk, while
> the _contents_ _is_ _not_ _uptodate_. Just what can you expect when write
> succeeds? Junk on disk, right? You know, GIGO queue - garbage in, garbage
> out...
> 
> >   !Mapped, !Uptodate,  Dirty:  pending map and write
> 
> Wrong. It's an instant BUG at line 711 in ll_rw_blk.c - remember these
> reports?

It wasn't a conceptual error, it was a typo: here's the corrected
table with the wrongly tagged states you noticed
interchanged:

 Mapped,  Uptodate,  Dirty:  pending write
!Mapped,  Uptodate,  Dirty:  not possible
 Mapped, !Uptodate,  Dirty:  not possible
!Mapped, !Uptodate,  Dirty:  pending map and write
 Mapped,  Uptodate, !Dirty:  regular block
!Mapped,  Uptodate, !Dirty:  hole of zeroes
 Mapped, !Uptodate, !Dirty:  unread
!Mapped, !Uptodate, !Dirty:  pending map
 
> Sure, the dirty bit is not orthogonal to the rest. You don't need to do
> any complex analysis - it's as simple as
> * if I don't know _where_ to write the data - I'ld better not feed
> the request to ll_rw_block(), or it may get PO'd
> * if I know that data is junk - I don't want it hitting the disk.
> 
> Dirty bit == request fed into the funnel and can be on disk any moment now.
> Locked == already in IO subsystem.
> 
> That's it - completely independent from the rest, except that you don't
> want the whole write mechanism applied to non-uptodate or non-mapped
> pieces.

Right, two obvious bugs, which is the same thing as saying two uneeded
states.  Now, I'm just trying to be tidy and fit this all into a nice
regular model that I can represent with state transition diagrams.  I
don't know for sure why it's good to do that, but it seems good.  I
like to imagine that if I could just get them all down on paper in a
regular form some possible optimizations would just jump right out at
me.  Mind you, this is not necessary for the filesystem work I'm
doing, this is more like a side interest.  I get along just fine with
the existing mechanism.

> Think about IO as a memory bus - cache controller deals with writing the
> cache line to RAM, but you don't want it to try that on lines that don't
> have PA already calculated or have invalid contents. "mark dirty" == point
> the write-behind mechanism to it and let it decide when the thing must be
> written.

I'd also like it to be able to decide on its own when to map the
block.  If I'm fully replacing the contents of a buffer on a page I
would like to be able to just mark the buffer dirty without mapping it
and let bdflush map it later.  Right now it doesn't work because
bdflush tries to feed a null block to ll_rw_block, but a small change
would fix that: the flush daemon just has to notice the buffer is on a
page, then it can call get_block to map it.  Does this accomplish
anything useful?  I *think* so but I'm not sure.  It seems to me that
if you handled this properly you could have, for example, a temporary
file written, read back and deleted, all without ever touching the
disk, or even going into get_block to check for mappings, let alone
fussing around with the allocation bitmaps.

I'm also trying to determine if a 'don't know' mapping state would be
useful for optimizing certain I/O paths.  

> Think how to make the cache indexed by virtual address (not by
> physical, as in case of x86) work correctly. That's what pagecache is -
> software MMU with cache-by-VA architecture.

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



Re: __ucmpdi2

2000-09-19 Thread Richard Henderson

On Tue, Sep 19, 2000 at 12:22:41PM +0200, Andreas Schwab wrote:
> IMHO it's a bug in gcc that it does not inline the comparison inside the
> switch expression, since it already does it in all other places.  Perhaps
> some problem with the patterns in the machine description.

Perhaps, but without a test case it's hard to know.  My guess is that
he's using gcc 2.7.2 or something decrepit like that; I couldn't reproduce
the problem on current source with a simple test case.

That said, I also think it is a bug that the kernel does not link 
against libgcc.


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



Re: News gateway not working

2000-09-19 Thread H. Peter Anvin

Followup to:  <[EMAIL PROTECTED]>
By author:"Chris Swiedler" <[EMAIL PROTECTED]>
In newsgroup: linux.dev.kernel
>
> I didn't want to post to the list with this, but [EMAIL PROTECTED]
> didn't get a reply.
> 
> The NNTP gateway hasn't been working for two weeks-- the last list message
> was 9/2/2000. Maybe this is common knowledge on the list (since I'm not
> subscribed, I obviously wouldn't know...) but it's a little discouraging to
> get absolute silence on fa.linux.kernel. If the problem is known, then
> someone should post directly to the newsgroup and let us know when it might
> be fixed. I know there were some massive changes when the list switched to
> new servers, and hopefully that's the reason and it can be fixed soon.
> 
> For many people, the newsgroup is a much easier way to read the list, and
> furthermore it reduces the load on vger, because otherwise we'd have to
> subscribe. So please...look kindly on us.
> 

You'd have to talk to the administrator of that gateway.
Unfortunately, the centralized gateway (linux.dev.kernel) was shut
down by decree due to someone's idea that doing so would stop spam, so
everyone has been running their own little hacks with various levels
of success.

-hpa
-- 
<[EMAIL PROTECTED]> at work, <[EMAIL PROTECTED]> in private!
"Unix gives you enough rope to shoot yourself in the foot."
http://www.zytor.com/~hpa/puzzle.txt
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



2.4.0-test9-pre3 boots, 2.4.0-test9-pre4 doesn't (SCSI)

2000-09-19 Thread Simon Kirby

Hello,

2.4.0-test9-pre3 seems to boot and work fine, but 2.4.0-test9-pre4 with
the same .config doesn't.  It stops here:

agpgart: AGP aperture is 64M @ 0xe400
aha152x: processing commandline: ok
aha152x: BIOS test: passed, detected 1 controller(s)
aha152x: resetting bus...
aha152x0: vital data: rev=1, io=0x140 (0x140/0x140), irq=9, scsiid=7, 
reconnect=enabled, parity=enabled, synchronous=enabled, delay=100, extended 
translation=disabled
aha152x0: trying software interrupt, ok.
scsi0 : Adaptec 152x SCSI driver; $Revision: 2.0 $
scsi : 1 host.
(Nothing more.)

Pressing sysreq-p gives me always the same EIP, c01088ed.  System.map:

c01088c0 t default_idle
c01088f4 t poll_idle

This is a dual CPU machine.  Both aha152x and aic7xxx are compiled in,
but I only compiled aha152x in as of test9-pre2 as it seemed to break
when used as a module then (it would loop endlessly detecting my scanner
over and over again infinitely -- it got up to sg50something and I
rebooted).  Perhaps something else is broken that's just showing up
differently now, as the test9-pre3 to test9-pre4 diff is pretty small
and I don't see anything obviously broken.

On test9-pre3, the next lines are:

(scsi1)  found at PCI 0/6/0
(scsi1) Wide Channel, SCSI ID=7, 32/255 SCBs
(scsi1) Downloading sequencer code... 392 instructions downloaded
...etc.

.config.gz attached.

Simon-

[  Stormix Technologies Inc.  ][  NetNation Communications Inc. ]
[   [EMAIL PROTECTED]   ][   [EMAIL PROTECTED]]
[ Opinions expressed are not necessarily those of my employers. ]

 config.gz


Re: SCSI scanning changes break RAID autorun

2000-09-19 Thread Linus Torvalds



On Tue, 19 Sep 2000, Matthew Kirkwood wrote:
> 
> It's probably solely an init-order thing but, short of
> moving the software RAID drivers into drivers/md/, I
> can't see an easy way to fix it.

That would probably not be a bad fix - especially as some people want to
split up xor.c into multiple files and I'd hate to clutter up
drivers/block any more than necessary anyway.

Make it so.

[ Btw, has autorun ever worked with non-scsi devices? They've mostly had
  the new initialization order for a long time.. ]

Linus

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



Re: [RFC] Wine speedup through kernel module

2000-09-19 Thread David Howells


Daniel Pittman <[EMAIL PROTECTED]> wrote:
> Hrm. It would seem more sensible to me that the registry, like the GDI,
> live outside the kernel. This would have some cost in terms of
> performance, I admit, but I don't think it's significant enough to care.
> 
> This is, I confess, based on my personal experience with Win32
> development and may not represent the real state of affairs for all
> developers.
> 
> Having registry access be performance critical or for large data is also
> against the MicroSoft best practice for software, which makes the costs
> lower - no multiple calls to ship large quantities of data. :)
> 
> Anyway, why did you see the need for the registry stubs in this case, if
> I may ask?

Firstly, in wine the registry is handled by the wineserver process. This means
it can be shared between all the wine processes running for a particular
used. So when wine wants to access the registry, it has to do an RPC call to
the wineserver (sending a request across a UNIX socket and then, I think, a
bit of ptrace()'ing to get at the data). This provides a hopefully more
suitable RPC mechanism.

Secondly, the client (wine) just has to issue a syscall that looks exactly
like a Win32 registry function, how it is handled is hidden by the kernel.

Thirdly, registry functions should issue system handles, as is done on
Windows. If system handles move into the kernel, then registry handles should
do too. This also means registry change notifications can be implemented by
system handles that WaitFor*() functions can deal with.

> Well... wont the GDI calls be RPC anyway - specifically, across the X11
> pipe?

Yes, but if I implement them to go to a GDI server, which then talks X11 out
the back, that's two lots of RPC calls.

However, what I said about system handles and the registry, may also apply to
GDI objects.

> In any case, I would have expected (personally, from assumptions) that
> the GDI would live inside the process space and pay the same cost as
> existing X11 applications to do it's display.

Yes, that is my current plan.

> I can't see any sensible reason for implementing anything extra in the
> kernel to support it. Now, adding an X11 protocol extension to make some
> of the Win32 stuff work better...

Now there's an idea... Have the local X server as an RPC server, handling wine
GDI calls directly *grin*. Then I could hide all the GDI stuff behind syscall
stubs in the same way. This would allow me to implement a lot of the NT Native
API.

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



Re: 2.4.0-test9-pre3: sit tunnel problems

2000-09-19 Thread Meelis Roos

GM> ifconfig sit0 up tunnel ::206.123.31.102
GM> SIOCSIFDSTADDR: No buffer space available

Tunnel (or smth. like that) support is missing from the kernel. Load the
module or recompile kernel. It has helped me with the same message with ipip
tunnels for multicast routing.

-- 
Meelis Roos ([EMAIL PROTECTED])
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: GCC proposal for "@" asm constraint

2000-09-19 Thread Andrea Arcangeli

On Tue, Sep 19, 2000 at 04:01:26PM +0100, David Howells wrote:
> I can't remember exactly what it was now, but I think it was either something
> to do with spinlocks or bitops. I'll re-investigate tonight and see if I can
> come back with some benchmarks/code-snippets tomorrow.

Yes you should tell us which is the inlined function that generated
different asm (if you post the two differnt asm or the two different .o we
can probably find it ourself).

I seen the rw_spin_locks are silly requesting the address of the spinlock to be
in the register eax when the address of the spinlock isn't a constant (while it
should instead at least use "r" and not "a") and I was going to fix it, however
that's not changed between test7 and test8...

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



Question: Using floating point in the kernel

2000-09-19 Thread Michael Vines

I was just wondering if you can use floating point while servicing a
syscall in the kernel?  Doing a 
find -name \*.c -exec grep float {} \; -print 
turned up a couple drivers that seem to be using fp.  Are there any
known issues that I should to be aware off?

Thanks,
 Mike

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



Re: GCC proposal for "@" asm constraint

2000-09-19 Thread David Howells


I've been writing a kernel module and I've noticed a measurable performance
drop between the same code compiled against linux-2.4.0-test7 and against
test8. I disassembled the code to try and work out what was going on and I saw
the following happen:

 * [test8]
   One of the atomic memory access primitives supplied by the kernel
   was putting immediate data into a register outside of the inline-asm
   instruction group and then using the register inside.

 * [test7]
   The immediate data was passed directly to the inline-asm instruction.

In test8, of course, this means that the compiler has to scratch up a spare
register, which is totally unnecessary, as the immediate data could be
attached directly to the instruction opcode as was done in test7.

This had the effect of making the compiler have to push the old contents of
the register into a slot on the stack (I think it held a local variable at the
time), which had the further effects of using more stack memory, introducing
more register rearrangement (the code ended up longer), and burning up more
CPU cycles.

I can't remember exactly what it was now, but I think it was either something
to do with spinlocks or bitops. I'll re-investigate tonight and see if I can
come back with some benchmarks/code-snippets tomorrow.

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



Re: Linux-2.4.0-test9-pre2

2000-09-19 Thread Andrea Arcangeli

On Tue, Sep 19, 2000 at 05:58:48AM -0300, Rik van Riel wrote:
> One of the issues which seems to be affecting performance
> is the elevator starvation bug, though, so I'm not sure how

You are contraddicting yourself. If you decrease the latency (so if you fix the
starvation) the global disk throughput can only decrease.

> Once the elevator problem has been solved, we should be able

I'm tired of you screwing up the VM and then complaining the elevator. At least
try to vary and choose something else to complain. At test1 time you may been
right, but now we're so permissive in the default settings exactly to be sure
the elevator isn't hurting performance.

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



Re: Linux-2.4.0-test9-pre2

2000-09-19 Thread Linus Torvalds



On Tue, 19 Sep 2000, Rogier Wolff wrote:
> 
> If gcc starts shouting:
> 
> somefile.c:1234: declared inline function 'serial_paranoia_check' is 
> somefile.c:1234: larger than 1k. Declining to honor the inline directive. 

That's not what gcc does.

Gcc silently just doesn't inline it. 

And the error message you get is 

ld: undefined function 'serial_paranoia_check'

which is not exactly helpful.

That, together with the fact that gcc's notion of "large" is completely
undefined (for a while, it had absolutely nothing to do with size, but
with what kinds of things the function did, like having the address of a
label taken) means that it's basically not useful for what you suggest
anyway..

Linus

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



Re: [PATCH] Re: SCSI scanning

2000-09-19 Thread Alan Cox

> Thus my gut tells me the correct link order should be:
> 
> 1) SCSI core.
> 2) low-level drivers (in same order as specified in hosts.c).
> 3) upper level drivers.

You need to get the i2o scsi driver run last afte the low level and before
the high level drivers despite being in drivers/i2o. There are some other
drivers which arent in drivers/scsi too 

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



Re: Very aggressive swapping after 2 hours rest

2000-09-19 Thread Andrea Arcangeli

On Tue, Sep 19, 2000 at 05:29:29AM -0300, Rik van Riel wrote:
> what I wanted to do in the new VM, except that I didn't
> see why we would want to restrict it to swap pages only?

You _must_ do that _only_ for the swap_cache, that's a specific issue of the
swap_cache during swapout (notenote: not during swapin!).

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



Warning - Running *really* short on DMA buffers with test9-pre4

2000-09-19 Thread profmakx . fmp

Hi all!!

I just compiled 2.4.0-test9-pre4 and get the following error in my 
syslog:

Warning - Running really short on DMA buffers. I dont have any 
ISA-devices installed and no device is in /proc/dma. I always thought 
that DMA buffers are only for "old" DMA on ISA bus ...

The system runs stable (so far ...)
Any idea??

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



Re: [PATCH] Re: SCSI scanning

2000-09-19 Thread Eric Youngdale


OK, my guess is that we may need to do some tweaking to the Makefile.
The basic idea is that you need to probe for hosts in a specific order.
The reason for this is that some host adapters emulate other types of
hardware.  For example, some Buslogic cards emulate Adaptec 1542.
Typically in such cases you want the Buslogic driver to handle the card and
not the 1542 driver (mainly for performance reasons - Leonard would probably
have more to say about this).  There *may* be other instances where probing
for one type of card can screw up another type of card, but I haven't heard
of cases like this in some time now,

There are a handful of others - the comments in the initializer in
hosts.c explain some of them.  I hope there are not others which people
failed to document.

A second potential gotcha - for compiled in drivers, I think that
low-level drivers should be initialized prior to upper level drivers.  The
reason for this is that not all of the upper level drivers are capable of
resizing the arrays on the fly (disk and cdrom are the two exceptions).
Yes, cleaning this up is on the list of things to do (it got partly done for
2.4), but fixing this is a nasty problem that reaches it's bony fingers all
the way up into some of the filesystems (essentially those stupid arrays in
ll_rw_blk which are read without any type of spinlock protection).   The
CONFIG_SD_EXTRA_DEVS parameter is used to pre-allocate room in the arrays
for additional devices, so for systems with small numbers (< 40) of disks
things may just happen to work.

For now, the trick should simply be to keep the upper level drivers at
the end of the list of objects to be linked in so the initializers run last.
Thus my gut tells me the correct link order should be:

1) SCSI core.
2) low-level drivers (in same order as specified in hosts.c).
3) upper level drivers.

-Eric

- Original Message -
From: "Linus Torvalds" <[EMAIL PROTECTED]>
To: "Torben Mathiasen" <[EMAIL PROTECTED]>; "Russell King" <[EMAIL PROTECTED]>
Cc: "Eric Youngdale" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>;
<[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
Sent: Monday, September 18, 2000 6:58 PM
Subject: Re: [PATCH] Re: SCSI scanning


>
> Ok, there's a test9-pre3 there now..
>
> The SCSI stuff is pretty straightforward, and it works for me (and I also
> built a kernel with all regular x86-capable SCSI drivers included, so the
> others got at least that level of testing). But there are some non-x86
> scsi drivers out there etc, so give it a whirl.
>
> Basic approach: remove all #ifdef MODULE, and get rid of the hosts.c
> hardcoded listing of SCSI devices - let SCSI controller drivers do their
> own initialization.
>
> Linus
>
> 
>  - pre1:
> - USB: OHCI controller unlink and bandwidth reclamation fixes
> - USB: storage update
> - sparc64: register window race. Non-deadlock rwlocks.
> - name clash in hamradio/pi2.c and hamradio/pt.c
> - epic100 credits, 8139too driver update, sr.c initcalls
> - acenic update
> - NFS sillyrename fixups
> - mktime(). Do it just once - not 16 times.
> - misc small fixes to random drivers by Tigran
> - IDE driver picks up master/slave relationships on its own.
> - truncate unmapped/uptodate case handled correctly
> - don't do notifier locking at low level: higher levels do (or
>   should do) this already.
> - ACPI interpreter updates (and file renames - making this part big)
> - SysKonnect gigabit driver update
> - 3c59x driver update
> - pcmcia debounce logic. Ugh.
> - MM balancing (Rik Riel)
>  - pre2:
> - "extern inline" -> "static inline".  It doesn't matter right now,
>   but it's proactive for future gcc versions.
> - various net drvr updates and fixes
> - more initcall updates
> - PPC updates (including PPC-related drivers etc)
> - disallow re-mounting same filesystem in same place multiple times.
>   Too confusing. And /etc/mtab gets strange.
> - Riel VM update
> - sparc updates
> - PCI bridge scanning fix: assign numbers properly
> - network updates
> - scsi fixes
>  - pre3:
> - uninitialized == zero. Remove extra initializers.
> - block_prepare_write and block_truncate_page: if the page is
>   up-to-date, then so are the buffer heads inside it once they
>   are mapped..
> - SCSI initialization - move over to the modular case. No more
>   double initialization.
> - Sync up with Alans 2.2.x driver changes
> - networking updates (iipv6 works non-modular etc)
> - netfilter update
> - adfs correct dentry operations
> - ARM update (including ARM drivers)
> - acenic driver update
> - floppy: we'd better hold the io_request_lock when playing with
"CURRENT".
> - NFS cache coherency across file locking fix
> - NFS over TCP - handle TCP socket writability right..
> - USB updates
>

-
To unsubscribe from this list: send the line "unsubscrib

new MM and shared memory

2000-09-19 Thread Christoph Rohland

Hi Rik et al.

As stated before the new mm does break shm swapping. 
Under the ipctst program driving my machine into swap I get the
appended console output. After this it locked up.

I can make it run longer by giving mem= with less memory.

Greetings
Christoph

-- 


LILO boot: test
Loading testLinux version 2.4.0-test9 (root@ls3016) (gcc version 
egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)) #5 SMP Mon Sep 18 15:28:34 CEST 2000
BIOS-provided physical RAM map:
 BIOS-e820: 0009dc00 @  (usable)
 BIOS-e820: 2400 @ 0009dc00 (reserved)
 BIOS-e820: 0002 @ 000e (reserved)
 BIOS-e820: 03ef8000 @ 0010 (usable)
 BIOS-e820: 7c00 @ 03ff8000 (ACPI data)
 BIOS-e820: 0400 @ 03fffc00 (ACPI NVS)
 BIOS-e820: ec00 @ 0400 (usable)
 BIOS-e820: 0140 @ fec0 (reserved)
 BIOS-e820: 00011000 @ 0001 (usable)
Warning only 896MB will be used.
Use a PAE enabled kernel.
Scan SMP from c000 for 1024 bytes.
Scan SMP from c009fc00 for 1024 bytes.
Scan SMP from c00f for 65536 bytes.
found SMP MP-table at 000f65e0
hm, page 000f6000 reserved twice.
hm, page 000f7000 reserved twice.
hm, page 0009d000 reserved twice.
hm, page 0009e000 reserved twice.
On node 0 totalpages: 229376
zone(0): 4096 pages.
zone(1): 225280 pages.
zone(2): 0 pages.
Intel MultiProcessor Specification v1.4
Virtual Wire compatibility mode.
OEM ID: INTELProduct ID: OCPRF100 APIC at: 0xFEE0
Processor #7 Pentium(tm) Pro APIC version 17
Floating point unit present.
Machine Exception supported.
64 bit compare & exchange supported.
Internal APIC present.
Bootup CPU
Processor #0 Pentium(tm) Pro APIC version 17
Floating point unit present.
Machine Exception supported.
64 bit compare & exchange supported.
Internal APIC present.
Processor #1 Pentium(tm) Pro APIC version 17
Floating point unit present.
Machine Exception supported.
64 bit compare & exchange supported.
Internal APIC present.
Processor #2 Pentium(tm) Pro APIC version 17
Floating point unit present.
Machine Exception supported.
64 bit compare & exchange supported.
Internal APIC present.
Processor #3 Pentium(tm) Pro APIC version 17
Floating point unit present.
Machine Exception supported.
64 bit compare & exchange supported.
Internal APIC present.
Processor #4 Pentium(tm) Pro APIC version 17
Floating point unit present.
Machine Exception supported.
64 bit compare & exchange supported.
Internal APIC present.
Processor #5 Pentium(tm) Pro APIC version 17
Floating point unit present.
Machine Exception supported.
64 bit compare & exchange supported.
Internal APIC present.
Processor #6 Pentium(tm) Pro APIC version 17
Floating point unit present.
Machine Exception supported.
64 bit compare & exchange supported.
Internal APIC present.
Bus #0 is PCI
Bus #1 is PCI
Bus #2 is PCI
Bus #3 is PCI
Bus #4 is ISA
I/O APIC #8 Version 19 at 0xFEC0.
Int: type 3, pol 1, trig 1, bus 4, IRQ 00, APIC ID 8, APIC INT 00
Int: type 0, pol 1, trig 1, bus 4, IRQ 01, APIC ID 8, APIC INT 01
Int: type 0, pol 1, trig 1, bus 4, IRQ 00, APIC ID 8, APIC INT 02
Int: type 0, pol 1, trig 1, bus 4, IRQ 03, APIC ID 8, APIC INT 03
Int: type 0, pol 1, trig 1, bus 4, IRQ 04, APIC ID 8, APIC INT 04
Int: type 0, pol 3, trig 3, bus 0, IRQ 28, APIC ID 8, APIC INT 3a
Int: type 0, pol 1, trig 1, bus 4, IRQ 06, APIC ID 8, APIC INT 06
Int: type 0, pol 1, trig 1, bus 4, IRQ 07, APIC ID 8, APIC INT 07
Int: type 0, pol 3, trig 1, bus 4, IRQ 08, APIC ID 8, APIC INT 08
Int: type 0, pol 1, trig 1, bus 4, IRQ 09, APIC ID 8, APIC INT 09
Int: type 0, pol 3, trig 3, bus 0, IRQ 00, APIC ID 8, APIC INT 3b
Int: type 0, pol 3, trig 3, bus 0, IRQ 29, APIC ID 8, APIC INT 12
Int: type 0, pol 1, trig 1, bus 4, IRQ 0c, APIC ID 8, APIC INT 0c
Int: type 0, pol 1, trig 1, bus 4, IRQ 0d, APIC ID 8, APIC INT 0d
Int: type 0, pol 1, trig 1, bus 4, IRQ 0e, APIC ID 8, APIC INT 0e
Int: type 0, pol 3, trig 3, bus 1, IRQ 1c, APIC ID 8, APIC INT 24
Int: type 0, pol 3, trig 3, bus 0, IRQ 30, APIC ID 8, APIC INT 30
Int: type 0, pol 3, trig 3, bus 0, IRQ 3f, APIC ID 8, APIC INT 31
Int: type 0, pol 3, trig 3, bus 1, IRQ 00, APIC ID 8, APIC INT 3b
Int: type 0, pol 3, trig 3, bus 2, IRQ 00, APIC ID 8, APIC INT 3b
Int: type 0, pol 3, trig 3, bus 3, IRQ 00, APIC ID 8, APIC INT 3b
Lint: type 3, pol 1, trig 1, bus 4, IRQ 00, APIC ID ff, APIC LINT 00
Lint: type 1, pol 1, trig 1, bus 0, IRQ 00, APIC ID ff, APIC LINT 01
Processors: 8
mapped APIC to e000 (fee0)
mapped IOAPIC to d000 (fec0)
Kernel command line: auto BOOT_IMAGE=test ro root=801 console=tty0 
console=ttyS0,38400n8
Initializing CPU#0
Detected 550070964 Hz processor.
Console: colour VGA+ 80x25
Calibrating delay loop... 1097.73 BogoMIPS
Memory: 899124k/

Re: GCC proposal for "@" asm constraint

2000-09-19 Thread Andrea Arcangeli

On Mon, Sep 18, 2000 at 09:37:43PM -0400, John Wehle wrote:
> It's perhaps not optimal, however I'm not sure that it's wrong.  In

It's not "wrong" in the sense that something breaks but it's definitely
suboptimal. There's no reason to reload a value that can't change because it's
embedded into the opcodes of the asm and set a static linking time.

> any case if you can supply a small standalone test case (i.e. preprocessed
> source code) I'll take a quick look at things.  I take it that you haven't
> tried the current gcc sources?

The first testcase is the current spinlock implementation, the second testcase
adds the "memory" clobber and it generates the _spurious_ reload of `p'. You
should be able to compile with `gcc -O2 -S p-*.i`.

Andrea


# 1 "p.c"
# 1 "/home/andrea/kernel/devel/2.2.18pre9aa1/include/linux/spinlock.h" 1


# 1 "/usr/include/asm/spinlock.h" 1 3



# 134 "/usr/include/asm/spinlock.h" 3


 



typedef struct {
volatile unsigned int lock;
} spinlock_t;




 








typedef struct { unsigned long a[100]; } __dummy_lock_t;



# 169 "/usr/include/asm/spinlock.h" 3




























 









typedef struct {
volatile unsigned int lock;
unsigned long previous;
} rwlock_t;



 






# 231 "/usr/include/asm/spinlock.h" 3






# 249 "/usr/include/asm/spinlock.h" 3




















# 3 "/home/andrea/kernel/devel/2.2.18pre9aa1/include/linux/spinlock.h" 2


# 1 "p.c" 2


int * p;
spinlock_t lock = (spinlock_t) { 0 } ;

void dummy(int x , int y) {}

main() {
int a, b; 
__asm__ __volatile__( "\n1:\t" "lock ; btsl $0,%0\n\t" "jc 2f\n" ".section 
.text.lock,\"ax\"\n" "2:\t" "testb $1,%0\n\t" "jne 2b\n\t" "jmp 1b\n" ".previous"  
:"=m" ((*(__dummy_lock_t *)(  &lock  )) )) ;
a = *p;
__asm__ __volatile__( "lock ; btrl $0,%0"  :"=m" ((*(__dummy_lock_t *)(  &lock 
 )) )) ;

__asm__ __volatile__( "\n1:\t" "lock ; btsl $0,%0\n\t" "jc 2f\n" ".section 
.text.lock,\"ax\"\n" "2:\t" "testb $1,%0\n\t" "jne 2b\n\t" "jmp 1b\n" ".previous"  
:"=m" ((*(__dummy_lock_t *)(  &lock  )) )) ;  
b = *p;
__asm__ __volatile__( "lock ; btrl $0,%0"  :"=m" ((*(__dummy_lock_t *)(  &lock 
 )) )) ;

dummy(a,b);
}


# 1 "p.c"
# 1 "/home/andrea/kernel/devel/2.2.18pre9aa1/include/linux/spinlock.h" 1


# 1 "/usr/include/asm/spinlock.h" 1 3



# 134 "/usr/include/asm/spinlock.h" 3


 



typedef struct {
volatile unsigned int lock;
} spinlock_t;




 








typedef struct { unsigned long a[100]; } __dummy_lock_t;



# 169 "/usr/include/asm/spinlock.h" 3




























 









typedef struct {
volatile unsigned int lock;
unsigned long previous;
} rwlock_t;



 






# 231 "/usr/include/asm/spinlock.h" 3






# 249 "/usr/include/asm/spinlock.h" 3




















# 3 "/home/andrea/kernel/devel/2.2.18pre9aa1/include/linux/spinlock.h" 2


# 1 "p.c" 2


int * p;
spinlock_t lock = (spinlock_t) { 0 } ;

void dummy(int x , int y) {}

main() {
int a, b; 
__asm__ __volatile__( "\n1:\t" "lock ; btsl $0,%0\n\t" "jc 2f\n" ".section 
.text.lock,\"ax\"\n" "2:\t" "testb $1,%0\n\t" "jne 2b\n\t" "jmp 1b\n" ".previous"  
:"=m" ((*(__dummy_lock_t *)(  &lock  )) ) : : "memory") ;
a = *p;
__asm__ __volatile__( "lock ; btrl $0,%0"  :"=m" ((*(__dummy_lock_t *)(  &lock 
 )) ) : : "memory") ;

__asm__ __volatile__( "\n1:\t" "lock ; btsl $0,%0\n\t" "jc 2f\n" ".section 
.text.lock,\"ax\"\n" "2:\t" "testb $1,%0\n\t" "jne 2b\n\t" "jmp 1b\n" ".previous"  
:"=m" ((*(__dummy_lock_t *)(  &lock  )) ) : : "memory") ;  
b = *p;
__asm__ __volatile__( "lock ; btrl $0,%0"  :"=m" ((*(__dummy_lock_t *)(  &lock 
 )) ) : : "memory") ;

dummy(a,b);
}



Re: The INN/mmap bug

2000-09-19 Thread Alexander Viro



On Tue, 19 Sep 2000, Daniel Phillips wrote:

> The more I think about it the less clear and ambiguous I find it. 
> When you add the dirty bit into the pot you get:
> 
>Mapped,  Uptodate,  Dirty:  not possible

Sure, it is possible - that's how the write happens

>   !Mapped,  Uptodate,  Dirty:  not possible
>Mapped, !Uptodate,  Dirty:  pending write

s/pending write/obvious bug/, damnit. Daniel, just think for a second: we
have the buffer read to be picked by bdflush and written to disk, while
the _contents_ _is_ _not_ _uptodate_. Just what can you expect when write
succeeds? Junk on disk, right? You know, GIGO queue - garbage in, garbage
out...

>   !Mapped, !Uptodate,  Dirty:  pending map and write

Wrong. It's an instant BUG at line 711 in ll_rw_blk.c - remember these
reports?

>Mapped,  Uptodate, !Dirty:  regular block
>   !Mapped,  Uptodate, !Dirty:  hole of zeroes
>Mapped, !Uptodate, !Dirty:  unread
>   !Mapped, !Uptodate, !Dirty:  pending map
 
> Those two 'not possible' states bother me, they show that the three
> bits are not orthogonal.  We can make arbitrary assignments of meaning
> to them as you did with !Mapped, !Uptodate (pending map) but in that
> case why not just enumerate all the states we need and lose the bit
> assignments?  I think the deep problem here is trying to look at this
> as a bit-flipping problem instead of a state-transition problem.

Sure, the dirty bit is not orthogonal to the rest. You don't need to do
any complex analysis - it's as simple as
* if I don't know _where_ to write the data - I'ld better not feed
the request to ll_rw_block(), or it may get PO'd
* if I know that data is junk - I don't want it hitting the disk.

Dirty bit == request fed into the funnel and can be on disk any moment now.
Locked == already in IO subsystem.

That's it - completely independent from the rest, except that you don't
want the whole write mechanism applied to non-uptodate or non-mapped
pieces.

Think about IO as a memory bus - cache controller deals with writing the
cache line to RAM, but you don't want it to try that on lines that don't
have PA already calculated or have invalid contents. "mark dirty" == point
the write-behind mechanism to it and let it decide when the thing must be
written. Think how to make the cache indexed by virtual address (not by
physical, as in case of x86) work correctly. That's what pagecache is -
software MMU with cache-by-VA architecture.

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



Re: An elevator algorithm (patch)

2000-09-19 Thread Andrea Arcangeli

On Tue, Sep 19, 2000 at 07:17:42AM -0300, Rik van Riel wrote:
> This is a bug in Andrea's idea.  The request should only
> be inserted at the end of the list if:
> 
> 1) the block numbre is bigger than head->prev (which you
>already have)

If you read the code you'll see that in his previous patch he wasn't doing
that.  That's what I suggested to change to return in O(1) behaviour.

> 2) the block number is smaller than head (or head->next
>if the current request is unplugged)

You're wrong. While the queue is unplugged there are peaks in the queue caused
by the latency control and head->next is not guarnateed to be the lower block
in the queue.

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



Re: An elevator algorithm (patch)

2000-09-19 Thread Andrea Arcangeli

On Tue, Sep 19, 2000 at 04:50:26AM -0300, Rik van Riel wrote:
> When the latency gets above 10 minutes, I'd call it starvation ;)

Me too, no argument about that.

> Not average latency no, but the starvation issue should be
> fixed...

2.2.18pre9aa1 delivers acceptable latency for me with the same
latency control logic of 2.4.x. I will check test9 soon.

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



nfsv3 lockd causes kernel oops

2000-09-19 Thread Trond Myklebust


Hi,

  Ever since the introduction of the new file locking code in 2.4.x,
NFS locking has been seriously broken. A preliminary look seems to
indicate that the problems might lie in the generic locking code: when
running the connectathon tests against another server I get crap like

  panic("Attempting to free lock with active wait queue")

This occurs regularly when running the various child process/parent
process locking tests (essentially those tests which activate the lock
blocking).

  This needs to be fixed before we release the final 2.4.0. I'll see
if I can't find time to look into it myself in the course of the week,
however I'm trying hard not to get too distracted from writing up my
thesis. It would therefore be nice if Willy and/or others familiar
with the file locking could take a look too.

  In the meantime, perhaps Ted could put this issue into his TODO
list?

Cheers,
  Trond


> " " == Christian Brandes <[EMAIL PROTECTED]> writes:

 > Hi!

 > I've been trying to setup an NFSv3 server that supports
 > nfs_lock.

 > So I installed RedHat 7.0beta (6.9.5) and built a 2.4.0-test7
 > kernel.  During boot up I noticed that the launching of
 > nfslockd did not succed, might be that I do not have the right
 > nfs-tools. I use the ones that are provided with the distrib
 > (nfs-utils-0.1.9.1-5).

 > I did try out what happens when I lock a file by nfs. I started
 > my little test program twice on a client machine:

 > #include  include  include  include
 > # include  include 
 > #include  include 

 > int main (void) {
 >   int fd; int rc; printf ("\n"); fd = open("./t1", O_RDWR); rc
 >   = flock(fd, LOCK_EX ); printf ("rc: %d\n", rc); sleep (30);
 >   printf ("exit\n");
 > }

 > And the result was a kernel Oops on the server:

 > locks_insert_block: removing duplicated lock (pid=59714
 > 0-9223372036854775807 type=1) Unable to handle kernel NULL
 > pointer dereference at virtual address 0004
 >  printing eip:
 > c013b88e *pde =  Oops: 0002 CPU: 0 EIP:
 > 0010:[locks_delete_block+14/48] EFLAGS: 00010286 eax: c586f86c
 > ebx:  ecx: c586f878 edx:  esi: c586f878 edi:
 > cfe1a9f0 ebp: cfe1a9f0 esp: c581def8 ds: 0018 es: 0018 ss: 0018
 > Process lockd (pid: 2368, stackpage=c581d000) Stack: c586f86c
 > c013b8e7 c586f86c c0224e60 e942   
 >7fff 0001 cfcbcc08 cfcbc81c c586f800 c013ce4d
 >cfe1a9f0 c586f86c c016d7cd cfe1a9f0 c586f86c c586f800
 >c0171c69 c5983400 c581df58 cfcbc7d0
 > Call Trace: [locks_insert_block+55/112] [tvecs+18936/114884]
 > [posix_block_lock+13/16] [nlmsvc_lock+685/720]
 > [nlm4svc_retrieve_args+169/240] [nlm4svc_proc_lock+149/224]
 > [svc_process+729/1248]
 >[lockd+423/576] [lockd+0/576] [kernel_thread+43/64]
 > Code: 89 5a 04 89 13 89 48 0c 89 48 10 8d 48 04 8b 59 04 8b 50
 > 04

 > I would be glad if you could tell me what went wrong and how I
 > could solve the problem.

 > Thanx a lot

 > Christian Brandes

 > --
 >   C H R I S T I A N B R A N D E S
 >  CAxOPEN product development technology GmbH
 > Sauerwiesen 2, D-67661 Kaiserslautern
 >  E-Mail: [EMAIL PROTECTED]
 > Tel.: +49 6301 70919 0 Fax: +49 6301 70919 59
 > --

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



Re: The INN/mmap bug

2000-09-19 Thread Daniel Phillips

Linus Torvalds wrote:
> 
> On Mon, 18 Sep 2000, Alexander Viro wrote:
> >   * we have several bh state components and the thing is a big,
> > fscking mess. If we look at the areas outside of the page lock we have:
> 
> It's not a mess at all.
> 
> I don't see why you call things "first stage" etc. It's perfectly
> straightforward. There are two bits that matter:
>  - buffer uptodate
>  - buffer mapped.
> 
> And the state is very clear and unambiguous:
> 
> Mapped, Uptodate: regular block
> !Mapped, Uptodate: hole of zeroes
> Mapped, !Uptodate: unread
> !Mapped, !Uptodate: "pending map"
> 
> No "several states" at all.

The more I think about it the less clear and ambiguous I find it. 
When you add the dirty bit into the pot you get:

 Mapped,  Uptodate,  Dirty:  not possible
!Mapped,  Uptodate,  Dirty:  not possible
 Mapped, !Uptodate,  Dirty:  pending write
!Mapped, !Uptodate,  Dirty:  pending map and write
 Mapped,  Uptodate, !Dirty:  regular block
!Mapped,  Uptodate, !Dirty:  hole of zeroes
 Mapped, !Uptodate, !Dirty:  unread
!Mapped, !Uptodate, !Dirty:  pending map

Those two 'not possible' states bother me, they show that the three
bits are not orthogonal.  We can make arbitrary assignments of meaning
to them as you did with !Mapped, !Uptodate (pending map) but in that
case why not just enumerate all the states we need and lose the bit
assignments?  I think the deep problem here is trying to look at this
as a bit-flipping problem instead of a state-transition problem.

I'm not saying that the current design can't be made to work.  It can,
it's practically working now - it's just confusing as Al said, and
there are reasons for that.  It gets more confusing when you add in
the less-than-simple relationship between buffers and pages and then
try to make sense of the combination of the two sets of states.  The
motivation for making this less confusing is to be able to think about
optimization possibilities instead of just making it work.

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



Re: [PATCH] Fix queued SIGIO

2000-09-19 Thread Chuck Lever

On Tue, 19 Sep 2000, Julian Anastasov wrote:
> On Mon, 18 Sep 2000, Andi Kleen wrote:
> 
> > >   SI_SIGIO is not generated from kernel. The same is for the
> > > other SI_ consts < 0 not defined with __SI_CODE.
> >
> > Ok, then you have already broken binary compatibility between 2.2 and 2.4
> 
>   Looking in the old kernels, it seems the binary compatibility
> was broken in 2.3.21 when si_code returns POLL_xxx events just like
> mentioned in "The Single UNIX ® Specification, Version 2",
> xsh/signal.h.html and not SI_SIGIO.
> 
>   SI_SIGIO in si_code for 2.2 does not return any information
> about the events. I even see that Redhat maintains patch against 2.2
> to backport the POLL_xxx events from 2.3. Not sure after the changes
> in 2.4.0-test1. Anyway, 2.2 looks unusable for me and I don't see other
> way this problem to be fixed. The binary compatibility is impossible
> to exist. The applications can support the both ways: the old SI_SIGIO
> and the new POLL_xxx events (recompiled after test1) in si_code.

because the 2.2 kernels are already "broken" in this regard, i can't see
how binary compatibility between 2.2 and 2.4 could even be an
issue.  applications can't use this stuff in 2.2 without at least the
RedHat patch.

unless there's a problem implementing a glibc that runs on both 2.2 and
2.4, perhaps this should be revisited.

also, the test at issue here (from line 363 of kernel/signal.c):

/* If this was sent by a rt mechanism, try again.  */
if (info->si_code != SI_USER) {
ret = -EAGAIN;
goto out;
}

has always been unclear as to its intent.  it seems like there is
overloading going on here -- if the real intent is to prevent users
without credentials from sending "kernel-only" signals, then that should
be the logic here.

>   The next step is somebody to implement event merging and to
> allow receiving of many events with one call. For the next kernels.

we just published a paper in the ALS proceedings describing our
implementation of a new system call similar to sigtimedwait() that
collects many events at once.

- Chuck Lever
--
corporate:  <[EMAIL PROTECTED]>
personal:   <[EMAIL PROTECTED]>

The Linux Scalability project:
http://www.citi.umich.edu/projects/linux-scalability/

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



2.4.0-test9-pre4 OOPS

2000-09-19 Thread Mohammad A. Haque

I don't see the oops in my logs and couldn't copy it down because I was
on my way to class.

Looked like swapper barfed. The file mentioned was buffer.c I think.
Sorry I couldn't grab more details. I'll be sure to try if it happens
again.

Anyone else seeing anythign similar?

-- 

=
Mohammad A. Haque  http://www.haque.net/ 
   [EMAIL PROTECTED]

  "Alcohol and calculus don't mix. Project Lead
   Don't drink and derive." --Unknown  http://wm.themes.org/
   [EMAIL PROTECTED]
=
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: Hardware performance counter overflow

2000-09-19 Thread John Levon

On Mon, 18 Sep 2000, John Rafferty Zedlewski wrote:

> Hi, I've noticed that there are quite a few hardware performance counter
> patches (which allow access to things like the Pentium Model Specific
> Registers for gathering profiling info) floating around, including Rabbit
> (http://www.scl.ameslab.gov/Projects/Rabbit/), Richard Gooch's patches, and
> PAPI (very cool and portable, IMHO).  But I haven't seen any of these that
> supports delivering interrupts when counters overflow (the last version of
> PAPI that I saw provides high-level emulation of this on Linux/x86, but
> it's not really accurate enough for serious work).  
>   Is there any other patch that supports overflows on Linux/x86, or is it
> work that still needs to be done?  Monitoring these overflows is the trick
> behind large parts of Intel's VTune and SGI's SpeedShop, and I'd love to
> see a profiler like this come to Linux.  Basically, I'm a student and I
> think it would be an interesting project, but I don't want to re-invent the
> wheel unnecessarily.  
>   Thanks a lot!
> --JRZ

It is on its way. I just have to get the profiler I've written through the
university's administration, and it will be available under the GPL. The
approach taken is similar to DCPI, but with some differences.

It still needs some work however, but will prove to be useful I think.

Ask if you want more info.

thanks
john

-- 
"I bet the human brain is a kludge."
- Marvin Minsky


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



Re: experimental, non-production bits.

2000-09-19 Thread Elmer Joandi

Alexander Viro wrote:

> ??? You had explicitly enabled the code that was marked "experimental". If
> the warning from make config was not enough, how the hell would runtime
> warning be more useful?

Yeah,  you see, If you have about 100 Linux servers to maintain, part your own,
part installed by someone else, part standard installation, then this question
does
make sense too, but is still irrelevant to outcome which is needed "now, after few
counted
hours and for sure". In such a situation you just want that feature, however
principially wrong the whole setup of the question and path of your own actions
might be.



elmer.



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



News gateway not working

2000-09-19 Thread Chris Swiedler

I didn't want to post to the list with this, but [EMAIL PROTECTED]
didn't get a reply.

The NNTP gateway hasn't been working for two weeks-- the last list message
was 9/2/2000. Maybe this is common knowledge on the list (since I'm not
subscribed, I obviously wouldn't know...) but it's a little discouraging to
get absolute silence on fa.linux.kernel. If the problem is known, then
someone should post directly to the newsgroup and let us know when it might
be fixed. I know there were some massive changes when the list switched to
new servers, and hopefully that's the reason and it can be fixed soon.

For many people, the newsgroup is a much easier way to read the list, and
furthermore it reduces the load on vger, because otherwise we'd have to
subscribe. So please...look kindly on us.

chris

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



Re: PATCH 2.4.0.9.2: export ethtool interface

2000-09-19 Thread Andrew Morton

Jeff Garzik wrote:
> 
> This patch, against 2.4.0-test9-pre2, moves ethtool.h from the private
> domain of the sparc ports into include/linux.  This publishes an
> existing interface, and has been discussed before.  (search past lkml
> subject headers for "media tool" and "ethtool")
> 
> This updated patch should take some of the past threads into account.
> The differences from the current sparc ethtool.h are:
> 
> * bitmask for advertising as well as supported media types
> * interrupt mitigation hints max{tx,rx}pkt (Jes suggestion)
> * four reserved u32 slots for future expansion
> * assigned an ioctl: SIOCETHTOOL (0x8944)
> 

This is good. It would be useful to have this in place ASAP so driver
authors have something to look at and to work against.

I've made some edits (revised patch attached here).

* With this interface I don't see a way in which one can force some
settings but leave others unforced.  Suppose, for example, that I wish
to force 10mbps but to leave the setting of the transceiver type,
duplex, etc alone (ie: up to the driver/hardware to determine the value
of these).

If you do an ETHTOOL_SSET/modify/ETHTOOL_SGET on the interface you'll
end up *forcing* all these settings into whatever state they happened to
be in when you did the read, no?

So I added the `force_mask' which should be tested by the ETHTOOL_SSET
handler to decide which fields are actually being forced.

When the driver receives a ETHTOOL_SGET it should populate `force_mask'
to indicate to the caller which fields are currently forced.

* I added SUPPORTED_MAC_FLOWCTRL/ADVERTISED_MAC_FLOWCTRL for advertising
of 802.3x MAC-layer flow control.

* I added the `flow_ctrl' field to say whether we want to enable/disable
this.

Other comments:

* There don't seem to be enough port types and transceiver types. 
10base2? BNC? 100baseTx/100baseFX?

* Regarding the ADVERTISED bits.  Are these designed to read back what
we're currently advertising, or are they designed to allow us to force
what is to be advertised?  Both, I guess.

* maxtxpkt and maxrxpkt seem highly specific to particular hardware and
particular drivers.  Plus there are a large range of other
driver-specific performance tunables which are typically controlled by
module parms.  Why pick these two?

It may be better to bury this sort of thing into a device-specific
anonymous field.  Shrug - don't bother: I wouldn't expect anyone to
really use these things because it's such a PITA to tear down all the
driver data structures and rebuild them.

* Are you really, really sure about the alignment issues with struct
ethtool_cmd?  It strikes me that burying a short and five chars in among
a bunch of longs is asking for trouble.  Suppose the caller is using a
different compiler?  If you're not sure, make 'em all u32 :)



On a related topic, it offends me that when you unplug the RJ45 from a
win2k machine it pops up a little box telling you your network has
disappeared.  We can't do that.

At present, SIOCGIFFLAGS returns an amalgam of __LINK_STATE_START and
__LINK_STATE_NOCARRIER in IFF_RUNNING.  We need to separate these out so
applications can query __LINK_STATE_NOCARRIER independently.  We also
need a select()able interface so changes in carrier can be monitored.

The users of a select()able carrier detect would be desktop UIs and the
high-availability guys.  The latter is a guess - I don't really know if
people who are concerned about failover would find a carrier-lost
indication useful.  TBD.

--- linux-2.4.0-test9-pre4/include/linux/ethtool.h  Thu Jan  1 10:00:00 1970
+++ linux-akpm/include/linux/ethtool.h  Tue Sep 19 23:09:38 2000
@@ -0,0 +1,114 @@
+/* $Id: ethtool.h,v 1.1.186.1 2000/09/16 20:13:14 jgarzik Exp $
+ * ethtool.h: Defines for Linux ethtool.
+ *
+ * Copyright (C) 1998 David S. Miller ([EMAIL PROTECTED])
+ */
+
+#ifndef _LINUX_ETHTOOL_H
+#define _LINUX_ETHTOOL_H
+
+/* This should work for both 32 and 64 bit userland. */
+struct ethtool_cmd {
+   u32 cmd;
+   u32 force_mask; /* Which fieldswe wish to force */
+   u32 supported;  /* Features this interface supports */
+   u32 advertising;/* Features this interface advertises */
+   u16 speed;  /* The forced speed, 10Mb, 100Mb, gigabit */
+   u8  duplex; /* Duplex, half or full */
+   u8  flow_ctrl;  /* 802.3x flow control */
+   u8  port;   /* Which connector port */
+   u8  phy_address;
+   u8  transceiver;/* Which tranceiver to use */
+   u8  autoneg;/* Enable or disable autonegotiation */
+   u32 maxtxpkt;   /* Tx pkts before generating tx int */
+   u32 maxrxpkt;   /* Rx pkts before generating rx int */
+   u32 reserved[4];
+};
+
+
+/* CMDs currently supported */
+#define ETHTOOL_GSET   0x0001 /* Get settings, non-privileged. */
+#define ETHTOOL_SSET   0x0002 /* Set settings, privileged. */
+
+/* compatibilit

Re: kernel governance

2000-09-19 Thread Riley Williams

Hi Tony.

 > sorry for the cold call - i've been trying to find a statement
 > about 'kernel governance' and how new code is accepted into the
 > kernel...

To help anybody else wondering about these issues, I've cc'd my reply
to the Linux-Kernel mailing list for comments. However, please note
that the comments herein are expressions of my own opinions, and may
not reflect those of other developers.

Additional comments from other developers should be cc'd to Tony as I
don't think he's on this list. However, I am on the list, so there is
no need to CC to me...

 > any hints?

Well, I'm not even sure what you mean by "kernel governance" but the
way to get your code into the kernel is well documented. Here's a
basic summary of the procedure:

 1. Subscribe to the Linux-Kernel mailing list. This is where
ALL issues relating to the ENTIRE Linux kernel are thrown
open for discussion.

I will warn you in advance that this is a VERY active list
and it is not unusual to get 300+ emails a day in that one
list. My personal record from the Linux-Kernel list alone
is 793 emails in one day. Make sure you can handle emails
in that sort of volume first.

 2. Monitor the list for AT LEAST 15 DAYS to see what issues
are being discussed at the moment. In particular, watch out
for ANY emails from "Linus Torvalds" or "Alan Cox" which
mention such things as "Feature Freeze".

 3. When you are satisfied with your understanding of the
dynamics of the Linux-Kernel mailing list, post an email
(sent using "Plain Text" mode - HTML emails are IGNORED by
MANY of the kernel developers simply because of the volume
of mail on the list.

This email should contain a description of the purpose of
your code, and should have attached to it (in MIME format)
a PATCH against the relevant CURRENT kernel source tree
that is in UNIFIED DIFF FORMAT. This format is generated
by applying the -u4 parameter to the diff command.

Note that the patch should NOT be embedded in the text of
the email as doing so will almost certainly make the patch
useless - it will either get munged by your email sending
software or by the recipients mail reading software.

Either the subject line or the descriptive text MUST state
which kernel the patch file was generated against, and the
email MUST have a subject line, preferably with the word
PATCH in upper case together with a short (less than 40
character) description of what issue the patch deals with.

Note that the current kernels can normally be determined
by pointing your web browser to http://www.kernel.org and
scrolling down to the bottom of the page.

 4. Watch out for comments on your patch, and DEAL WITH THEM.
Some people just ignore any comments, apparently on the
assumption that they know what the kernel needs better
than those who have been working on it far longer than
they have, and after a while, the developers just stop
reading their emails.

You will also receive comments from people who have either
just plain misunderstood your post, or who operate on the
basis that their code is sacrosanct and your patch against
it isn't worth considering as a result. Again, you will
have to find a way of dealing with them.

One basic rule here though: NEVER FLAME ANYBODY - NOT EVEN
IN RESPONSE TO A FLAME. You'll only get yourself a bad
name and reputation by doing so.

The following are common reasons for patches posted to the Linux
Kernel Developers mailing list being rejected:

 a. The patch is too complex.

A patch that deals with too many issues will be rejected
simply because of its size, as those who are responsible
for the relevant part(s) of the kernel just don't have
time to go through them.

If you have dealt with several issues and the patches for
each issue do not overlap, send the relevant patch for
each issue in a separate email dealing just with that issue.

If you have dealt with several issues and the patches
overlap, you basically have two choices:

 1. If the patch dealing just with the issues that overlap
is not too large (say less than 50 lines in length),
send a combined patch dealing just with the issues that
overlap, and enumerate precicely which issues are dealt
with, emphasising that they overlap.

 2. If the patch is too large, decide which of the issues
is "most important" and send a patch dealing just with
that issue. Wait to see what happens to that patch,
then send a patch against the result dealing with the
next most important issue.

Note that in this context, where there are three or more
patches overlapping, the "most important" patch is often
the one that has the result of de-overlapping most of the
other patches.

Note that "patches overlap" in the above means tha

Re: experimental, non-production bits.

2000-09-19 Thread Alexander Viro



On Tue, 19 Sep 2000, Elmer Joandi wrote:

> Alexander Viro wrote:
> 
> >  How about syslog?
> 
> Well, I read syslog a lot at home and servers, but customer on-site
> production computer deep reconfiguration ,
> there is another paradigm - it either works 100% or I dont care.

That's nice, but I don't know anyone who could fix problems just by "it
called ufs_error() for some reason, no, I don't remember the error
message".

> Looks from general talk here, that some kernel people should try
> servicing some customers on-site with house full  of people waiting
> their stable results within 24 hours and their ass being kicked if they
> do not succeed.

WTF? BTDT, didn't put beta quality code on production boxen.

> It is a bit more generic. Just to get an automatic warning for each module
> which is marked experimental, so that I could rely on that, so I dont need to
> dig back 100 versions of source code.

??? You had explicitly enabled the code that was marked "experimental". If
the warning from make config was not enough, how the hell would runtime
warning be more useful?

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



get_tty_baud_rate() on sparc64

2000-09-19 Thread Florian Lohoff

Hi,
while porting a serial multiport driver to sparc64 i disovered that the
function get_tty_baud_rate() only returns 50 or 75 Baud
for 57600 and 115200 which is *aehm* not what i expected.

Is this something i made wrong when setting up something or
is it another "Sparc[64] is different" issue ?

Flo
-- 
Florian Lohoff  [EMAIL PROTECTED]  +49-5201-669912
  "Write only memory - Oops. Time for my medication again ..."

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



experimental, non-production bits.

2000-09-19 Thread Elmer Joandi

Alexander Viro wrote:

>  How about syslog?

Well, I read syslog a lot at home and servers, but customer on-site
production computer deep reconfiguration ,
there is another paradigm - it either works 100% or I dont care.
Looks from general talk here, that some kernel people should try
servicing some customers on-site with house full  of people waiting
their stable results within 24 hours and their ass being kicked if they
do not succeed.

> > and non-production modules.
> > So after a year someone would not try to use that stuff on production system.
>
> Well, the better way is to fix the bloody thing...

It is a bit more generic. Just to get an automatic warning for each module
which is marked experimental, so that I could rely on that, so I dont need to
dig back 100 versions of source code.

Another idea: experimental bit. Kernel would have two  bits: non-production and
experimental. Whenever such a subsystem is activated, those bits remain on until
reboot.

elmer.


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



Re: The INN/mmap bug

2000-09-19 Thread Alexander Viro



On Tue, 19 Sep 2000, Rik van Riel wrote:

> IMHO it would be really nice if this problem was solved
> on the /PAGE/ level, so it will work for non-buffer
> filesystems as well ;)

It would be nice if we separated the buffer-cache storage pages from the
pagecache buffer-using ones and from the swap ones - logics is seriously
different and using the same code for all of them... Not good. We can
distinguish between them just by looking at ->mapping, AFAICS.

BTW, I suspect that combination of partial block_flushpage() with
block_truncate_page() should be address_space method (different for NFS,
etc., indeed). Then truncate_inode_pages() would become much simpler
("get rid of pages that went off-limits" rather than "... and do some part
of the work on the partial page". Oh, and block_flushpage() would 
be simpler that way.

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



Re: /proc/sys/vm/freepages not writable.

2000-09-19 Thread Andi Kleen

On Tue, Sep 19, 2000 at 04:52:25AM -0300, Rik van Riel wrote:
> > I don't like self tuning algorithms for this case, because they
> > tend to cause a disruption on the first spike (e.g. causing lots
> > of packets dropped first until the VM can adapt). When the admin
> > says "I don't care if 10MB are wasted, I want it this way"
> > explicitely he should get his will.
> 
> Indeed, you are right. I'll add this feature shortly.

It would be nice if you could do it via freepages again, then documentation
would not need to be rewriten. Even if some of the numbers are meaningless
now, e.g. the middle number could give a goal for the VM. 


-Andi

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



Re: [PATCH] Useless inode semaphore locking in 2.4.0-test8

2000-09-19 Thread Alexander Viro



On Tue, 19 Sep 2000, Stephen C. Tweedie wrote:

> > ?
> > I'm afraid that I've lost you here - what do you mean?
> 
> loop does a bmap() and then submits block IO.  You don't want
> truncate() to revoke blocks in between the bmap and the IO completion.

It used to do bmap(), but unless somebody restored that bogosity it
shouldn't do that anymore. It gets page, locks it, does prepare_write(),
copies the data, does commit_write() and unlocks the page - same as
generic_file_write(). So that shouldn't be a problem - truncate would have
to wait until the page gets unlocked.

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



Re: [oops] test9pre2 / sb

2000-09-19 Thread Peter Steiner

Marko Kreen <[EMAIL PROTECTED]> wrote:

>Reproducible oops: 'gmix -i --sm-disable' on test9-pre2.

The fix exists but it seems it isn't merged yet.

>--
--- soundcard.c.origTue Sep 19 12:37:52 2000
+++ soundcard.c Tue Sep 19 12:38:45 2000
@@ -267,6 +267,7 @@
DEB(printk("sound_release(dev=%d)\n", dev));
switch (dev & 0x0f) {
case SND_DEV_CTL:
+   dev >>= 4;
if (mixer_devs[dev]->owner)
__MOD_DEC_USE_COUNT (mixer_devs[dev]->owner);
break;
>--


-- 
  _   x___   [EMAIL PROTECTED] (Peter Steiner)
 / \_/_\_ /,--' Linux User #55148 (http://counter.li.org/)
 \/>'//
   \_/ perl -e'while(<>){s/=\n//g;s/=([\dA-F]{2})/chr(hex($1))/eg;print;}'
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: [PATCH] Useless inode semaphore locking in 2.4.0-test8

2000-09-19 Thread Andi Kleen

On Tue, Sep 19, 2000 at 06:45:43AM -0400, Alexander Viro wrote:
> 
> 
> On Tue, 19 Sep 2000, Stephen C. Tweedie wrote:
> 
> > > ?
> > > I'm afraid that I've lost you here - what do you mean?
> > 
> > loop does a bmap() and then submits block IO.  You don't want
> > truncate() to revoke blocks in between the bmap and the IO completion.
> 
> It used to do bmap(), but unless somebody restored that bogosity it
> shouldn't do that anymore. It gets page, locks it, does prepare_write(),
> copies the data, does commit_write() and unlocks the page - same as
> generic_file_write(). So that shouldn't be a problem - truncate would have
> to wait until the page gets unlocked.

The new async loop device I'm playing with requires it again.

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



[patch-2.4.0-test9-pre4] file_table.c cleanup

2000-09-19 Thread Tigran Aivazian

Hi Linus,

a) in fget, file=NULL is not needed

b) removing _fput and __fput makes fput() code a lot more readable because
   on their own _fput/__fput are meaningless and not used at all.

Please consider this patch. Fully tested under 2.4.0-test9-pre4.

Regards,
Tigran

--- linux/fs/file_table.c   Fri Jul 28 09:58:59 2000
+++ work/fs/file_table.cTue Sep 19 11:29:13 2000
@@ -98,48 +98,35 @@
return 0;
 }
 
-/*
- * Called when retiring the last use of a file pointer.
- */
-static void __fput(struct file *filp)
+void fput(struct file * file)
 {
-   struct dentry * dentry = filp->f_dentry;
-   struct vfsmount * mnt = filp->f_vfsmnt;
+   struct dentry * dentry = file->f_dentry;
+   struct vfsmount * mnt = file->f_vfsmnt;
struct inode * inode = dentry->d_inode;
 
-   if (filp->f_op && filp->f_op->release)
-   filp->f_op->release(inode, filp);
-   fops_put(filp->f_op);
-   filp->f_dentry = NULL;
-   filp->f_vfsmnt = NULL;
-   if (filp->f_mode & FMODE_WRITE)
-   put_write_access(inode);
-   dput(dentry);
-   if (mnt)
-   mntput(mnt);
-}
-
-static void _fput(struct file *file)
-{
-   locks_remove_flock(file);
-   __fput(file);
-
-   file_list_lock();
-   list_del(&file->f_list);
-   list_add(&file->f_list, &free_list);
-   files_stat.nr_free_files++;
-   file_list_unlock();
-}
-
-void fput(struct file * file)
-{
-   if (atomic_dec_and_test(&file->f_count))
-   _fput(file);
+   if (atomic_dec_and_test(&file->f_count)) {
+   locks_remove_flock(file);
+   if (file->f_op && file->f_op->release)
+   file->f_op->release(inode, file);
+   fops_put(file->f_op);
+   file->f_dentry = NULL;
+   file->f_vfsmnt = NULL;
+   if (file->f_mode & FMODE_WRITE)
+   put_write_access(inode);
+   dput(dentry);
+   if (mnt)
+   mntput(mnt);
+   file_list_lock();
+   list_del(&file->f_list);
+   list_add(&file->f_list, &free_list);
+   files_stat.nr_free_files++;
+   file_list_unlock();
+   }
 }
 
 struct file * fget(unsigned int fd)
 {
-   struct file * file = NULL;
+   struct file * file;
struct files_struct *files = current->files;
 
read_lock(&files->file_lock);

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



Re: [PATCH] Useless inode semaphore locking in 2.4.0-test8

2000-09-19 Thread Stephen C. Tweedie

Hi,

On Fri, Sep 15, 2000 at 08:31:43AM -0400, Alexander Viro wrote:

> > Also truncate inode locking is needed to get a halfway reliable loopback
> > device (unlike the current one)
> 
> ?
> I'm afraid that I've lost you here - what do you mean?

loop does a bmap() and then submits block IO.  You don't want
truncate() to revoke blocks in between the bmap and the IO completion.

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



Re: __ucmpdi2

2000-09-19 Thread Jeremy Higdon

On Sep 19,  1:08pm, Matti Aarnio wrote:
> 
> On Tue, Sep 19, 2000 at 02:58:01AM -0700, Jeremy Higdon wrote:
> > Hello,
> > 
> > I'm using a 64 bit variable in a switch statement.  Gcc is generating code
> > which make calls to __ucmpdi2, a function defined in libgcc.  I figured
> > out that it was the switch statement from examining the generated code.
> > 
> > The question is whether I should change C code to avoid constructions
> > which make calls to this routine (a little hard to determine a priori)
> > or if there is an appropriate way to add this to the kernel.
> 
>   Yes do change it.
> 
>   Is the value-space for the case's a LONG LONG, or
>   mere set of INTs or LONGs ?

As it turns out, the values do fit into a 32 bit space, since they are
a result of shifts and truncates.  Perhaps a simple cast in the switch
statement is all I need.

>   Can you simply (and reliably) cast the variable
>   into e.g. 'long' ?  Or should you use  if / else if / ..
>   chains ?

I think either will work.

Is there a little FAQ of C constructions you should not use if you
are writing kernel code?  It took a little doing to figure out that
it was the switch that was causing trouble and not the shifts and
arithmetic operations, and I'd like to avoid that in the future  :-).

> /Matti Aarnio
> 
>-- End of excerpt from Matti Aarnio

thanks

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



Re: Rik's VM contains a deadlock somewhere

2000-09-19 Thread Rik van Riel

On Tue, 19 Sep 2000, Anton Petrusevich wrote:

> please, check carefully Rik's VM patch, it definitly contains a
> deadlock, which can be seen on low-memory computers. Try mem=8m. I
> wasn't able to use any Rik patch since against -test8 (-t8-vmpatch{2,4},
> -test9-pre{1,2}). It boots fine(mem=16m), but then stalls begin for some
> time and for infinitive time at last. I told Rik about it, he tried to
> fix but wasn't successful. 
> 
> With mem=8m it couldn't finish init scripts even.

I /thought/ I had fixed this, since the system runs fine
on my (SMP, SCSI) test machine when I boot it with mem=8m.

Somebody on IRC suggested to me that this may be an UP-only
bug ... I'm looking into this and hope to fix it soon, but
I have to admit some help would be welcome ;)

(I'm still at Linux Kongress and won't be back in the office
for about a week)

regards,

Rik
--
"What you're running that piece of shit Gnome?!?!"
   -- Miguel de Icaza, UKUUG 2000

http://www.conectiva.com/   http://www.surriel.com/

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



Re: __ucmpdi2

2000-09-19 Thread Andreas Schwab

Matti Aarnio <[EMAIL PROTECTED]> writes:

|> On Tue, Sep 19, 2000 at 02:58:01AM -0700, Jeremy Higdon wrote:
|> > Hello,
|> > 
|> > I'm using a 64 bit variable in a switch statement.  Gcc is generating code
|> > which make calls to __ucmpdi2, a function defined in libgcc.  I figured
|> > out that it was the switch statement from examining the generated code.
|> > 
|> > The question is whether I should change C code to avoid constructions
|> > which make calls to this routine (a little hard to determine a priori)
|> > or if there is an appropriate way to add this to the kernel.
|> 
|>  Yes do change it.
|> 
|>  Is the value-space for the case's a LONG LONG, or
|>  mere set of INTs or LONGs ?

IMHO it's a bug in gcc that it does not inline the comparison inside the
switch expression, since it already does it in all other places.  Perhaps
some problem with the patterns in the machine description.

Andreas.

-- 
Andreas Schwab  "And now for something
SuSE Labscompletely different."
[EMAIL PROTECTED]
SuSE GmbH, Schanzäckerstr. 10, D-90443 Nürnberg
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: An elevator algorithm (patch)

2000-09-19 Thread Rik van Riel

On 18 Sep 2000, Peter Osterlund wrote:
> Andrea Arcangeli <[EMAIL PROTECTED]> writes:
> 
> > > The only disadvantage I can see is that the new patch doesn't handle
> > > consecutive insertions in O(1) time, but then again, the pre-latency
> > 
> > We can still do that by trivially fixing a bit your code. You should first
> > check if the new inserted request is over the last in the current queue before
> > entering the tmp1/tmp2 logic.
> 
> Yes this can be done, but it will affect where requests are inserted.
> Suppose the queue currently contains:
> 
>   100 200 300 400 10 20 30
> 
> If request 150 is to be inserted, then with my previous patch it
> will be inserted between 100 and 200, but with the proposed
> change it will instead be inserted at the end.

This is a bug in Andrea's idea.  The request should only
be inserted at the end of the list if:

1) the block numbre is bigger than head->prev (which you
   already have)

AND

2) the block number is smaller than head (or head->next
   if the current request is unplugged)

regards,

Rik
--
"What you're running that piece of shit Gnome?!?!"
   -- Miguel de Icaza, UKUUG 2000

http://www.conectiva.com/   http://www.surriel.com/

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



Re: uid

2000-09-19 Thread Dan Podeanu



On Mon, 18 Sep 2000, Christopher Allen Wing wrote:

.. snipped ..

> tar should work okay, I think; by default it uses textual user names
> instead of numeric UIDs.

Not true. All the kernels I download from a certain local mirror are owned
by the local user 'tarabas' since the uid happens to be the same with
those on the mirror site. So numeric uids.

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



test9-pre4 bugs

2000-09-19 Thread Marko Kreen

Tried running pre4, here notes:

1) scsi devfs: /dev/scsi/host0 is now /dev/host0, /dev/scsi exist
   but is empty.
2) lots of messages: Warning - running *really* short on DMA buffers
   No oops yet.


-- 
marko

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



Re: __ucmpdi2

2000-09-19 Thread Matti Aarnio

On Tue, Sep 19, 2000 at 02:58:01AM -0700, Jeremy Higdon wrote:
> Hello,
> 
> I'm using a 64 bit variable in a switch statement.  Gcc is generating code
> which make calls to __ucmpdi2, a function defined in libgcc.  I figured
> out that it was the switch statement from examining the generated code.
> 
> The question is whether I should change C code to avoid constructions
> which make calls to this routine (a little hard to determine a priori)
> or if there is an appropriate way to add this to the kernel.

Yes do change it.

Is the value-space for the case's a LONG LONG, or
mere set of INTs or LONGs ?

Can you simply (and reliably) cast the variable
into e.g. 'long' ?  Or should you use  if / else if / ..
chains ?

> Best I can tell, __ucmpdi2 takes two 64 bit unsigned args, returning
> 0 if the 1st arg is less than the 2nd, 2 if greater, 1 if equal.  For
> now, I have defined the function in my driver with those semantics.
> For obvious reasons, I don't consider this a viable long term option.
> 
> thanks
> jeremy

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



__ucmpdi2

2000-09-19 Thread Jeremy Higdon

Hello,

I'm using a 64 bit variable in a switch statement.  Gcc is generating code
which make calls to __ucmpdi2, a function defined in libgcc.  I figured
out that it was the switch statement from examining the generated code.

The question is whether I should change C code to avoid constructions
which make calls to this routine (a little hard to determine a priori)
or if there is an appropriate way to add this to the kernel.

Best I can tell, __ucmpdi2 takes two 64 bit unsigned args, returning
0 if the 1st arg is less than the 2nd, 2 if greater, 1 if equal.  For
now, I have defined the function in my driver with those semantics.
For obvious reasons, I don't consider this a viable long term option.

thanks

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



Re: Oops with K6-2 350, but not with other CPUs.

2000-09-19 Thread Matthias Andree

On Tue, 19 Sep 2000, Daniel Grimwood wrote:

>   am having many random fatal oopses with my K6-2 350.  Can't find
> anything related on the mailing list archive, so here it is.  Also, I'm
> not subscribed to the mailing list but do read it via NNTP, a CC: would
> be much appreciated :). TIA.

Do you have the chance to borrow another of those K6-2s, possibly faster
ones (if your board supports those)? Is the case in a proper state (has
never been dropped, all perpendicular and so on)?

I had a case that I needed to straighten the case because the machine
would randomly lock the machine up, when reading the CMOS clock, or in
any other operation, just freezing, no SysRq or anything.  

I finally found out that the PCI cards were not seated properly, so I
unmounted everything, straightened the case, and fitted everything back
in - never had any further difficulties since then.

Is there any third-party Kernel module involved?



Please apologize if "to straighten" is not the proper word in the
context, I'm not a native speaker and don't have a technical dictionary
at hand. I mean bending the case until the mainboard can rest plane, on
a level that all PCI, AGP, ISA cards are entirely inserted into their
slots without rotation, bending and so on.

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



SCSI scanning changes break RAID autorun

2000-09-19 Thread Matthew Kirkwood

Hi,

It would appear that the changes in pre3 and pre4 break
RAID autorun.  This is rather bothersome for those who
have RAIDed root filesystems.

It's probably solely an init-order thing but, short of
moving the software RAID drivers into drivers/md/, I
can't see an easy way to fix it.

cheers,
Matthew.

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



Re: Very aggressive swapping after 2 hours rest

2000-09-19 Thread Rik van Riel

On Mon, 18 Sep 2000, Byron Stanoszek wrote:

> I've finally had a chance to test out the new VM patch on my 32mb system.
> 
> It runs much, much better than the previous test8, and the
> pages->swap change is actually much smoother than I had expected
> it to be considering the recent talk about making it more
> gradual. I'm against having the swap more gradual because of the
> low amount of available memory and the high amount of memory
> actually taken up by processes required for normal operation.

> So, please take my opinions into consideration when/if you
> redesign the swap mechanism.

Oh I will. The "more smooth" swap code I am testing
right now concentrates on swapping from processes
that have been sleeping for longer than 

cache size / inactive_target

seconds. I think this might actually help with the
performance of low-memory systems, but I need to
test this a bit before I know for sure ;)

regards,

Rik
--
"What you're running that piece of shit Gnome?!?!"
   -- Miguel de Icaza, UKUUG 2000

http://www.conectiva.com/   http://www.surriel.com/

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



Re: [PATCH] Re: SCSI scanning

2000-09-19 Thread Rogier Wolff

Jeff Garzik wrote:
> Helge Hafting wrote:
> > 
> > Rogier Wolff wrote:
> > [...]
> > > No, that's not it. They parse /proc/pci or the output of lspci to
> > > determine which module to insert.
> > 
> > Faster, and fine for pci-scsi.  I believe you still need
> > to testload modules for isa-scsi.
> 
> When PCI probing fails, the user is often presented with a list of
> possible drivers, and given the option of manually selecting their
> driver (including possible autoprobing).

Indeed. If I remember correctly an "autoprobe" for a CDROM device was
able to tickle a network card into jamming the ethernet (BNC era).
Stuff like that.

Jamming as in: no packet comes through! Imagine that happening every
time someone tries to install Linux.

Roger. 

-- 
** [EMAIL PROTECTED] ** http://www.BitWizard.nl/ ** +31-15-2137555 **
*-- BitWizard writes Linux device drivers for any device you may have! --*
*   Common sense is the collection of*
**  prejudices acquired by age eighteen.   -- Albert Einstein 
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: [PATCH] Re: SCSI scanning

2000-09-19 Thread Jeff Garzik

Helge Hafting wrote:
> 
> Rogier Wolff wrote:
> [...]
> > No, that's not it. They parse /proc/pci or the output of lspci to
> > determine which module to insert.
> 
> Faster, and fine for pci-scsi.  I believe you still need
> to testload modules for isa-scsi.

When PCI probing fails, the user is often presented with a list of
possible drivers, and given the option of manually selecting their
driver (including possible autoprobing).

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



Re: The INN/mmap bug

2000-09-19 Thread Rik van Riel

On Mon, 18 Sep 2000, Alexander Viro wrote:
> On Sun, 17 Sep 2000, Linus Torvalds wrote:
> 
> > And as we've seen, simplifying this area would not necessarily be a bad
> > thing ;)
> > 
> > Right now I'll just do the minimal fix, though, I think.
> 
> Fine with me. I'll do the full analysis tonight, anyway, and try
> to write down the rules for that stuff. One thing that makes me
> seriously uneasy is the fact that VM knows about ->buffers -

This doesn't make me happy either. It doesn't work for
network-based filesystems, won't work with KIOBUF and
will mean extra difficulties with filesystems that have
write ordering constraints

IMHO it would be really nice if this problem was solved
on the /PAGE/ level, so it will work for non-buffer
filesystems as well ;)

(at least, for those problems which aren't specific to
the disk-based filesystems only)

> I'm not proposing it for immediate inclusion, but I don't feel
> good about all this code - current rules are too complex and
> rely on details of VM/buffer interaction too much for my taste.
> It may be correct, but it's not obviously correct...

Indeed...

regards,

Rik
--
"What you're running that piece of shit Gnome?!?!"
   -- Miguel de Icaza, UKUUG 2000

http://www.conectiva.com/   http://www.surriel.com/

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



Re: [PATCH] Re: SCSI scanning

2000-09-19 Thread Helge Hafting

Rogier Wolff wrote:
[...]
> No, that's not it. They parse /proc/pci or the output of lspci to
> determine which module to insert.

Faster, and fine for pci-scsi.  I believe you still need 
to testload modules for isa-scsi.  

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



Re: Very aggressive swapping after 2 hours rest

2000-09-19 Thread Helge Hafting

Byron Stanoszek wrote:
> 
> I've finally had a chance to test out the new VM patch on my 32mb system.
> 
> It runs much, much better than the previous test8, and the pages->swap change
> is actually much smoother than I had expected it to be considering the recent
> talk about making it more gradual. I'm against having the swap more gradual
> because of the low amount of available memory and the high amount of memory
> actually taken up by processes required for normal operation.
> 
> At the moment, there's only room for about 5-6 meg of cache. If a gradual swap
> goes into effect, then I'm afraid that the processes that actually 'need' to
> stay in memory will start swapping out and thrashing, even when there's 6 meg
> still available for use. This was precisely the problem with the old VM on my
> machine, only the system wanted to keep 16 meg free for cache (*gag*).

I hope we can have a swap mechanism that gradually writes stuff 
into swap early on, but don't actually unmap the memory.
So we get clean pages that are still available but may be dropped
quickly if needed.  This will smooth things a bit without
degrading performance.

Some memory should be kept around for cache (if the processes do
any io at all) or you'll get io trashing: the same stuff read 
over and over from files instead of from cache.  And a read
before every write that isn't a complete block.

Almost all processes have some pages they don't use much, such
as startup initialization.  Swapping out that doesn't hurt.

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



Re: Linux-2.4.0-test9-pre2

2000-09-19 Thread Rik van Riel

On Sun, 17 Sep 2000, Mark Orr wrote:

> Has anyone else tried 240-test9-pre2 on low-memory systems?
> 
> I compiled 240t9p2, bzlilo'ed it, and rebooted.  During
> boot it tripped up on e2fsck -- it was at maximum mount count
> and it stopped during the check.

> Sys: pentium 100, 16Mb RAM + 17 Mb swap

This is interesting to hear. I'm doing tests booting
my system with mem=8m and am busy trying to fix the
performance of low-memory systems.

One of the issues which seems to be affecting performance
is the elevator starvation bug, though, so I'm not sure how
much of the problem is a VM issue.

(my test machine is SCSI and has a decent size queue in
hardware so the elevator algorithm problem doesn't hit
... my workstation, with 192MB RAM and an IDE disk, is
seeing the starvation though)

Once the elevator problem has been solved, we should be able
to see if there is still a big VM problem left, but the tests
with low memory on my SCSI-based test box seem to suggest that
it may well be an elevator related problem...

regards,

Rik
--
"What you're running that piece of shit Gnome?!?!"
   -- Miguel de Icaza, UKUUG 2000

http://www.conectiva.com/   http://www.surriel.com/

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



Bugreport kernel 2.4.0-test8

2000-09-19 Thread Michael Zieger

I just found a big bug in kernel 2.4.0-test8 that leads to a major
crash because PID 4 [kupdate] dies.

I could reproduce the problem by doing this:
- Open StarOffice under KDE
- Create new textfile
- Try to save it under a via NFS mounted directory

Here are the two kernel oopses that occured on both tests:
-
kernel BUG at ll_rw_blk.c:711!
invalid operand: 
CPU:0
EIP:0010:[]
EFLAGS: 00010286
eax: 001f   ebx: cb4e5cc0   ecx: 001f   edx: 0002
esi: cb4e5cc0   edi: cff3f298   ebp: 0001   esp: cff4bf34
ds: 0018   es: 0018   ss: 0018
Process kupdate (pid: 4, stackpage=cff4b000)
Stack: c02876a5 c0287982 02c7 cb4e5cc0 0001 0020  001e8480 
   cff3f2b0 cff3f2a8  0008   c0187fef 00fe 
   c0188c2d cff3f298 0001 cb4e5cc0 cb4e5cc0  0001 cff4bfd0 
Call Trace: [] [] [] [] [] 
[] [] 
   [] [] [] 
Code: 0f 0b 83 c4 0c 0f b6 46 15 0f b7 4e 14 8b 14 85 a0 de 35 c0 
-
kernel BUG at ll_rw_blk.c:711!
invalid operand: 
CPU:1
EIP:0010:[]
EFLAGS: 00010286
eax: 001f   ebx: cf1152c0   ecx: 0097   edx: 0100
esi: cf1152c0   edi: cff3f298   ebp: 0001   esp: cff4bf34
ds: 0018   es: 0018   ss: 0018
Process kupdate (pid: 4, stackpage=cff4b000)
Stack: c02876a5 c0287982 02c7 cf1152c0 0001 0020  001e8480 
   cff3f2b0 cff3f2a8  0008   c0187fef 00fe 
   c0188c2d cff3f298 0001 cf1152c0 cf1152c0  0001 cff4bfd0 
Call Trace: [] [] [] [] [] 
[] [] 
   [] [] [] 
Code: 0f 0b 83 c4 0c 0f b6 46 15 0f b7 4e 14 8b 14 85 a0 de 35 c0 
-

After this, you StarOffice dies and can't even be killed via kill -9.
On shutdown, the system hangs. After reboot, the /tmp filesystem was
corrupted requiring manual fsck, which moves a file to lost+found (a
temporary file from StarOffice).

My system is otherwise rock solid, I switched back to kernel
2.4.0-test5 which is OK for me.

I hope this helps, and please don't hurt me if this bug has already
been reportet, but I don't read this list 'cause I'm not a developer.
If you need to know more, feel free to contact me.

greets, and go on with The Good Work
mike
-- 

// Ing. Michael Zieger, BSc.   ---Zieger Michael EDV-Lösungen
// http://www.zmi.at Linux 2.2.15 SMP
//
// May those who love us, love us.
// And for those who don't love us, may the good Lord turn their hearts.
// And if He can't turn their hearts, may He turn their ankles
// So we'll know them by their limping.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: GCC proposal for "@" asm constraint

2000-09-19 Thread Jamie Lokier

Andrea Arcangeli wrote:
> int * p;
> [...]
> spin_lock(&lock);
> a = *p;
> spin_unlock(&lock);
> 
> spin_lock(&lock);  
> b = *p;
> spin_unlock(&lock);

> [With "memory" clobber"] the [second] reload of the address of `p'
> isn't necessary and gcc is wrong in generating it.

Wrong, GCC is behaving correctly.

> p is a constant embedded into the .text section and set at link time,

p is a variable.  The _address_ of p is constant, but the reload is
not loading the address of p, it's loading the _value_.  That value can
be changed by other threads.

In fact, you have demonstrated why the "memory" clobber is necessary for
spinlocks.  A perfect test case!

In your first example, without the clobber, the asm code is incorrect.
A parallel thread can change the value of p between the first
spin_unlock and the second spin_lock, and the GCC-generated code does
not notice.

> The above reload are just wasted CPU cycles that we're little worried
> to waste.

Here, the saved cycle is a kernel bug.

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



Boot fails

2000-09-19 Thread Angel Luis Uruñuela

Hello,

Trying kernel 2.4.0-test9-pre3 and 2.4.0-test9-pre4 results in kernel
panic with AIC-7890...

Regards

-- 
Angel Luis Uruñuela <> Unix Systems Administrator

"You can't change the past, but you can ruin
the present by worrying over the future"
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: [PATCH] Re: SCSI scanning

2000-09-19 Thread Rogier Wolff

Linus Torvalds wrote:
> > Maybe nobody ever insmod'ed a module for a scsi device they don't
> > have?
> 
> No, that's not it - the way most distributions do SCSI auto-detection is
> to load modules until they succeed.

> At least I _think_ that's what they do. That's what I'd do if I were a
> distribution maker.

No, that's not it. They parse /proc/pci or the output of lspci to
determine which module to insert. 

At least I _think_ that's what they do. Not that I'd do it differently
from you if I were a distribution maker.

Roger. 

-- 
** [EMAIL PROTECTED] ** http://www.BitWizard.nl/ ** +31-15-2137555 **
*-- BitWizard writes Linux device drivers for any device you may have! --*
*   Common sense is the collection of*
**  prejudices acquired by age eighteen.   -- Albert Einstein 
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: Very aggressive swapping after 2 hours rest

2000-09-19 Thread Rik van Riel

On Sun, 17 Sep 2000, Andrea Arcangeli wrote:

> I don't know the internals of other OSes so I've no idea if that
> was a generic problem or not (guess why I started playing with
> linux: just to finally see the internals of an OS :) thus I
> don't know if this problem is generic or not.

Please take the time to work on your background
knowledge, it would be a good thing for you and
for Linux. You're a smart guy and it's a shame to
see you waste your time reinventing the wheel.

> Just to make sure if we're talking about the same thing, do you
> remeber when I told about the bigger problem under swap in
> 2.4.x? I remeber I explained this to you, SCT and Alexey.

Remember when I explained to you that this was exactly
what I wanted to do in the new VM, except that I didn't
see why we would want to restrict it to swap pages only?

> If you fixed it I'm very happy and I thank you.

If you have the time, please read the source of the new
VM code. It would be nice to have your input on it too.

regards,

Rik
--
"What you're running that piece of shit Gnome?!?!"
   -- Miguel de Icaza, UKUUG 2000

http://www.conectiva.com/   http://www.surriel.com/

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



[oops] test9pre2 / sb

2000-09-19 Thread Marko Kreen

Reproducible oops: 'gmix -i --sm-disable' on test9-pre2.

Loaded sound modules: sb, gus (in this order)

Oops itself:


ksymoops 2.3.4 on i686 2.4.0-test9.  Options used
 -V (default)
 -k /proc/ksyms (default)
 -l /proc/modules (default)
 -o /lib/modules/2.4.0-test9/ (default)
 -m /boot/System.map-2.4.0-test9 (default)

Warning: You did not tell me where to find symbol information.  I will
assume that the log matches the kernel and modules that are running
right now and I'll use the default options above for symbol resolution.
If the current kernel and/or modules do not match the log, you can get
more accurate output by telling me the kernel version and where to find
map, modules, ksyms etc.  ksymoops -h explains the options.

Unable to handle kernel NULL pointer dereference at virtual address 
c88798c0
*pde = 
Oops: 
CPU:0
EIP:0010:[]
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010212
eax:    ebx: c6b23c80   ecx: c8884fd8   edx: 0080
esi: c13eef40   edi: c7a0e6e0   ebp: c7a0d120   esp: c612fdfc
ds: 0018   es: 0018   ss: 0018
Process gmix (pid: 325, stackpage=c612f000)
Stack: c012d77b c7a0e6e0 c6b23c80 c6b23c80  c7fe4d40 0001 c012d7f9
   c6b23c80 c6b23c80 c6b23c80 c012d83a c6b23c80 c012cb52 c6b23c80 c7fe4d40
   0001 0006 c0119cf8 c6b23c80 c7fe4d40 c13dd620 c612e000 000b
Call Trace: [] [] [] [] [] 
[] []
   [] [] [] [] [] [] 
[] []
   [] [] [] []
Code: 8b 00 85 c0 74 48 ff 48 10 8b 04 0a 8b 00 80 48 14 08 eb 3a

>>EIP; c88798c0 <[sound]sound_release+28/7c>   <=
Trace; c012d77b <__fput+23/90>
Trace; c012d7f9 <_fput+11/40>
Trace; c012d83a 
Trace; c012cb52 
Trace; c0119cf8 
Trace; c011a30e 
Trace; c010951e 
Trace; c01122c7 
Trace; c01f62fe 
Trace; c012e59f 
Trace; c0109184 
Trace; c8884fd8 <[sound]mixer_devs+0/14>
Trace; c88798c0 <[sound]sound_release+28/7c>
Trace; c012d77b <__fput+23/90>
Trace; c012d7f9 <_fput+11/40>
Trace; c012d83a 
Trace; c012cb52 
Trace; c012cb9f 
Trace; c010906f 
Code;  c88798c0 <[sound]sound_release+28/7c>
 <_EIP>:
Code;  c88798c0 <[sound]sound_release+28/7c>   <=
   0:   8b 00 mov(%eax),%eax   <=
Code;  c88798c2 <[sound]sound_release+2a/7c>
   2:   85 c0 test   %eax,%eax
Code;  c88798c4 <[sound]sound_release+2c/7c>
   4:   74 48 je 4e <_EIP+0x4e> c887990e 
<[sound]sound_release+76/7c>
Code;  c88798c6 <[sound]sound_release+2e/7c>
   6:   ff 48 10  decl   0x10(%eax)
Code;  c88798c9 <[sound]sound_release+31/7c>
   9:   8b 04 0a  mov(%edx,%ecx,1),%eax
Code;  c88798cc <[sound]sound_release+34/7c>
   c:   8b 00 mov(%eax),%eax
Code;  c88798ce <[sound]sound_release+36/7c>
   e:   80 48 14 08   orb$0x8,0x14(%eax)
Code;  c88798d2 <[sound]sound_release+3a/7c>
  12:   eb 3a jmp4e <_EIP+0x4e> c887990e 
<[sound]sound_release+76/7c>


1 warning issued.  Results may not be reliable.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



<    1   2   3   >