Re: 2.2 -> 2.4 transition questions

2000-10-13 Thread William T Wilson

On Sat, 14 Oct 2000, Mike A. Harris wrote:

> to know if after installing updated packages, if I'll still be
> able to use a 2.2.x kernel ok, or if I'll have to resort to
> initscript trickery:

Some people get success with the old kernel and the new modutils, others
find that it does not work.  Most find that it does not work.

Your best bet would be to create two sets of modutils binaries and have
the init scripts pick the right one based on the kernel you are running
that day.

I think uninstalling and reinstalling RPMs to do this (especially on
Debian  ) is rather like changing your gas tank whenever you switch
between premium and unleaded fuel, but I guess it works :}

-
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/



iBCS with 2.4?

2000-10-13 Thread David Ford

what's needed/where is iBCS for kernel 2.4?

-d

--
  "There is a natural aristocracy among men. The grounds of this are
  virtue and talents", Thomas Jefferson [1742-1826], 3rd US President



-
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.2 -> 2.4 transition questions

2000-10-13 Thread Mike A. Harris

The 2.4.0test9 Changes file mentions the following and I'd like
to know if after installing updated packages, if I'll still be
able to use a 2.2.x kernel ok, or if I'll have to resort to
initscript trickery:

Will the following work with 2.2.17 as well?

o  util-linux 2.10o   # kbdrate -v
o  modutils   2.3.15  # insmod -V
o  PPP2.4.0   # pppd --version

I'm particularly concerned with the modutils 2.3.15.  During the
2.0.x -> 2.2.x transition I was not able to use the same modutils
with both kernels and had initscripts determine the kernel
version, and uninstall the RPM and install the proper RPM for
modutils.

I've not tried to dual boot (2.2.x/2.4.x) a system yet, so any
help would be appreciated.

--
  Mike A. Harris  -  Linux advocate  -  Open source advocate
  Computer Consultant - Capslock Consulting
 Copyright 2000 all rights reserved
--

Be up to date on nerd news and stuff that matters:  http://slashdot.org

-
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] Rewritten drivers/sbus/[audio,char]/Makefile

2000-10-13 Thread Andre Hedrick

On Fri, 13 Oct 2000, Linus Torvalds wrote:

> 
> 
> On Fri, 13 Oct 2000, David S. Miller wrote:
> > 
> > Linus, why did you apply this?
> 
> Because sparc is broken anyway, and this way those Makefiles _will_ get
> fixed?

David,

Bart did the ground work and he did mine Makefile.
Neither your or I have the time to dork with Makefiles, and Bart
understands them.  Be thankful, because the script rules of these puppies
are worth a bottle of bayer(tm).

Cheers,

Andre Hedrick
The Linux ATA/IDE guy

-
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] Rewritten drivers/sbus/[audio,char]/Makefile

2000-10-13 Thread Linus Torvalds



On Fri, 13 Oct 2000, David S. Miller wrote:
> 
> Linus, why did you apply this?

Because sparc is broken anyway, and this way those Makefiles _will_ get
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/



Re: [PATCH] Fix SCSI proc oops

2000-10-13 Thread Linus Torvalds



On Fri, 13 Oct 2000, David S. Miller wrote:
>
> Linus, why did you apply his patch to _only_ reverse the if condition?
> 
> What you applied will crash Sparc again, whereas mine does not crash
> the original Sparc case _and_ it fixes Torben's bug too.

Why woul dit crash the sparc?

If it wasn't there originally, the loop will not find it, and the loop
will be a no-op.

Explain.

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/



Documentation glitch.

2000-10-13 Thread Mike A. Harris

>From the file Documentation/SubmittingDrivers

What Criteria Determine Acceptance
--

Licensing:  The code must be released to us under the GNU public license.
We don't insist on any kind of exclusively GPL licensing,
and if you wish the driver to be useful to other communities




This should be worded correctly as "GNU General Public
License" to avoid any confusion or ambiguity.  There is no such
thing as the "GNU public license" and newcomers may be confused.

This is just a minor point, but valid nonetheless for proper
documentation.


--
  Mike A. Harris  -  Linux advocate  -  Open source advocate
  Computer Consultant - Capslock Consulting
 Copyright 2000 all rights reserved
--

#[Mike A. Harris bash tip #1 - separate history files per virtual console]
# Put the following at the bottom of your ~/.bash_profile
[ ! -d ~/.bash_histdir ] && mkdir ~/.bash_histdir
tty |grep "^/dev/tty[0-9]" >& /dev/null && \
export HISTFILE=~/.bash_histdir/.$(tty | sed -e 's/.*\///')

-
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/



RH 7.0, devfs + lk 2.4

2000-10-13 Thread Douglas Gilbert

I have been fighting with RH 7.0 trying to make it
work with devfs and the lk 2.4 series. This is the
second time round the loop as I did the same with
RH 6.2 .

The /etc/securetty file no longer needs to be changed
but /etc/security/console.perms needs a different
patch to allow non-root users to start X:

--- /etc/security/console.perms_rh70Tue Aug 22 21:19:33 2000
+++ /etc/security/console.perms Fri Oct 13 20:08:58 2000
@@ -15,7 +15,7 @@
 # man 5 console.perms
 
 # file classes -- these are regular expressions
-=tty[0-9][0-9]* :[0-9]\.[0-9] :[0-9]
+=tty[0-9][0-9]* vc/[0-9][0-9]* :[0-9]\.[0-9] :[0-9]
 =:[0-9]\.[0-9] :[0-9]
 
 # device classes -- these are shell-style globs


Hopefully this patch does not compromise security.

My page on devfs and scsi has been updated:
http://www.torque.net/devfs_scsi.html


Doug Gilbert
-
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: PROBLEM: Loopback mounting a file on an NFS partition hangs NFSclient

2000-10-13 Thread Wayne Whitney


On Sat, 14 Oct 2000, Andi Kleen wrote:

> That would be weird, because 2.2 does not support loopback creation on
> NFS (and has an explicit check for it)

Hmm, now that you jar my memory, I remember that I had actually loopback
mounted an iso filesystem image on one machine and then NFS exported that
filesystem to another.  So this was the reverse of the situation of the
recent crash :-) Sorry about the confusion.

Cheers,
Wayne



-
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: big ECN push

2000-10-13 Thread David Ford

Alan Cox wrote:

> > 'Technology Push' argument - and it shouldn't be that hard. Write some
> > articles on how Linux is innovating, and how Cisco and others are standing
> > in the way of progress.
>
> Cisco are already acting on this issue. No point clobbering them
>
> Alan

AFAIK, Cisco has already completed their fixes for this and have new IOS builds
available.

-d


--
  "There is a natural aristocracy among men. The grounds of this are
  virtue and talents", Thomas Jefferson [1742-1826], 3rd US President



-
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: big ECN push

2000-10-13 Thread Gregory Maxwell

On Fri, Oct 13, 2000 at 08:56:51PM -0400, Mike A. Harris wrote:
> On Sat, 14 Oct 2000, bert hubert wrote:
[snip]
> >Well, I think that we need to make some kind of PR push about ECN. Linux
> >right now has enough clout and respect to be able to be used as a
> >'Technology Push' argument - and it shouldn't be that hard. Write some
> >articles on how Linux is innovating, and how Cisco and others are standing
> >in the way of progress.
> 
> I can see the /. headline right now:
> 
> Cisco holds back Linux network innovation
>   from the peanut-butter-and-jelly-sandwich-dept

[checks disk 2 of RedHat 7.0; Yep, recent 2.4test kernel]

You've got it all wrong,

RedHat /NET initiative attempts to create proprietary Internet!
from the well-what-else-is-new dept
-
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] Rewritten drivers/sbus/[audio,char]/Makefile

2000-10-13 Thread David S. Miller


Linus, why did you apply this?  It was totally untested and breaks
both Sparc builds.  I was going to work on fixing it and then submit
it to you tonight.

Please, people, submit Sparc patches to me when possible.  This makes
my life a lot simpler as I can sanity check all submissions.  A lot of
folks simply don't have sparcs with which to do even a compile check,
and thats ok, just put the changes through me first and all those
problems are solved.

Later,
David S. Miller
[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: [PATCH] Fix SCSI proc oops

2000-10-13 Thread David S. Miller

   Date: Fri, 13 Oct 2000 12:14:29 -0700 (PDT)
   From: Linus Torvalds <[EMAIL PROTECTED]>

   On Fri, 13 Oct 2000, Torben Mathiasen wrote:
   >
   > Yes it works, its not all that different from my patch ;).

   Yeah.

   The thing I actually cared most about was the comment, which makes the
   patch palatable to me. 

Linus, why did you apply his patch to _only_ reverse the if condition?

What you applied will crash Sparc again, whereas mine does not crash
the original Sparc case _and_ it fixes Torben's bug too.

Now, if that function is called for a TPNT for which no host adapters
were probed (happens if you compile a driver into the kernel which you
do not have in your machine) it will NULL dereference.

And you _wont_ notice the NULL derefence on ix86 during bootup!  Only
other platforms will hit the OOPS due to this error.

Please, the following corrects test10-pre3.

--- ../vanilla/linux/drivers/scsi/scsi.cFri Oct 13 18:49:31 2000
+++ drivers/scsi/scsi.c Thu Oct 12 18:45:06 2000
@@ -1976,6 +1976,7 @@
struct Scsi_Host *sh1;
struct Scsi_Host *shpnt;
char name[10];  /* host_no>=10^9? I don't think so. */
+int orig_present;
 
/*
 * First verify that this host adapter is completely free with no pending
@@ -2109,6 +2110,7 @@
 * that were detected */
 
pcount0 = next_scsi_host;
+orig_present = tpnt->present;
for (shpnt = scsi_hostlist; shpnt; shpnt = sh1) {
sh1 = shpnt->next;
if (shpnt->hostt != tpnt)
@@ -2155,11 +2157,11 @@
   (scsi_memory_upper_value - scsi_init_memory_start) / 1024);
 #endif
 
-   /*
-* Remove it from the linked list and /proc if all
-* hosts were successfully removed (ie preset == 0)
-*/
-   if (!tpnt->present) {
+   /* Remove it from the linked list and /proc, but only if
+ * any hosts were registered to begin with _and_ we were
+ * able to remove all of them above.
+ */
+   if (orig_present && !tpnt->present) {
Scsi_Host_Template **SHTp = _hosts;
Scsi_Host_Template *SHT;
 
-
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/



Am I the only one with scsi-ide CDR problems?

2000-10-13 Thread safemode

I'm just wondering if I'm the only person who has had problems with
2.4.0-test9 recording on ide-scsi cdr's?
Nobody has posted anything about it and the test10-prex changefiles don't
mention it.   cdrecord reports very weird results when scanning the scsi
bus whereas dmesg shows what one would expect of the ide-scsi detection. 
anyone?

-
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: init= parameter doesn't work

2000-10-13 Thread rread

Is there anything besides /linux in the root?  Sounds like init is
dynamic and needs the linker and libc.  Make sure init is static.

robert

* Paul Powell ([EMAIL PROTECTED]) [001013 17:18]:
> Hello,
> 
> I am attempting to move all of the root files and
> folders into a single directory /linux on the root
> file system.  I then use the kernel parameter
> init=/linux/sbin/init to get things rolling but the
> kernel panics.
> 
> When I boot linux, everything seems to work ok until
> the kernel tries to execute init.  The root device is
> mounted as the root file system successfully and I see
> a message stating so.  But then I get a kernel panic
> which says it couldn't find init and to try using the
> init= kernel parameter.
> 
> I'm guessing there is something missing from the root
> directory that the kernel needs but isn't there.  I
> tried moving the /dev directory back to the root
> directory on the root file system but this didn't help
> things.
> 
> Anyone have any clues?
> 
> Thanks.
> 
> P.S.  The reason I'm doing this is because I'm
> creating a bootable CD but have other things on the CD
> in addition to linux.
> 
> __
> Do You Yahoo!?
> Get Yahoo! Mail - Free email you can access from anywhere!
> http://mail.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/
-
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: PROBLEM: Loopback mounting a file on an NFS partition hangs NFS client

2000-10-13 Thread Andi Kleen

On Fri, Oct 13, 2000 at 06:36:31PM -0700, Wayne Whitney wrote:
> Also, I should mention that several months ago, I was doing the exact same
> thing on two different machines and similarly my process on the client
> machine got stuck in a disk wait.  I didn't look into the problem or
> record any information, but I think the machines were running 2.2.x.

That would be weird, because 2.2 does not support loopback creation on 
NFS (and has an explicit check for it) 


-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/



test10-pre3

2000-10-13 Thread Linus Torvalds


 - pre3:
- update email address of Joerg Reuter
- Andries Brouwer: spelling fixes, missing atari brelse(), breada() fix
- Geert Uytterhoeven: used named initializers for "struct console".
- Carsten Paeth: ISDN capifs - iput() only once.
- Petr Vandrovec: VFAT short name generation fix
- Jeff Garzik: i810_rng cleanup, and i815 chipset added.
- Bartlomiej Zolnierkiewicz: clean up some remaining old-style Makefiles
- Dave Jones: x86 setup fixes (recognize Pentium IV etc).
- x86: do the "fast A20" setup too in setup.S
- NIIBE Yutaka: update SuperH for the global page table (vmalloc) change.
- David Miller: sparc updates (vmalloc stuff still pending)
- David Miller: CodaFS warnings and 64-bit warnings in pci_size()
- David Miller: pcnet32 - correct NULL test
- David Miller: vmlist lock -> page_table_lock clarification
- Trond Myklebust: Ouch. rpcauth_lookup_credcache() memory corruption bug
- Matthew Wilcox: file locking cleanups
- David Woodhouse: USB audio spinlock fixes
- Torben Mathiasen: tlan driver cleanups
- Randy Dunlap: Yenta: CACHE_LINE_SIZE is in dwords, not bytes.
- Randy Dunlap: more USB updates
- Kanoj Sarcar: clean up the NUMA interfaces (pg_data instead of nodes)
- "save_fpu()" was broken. Need to clear pending errors: save_init_fpu().

 - pre2:
- remember to change the kernel version ;)
- isapnp.txt bugfix
- ia64 update
- sparc update
- networking update (pppoe init, frame diverter, fix tcp_sendmsg,
  fix udp_recvmsg).
- Compile for WinChip must _not_ use "-march=i686". It's a i586.
- Randy Dunlap: more USB updates
- clarify the Firewire AIC-5800 situation. It's not supported yet.
- PCI-space decode size fix. This is needed for some (broken?) hardware
- /proc/self/maps off-by-one error
- 3c501, 3c507, cs89x0 network drivers drop unnecessary check_region
- Asahi Kasei AK4540: new codec ID. Yamaha: new PCI ID's.
- ne2k-pci net driver documentation update
- Paul Gortmaker: delete paranoia check in rtc_exit
- scsi_merge: memset the right amount of memory.
- sun3fb: old __initfunc() not supported any more.
- synclink: remove unnecessary task state games
- xd.c: proper casting for 64-bit architectures
- vmalloc: page table update race condition.

 - pre1:
- Roger Larsson: ">=" instead of ">" to make the VM not get stuck.
- Gideon Glass: brw_kiovec() failure case oops fix
- Rik van Riel: better memory balancing and OOM killer
- Ivan Kokshaysky: alpha compile fixes
- Vojtech Pavlik: forgotten ENOUGH macro in via82cxxx ide driver
- Arnaldo Carvalho de Melo: acpi resource leak fix
- Brian Gerst: use mov's instead of xchg in kernel trap entry
- Torben Mathiasen: tlan timer being added twice bug
- Andrzej Krzysztofowicz: config file fixes
- Jean Tourrilhes: Wavelan lockup on SMP fix
- Roman Zippel: initdata must be initialized (even if it is to zero:
  gcc is strange)
- Jean Tourrilhes: hp100 driver lockup at startup on SMP
- Russell King: fix silly minixfs uninitialized error bug
- (various): fix uid hashing to use "uid_t" instead of "unsigned short"
- Jaroslav Kysela: isapnp timeout fix. NULL ptr dereference fix.
- Alain Knaff: fdformat should work again.
- Randy Dunlap: USB - fix bluetooth, acm, printer, serial to work
  with urb->dev changes. 
- Randy Dunlap: USB whiteheat serial driver firmware update.
- Randy Dunlap: USB hub memory corruption and pegasus driver update
- Andre Hedrick: IDE Makefile cleanup

-
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: A patch to loop.c for better cryption support

2000-10-13 Thread Andi Kleen

On Fri, Oct 13, 2000 at 10:15:21PM +, Marc Mutz wrote:
> Andi Kleen wrote:
> > 
> > On Fri, Oct 13, 2000 at 05:04:08PM +, Marc Mutz wrote:
> > > Andi Kleen wrote:
> > > >
> > > 
> > > > 2.4 has already broken backwards compatibility to 2.2 (IV changed
> > > > from disk absolute to relative). When you change it now (before 2.4.0)
> > > > it is relatively painless. I think the change is a good idea.
> > > 
> > >
> > > You're wrong. All kernels from int-2.2.10.4 onwards can be configured to
> > > use relative block numbers as IV's. Both the FAQ in Documentation/crypto
> > > and my HOWTO suggest to set CONFIG_BLK_DEV_LOOP_USE_REL_BLOCK to 'y'.
> > 
> > That is not a standard kernel option. I'm not talking about any unofficial
> > patchkits like the i* patches, just about what the standard loop device does.
> > An encryption module can be backwards compatible itself by mapping the blocks
> > itself, but without changes it will have an incompatible on disk format.
> > 
> 
> This thread was about encryption. And it was about IV's. The only
> encryption that vanilla loop.c (from 2.2.17) offers is 'none' and 'xor'.
> None is just that: a no-op. And xor does not use an IV. So the only
> ciphers that could possibly have been adressed by this patch are the
> ones in the kerneli patch. So the on-disk format did _not_ change

And any other filter modules which use the open loadable block
converter interface in the loop device. That kerneli exists as a patch is 
IMHO just an historical accident, near all of it can be done fine without 
ever touching any linux source at all.  Please take a small peek out of
your small world ;) 

BTW, kerneli would also not handle the case of switching block sizes anyways,
with relative IVs or not, because it does not restart its CFB chain inside
the device blocks every 512 byte blocks with a new IV. When you switch 
from a bigger block size to a smaller you would need backwards peeking to 
earlier blocks (and know the block size anyways). Similar problem for 
going to bigger blocks. Ingo's change makes it a bit less painless, but
still not trivial to handle.

-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] Clean up x86 write-protect test

2000-10-13 Thread Linus Torvalds



On Fri, 13 Oct 2000, Brian Gerst wrote:
> 
> Also, Could somebody who has a machine with a known buggy processor give
> this patch a try?

I like the patch. Would you mind re-writing the exception handling the
other way around, though:

Instead of doing it like this:

+   __asm__ __volatile__(
+   "   movb %0,%1  \n"
+   "1: movb %1,%0  \n"
+   "   jmp 3f  \n"
+   "2: incl %2 \n"
+   "3: \n"
+   ".section __ex_table,\"a\"\n"
+   "   .align 4\n"
+   "   .long 1b,2b \n"
+   ".previous  \n"
+   :"=m" (*(char *) vaddr),
+"=q" (tmp_reg),
+"=r" (flag)
+   :"2" (flag)
+   :"memory");

it would be nicer to simply to the other way around (if exception happens,
"flag" is untouched and jumped over, if not, flag is cleared):

+   __asm__ __volatile__(
+   "   movb %0,%1  \n"
+   "1: movb %1,%0  \n"
+   "   xor %2,%2   \n"
+   "2: \n"
+   ".section __ex_table,\"a\"\n"
+   "   .align 4\n"
+   "   .long 1b,2b \n"
+   ".previous  \n"
+   :"=m" (*(char *) vaddr),
+"=q" (tmp_reg),
+"=r" (flag)
+   :"2" (1)
+   :"memory");

which basically means that if flag stays as "1", then the exception
happened, but if the exception didn't happen the code will fall through
the "xor" and clear "flag".

After that, and testing that it works on a broken machine, I'd love to
apply 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/



Re: [RFC] atomic pte updates and pae changes, take 2

2000-10-13 Thread Linus Torvalds



On Fri, 13 Oct 2000, Ben LaHaise wrote:
>
> Hey folks

Me likee.

This looks much nicer. The hack turned into something that looks quite
ddesigned. 

Ingo, I'd like you to comment on all the PAE issues just in case, but I
personally don't have any real issues any more. Small nit: I dislike the
"__HAVE_ARCH_xxx" approach, and considering that most architectures will
probably want to do something specific anyway I wonder if we should get
rid of that and just make architectures have their own code.

Thanks,

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/



PROBLEM: Loopback mounting a file on an NFS partition hangs NFSclient

2000-10-13 Thread Wayne Whitney

Hi all,

[ My apologies if this is a duplicate; I tried sending this a week ago,
but I didn't see my message in the mailing list archives, so I assume that
it did not go through for some reason . . . ]

This is my first time posting a possible kernel bug, so I hope I get
everything right; I am following the format suggested in REPORTING-BUGS.  
I hadn't "planned" on a kernel bug, so I did not save all of the kernel
state immediately, but I think I correctly reconstructed my modules stack.

Also, I don't subscribe to the list, so please cc: me on replies at
[EMAIL PROTECTED]  Thanks.

Cheers,
Wayne

[1.] Loopback mounting a file on an NFS partition hangs NFS client. 

[2.] I have two machines, mf1 and mf2.  mf1 NFS exports to mf2 a partition
containing foo.iso, an ISO9660 file system in a file.  On mf2, I mount it
with 'mount -o loop foo.iso'.  Everything works fine at first, but after a
bunch of I/O (circa 100MB), a process accessing this file system triggers
a "kernel bug" message and gets stuck in a "D" status on ps.  An attempt
to unmount foo.iso generates another "kernel bug" messages and fails but
does return.  This problem is repeatable.

[3.] NFS client, loopback, disk wait

[4.] cat /proc/version

Linux version 2.4.0-test9 ([EMAIL PROTECTED]) (gcc version 2.96 2731
(Red Hat Linux 7.0)) #3 SMP Thu Oct 5 13:04:40 PDT 2000

[5.] ksymoops -m /boot/System.map messages

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 (specified)

Oct  5 15:55:30 mf2 kernel: invalid operand: 
Oct  5 15:55:30 mf2 kernel: CPU:0
Oct  5 15:55:30 mf2 kernel: EIP:0010:[]
Using defaults from ksymoops -t elf32-i386 -a i386
Oct  5 15:55:30 mf2 kernel: EFLAGS: 00010282
Oct  5 15:55:30 mf2 kernel: eax: 003f   ebx: f7aa62c0   ecx: d6cc4000   edx: 
0021
Oct  5 15:55:30 mf2 kernel: esi: f7dc0640   edi: f72f7120   ebp: d6cc4000   esp: 
d6cc5c94
Oct  5 15:55:30 mf2 kernel: ds: 0018   es: 0018   ss: 0018
Oct  5 15:55:30 mf2 kernel: Process rpm (pid: 2776, stackpage=d6cc5000)
Oct  5 15:55:30 mf2 kernel: Stack: f88e05cb f88e0800 00a4 f30ef640 f3166860 
f760bea0 c160da90 f30ef640 
Oct  5 15:55:30 mf2 kernel: f88d2875 f760bea0 c160da90  
1000 fff4 0004 
Oct  5 15:55:30 mf2 kernel:c160da90 c160da90 f30ef640  c160da90 
f30ef640 f760bea0 f88d3059 
Oct  5 15:55:30 mf2 kernel: Call Trace: [] [] [] 
[] [do_generic_file_read+766/1344] [do_anonymous_page+58/288] [] 
Oct  5 15:55:30 mf2 kernel:[] [] [] 
[__make_request+1493/1536] [__find_get_page+68/288] [tcp_delack_timer+0/432] 
[timer_bh+595/688] [filemap_nopage+157/1088] 
Oct  5 15:55:30 mf2 kernel: Code: 0f 0b 83 c4 0c 89 5f 1c c7 47 3c 01 00 00 00 f0 ff 
06 f0 ff 

>>EIP; f88d3867 <[nfs]nfs_create_request+197/1c0>   <=
Trace; f88e05cb <[nfs].rodata.start+130b/4426>
Trace; f88e0800 <[nfs].rodata.start+1540/4426>
Trace; f88d2875 <[nfs]nfs_readpage_async+115/190>
Trace; f88d3059 <[nfs]nfs_readpage+79/c0>
Trace; f890c3b0 
 <_EIP>:
Code;  f88d3867 <[nfs]nfs_create_request+197/1c0>   <=
   0:   0f 0b ud2a  <=
Code;  f88d3869 <[nfs]nfs_create_request+199/1c0>
   2:   83 c4 0c  add$0xc,%esp
Code;  f88d386c <[nfs]nfs_create_request+19c/1c0>
   5:   89 5f 1c  mov%ebx,0x1c(%edi)
Code;  f88d386f <[nfs]nfs_create_request+19f/1c0>
   8:   c7 47 3c 01 00 00 00  movl   $0x1,0x3c(%edi)
Code;  f88d3876 <[nfs]nfs_create_request+1a6/1c0>
   f:   f0 ff 06  lock incl (%esi)
Code;  f88d3879 <[nfs]nfs_create_request+1a9/1c0>
  12:   f0 ff 00  lock incl (%eax)

Oct  5 15:57:06 mf2 kernel: invalid operand: 
Oct  5 15:57:06 mf2 kernel: CPU:0
Oct  5 15:57:06 mf2 kernel: EIP:0010:[]
Oct  5 15:57:06 mf2 kernel: EFLAGS: 00010282
Oct  5 15:57:06 mf2 kernel: eax: 003f   ebx: f7aa62c0   ecx: 0002   edx: 
0021
Oct  5 15:57:06 mf2 kernel: esi: c211fa20   edi: f30ef7c0   ebp: f31668e0   esp: 
d62c1f48
Oct  5 15:57:06 mf2 kernel: ds: 0018   es: 0018   ss: 0018
Oct  5 15:57:06 mf2 kernel: Process umount (pid: 2832, stackpage=d62c1000)
Oct  5 15:57:06 mf2 kernel: Stack: f88df2eb f88df4e0 00a4 f760bf00 f7a3e5e0 
c01363e7 f30ef7c0 f760bf00 
Oct  5 15:57:06 mf2 kernel:f7a78800 0700 f31668e0 ffe7 f890cd48 
 f75b8cc0 4c01 
Oct  5 15:57:06 mf2 kernel:c013d996 f7a78800 0700 4c01  
c0144d47 f30c8c60 f75b8cc0 
Oct  5 15:57:06 mf2 kernel: Call Trace: [] [] [fput+55/224] 
[] [blkdev_ioctl+38/64] [sys_ioctl+455/528] [system_call+51/56] 
Oct  5 15:57:06 mf2 kernel: Code: 0f 0b 83 c4 0c 85 db 74 09 53 56 e8 f4 50 fe ff 5b 
5e bb 00 

>>EIP; f88d159c <[nfs]nfs_release+5c/b0>   <=
Trace; f88df2eb <[nfs].rodata.start+2b/4426>
Trace; f88df4e0 <[nfs].rodata.start+220/4426>
Code;  f88d159c <[nfs]nfs_release+5c/b0>

Re: Russell King forks ARM Linux.

2000-10-13 Thread Mark Hahn

I posted the following message here some weeks ago.
I formally apologize to George France, and to the list for my message,
and formally retract it.

The quotation in my message was my own, personal interpretation; 
George France did not say those words.

I certainly never intended to misrepresent George France, and I sincerely
apologize to George France for any misunderstandings I may have caused.

sincerely, Mark Hahn.
-- 
operator may differ from spokesperson.  [EMAIL PROTECTED]
  http://brain.mcmaster.ca/~hahn

-- Forwarded message --
Date: Wed, 27 Sep 2000 18:24:36 -0400 (EDT)
From: Mark Hahn <[EMAIL PROTECTED]>
To: Linux Kernel <[EMAIL PROTECTED]>
Subject: Re: Russell King forks ARM Linux.
In-Reply-To: <[EMAIL PROTECTED]>

> him, but he has cut off all commutations. So starting tomorrow, we will be
> submitting patches directly to the kernel mailing list, since Russell will

uh, this will be unpleasantly familiar to anyone who
was reading the linux-usb mailing list in Dec 99,
when George said, roughly "you are all so full of shit
that you're not worth working with, so on Monday we will begin 
designing our own USB for Linux".

Linux USB has survived quite nicely in spite of this,
which bodes quite well for 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: [patch] For 2.4: syscall revoke.

2000-10-13 Thread Alexander Viro



On Fri, 13 Oct 2000, Alan Cox wrote:

> > writer might be OK, but AFAICS there is nothing of that sort in the
> > tree. We have such spinlocks, but I don't see how to apply that idea to
> > semaphores. Besides, it ought to be small - every struct file will have to
> > contain such beast.
> 
> It would mean a check when putting a file handle, which would be unpleasant
> if not handled very carefully.

I.e. you would have to unlock before doing fput(). Happens all by itself
if we hold the lock only across the actual method call. I'm not saying
that it's a good way, but correctenss problems are not going to be all
that terrible.

> How about doing this in fput ?
> 
>   if(IS_REVOKED(file) && file->f_ops != _ops)
>   {
>   file->f_ops = _ops;
>   wake_up(_wait);
>   }
> 
> that would mean that the ops change is done by the code paths that care about
> the handle at the point it becomes unused. We could use a poll_table like
> setup to handle the multi-fd wait if need be

?
fput() has zero serialization wrt methods. The only case when resetting
->f_op in fput() is safe is when ->f_count hits zero. Precisely because
there's no references left. But at that point you don't need to bother at
all.

-
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/



Tux2 Patent Issues

2000-10-13 Thread Jeff V. Merkey


Daniel/Linux,

Brian Rayve from Malinkrodt & Malinkrodt has been assigned the Tux 2
Patent analysis and will have a preliminary infringment analysis
sometime next week that will be posted to this list when it is
available.  He has obtained the NetApp patents and is reviewing them and
preparing the analysis.  A detailed analysis of all related patents
outside the NetApp patents requires a formal request for patent search
with the USPTO and will take 4-6 weeks to complete.  If the NetApp
patents do not infringe, then we will perform the exhaustive search of
the USPTO prior to giving Daniel a green light.

Any parties who have any patent issues or prior art with Tux2 may send
email to [EMAIL PROTECTED] (801-328-1624) to assist with this
issue.   New Linux patent issues other than Tux2 should be sent thru me
so I can arrange for the funding for the patent research.  

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: big ECN push

2000-10-13 Thread Alan Cox

> 'Technology Push' argument - and it shouldn't be that hard. Write some
> articles on how Linux is innovating, and how Cisco and others are standing
> in the way of progress.

Cisco are already acting on this issue. No point clobbering them

Alan

-
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: big ECN push

2000-10-13 Thread Mike A. Harris

On Sat, 14 Oct 2000, bert hubert wrote:

>> > In other words, being able to just turn on ECN for localhost and your
>> > internal network isn't likely to be terribly useful.
>> 
>> Being able to turn ECN on/off for specific routes would be very
>> useful. Currently we have to turn ECN off for systems connected to
>> the Internet because there are bad routers out there. But I know
>
>Well, I think that we need to make some kind of PR push about ECN. Linux
>right now has enough clout and respect to be able to be used as a
>'Technology Push' argument - and it shouldn't be that hard. Write some
>articles on how Linux is innovating, and how Cisco and others are standing
>in the way of progress.

I can see the /. headline right now:

Cisco holds back Linux network innovation
from the peanut-butter-and-jelly-sandwich-dept

;o)


--
  Mike A. Harris  -  Linux advocate  -  Open source advocate
  Computer Consultant - Capslock Consulting
 Copyright 2000 all rights reserved
--

Looking for Linux software?   http://freshmeat.net  http://www.rpmfind.net
http://filewatcher.org  http://www.coldstorage.org  http://sourceforge.net

-
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: Calling current() from interrupt context

2000-10-13 Thread Jeff V. Merkey



"Jeff V. Merkey" wrote:
> 
> "David S. Miller" wrote:
> >
> >Date:Tue, 10 Oct 2000 00:44:58 +0200
> >From: "Andi Kleen" <[EMAIL PROTECTED]>
> >
> >On Mon, Oct 09, 2000 at 11:41:13PM +0100, Alan Cox wrote:
> >> I dont actually know a CPU that doesnt have one in SMP mode. Its just often
> >> behind an I/O interface that is slower than ideal
> >
> >Where would you put it for IA32 ? I don't know any free MSR that could
> >be abused for that, and acessing MSRs is insanely slow anyways.  Any
> >other ideas ?
> >
> > The local APIC holds the hardware cpu number (which happens to equal
> > the logical cpu number in the current x86 code).  And I believe the
> > local APIC has a 32-bit scratch register or 2 as well... but don't
> > quote me on that one.
> 
> Accessing the CPUID from the local APIC is slower than mollasses.  The
> reason for this is due to the fact that the APIC address ranges are
> treated as non-cacheable memory, and will always generate a
> non-cacheable memory reference when you read from the APIC_ID register
> and shift the ID.

You can verify this with a logic analyzer and watch the system suck wind
and get really slow, I/O performance go to shit after you read the
memory mapped APIC registers from a context 
switch loop, i.e.

while (1)
{
   read_local_apic();  // OINK OINK OINK  -- bus utilitization will go
through the roof.
   schedule()
}

and watch it oink...

> 
> A simpler solution is to use the CR2 register to store the CPU number,
> and always reload the register after a page fault (since CR2 will hold a
> faulting address).  THis is even better than Linus' stack based method
> for storing the number since you just are reading a register, which is
> fast as hell.  The other methods are slower.
> 
> hHis is how it's done in NetWare and MANOS.  It works
> 
> :-)
> 
> Jeff
> 
> >
> > Later,
> > David S. Miller
> > [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/
-
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: Calling current() from interrupt context

2000-10-13 Thread Jeff V. Merkey



"Jeff V. Merkey" wrote:
> 
> "Jeff V. Merkey" wrote:
> >
> > "David S. Miller" wrote:
> > >
> > >Date:Tue, 10 Oct 2000 00:44:58 +0200
> > >From: "Andi Kleen" <[EMAIL PROTECTED]>
> > >
> > >On Mon, Oct 09, 2000 at 11:41:13PM +0100, Alan Cox wrote:
> > >> I dont actually know a CPU that doesnt have one in SMP mode. Its just often
> > >> behind an I/O interface that is slower than ideal
> > >
> > >Where would you put it for IA32 ? I don't know any free MSR that could
> > >be abused for that, and acessing MSRs is insanely slow anyways.  Any
> > >other ideas ?
> > >
> > > The local APIC holds the hardware cpu number (which happens to equal
> > > the logical cpu number in the current x86 code).  And I believe the
> > > local APIC has a 32-bit scratch register or 2 as well... but don't
> > > quote me on that one.
> >
> > Accessing the CPUID from the local APIC is slower than mollasses.  The
> > reason for this is due to the fact that the APIC address ranges are
> > treated as non-cacheable memory, and will always generate a
> > non-cacheable memory reference when you read from the APIC_ID register
> > and shift the ID.
> 
> You can verify this with a logic analyzer and watch the system suck wind
> and get really slow, I/O performance go to shit after you read the
> memory mapped APIC registers from a context
> switch loop, i.e.
> 
> while (1)
> {
>read_local_apic();  // OINK OINK OINK  -- bus utilitization will go
> through the roof.
>schedule()
> }
> 
> and watch it oink...
> 
> >
> > A simpler solution is to use the CR2 register to store the CPU number,
> > and always reload the register after a page fault (since CR2 will hold a
> > faulting address).  THis is even better than Linus' stack based method
> > for storing the number since you just are reading a register, which is
> > fast as hell.  The other methods are slower.
> >
> > hHis is how it's done in NetWare and MANOS.  It works
> >
> > :-)
> >
> > Jeff
> >
> > >
> > > Later,
> > > David S. Miller
> > > [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/
-
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: Calling current() from interrupt context

2000-10-13 Thread Jeff V. Merkey



"David S. Miller" wrote:
> 
>Date:Tue, 10 Oct 2000 00:44:58 +0200
>From: "Andi Kleen" <[EMAIL PROTECTED]>
> 
>On Mon, Oct 09, 2000 at 11:41:13PM +0100, Alan Cox wrote:
>> I dont actually know a CPU that doesnt have one in SMP mode. Its just often
>> behind an I/O interface that is slower than ideal
> 
>Where would you put it for IA32 ? I don't know any free MSR that could
>be abused for that, and acessing MSRs is insanely slow anyways.  Any
>other ideas ?
> 
> The local APIC holds the hardware cpu number (which happens to equal
> the logical cpu number in the current x86 code).  And I believe the
> local APIC has a 32-bit scratch register or 2 as well... but don't
> quote me on that one.

Accessing the CPUID from the local APIC is slower than mollasses.  The
reason for this is due to the fact that the APIC address ranges are
treated as non-cacheable memory, and will always generate a
non-cacheable memory reference when you read from the APIC_ID register
and shift the ID.  

A simpler solution is to use the CR2 register to store the CPU number,
and always reload the register after a page fault (since CR2 will hold a
faulting address).  THis is even better than Linus' stack based method
for storing the number since you just are reading a register, which is
fast as hell.  The other methods are slower.  

hHis is how it's done in NetWare and MANOS.  It works

:-)

Jeff

> 
> Later,
> David S. Miller
> [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/
-
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: test10-pre2

2000-10-13 Thread David S. Miller

   Date:Fri, 13 Oct 2000 20:49:08 -0400
   From: Wakko Warner <[EMAIL PROTECTED]>

   Doesn't boot on alpha systems with pci-pci bridges.  I sent a
   report about this a couple days ago and noone responds.

Richard Henderson knows about this bug and it requires quite a bit of
painful surgery.  I believe his wording that more interesting work
would be cleaning his cat's litter boxes.

Later,
David S. Miller
[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/



[PATCH] Clean up x86 write-protect test

2000-10-13 Thread Brian Gerst

This patch makes the write-protect test use the normal exception
handling mechanism.  This removes the need for the special case check in
the page fault handler.  The only concern I have is because of this
comment:

/*
 * Beware: Black magic here. The printk is needed here to flush
 * CPU state on certain buggy processors.
 */

Does anyone have an explanation as to why this printk is necessary?  I
can't figure out why this case would need the printk but no other page
fault exception would.

Also, Could somebody who has a machine with a known buggy processor give
this patch a try?

-- 

Brian Gerst

diff -urN linux-2.4.0t10p2/Documentation/exception.txt 
linux/Documentation/exception.txt
--- linux-2.4.0t10p2/Documentation/exception.txtFri Jul 28 01:28:07 2000
+++ linux/Documentation/exception.txt   Fri Oct 13 20:13:52 2000
@@ -284,3 +284,9 @@
 successful, -EFAULT on failure. Our original code did not test this
 return value, however the inline assembly code in get_user tries to
 return -EFAULT. GCC selected EAX to return this value.
+
+NOTE:
+Due to the way that the exception table is built and needs to be ordered,
+only use exceptions for code in the .text section.  Any other section
+will cause the exception table to not be sorted correctly, and the
+exceptions will fail.
diff -urN linux-2.4.0t10p2/arch/i386/mm/fault.c linux/arch/i386/mm/fault.c
--- linux-2.4.0t10p2/arch/i386/mm/fault.c   Thu Oct 12 19:48:23 2000
+++ linux/arch/i386/mm/fault.c  Fri Oct 13 20:13:52 2000
@@ -77,31 +77,6 @@
return 0;
 }
 
-static void __init handle_wp_test (void)
-{
-   const unsigned long vaddr = PAGE_OFFSET;
-   pgd_t *pgd;
-   pmd_t *pmd;
-   pte_t *pte;
-
-   /*
-* make it read/writable temporarily, so that the fault
-* can be handled.
-*/
-   pgd = swapper_pg_dir + __pgd_offset(vaddr);
-   pmd = pmd_offset(pgd, vaddr);
-   pte = pte_offset(pmd, vaddr);
-   *pte = mk_pte_phys(0, PAGE_KERNEL);
-   __flush_tlb_all();
-
-   boot_cpu_data.wp_works_ok = 1;
-   /*
-* Beware: Black magic here. The printk is needed here to flush
-* CPU state on certain buggy processors.
-*/
-   printk("Ok");
-}
-
 asmlinkage void do_invalid_op(struct pt_regs *, unsigned long);
 extern unsigned long idt;
 
@@ -274,14 +249,7 @@
 /*
  * Oops. The kernel tried to access some bad page. We'll have to
  * terminate things with extreme prejudice.
- *
- * First we check if it was the bootup rw-test, though..
  */
-   if (boot_cpu_data.wp_works_ok < 0 &&
-   address == PAGE_OFFSET && (error_code & 1)) {
-   handle_wp_test();
-   return;
-   }
 
if (address < PAGE_SIZE)
printk(KERN_ALERT "Unable to handle kernel NULL pointer dereference");
diff -urN linux-2.4.0t10p2/arch/i386/mm/init.c linux/arch/i386/mm/init.c
--- linux-2.4.0t10p2/arch/i386/mm/init.cThu Aug 10 08:10:02 2000
+++ linux/arch/i386/mm/init.c   Fri Oct 13 20:15:42 2000
@@ -491,16 +491,43 @@
  * before and after the test are here to work-around some nasty CPU bugs.
  */
 
+/*
+ * This function cannot be __init, since exceptions don't work in that
+ * section.
+ */
+static int do_test_wp_bit(unsigned long vaddr)
+{
+   char tmp_reg;
+   int flag = 0;
+
+   __asm__ __volatile__(
+   "   movb %0,%1  \n"
+   "1: movb %1,%0  \n"
+   "   jmp 3f  \n"
+   "2: incl %2 \n"
+   "3: \n"
+   ".section __ex_table,\"a\"\n"
+   "   .align 4\n"
+   "   .long 1b,2b \n"
+   ".previous  \n"
+   :"=m" (*(char *) vaddr),
+"=q" (tmp_reg),
+"=r" (flag)
+   :"2" (flag)
+   :"memory");
+   
+   return flag;
+}
+
 void __init test_wp_bit(void)
 {
 /*
- * Ok, all PAE-capable CPUs are definitely handling the WP bit right.
+ * Ok, all PSE-capable CPUs are definitely handling the WP bit right.
  */
const unsigned long vaddr = PAGE_OFFSET;
pgd_t *pgd;
pmd_t *pmd;
pte_t *pte, old_pte;
-   char tmp_reg;
 
printk("Checking if this processor honours the WP bit even in supervisor 
mode... ");
 
@@ -511,27 +538,19 @@
*pte = mk_pte_phys(0, PAGE_READONLY);
local_flush_tlb();
 
-   __asm__ __volatile__(
-   "jmp 1f; 1:\n"
-   "movb %0,%1\n"
-   "movb %1,%0\n"
-   "jmp 1f; 1:\n"
-   :"=m" (*(char *) vaddr),
-"=q" (tmp_reg)
-   :/* no inputs */
-   :"memory");
+   boot_cpu_data.wp_works_ok = do_test_wp_bit(vaddr);
 
*pte = old_pte;
local_flush_tlb();
 
-   if (boot_cpu_data.wp_works_ok < 0) {
-   

Re: test10-pre2

2000-10-13 Thread Wakko Warner

Doesn't boot on alpha systems with pci-pci bridges.  I sent a report about
this a couple days ago and noone responds.

> There's a test10-2 out there.
> 
> Notable change to people Cc'd on this mail: this contains the fix for the
> vmalloc() and ioremap() race condition, which deletes the set_pgdir()
> function and instead depends on the page table entries being distributed
> to the other page directories automatically. Some architectures can do
> this naturally by just sharing the kernrel pgd entries with "init_mm",
> others, like the x86, need a dynamic page fault handler path for this.
> 
> See the arch/x86/mm/fault.c changes to see what arch-specific changes this
> can entail.
> 
> Other changes are fairly straightforward..
-
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/



BUG Report 2.4.0-test9: NMI Watchdoch detected LOCKUP at CPU[01]

2000-10-13 Thread wollny

Hello, 

Here is the bug report

When doing "modprobe imm" I get message LOCKUP detected

the trace looks like this:

0: ?? (assume spin_lock_irqsave in blk_get_queue but printed EIP seems to
   be sensless - area with no code according to the map file)

1: ll_rw_blk.c: 874 
  generic_make_request -> "after line q = blk_get_queue(...)" 
2: ll_rw_blk.c: 925   ll_rw_block   
3: filemap.c: 280 writeout_one_page
4: filemap.c: 324 do_buffer_fdatasync
5: filemap.c: 344 generic_buffer_fdatasync
6: filemap.c: 270 ? writeout_one_page ?
7: ext2/fsync.c: 140   ext2_sync_file  
8: fs/buffer.c: 370  sys_fsync

The iomega-drive is usally available after the lockup-message, thou one 
time i had to hard-reboot the machine (not even SysRq was working.

Please CC me, if you have some comments, ideas, and thanks for your time. 

Gert 

additional information:

Linux 2.4.0-test9-my #22 SMP Sam Okt 7 15:28:18 CEST 2000 i686 unknown
Kernel modules 2.3.14
Gnu C  pgcc-2.95.2
Gnu Make   3.77
Binutils   2.9.1.0.25
Linux C Library2.1.1
Dynamic linker ldd (GNU libc) 2.1.1
Procps 2.0.2
Mount  2.9w
Net-tools  1.52
Console-tools  0.2.0
Sh-utils   2.0
Modules Loaded parport_pc imm sd_mod nfsd lockd sunrpc 8139too nls_cp437 vfat 
   fat awe_wave sb sb_lib uart401 sound soundcore 
   advansys scsi_mod

/proc/cpuinfo
processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model   : 5
model name  : Pentium II (Deschutes)
stepping: 2
cpu MHz : 451.29
cache size  : 512 KB
fdiv_bug: no
hlt_bug : no
sep_bug : no
f00f_bug: no
coma_bug: no
fpu : yes
fpu_exception   : yes
cpuid level : 2
wp  : yes
flags   : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat 
pse36 mmx fxsr
bogomips: 897.84

processor   : 1
vendor_id   : GenuineIntel
cpu family  : 6
model   : 5
model name  : Pentium II (Deschutes)
stepping: 2
cpu MHz : 451.29
cache size  : 512 KB
fdiv_bug: no
hlt_bug : no
sep_bug : no
f00f_bug: no
coma_bug: no
fpu : yes
fpu_exception   : yes
cpuid level : 2
wp  : yes
flags   : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat 
pse36 mmx fxsr
bogomips: 901.12

/proc/pci
PCI devices found:
  Bus  0, device   0, function  0:
Host bridge: Intel Corporation 440BX/ZX - 82443BX/ZX Host bridge (rev 3).
  Master Capable.  Latency=64.  
  Prefetchable 32 bit memory at 0xe400 [0xe7ff].
  Bus  0, device   1, function  0:
PCI bridge: Intel Corporation 440BX/ZX - 82443BX/ZX AGP bridge (rev 3).
  Master Capable.  Latency=64.  Min Gnt=136.
  Bus  0, device   4, function  0:
ISA bridge: Intel Corporation 82371AB PIIX4 ISA (rev 2).
  Bus  0, device   4, function  1:
IDE interface: Intel Corporation 82371AB PIIX4 IDE (rev 1).
  Master Capable.  Latency=32.  
  I/O at 0xd800 [0xd80f].
  Bus  0, device   4, function  2:
USB Controller: Intel Corporation 82371AB PIIX4 USB (rev 1).
  Master Capable.  Latency=32.  
  I/O at 0xd400 [0xd41f].
  Bus  0, device   4, function  3:
Bridge: Intel Corporation 82371AB PIIX4 ACPI (rev 2).
  Bus  0, device   9, function  0:
SCSI storage controller: Advanced System Products, Inc ABP940-U / ABP960-U (rev 3).
  IRQ 9.
  Master Capable.  Latency=32.  Min Gnt=4.Max Lat=4.
  I/O at 0xd000 [0xd0ff].
  Non-prefetchable 32 bit memory at 0xde80 [0xde8000ff].
  Bus  0, device  10, function  0:
Multimedia video controller: Brooktree Corporation Bt878 (rev 2).
  IRQ 10.
  Master Capable.  Latency=32.  Min Gnt=16.Max Lat=40.
  Prefetchable 32 bit memory at 0xe100 [0xe1000fff].
  Bus  0, device  10, function  1:
Multimedia controller: Brooktree Corporation Bt878 (rev 2).
  IRQ 10.
  Master Capable.  Latency=32.  Min Gnt=4.Max Lat=255.
  Prefetchable 32 bit memory at 0xe080 [0xe0800fff].
  Bus  0, device  12, function  0:
Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139 (rev 16).
  IRQ 11.
  Master Capable.  Latency=32.  Min Gnt=32.Max Lat=64.
  I/O at 0xb800 [0xb8ff].
  Non-prefetchable 32 bit memory at 0xde00 [0xdeff].
  Bus  1, device   0, function  0:
VGA compatible controller: Matrox Graphics, Inc. MGA G400 AGP (rev 5).
  IRQ 11.
  Master Capable.  Latency=64.  Min Gnt=16.Max Lat=32.
  Prefetchable 32 bit memory at 0xe200 [0xe3ff].
  Non-prefetchable 32 bit memory at 0xdf80 [0xdf803fff].
  Non-prefetchable 32 bit memory at 0xdf00 [0xdf7f].

/proc/scsi/scsi
Attached devices: 
Host: scsi0 Channel: 00 Id: 01 Lun: 00
  Vendor: PLEXTOR  Model: 

Re: Updated Linux 2.4 Status/TODO List (from the ALS show)

2000-10-13 Thread David S. Miller

   Date:Fri, 13 Oct 2000 15:57:50 -0700
   From: Richard Henderson <[EMAIL PROTECTED]>

   Either that or adjust how we do atomic operations.  I can do 64-bit
   atomic widgetry, but not with the code as written.

Ultra can do it as well, and as far as I understand it ia64 64-bit
atomic_t's shouldn't be a problem either.

I would suggest we make a atomic64_t or similar different type.
The space savings from using 32-bit normal atomic_t in all other
situations is of real value.

Later,
David S. Miller
[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/



[RFC] atomic pte updates and pae changes, take 2

2000-10-13 Thread Ben LaHaise

Hey folks

Below is take two of the patch making pte_clear use atomic xchg in an
effort to avoid the loss of dirty bits.  PAE no longer uses cmpxchg8 for
updates; set_pte is two ordered long writes with a barrier.  The use of
long long for ptes is also removed; gcc should generate better code now. A
quick test with filemap_rw shows no measurable difference between pae and
non pae code, as well as no degradation from the original non-atomic
non-pae code.  This code has been tested on a box with 4GB (about 48MB is
above the 4G boundry) in PAE mode, and in non PAE mode on a couple of
other boxes too.  Linus: comments?  Ingo: could you have a look over the
code?  Thanks,

-ben

diff -ur v2.4.0-test10-pre2/arch/i386/boot/install.sh 
work-10-2/arch/i386/boot/install.sh
--- v2.4.0-test10-pre2/arch/i386/boot/install.shTue Jan  3 06:57:26 1995
+++ work-10-2/arch/i386/boot/install.sh Fri Oct 13 17:19:47 2000
@@ -21,6 +21,7 @@
 
 # User may have a custom install script
 
+if [ -x ~/bin/installkernel ]; then exec ~/bin/installkernel "$@"; fi
 if [ -x /sbin/installkernel ]; then exec /sbin/installkernel "$@"; fi
 
 # Default install - same as make zlilo
diff -ur v2.4.0-test10-pre2/include/asm-i386/page.h work-10-2/include/asm-i386/page.h
--- v2.4.0-test10-pre2/include/asm-i386/page.h  Thu Oct 12 17:42:11 2000
+++ work-10-2/include/asm-i386/page.h   Fri Oct 13 17:36:02 2000
@@ -37,20 +37,20 @@
  * These are used to make use of C type-checking..
  */
 #if CONFIG_X86_PAE
-typedef struct { unsigned long long pte; } pte_t;
+typedef struct { unsigned long pte_low, pte_high; } pte_t;
 typedef struct { unsigned long long pmd; } pmd_t;
 typedef struct { unsigned long long pgd; } pgd_t;
-#define PTE_MASK   (~(unsigned long long) (PAGE_SIZE-1))
+#define pte_val(x) ((x).pte_low | ((unsigned long long)(x).pte_high << 32))
 #else
-typedef struct { unsigned long pte; } pte_t;
+typedef struct { unsigned long pte_low; } pte_t;
 typedef struct { unsigned long pmd; } pmd_t;
 typedef struct { unsigned long pgd; } pgd_t;
-#define PTE_MASK   PAGE_MASK
+#define pte_val(x) ((x).pte_low)
 #endif
+#define PTE_MASK   PAGE_MASK
 
 typedef struct { unsigned long pgprot; } pgprot_t;
 
-#define pte_val(x) ((x).pte)
 #define pmd_val(x) ((x).pmd)
 #define pgd_val(x) ((x).pgd)
 #define pgprot_val(x)  ((x).pgprot)
diff -ur v2.4.0-test10-pre2/include/asm-i386/pgtable-2level.h 
work-10-2/include/asm-i386/pgtable-2level.h
--- v2.4.0-test10-pre2/include/asm-i386/pgtable-2level.hFri Dec  3 14:12:23 
1999
+++ work-10-2/include/asm-i386/pgtable-2level.h Fri Oct 13 17:41:14 2000
@@ -18,7 +18,7 @@
 #define PTRS_PER_PTE   1024
 
 #define pte_ERROR(e) \
-   printk("%s:%d: bad pte %08lx.\n", __FILE__, __LINE__, pte_val(e))
+   printk("%s:%d: bad pte %08lx.\n", __FILE__, __LINE__, (e).pte_low)
 #define pmd_ERROR(e) \
printk("%s:%d: bad pmd %08lx.\n", __FILE__, __LINE__, pmd_val(e))
 #define pgd_ERROR(e) \
@@ -54,5 +54,12 @@
 {
return (pmd_t *) dir;
 }
+
+#define __HAVE_ARCH_pte_get_and_clear
+#define pte_get_and_clear(xp)  __pte(xchg(&(xp)->pte_low, 0))
+#define pte_same(a, b) ((a).pte_low == (b).pte_low)
+#define pte_page(x)(mem_map+((unsigned long)(((x).pte_low >> 
+PAGE_SHIFT
+#define pte_none(x)(!(x).pte_low)
+#define __mk_pte(page_nr,pgprot) __pte(((page_nr) << PAGE_SHIFT) | pgprot_val(pgprot))
 
 #endif /* _I386_PGTABLE_2LEVEL_H */
diff -ur v2.4.0-test10-pre2/include/asm-i386/pgtable-3level.h 
work-10-2/include/asm-i386/pgtable-3level.h
--- v2.4.0-test10-pre2/include/asm-i386/pgtable-3level.hMon Dec  6 19:19:13 
1999
+++ work-10-2/include/asm-i386/pgtable-3level.h Fri Oct 13 17:39:53 2000
@@ -27,7 +27,7 @@
 #define PTRS_PER_PTE   512
 
 #define pte_ERROR(e) \
-   printk("%s:%d: bad pte %p(%016Lx).\n", __FILE__, __LINE__, &(e), pte_val(e))
+   printk("%s:%d: bad pte %p(%08lx%08lx).\n", __FILE__, __LINE__, &(e), 
+(e).pte_high, (e).pte_low)
 #define pmd_ERROR(e) \
printk("%s:%d: bad pmd %p(%016Lx).\n", __FILE__, __LINE__, &(e), pmd_val(e))
 #define pgd_ERROR(e) \
@@ -45,8 +45,12 @@
 extern inline int pgd_bad(pgd_t pgd)   { return 0; }
 extern inline int pgd_present(pgd_t pgd)   { return !pgd_none(pgd); }
 
-#define set_pte(pteptr,pteval) \
-   set_64bit((unsigned long long *)(pteptr),pte_val(pteval))
+extern inline void set_pte(pte_t *ptep, pte_t pte)
+{
+   ptep->pte_high = pte.pte_high;
+   barrier();
+   ptep->pte_low = pte.pte_low;
+}
 #define set_pmd(pmdptr,pmdval) \
set_64bit((unsigned long long *)(pmdptr),pmd_val(pmdval))
 #define set_pgd(pgdptr,pgdval) \
@@ -75,5 +79,35 @@
 /* Find an entry in the second-level page table.. */
 #define pmd_offset(dir, address) ((pmd_t *) pgd_page(*(dir)) + \
__pmd_offset(address))
+
+#define __HAVE_ARCH_pte_get_and_clear
+extern inline pte_t pte_get_and_clear(pte_t *ptep)
+{
+   pte_t res;
+
+

init= parameter doesn't work

2000-10-13 Thread Paul Powell

Hello,

I am attempting to move all of the root files and
folders into a single directory /linux on the root
file system.  I then use the kernel parameter
init=/linux/sbin/init to get things rolling but the
kernel panics.

When I boot linux, everything seems to work ok until
the kernel tries to execute init.  The root device is
mounted as the root file system successfully and I see
a message stating so.  But then I get a kernel panic
which says it couldn't find init and to try using the
init= kernel parameter.

I'm guessing there is something missing from the root
directory that the kernel needs but isn't there.  I
tried moving the /dev directory back to the root
directory on the root file system but this didn't help
things.

Anyone have any clues?

Thanks.

P.S.  The reason I'm doing this is because I'm
creating a bootable CD but have other things on the CD
in addition to linux.

__
Do You Yahoo!?
Get Yahoo! Mail - Free email you can access from anywhere!
http://mail.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/



big ECN push

2000-10-13 Thread bert hubert

On Fri, Oct 13, 2000 at 01:43:09PM +0100, Mike Jagdis wrote:

> > In other words, being able to just turn on ECN for localhost and your
> > internal network isn't likely to be terribly useful.
> 
> Being able to turn ECN on/off for specific routes would be very
> useful. Currently we have to turn ECN off for systems connected to
> the Internet because there are bad routers out there. But I know

Well, I think that we need to make some kind of PR push about ECN. Linux
right now has enough clout and respect to be able to be used as a
'Technology Push' argument - and it shouldn't be that hard. Write some
articles on how Linux is innovating, and how Cisco and others are standing
in the way of progress.

Regards,

bert hubert

-- 
PowerDNS Versatile DNS Services  
Trilab   The Technology People   
'SYN! .. SYN|ACK! .. ACK!' - the mating call of the internet
-
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: Updated 2.4 TODO List -- new addition WAS(test9 PCI resourcecollisions (fwd)

2000-10-13 Thread Linus Torvalds



On Fri, 13 Oct 2000, jamal wrote:
> 
> This is in addition to the debug statements from the previous email
> Weirder results (like bus 0x0a)

Ok, thanks - this part didn't get anything new, the bus numbers are just
different due to the re-allocation, the actual bus windows are the same
broken ones.

I wonder why they are so broken. And why did 2.2 work?

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: Updated 2.4 TODO List - more on PCI resources...]

2000-10-13 Thread Dunlap, Randy

> > I agree.  I would expect it to be 8 instead of 32.
> > Actually I just checked on a new Thinkpad T20 with a TI
> > PCI 1450 CardBus controller *on a different OS*
> > and it is 8.
> 
> I'll fix it to be 8.
> 
> Thanks,
> 
>   Linus

Well, preferably to what David said:
  L1_CACHE_BYTES / 4

Thanks,
~Randy

-
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: Updated 2.4 TODO List - more on PCI resources...]

2000-10-13 Thread Linus Torvalds



On Fri, 13 Oct 2000, Dunlap, Randy wrote:
> 
> I agree.  I would expect it to be 8 instead of 32.
> Actually I just checked on a new Thinkpad T20 with a TI
> PCI 1450 CardBus controller *on a different OS*
> and it is 8.

I'll fix it to be 8.

Thanks,

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: Updated 2.4 TODO List -- new addition WAS(test9 PCI resourcecollisions (fwd)

2000-10-13 Thread Linus Torvalds



On Fri, 13 Oct 2000, jamal wrote:
> 
> On Fri, 13 Oct 2000, Linus Torvalds wrote:> 
> > Can you add the same extra debug code that I asked Dag Bakke to add for
> > his problem:
> 
> Attached.

Thanks.

It looks like the bridge that your docking devices are behind (I assume
that's just a regular docking bridge) has not been set up correctly, and
has a serious lack of bridging windows, which causes the inability for
Linux to map any of the devices behind that bus. So you get printouts like

bus res 0 0 -
bus res 1 0 -
bus res 2 1200 e400-e5ff
device Matrox Graphics, Inc. MGA 2164W [Millennium II] resource 1 size 4000
PCI: Failed to allocate resource 1 for Matrox Graphics, Inc. MGA 2164W 
[Millennium II]

The above means that of the three bus windows set up for the PCI-PCI
bridge for the docking, two are disabled, and the last one is a
prefetchable memory window which is unacceptable to most devices (the
Matrox want a non-prefetchable window for its command area).

The other cases all show the same.

Martin, what's up? It looks like PCI-PCI bridge windows are not enabled
and set up at all. At least on this particular machine.

And I don't find any code that would ever have done this, either. It must
be somewhere, if 2.2 works for you.

Ehh. How about yet another debugging patch, to see what the bridge bases
are? In drivers/pci/pci.c, function pci_read_bridge_bases(), find the
place where it reads the PCI_IO_BASE/LIMIT and the UPPER bits, and add

printk("IO base: %04x%04x limit: %04x%04x\n",
io_base_hi, io_base_lo,
io_limit_hi, io_limit_lo);

to before the sanity test for the resource[0] case (ie before the stuff
that says "if (base && base <= limit) {" etc).

And do the same for the mem_base stuff for the resource[1] and resource[2]
cases.

Martin, any ideas on why only the prefetchable memory case would show up?

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: Updated 2.4 TODO List - more on PCI resources...]

2000-10-13 Thread Dunlap, Randy

> On Fri, Oct 13, 2000 at 02:22:32PM -0700, Dunlap, Randy wrote:
> > I'm not familiar with yenta controllers/devices,
> > and I'm not trying to throw you a tasty red herring,
> > but...
> > 
> > yenta_config_init() does
> > config_writeb(socket, PCI_CACHE_LINE_SIZE, 32);
> > 
> > Is this writing to the CardBus bridge or to the device's
> > CacheLineSize register?
> 
> It is writing to the bridge.  I think it should probably actually be
> L1_CACHE_BYTES/4.  I am not sure about the impact of an incorrect
> setting.  Maybe Linus knows.
> 
> -- Dave

I agree.  I would expect it to be 8 instead of 32.
Actually I just checked on a new Thinkpad T20 with a TI
PCI 1450 CardBus controller *on a different OS*
and it is 8.

~Randy

-
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.2.18pre15aa1 and reiserfs and cvs glibc opendir broke

2000-10-13 Thread brian


I have a program:

#include 
#include 
#include 

int
main() {
DIR *dir = opendir("/uss/zzq/TIDs");
printf("dir = %08lx\n",(int)dir);
}

which fails to work correctly under the development version of libc.

brian@remo brian>gcc foo.c(redhat 6.2 libc)
brian@remo brian>./a.out
dir = 08049760

brian@remo brian>xgcc foo.c   (recent cvs libc)
brian@remo brian>./a.out
dir = 

the machines remo runs 2.2.18pre15aa1 and the filesystem is
reiserfs 3.5.26.  The same thing happens if the filesystem is ext2.

gcc and xgcc invoke the same compiler: 
egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)

And here is the actual failure in the bowels of libc:

(gdb) s
__libc_fcntl (fd=6, cmd=2) at ../sysdeps/unix/sysv/linux/i386/fcntl.c:44
44arg = va_arg (ap, void *);
(gdb) n
51if (! __have_no_fcntl64)
(gdb) n
53int result = INLINE_SYSCALL (fcntl64, 3, fd, cmd, arg);
(gdb) n
54if (result >= 0 || errno != ENOSYS)
(gdb) print result
$9 = -1

What has gone wrong?

Thanks,
-- 
Brian Litzinger <[EMAIL PROTECTED]>

Copyright (c) 2000 By Brian Litzinger, All Rights Reserved

- End forwarded 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: Updated 2.4 TODO List -- new addition WAS(test9 PCI resourcecollisions (fwd)

2000-10-13 Thread jamal



On Fri, 13 Oct 2000, Linus Torvalds wrote:

> Oh, also, can you try to see what happens if you change the define for
> 
>   #define pcibios_assign_all_busses() 0
> 
> to a 1 in include/asm-i386/pci.h? That should force Linux to re-configure
> all buses, regardless of whether they have been set up some way by the
> BIOS. Which might make a difference.
> 
> But please do this separately from the extra debug code - I'd like to see
> what the debug code says regardless of this change..

This is in addition to the debug statements from the previous email
Weirder results (like bus 0x0a)

cheers,
jamal


Linux version 2.4.0-test10 (root@PCARD38C) (gcc version egcs-2.91.66 19990314/Linux 
(egcs-1.1.2 release)) #6 Fri Oct 13 18:06:10 EDT 2000
BIOS-provided physical RAM map:
 BIOS-e820: 0009fc00 @  (usable)
 BIOS-e820: 0400 @ 0009fc00 (reserved)
 BIOS-e820: c000 @ 000c (reserved)
 BIOS-e820: 0fef @ 0010 (usable)
 BIOS-e820: 0001 @ 0fff (ACPI data)
 BIOS-e820: 0006 @ 100a (reserved)
 BIOS-e820: 0020 @ ffe0 (reserved)
On node 0 totalpages: 65520
zone(0): 4096 pages.
zone(1): 61424 pages.
zone(2): 0 pages.
Kernel command line: 
Initializing CPU#0
Detected 498.478 MHz processor.
Console: colour VGA+ 80x25
Calibrating delay loop... 992.87 BogoMIPS
Memory: 255768k/262080k available (1095k kernel code, 5924k reserved, 70k data, 188k 
init, 0k highmem)
Dentry-cache hash table entries: 32768 (order: 6, 262144 bytes)
Buffer-cache hash table entries: 16384 (order: 4, 65536 bytes)
Page-cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 16384 (order: 5, 131072 bytes)
CPU: Intel Pentium III (Coppermine) stepping 03
Checking 'hlt' instruction... OK.
POSIX conformance testing by UNIFIX
mtrr: v1.36 (2221) Richard Gooch ([EMAIL PROTECTED])
PCI: BIOS32 Service Directory structure at 0xc00ffe80
PCI: BIOS32 Service Directory entry at 0xffe90
PCI: BIOS probe returned s=00 hw=01 ver=02.10 l=02
PCI: PCI BIOS revision 2.10 entry at 0xfc0ce, last bus=2
PCI: Using configuration type 1
PCI: Probing PCI hardware
Scanning bus 00
Found 00:00 [8086/7190] 000600 00
Found 00:08 [8086/7191] 000604 01
Found 00:18 [104c/ac1c] 000607 02
Found 00:19 [104c/ac1c] 000607 02
Found 00:38 [8086/7110] 000680 00
Found 00:39 [8086/7111] 000101 00
PCI: IDE base address fixup for 00:07.1
Found 00:3a [8086/7112] 000c03 00
Found 00:3b [8086/7113] 000680 00
Found 00:88 [8086/124b] 000604 01
Fixups for bus 00
PCI: Scanning for ghost devices on bus 0
Scanning behind PCI bridge 00:01.0, config 010100, pass 0
Scanning behind PCI bridge 00:03.0, config 00, pass 0
Scanning behind PCI bridge 00:03.1, config 00, pass 0
Scanning behind PCI bridge 00:11.0, config 020200, pass 0
Scanning behind PCI bridge 00:01.0, config 010100, pass 1
Scanning bus 01
Found 01:00 [10c8/0006] 000300 00
Found 01:01 [10c8/8006] 000401 00
Fixups for bus 01
PCI: Scanning for ghost devices on bus 1
Bus scan for 01 returning with max=01
Scanning behind PCI bridge 00:03.0, config 00, pass 1
Scanning behind PCI bridge 00:03.1, config 00, pass 1
Scanning behind PCI bridge 00:11.0, config 020200, pass 1
Scanning bus 0a
Found 0a:08 [102b/051b] 000300 00
Found 0a:28 [1095/0646] 000101 00
PCI: IDE base address fixup for 0a:05.0
Found 0a:38 [9004/6078] 000100 00
Found 0a:40 [10b7/9050] 000200 00
Fixups for bus 0a
PCI: Scanning for ghost devices on bus 10
Bus scan for 0a returning with max=0a
Bus scan for 00 returning with max=0a
PCI: IRQ init
PCI: Interrupt Routing Table found at 0xc00fbd80
00:07 slot=00 0:00/ 1:00/ 2:00/ 3:63/def8
01:00 slot=00 0:60/def8 1:61/def8 2:00/ 3:00/
00:03 slot=00 0:63/def8 1:63/def8 2:00/ 3:00/
00:0d slot=00 0:62/def8 1:00/ 2:00/ 3:00/
00:11 slot=00 0:62/def8 1:62/def8 2:62/def8 3:62/def8
PCI: Bus 01 already known
PCI: Using IRQ router default [8086/1234] at 00:07.0
PCI: IRQ fixup
PCI: Allocating resources
PCI: Resource e000-e3ff (f=1208, d=0, p=0)
PCI: Resource 0860-086f (f=101, d=0, p=0)
PCI: Resource ece0-ecff (f=101, d=0, p=0)
PCI: Resource e780-e7ff (f=1208, d=0, p=0)
PCI: Resource fda0-fdaf (f=200, d=0, p=0)
PCI: Resource e500-e5ff (f=1208, d=0, p=0)
PCI: Resource fbffc000-fbff (f=200, d=0, p=0)
PCI: Cannot allocate resource region 1 of device 0a:01.0
PCI: Resource fb00-fb7f (f=200, d=0, p=0)
PCI: Cannot allocate resource region 2 of device 0a:01.0
PCI: Resource fcf8-fcff (f=109, d=0, p=0)
PCI: Cannot allocate resource region 0 of device 0a:05.0
PCI: Resource fcf0-fcf3 (f=101, d=0, p=0)
PCI: Cannot allocate resource region 1 of device 0a:05.0
PCI: Resource fce0-fce7 (f=101, d=0, p=0)
PCI: Cannot allocate resource region 2 of device 

Re: Updated Linux 2.4 Status/TODO List (from the ALS show)

2000-10-13 Thread Richard Henderson

On Fri, Oct 13, 2000 at 11:47:55PM +0100, Alan Cox wrote:
> Then we need to use locking to protect the rss since on a big 64bit box
> we can exceed 2^32 pages in theory and probably soon in practice.

Either that or adjust how we do atomic operations.  I can do
64-bit atomic widgetry, but not with the code as written.


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: Updated 2.4 TODO List -- new addition WAS(test9 PCI resourcecollisions (fwd)

2000-10-13 Thread jamal



On Fri, 13 Oct 2000, Linus Torvalds wrote:

> Can you add the same extra debug code that I asked Dag Bakke to add for
> his problem:
> 
> -- snip from another email, because I'm lazy ---
> 
> Please add a debug printk() to drivers/pci/setup-res.c to the very end of
> pci_assign_bus_resource(), just before the "return -EBUSY", something like
> 
> printk("device %s resource %d size %08lx\n", dev->name, resno, size);
> 
> just to see what it wants and why it fails..
> 
> Also, it's probably worth printing out what the actual bus resources are,
> to possibly explain the failure. So add another line that says
> 
> printk("bus res %d %x %08lx-%08lx\n", i, r->flags, r->start,
> r->end);
> 

Attached.

cheers,
jamal


Linux version 2.4.0-test10 (root@PCARD38C) (gcc version egcs-2.91.66 19990314/Linux 
(egcs-1.1.2 release)) #5 Fri Oct 13 18:02:43 EDT 2000
BIOS-provided physical RAM map:
 BIOS-e820: 0009fc00 @  (usable)
 BIOS-e820: 0400 @ 0009fc00 (reserved)
 BIOS-e820: c000 @ 000c (reserved)
 BIOS-e820: 0fef @ 0010 (usable)
 BIOS-e820: 0001 @ 0fff (ACPI data)
 BIOS-e820: 0006 @ 100a (reserved)
 BIOS-e820: 0020 @ ffe0 (reserved)
On node 0 totalpages: 65520
zone(0): 4096 pages.
zone(1): 61424 pages.
zone(2): 0 pages.
Kernel command line: 
Initializing CPU#0
Detected 498.471 MHz processor.
Console: colour VGA+ 80x25
Calibrating delay loop... 992.87 BogoMIPS
Memory: 255768k/262080k available (1095k kernel code, 5924k reserved, 70k data, 188k 
init, 0k highmem)
Dentry-cache hash table entries: 32768 (order: 6, 262144 bytes)
Buffer-cache hash table entries: 16384 (order: 4, 65536 bytes)
Page-cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 16384 (order: 5, 131072 bytes)
CPU: Intel Pentium III (Coppermine) stepping 03
Checking 'hlt' instruction... OK.
POSIX conformance testing by UNIFIX
mtrr: v1.36 (2221) Richard Gooch ([EMAIL PROTECTED])
PCI: BIOS32 Service Directory structure at 0xc00ffe80
PCI: BIOS32 Service Directory entry at 0xffe90
PCI: BIOS probe returned s=00 hw=01 ver=02.10 l=02
PCI: PCI BIOS revision 2.10 entry at 0xfc0ce, last bus=2
PCI: Using configuration type 1
PCI: Probing PCI hardware
Scanning bus 00
Found 00:00 [8086/7190] 000600 00
Found 00:08 [8086/7191] 000604 01
Found 00:18 [104c/ac1c] 000607 02
Found 00:19 [104c/ac1c] 000607 02
Found 00:38 [8086/7110] 000680 00
Found 00:39 [8086/7111] 000101 00
PCI: IDE base address fixup for 00:07.1
Found 00:3a [8086/7112] 000c03 00
Found 00:3b [8086/7113] 000680 00
Found 00:88 [8086/124b] 000604 01
Fixups for bus 00
PCI: Scanning for ghost devices on bus 0
Scanning behind PCI bridge 00:01.0, config 010100, pass 0
Scanning bus 01
Found 01:00 [10c8/0006] 000300 00
Found 01:01 [10c8/8006] 000401 00
Fixups for bus 01
PCI: Scanning for ghost devices on bus 1
Bus scan for 01 returning with max=01
Scanning behind PCI bridge 00:03.0, config 00, pass 0
Scanning behind PCI bridge 00:03.1, config 00, pass 0
Scanning behind PCI bridge 00:11.0, config 020200, pass 0
Scanning bus 02
Found 02:08 [102b/051b] 000300 00
Found 02:28 [1095/0646] 000101 00
PCI: IDE base address fixup for 02:05.0
Found 02:38 [9004/6078] 000100 00
Found 02:40 [10b7/9050] 000200 00
Fixups for bus 02
PCI: Scanning for ghost devices on bus 2
Bus scan for 02 returning with max=02
Scanning behind PCI bridge 00:01.0, config 010100, pass 1
Scanning behind PCI bridge 00:03.0, config 00, pass 1
Scanning behind PCI bridge 00:03.1, config 00, pass 1
Scanning behind PCI bridge 00:11.0, config 020200, pass 1
Bus scan for 00 returning with max=0a
PCI: IRQ init
PCI: Interrupt Routing Table found at 0xc00fbd80
00:07 slot=00 0:00/ 1:00/ 2:00/ 3:63/def8
01:00 slot=00 0:60/def8 1:61/def8 2:00/ 3:00/
00:03 slot=00 0:63/def8 1:63/def8 2:00/ 3:00/
00:0d slot=00 0:62/def8 1:00/ 2:00/ 3:00/
00:11 slot=00 0:62/def8 1:62/def8 2:62/def8 3:62/def8
PCI: Bus 01 already known
PCI: Using IRQ router default [8086/1234] at 00:07.0
PCI: IRQ fixup
PCI: Allocating resources
PCI: Resource e000-e3ff (f=1208, d=0, p=0)
PCI: Resource 0860-086f (f=101, d=0, p=0)
PCI: Resource ece0-ecff (f=101, d=0, p=0)
PCI: Resource e780-e7ff (f=1208, d=0, p=0)
PCI: Resource fda0-fdaf (f=200, d=0, p=0)
PCI: Resource e500-e5ff (f=1208, d=0, p=0)
PCI: Resource fbffc000-fbff (f=200, d=0, p=0)
PCI: Cannot allocate resource region 1 of device 02:01.0
PCI: Resource fb00-fb7f (f=200, d=0, p=0)
PCI: Cannot allocate resource region 2 of device 02:01.0
PCI: Resource fcf8-fcff (f=109, d=0, p=0)
PCI: Cannot allocate resource region 0 of device 02:05.0
PCI: Resource fcf0-fcf3 (f=101, d=0, p=0)
PCI: Cannot allocate resource 

Re: Updated Linux 2.4 Status/TODO List (from the ALS show)

2000-10-13 Thread Richard Henderson

On Fri, Oct 13, 2000 at 02:25:45PM -0700, Linus Torvalds wrote:
> And even on alpha, a 32-bit atomic_t means we cover 45 bits of virtual
> address space, which, btw, is more than you can cram into the current
> three-level page tables, I think.

While that's true of Alpha, it's not true of Ultra III, in which
all 64-bits are in theory available to the user.  Dave hasn't
implemented that yet, AFAIK.


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: cannot connect to linuxtoday.com 80 with test9-pre9

2000-10-13 Thread Alan Cox

> If this is done, I recommend we immediately mark it as deprecated and likely
> to go away soon.  It's better to get people to upgrade their IOS than to
> force kludges.  If they have an old IOS, this is probably one of several
> issues that need fixing.

I have no hope of Linuxtoday fixing this. Their site is also remarkably
inaccessible if you are on a path with a <1500 byte MTU hop in the middle,
that problem is about 4 years old.

There are plenty of other news sites ;)

-
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 2.2.18 and GCC versions

2000-10-13 Thread Johan Kullstam

Harald Welte <[EMAIL PROTECTED]> writes:

> On Thu, Oct 12, 2000 at 11:59:51PM +0200, J . A . Magallon wrote:
> > Hi, everybody.
> > 
> > Kernel 2.2.18-pre15 compiles fine under gcc-2.95.2. It is just plain
> > 2.2.17 with Alan's patch to 18-pre15.
> > 
> > I downloaded the gcc-2.96 rpms from rufus, and the compilation process
> 
> there is no such thing as gcc-2.96. Try reading 
> 
> http://gcc.gnu.org/gcc-2.96.html

we know.  however, redhat's gcc patching does have that name.  hence
while it may not be "official" over at the gcc steering commitee,
gcc-2.96 does, in practice and fact, exist.  everyone knows what
redhat gcc-2.96 means.  don't be silly.

-- 
J o h a n  K u l l s t a m
[[EMAIL PROTECTED]]
Don't Fear the Penguin!
-
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: Updated Linux 2.4 Status/TODO List (from the ALS show)

2000-10-13 Thread Alan Cox

> On Fri, Oct 13, 2000 at 12:45:47PM +0100, Alan Cox wrote:
> > Can we always be sure the rss will fit in an atomic_t - is it > 32bits on the
> > ultrsparc/alpha ?
> 
> It is not.

Then we need to use locking to protect the rss since on a big 64bit box
we can exceed 2^32 pages in theory and probably soon in practice.

-
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: Updated 2.4 TODO List - more on PCI resources...]

2000-10-13 Thread Dag B

I have tested Linus' patch and it makes a difference:

cs: cb_alloc(bus 6): vendor 0x115d, device 0x0003
Found 06:00 [115d/0003] 000200 00
bus res 0 1200 1c00-1fff
bus res 1 200 2000-23ff
bus res 2 100 1800-18ff
bus res 0 1200 1c00-1fff
bus res 1 200 2000-23ff
bus res 0 1200 1c00-1fff
bus res 1 200 2000-23ff
bus res 0 1200 1c00-1fff
PCI: Error while updating region 06:00.0/6 (1c01 != 1801)
PCI: Enabling device 06:00.0 ( -> 0003)
Found 06:01 [115d/0103] 000300 00
bus res 0 1200 1c00-1fff
bus res 1 200 2000-23ff
bus res 2 100 1800-18ff
bus res 0 1200 1c00-1fff
bus res 1 200 2000-23ff
bus res 0 1200 1c00-1fff
bus res 1 200 2000-23ff
bus res 0 1200 1c00-1fff
PCI: Error while updating region 06:00.1/6 (1c004001 != 18004001)
PCI: Enabling device 06:00.1 ( -> 0003)
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 192k freed
Warning: unable to open an initial console.
cs: IO port probe 0x0c00-0x0cff: clean.
cs: IO port probe 0x0800-0x08ff: clean.
cs: IO port probe 0x0100-0x04ff: excluding 0x170-0x177 0x370-0x37f
0x4d0-0x4d7
cs: IO port probe 0x0a00-0x0aff: clean.
eth0: first available media type: MII
tulip_attach(06:00.0)
PCI: Enabling bus mastering for device 06:00.0
PCI: Setting latency timer of device 06:00.0 to 64
xircom_tulip_cb.c:v0.91 4/14/99 [EMAIL PROTECTED] (modified by
[EMAIL PROTECTED] for XIRCOM CBE, fixed by Doug Ledford)
eth1: Xircom Cardbus Adapter (DEC 21143 compatible mode) rev 3 at 0x1800,
00:00:00:00:00:00, IRQ 11.


lspci:
06:00.0 Ethernet controller: Xircom Cardbus Ethernet 10/100 (rev 03)
Subsystem: Xircom Cardbus Ethernet 10/100
Flags: bus master, medium devsel, latency 64, IRQ 11
I/O ports at 1800 [size=128]
Memory at 2000 (32-bit, non-prefetchable) [size=2K]
Memory at 2800 (32-bit, non-prefetchable) [size=2K]
Expansion ROM at 1c00 [size=16K]
Capabilities: [dc] Power Management version 1

06:00.1 VGA compatible controller: Xircom Cardbus Ethernet + 56k Modem
(rev
03) (prog-if 02)
Subsystem: Xircom CBEM56G-100 Ethernet + 56k Modem
Flags: medium devsel, IRQ 11
I/O ports at 1880 [size=8]
Memory at 20001000 (32-bit, non-prefetchable) [size=2K]
Memory at 20001800 (32-bit, non-prefetchable) [size=2K]
Expansion ROM at 1c004000 [size=16K]
Capabilities: [dc] Power Management version 1

It still doesn't work.
It looks very much like a stuck bit, but at least we get a slightly
"better" error message and the expansion ROM now gets enabled. progress!

Linus wants to "debug this to death" (his words, not mine) but I don't
have access to the suspect hardware for the next five weeks, and it will
probably be serviced some time during those weeks.

Thank you for being patient, Linus. And sorry for not being able to
provide more debug data. 


Dag B
-
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: A patch to loop.c for better cryption support

2000-10-13 Thread Marc Mutz

Andi Kleen wrote:
> 
> On Fri, Oct 13, 2000 at 05:04:08PM +, Marc Mutz wrote:
> > Andi Kleen wrote:
> > >
> > 
> > > 2.4 has already broken backwards compatibility to 2.2 (IV changed
> > > from disk absolute to relative). When you change it now (before 2.4.0)
> > > it is relatively painless. I think the change is a good idea.
> > 
> >
> > You're wrong. All kernels from int-2.2.10.4 onwards can be configured to
> > use relative block numbers as IV's. Both the FAQ in Documentation/crypto
> > and my HOWTO suggest to set CONFIG_BLK_DEV_LOOP_USE_REL_BLOCK to 'y'.
> 
> That is not a standard kernel option. I'm not talking about any unofficial
> patchkits like the i* patches, just about what the standard loop device does.
> An encryption module can be backwards compatible itself by mapping the blocks
> itself, but without changes it will have an incompatible on disk format.
> 

This thread was about encryption. And it was about IV's. The only
encryption that vanilla loop.c (from 2.2.17) offers is 'none' and 'xor'.
None is just that: a no-op. And xor does not use an IV. So the only
ciphers that could possibly have been adressed by this patch are the
ones in the kerneli patch. So the on-disk format did _not_ change
between recent int-2.2.x.y kernels and 2.4-testx, provided the user
followed the recommendations and used the previously mentioned option to
use relative block numbers as IV's.

Marc

-- 
Marc Mutz <[EMAIL PROTECTED]> http://EncryptionHOWTO.sourceforge.net/
University of Bielefeld, Dep. of Mathematics / Dep. of Physics

PGP-keyID's:   0xd46ce9ab (RSA), 0x7ae55b9e (DSS/DH)


-
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: A patch to loop.c for better cryption support

2000-10-13 Thread Marc Mutz

kernel wrote:
> 

> 
> Caution is advised when depending upon crypto systems that use relative
> block numbers as IV.  The security may not be a strong as hoped.
> There are some who believe that "not unique" IVs (across multiple
> filesystems) facilitates some methods of cryptanalysis.
> 
Do you have a paper reference? I know that there are issues when using
sequence numbers as IVs for CBC, but that is an isolated problem for
CBC-like modes.

> Strong security is the reason absolute block numbers were chosen at
> the time I introduced loop.c cipher-block-chaining support (in
> kernel 2.1.130).  This has the unfortunate side effect of preventing
> filesystem relocation... leading some to claim that loop.c is now
> broken.  A crypto system is only as strong as its weakest link.
> 

Perhaps we should make Counter mode available for loop_gen.c. It does
not have the artifacts that CBC has when seqence numbers are used as
IVs. On the contrary: sequential IVs are an integral part of CTR mode
encryption. This mode is not only just as secure as CBC, but has also
the added bonus of only requiring encryption, something the AES would
benfit from immensely, since decryption is so much slower for Rijndael
than encryption and reads (decryption) are typically used more often in
a filesystem than writes (encryption).

> Perhaps losetup can allow the user to specify a "IVseed" value
> and then pass to the transfer modules IVseed + relative block.
> This would also allow existing absolute block based encrypted file
> systems to be relocated (IVseed = absolute # of 1st block),


Hm, I don't get you here. If I was to use absolute block numbers as IVs
on a 1k block size ext2 filesystem, I could theoretically end up with
the following mapping of loop device blocks vs. ext2 blocks

Q> loop:0   1   2   3   4   5
Q> ext2:12  13  14  22  23  24

If I used IVseed = 12 here, the first three blocks would decrypt
correctly, yet the forth would decrypt to white noise.

> satisfy
> those among us who demand unique IVs, and allow those who prefer
> operational convenience at the cost of weaker security to do so.
> 

As CTR mode _requires_ unique IVs (CBC does not), the upper half of the
IV could be initialized from the key, whose length would thus grow by
50%. The lower half would contain the relative block number in units of
512 bytes.

> Reed H. Petty
> [EMAIL PROTECTED]

Marc

-- 
Marc Mutz <[EMAIL PROTECTED]> http://EncryptionHOWTO.sourceforge.net/
University of Bielefeld, Dep. of Mathematics / Dep. of Physics

PGP-keyID's:   0xd46ce9ab (RSA), 0x7ae55b9e (DSS/DH)

-
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-test6 network socket problems

2000-10-13 Thread Alan Cox

> I've found the problem.  This type of loop does not work:
> 
> do {
> alarm(t);
> read(fd);
> if (EINT)
>exception();
> else
>alarm(0);
> } while (data);
> 
> There are some semantics here that differ from other *nix where this
> works.  The read() won't come out when the alarm comes, and the socket
> will effectively become broken.

The restart or continue behaviour is undefined unless you use sigaction()
to control your signal behaviour (see POSIX.1 or SuS). Even then your code
is buggy on every OS I know

Suppose this happens..


alarm(1)
[sudden swap frenzy]
alarm is delivered.. do nothing
read

blocks forever. You need to make clever use of siglongjmp to avoid that one
occurring or use select/poll.


-
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] For 2.4: syscall revoke.

2000-10-13 Thread Alan Cox

> writer might be OK, but AFAICS there is nothing of that sort in the
> tree. We have such spinlocks, but I don't see how to apply that idea to
> semaphores. Besides, it ought to be small - every struct file will have to
> contain such beast.

It would mean a check when putting a file handle, which would be unpleasant
if not handled very carefully.

How about doing this in fput ?

if(IS_REVOKED(file) && file->f_ops != _ops)
{
file->f_ops = _ops;
wake_up(_wait);
}

that would mean that the ops change is done by the code paths that care about
the handle at the point it becomes unused. We could use a poll_table like
setup to handle the multi-fd wait if need be

How we make sure drivers return out of wait for event loops would need a bit
of thought but I think thats an unrelated problem.

-
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/



UMSDOS Problem with test10-pre2

2000-10-13 Thread Wayne . Brown



Apologies in advance if this is a known problem.  I've been away from kernel
hacking for about three years and just re-subscribed to lkml a couple of weeks
ago, so I may have missed something about this.  But I haven't been able to find
anything in the documentation or on lkml about it.  If it's in a FAQ or an
archive somewhere, don't waste bandwidth on the explanation; just point me to
the appropriate document and I'll RTFM.

I can't get  the most recent kernels to boot on an IBM ThinkPad 600X using
umsdos as the root fs.  *(An explanation and/or justification for using umsdos
appears at the end of this message.)*  The latest version that works for me is
2.3.51.  Starting with 2.3.99-pre1 it tries to mount root as msdos rather than
umsdos.  Here's the relevant output from a successful 2.3.51 boot.

Linux version 2.3.51 (root@beowulf) (gcc version egcs-2.91.66 19990314/Linux
(egcs-1.1.2 release)) #3 Fri Oct 6 13:45:58 CDT 2000
On node 0 totalpages: 16639
zone(0): 4096 pages.
zone(1): 12543 pages.
zone(2): 0 pages.
Initializing CPU#0
Detected 448451051 Hz processor.
Console: colour VGA+ 80x25
Calibrating delay loop... 447.28 BogoMIPS
Memory: 63220k/66556k available (1075k kernel code, 2948k reserved, 81k data,
164k init, 0k highmem)
Buffer-cache hash table entries: 4096 (order: 2, 16384 bytes)
Page-cache hash table entries: 32768 (order: 5, 131072 bytes)
CPU: Intel Pentium III (Coppermine) stepping 01
Checking 386/387 coupling... OK, FPU using exception 16 error reporting.
Checking 'hlt' instruction... OK.
POSIX conformance testing by UNIFIX
PCI: PCI BIOS revision 2.10 entry at 0xfd880
PCI: Using configuration type 1
PCI: Probing PCI hardware
PCI: Interrupt Routing Table found at 0xc00f9d70 [router type /]
Limiting direct PCI/PCI transfers.
Linux NET4.0 for Linux 2.3
Based upon Swansea University Computer Society NET3.039
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 4096 bind 4096)
Starting kswapd v1.6
pty: 256 Unix98 ptys configured
Uniform Multi-Platform E-IDE driver Revision: 6.30
ide: Assuming 40MHz system bus speed for PIO modes; override with idebus=xx
PIIX4: IDE controller on PCI bus 00 dev 39
PIIX4: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0xfcf0-0xfcf7, BIOS settings: hda:DMA, hdb:pio
ide1: BM-DMA at 0xfcf8-0xfcff, BIOS settings: hdc:DMA, hdd:pio
hd0: C/H/S=0/0/3 from BIOS ignored
hda: IBM-DARA-206000, ATA DISK drive
hdc: CRN-8241B, ATAPI CDROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
hda: IBM-DARA-206000, 5729MB w/418kB Cache, CHS=12416/15/63, UDMA(33)
Partition check:
 hda: [PTBL] [776/240/63] hda1 hda2
Linux PCMCIA Card Services 3.1.11
  options:  [pci] [cardbus] [pm]
Adding cardbus controller 0: Texas Instruments PCI1221
Yenta IRQ list 06f8, PCI irq11
Socket status: 3010
Adding cardbus controller 1: Texas Instruments PCI1221 (#2)
Yenta IRQ list 06f8, PCI irq11
Socket status: 3006
Intel PCIC probe: not found.
3c574_cs.c v1.08 9/24/98 Donald Becker/David Hinds, [EMAIL PROTECTED]

At this point with 2.3.51 I get these lines:

UMSDOS 0.86 (compatibility level 0.4, fast msdos)
check_pseudo_root: mounted as root
check_pseudo_root: found //linux
check_pseudo_root: found sbin/init, enabling pseudo-root
UMSDOS: changed to alternate root
VFS: Mounted root (umsdos filesystem) readonly.
Freeing unused kernel memory: 164k freed

and the system finishes booting normally.  But with later kernels, instead of
these last few lines I get this:

VFS: Mounted root (msdos filesystem) readonly.
Freeing unused kernel memory: 164k freed
Warning: unable to open an initial console.
Kernel panic: No init found. Try passing init= option to kernel.

and the system hangs.  No mention at all of umsdos or pseudo_root.  Notice that
it says it mounted root as msdos, not umsdos, so it makes sense that it can't
find init (or anything else) on that file system.

I've tried this with every combination of versions and configuration options I
can think of:  the default config, a config customized for exactly my hardware,
a config with everything stripped out except the minimum necessary to boot,
configs with everything possible compiled as modules, configs with no modules at
all...  I should mention here that all these ideas work fine on my desktop
system, which uses ext2 for the root fs.  But among other hardware differences,
the desktop machine is a homebuilt Pentium MMX system, while the ThinkPad is a
Pentium III.  So I'm not certain it's the umsdos part that's the problem.

Both systems have recent installs of Slackware 7.1 with egcs-1.1.2, and I've
upgraded binutils, modutils, etc. so that the versions are equal to or later
than what's in the latest Documentation/Changes file.  It doesn't matter whether
I boot using loadlin or from a diskette using lilo; the results are the same.
(In both cases I use "root=/dev/hda2 rw" to specify where 

Re: Updated Linux 2.4 Status/TODO List (from the ALS show)

2000-10-13 Thread Greg KH

On Fri, Oct 13, 2000 at 02:44:32AM +0200, FORT David wrote:
> 
> USB still have problems, when starting to grab with my ov511 webcam i got the
> attached oops. This bug appeared
> in test9-preX(X beeing at least > 2) series. Some people have claimed that
> test10-pre1 fixed the problem, but
> the bug is still present in the last two pre(test10-pre1 and test10-pre2).
> To be noted:
> -this oops is obtained with "Enforce USB bandwidth allocation", but it occurs
> in the same place when disabled
> -I'm using usb-uhci

Does this same problem happen when using the uhci.o driver?

greg k-h

-- 
greg@(kroah|wirex).com
http://immunix.org/~greg
-
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-pre8, usb, unresolved symbols

2000-10-13 Thread Greg KH

On Fri, Oct 13, 2000 at 01:52:12PM -0400, Claude LeFrancois (LMC) wrote:
> Hello, 
> 
> I had the same problem with the USB core driver compiled statically into
> the kernel 2.4.0-test10pre1. If I get the whole USB distribution
> compiled as a modules, everything works fine. Here is the content of my
> /proc/ksyms related to USB with the USB core driver compiled into the
> kernel. The __VERSIONED_SYMBOL seem strange to me. I think this is why
> the symbols are unresolved. Is it a compiler problem ? 

Can you send me your .config file that generates this?

And also can you do a 'sh scripts/ver_linux' from your 2.4.0-test10-pre1
directory?

thanks,

greg k-h

-- 
greg@(kroah|wirex).com
http://immunix.org/~greg
-
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: cannot connect to linuxtoday.com 80 with test9-pre9

2000-10-13 Thread David Ford

If this is done, I recommend we immediately mark it as deprecated and likely
to go away soon.  It's better to get people to upgrade their IOS than to
force kludges.  If they have an old IOS, this is probably one of several
issues that need fixing.

-d

Mike Jagdis wrote:

> > Right you are, both of you.  I guess was confusing 'route' with
> > 'interface' and didn't think of using multiple routes like that.  It
> > would be a kludge but whatever gets the job done..
>
> No more than some of the other route attributes like window, rtt,
> mtu, ssthresh etc.

--
  "There is a natural aristocracy among men. The grounds of this are
  virtue and talents", Thomas Jefferson [1742-1826], 3rd US President



-
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: Updated Linux 2.4 Status/TODO List (from the ALS show)

2000-10-13 Thread David S. Miller

   Date: Fri, 13 Oct 2000 12:45:47 +0100 (BST)
   From: Alan Cox <[EMAIL PROTECTED]>

   > It might make more sense to just make rss an atomic_t.

   Can we always be sure the rss will fit in an atomic_t - is it >
   32bits on the ultrsparc/alpha ?

Yes, this issue occurred to me last night as well.
It is 32-bit on Alpha/UltraSparc.

However, given the fact that this number measures "pages", the
PAGE_SIZE on Ultra/Alpha, and the size of the 64-bit user address
space on Ultra and Alpha, it would actually end up working.

This doesn't make it a good idea though.

Later,
David S. Miller
[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: Updated 2.4 TODO List - more on PCI resources...]

2000-10-13 Thread David Hinds

On Fri, Oct 13, 2000 at 02:22:32PM -0700, Dunlap, Randy wrote:
> I'm not familiar with yenta controllers/devices,
> and I'm not trying to throw you a tasty red herring,
> but...
> 
> yenta_config_init() does
> config_writeb(socket, PCI_CACHE_LINE_SIZE, 32);
> 
> Is this writing to the CardBus bridge or to the device's
> CacheLineSize register?

It is writing to the bridge.  I think it should probably actually be
L1_CACHE_BYTES/4.  I am not sure about the impact of an incorrect
setting.  Maybe Linus knows.

-- Dave
-
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: Nice oops from agpgart - 2.2 kernels and Alpha

2000-10-13 Thread Jeff Hartmann

Michal Jaegermann wrote:
> 
> On UP1100 Alpha with an AGP slot and "Advanced Micro Devices [AMD]
> AMD-751 [Irongate] System Controller" an attempt to use 'agpgart'
> support ends up with an oops. I tried 2.2.17 and 2.2.18pre15 kernels.
> With CONFIG_AGP=y and CONFIG_AGP_AMD=y resulting kernel gets stuck
> after oops and does not boot.  If CONFIG_AGP=m is used then an attempt
> to insert 'agpgart' module ends up with the following oops (after
> a run through 'ksymoops'):
> 
> ksymoops 2.3.4 on alpha 2.2.18pre15x.  Options used
>  -V (default)
>  -k /proc/ksyms (default)
>  -l /proc/modules (default)
>  -o /lib/modules/2.2.18pre15x/ (default)
>  -m /boot/System.map-2.2.18pre15x (specified)
> 
> Unable to handle kernel paging request at virtual address 6204
> insmod(1048): Oops 1
> pc = []  ra = []  ps = 
> Using defaults from ksymoops -t elf64-alpha -a alpha
> v0 =   t0 = 6200  t1 = 6200
> t2 = 0c322000  t3 = fc802000  t4 = fe85
> t5 = fe85  t6 = fffe  t7 = fc000c2a
> s0 = fe844e50  s1 = fe844f50  s2 = fe844cb0
> s3 = 0001  s4 = 0001  s5 = fe844e50
> s6 = fe840090  a0 = fd01fe14  a1 = 00b0
> a2 = 0080  a3 = fc569310  a4 = fc000c2a3d60
> a5 = fc000c2a3d58  t8 = 0001  t9 = fc523078
> t10=   t11= fc523070  pv = fc31d640
>  47f01412  or zero,128,a2
>  4441f102  andnot t1,15,t1
>  44420401  or t1,t1,t0
>  b05e0020  stl t1,32(sp)
>  4821f621  zapnot t0,15,t0
>  b42a  stq t0,0(s1)
>  a6090028  ldq a0,40(s0)
> Trace: 332014 33bc18 310cf8 42fe80
> Warning (Oops_read): Code line not seen, dumping what data is available
> 
> >>PC;  fe841ba8 <[agpgart]amd_irongate_configure+68/140>   <=
> Trace; 00332014 Before first symbol
> Trace; 0033bc18 Before first symbol
> Trace; 00310cf8 Before first symbol
> Trace; 0042fe80 Before first symbol
> 
> 1 warning issued.  Results may not be reliable.
> 
> followed by a "Segmentation fault" from insmod.  Unfortunately option
> -m produces an empty symbol map for the module; also later the module
> is not removable with the following output from lsmod:
> 
> agpgart21312   1  (initializing)
> 
> This bomb happens on this code
> 
> /* Write out the address of the gatt table */
> OUTREG32(amd_irongate_private.registers, AMD_ATTBASE,
>  agp_bridge.gatt_bus_addr);
> 
> from amd_irongate_configure() in drivers/char/agp/agpgart_be.c.
> I dropped few printk's there like that:
> 
> /* Get the memory mapped registers */
> pci_read_config_dword(agp_bridge.dev, AMD_MMBASE, );
> printk(KERN_INFO PFX "Read irongate temp %x\n", temp);
> temp = (temp & PCI_BASE_ADDRESS_MEM_MASK);
> printk(KERN_INFO PFX "Masked temp to %x\n", temp);
> amd_irongate_private.registers = (volatile u8 *) ioremap(temp, 4096);
> printk(KERN_INFO PFX "Updated private registers to %x\n",
>amd_irongate_private.registers);
> 
> and results are as follows:
> 
> Linux agpgart interface v0.99 (c) Jeff Hartmann
> agpgart: Maximum main memory to use for agp memory: 204M
> agpgart: Detected AMD Irongate chipset
> agpgart: Read irongate temp 6208
> agpgart: Masked temp to 6200
> agpgart: Updated private registers to 6200
> Unable to handle kernel paging request at virtual address 6204
> 
> Any ideas what is wrong with this picture?

I have not tried this on an alpha before, and I wouldn't be surprised
that its broken.  Someone attempted to get agpgart going on the alpha
awhile ago, but I don't think they ever followed through.  I think I
might be able to get access to an alpha w/ the Irongate, I'll see what I
can do.  I do know there will be a few issues (64-bit issues, cache
flushing issues, etc.), so I can't promise that it will be fast.  Btw,
does the Alpha have something resembling i386 UCWC'ed memory?  If so
could someone point me at some docs?

> 
> BTW - despite the following commment in drivers/char/drm/drm.h
> "Dec 1999, Richard Henderson <[EMAIL PROTECTED]>, move to generic cmpxchg."
> an attempt to compile 'drm' module includes some x86 specific code
> from drivers/char/drm/drmP.h, like this:
> 
> __asm__ __volatile__(LOCK_PREFIX "cmpxchgb %b1,%2"
>  : "=a"(prev)
>  : "q"(new), "m"(*__xg(ptr)), "0"(old)
>  : "memory");
> 
> and, as you can guess, does not compile on Alpha.  But that is the
> next problem after 'agpgart'. :-)
> 
>   Michal
>   [EMAIL PROTECTED]
>   [EMAIL PROTECTED]

I believe this is fixed in the latest 2.4.0-test.  However I believe
that the only driver that has been tested on the alpha is the 3Dfx
driver.  The other drivers are 

Re: Kernel 2.2.18 and GCC versions

2000-10-13 Thread J . A . Magallon


On Fri, 13 Oct 2000 13:38:19 Chmouel Boudjnah wrote:
> "J . A . Magallon" <[EMAIL PROTECTED]> writes:
> 
> > I have a little problem when compiling new kernels. I run Mandrake 7.1
> > with many many updates (its almost 7.2beta).
> 
> install the last egcs package from 7.2b and compile with kgcc (will be
> autodetect by the kernel).
> 
Please, correct me if I miss anything. I got egcs-cpp-1.1.2-33mdk and
egcs-1.1.2-33mdk from rpmfind.net. After rpm -U, do:

werewolf:~/soft/dev# ls /usr/lib/gcc-lib/i586-mandrake-linux/egcs-2.91.66
SYSCALLS.c.X  collect2*  crtbegin.o   crtend.o   include/  libgcc.map
cc1*  cpp*   crtbeginS.o  crtendS.o  libgcc.a  specs

Write a silly thing like "int main() {}" in kk.c and egcs breaks out
of the box:

werewolf:~> kgcc kk.c -o kk
gcc: installation problem, cannot exec `cpp0': No such file or directory

Solved by ln -s cpp cpp0. But when you try to compile kernel, the same
problem is found with a missing 'tradcpp0', that also appears if you try:

werewolf:~> kgcc -traditional kk.c -o kk
gcc: installation problem, cannot exec `tradcpp0': No such file or
directory

I tried the same trick with 'ln -s', but then 'make bzImage' stops at:
trampoline.S:47: unterminated character constant

So something is missing in rpms, or is mis-packaged in any other part of
egcs
I didn't install, such as g++ or so.


--
Juan Antonio Magallon Lacarta
mailto:[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: test10-pre2

2000-10-13 Thread Richard Henderson

On Fri, Oct 13, 2000 at 02:23:44PM -0700, Linus Torvalds wrote:
> ... but on a 3-level page table (whether with PAE on x86 or on alpha),
> you could easily just decide to limit the vmalloc() area to a a gigabyte
> or two and handle it with just one PGD entry..

I'm undecided.  For normal usage, certainly there's no issue there.
But I was thinking about TUX-like kernel applications running on big
memory machines -- you'd now only be able to use 8G of the 32G you
purchased because of lack of vmalloc space.

Perhaps it's just not worth worrying about.


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: Updated Linux 2.4 Status/TODO List (from the ALS show)

2000-10-13 Thread Linus Torvalds



On Fri, 13 Oct 2000, Jakub Jelinek wrote:

> On Fri, Oct 13, 2000 at 02:17:23PM -0700, Richard Henderson wrote:
> > On Fri, Oct 13, 2000 at 12:45:47PM +0100, Alan Cox wrote:
> > > Can we always be sure the rss will fit in an atomic_t - is it > 32bits on the
> > > ultrsparc/alpha ?
> > 
> > It is not.
> 
> It is not even 32bit on sparc32 (24bit only).

But remember that "rss" counts in pages, so it's plenty for sparc32: only
32 bits of virtual address  that can count towards the rss.

And even on alpha, a 32-bit atomic_t means we cover 45 bits of virtual
address space, which, btw, is more than you can cram into the current
three-level page tables, I think.

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: test10-pre2

2000-10-13 Thread Linus Torvalds



On Fri, 13 Oct 2000, Richard Henderson wrote:

> On Fri, Oct 13, 2000 at 12:22:35PM -0700, Linus Torvalds wrote:
> > The PGD is 1024 entries, and the last one is used by the self-mapping
> > stuff. But the VMALLOC area is NOT there ...
> 
> Ok, I was slightly confused.  Yes, the vptb is at 0xfffe
> not 0xfe00.  The bit I was remembering is the SRM callback
> console setup, which _does_ exist in the same PGD as vmalloc.  But
> that, of course, would only be true if you were running SRM.
> 
> Thanks for the patch, Ivan.

Note that it would be nicer to _not_ do the page fault case anyway, and
just extend on the current special case of one PGD entry - just make that
one PGD entry be two, and pre-allocate the (one) PMD entry that you use
for SRM callbacks and vmalloc(), and fill it into each page directory so
that set_pgdir() is basically "pre-done" and thus nothing ever needs to be
done afterwards.

That simplifies the page fault handling.

Not that the test and conditional branch probably matters all that much,
but still.. We cannot do this on a 2-level x86 page table because we don't
want to limit the vmalloc() area to 4MB, but on a 3-level page table
(whether with PAE on x86 or on alpha), you could easily just decide to
limit the vmalloc() area to a a gigabyte or two and handle it with just
one PGD entry..

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: Updated 2.4 TODO List - more on PCI resources...]

2000-10-13 Thread Dunlap, Randy

I'm not familiar with yenta controllers/devices,
and I'm not trying to throw you a tasty red herring,
but...

yenta_config_init() does
config_writeb(socket, PCI_CACHE_LINE_SIZE, 32);

Is this writing to the CardBus bridge or to the device's
CacheLineSize register?

If the latter, and given that PCI_CACHE_LINE_SIZE is in
units of 4-byte "words", is 32 [= 128 bytes] a good value
to use?  If so, why?

Or is it OK because it is setting a PCI bridge device's
cache line size?

>From TI's PCI1451 GJG CardBus controller spec:
4.8 Cache Line Size Register
The cache line size register is programmed by host software to indicate
the system cache line size.

Thanks,
~Randy

-
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: Updated Linux 2.4 Status/TODO List (from the ALS show)

2000-10-13 Thread Jakub Jelinek

On Fri, Oct 13, 2000 at 02:17:23PM -0700, Richard Henderson wrote:
> On Fri, Oct 13, 2000 at 12:45:47PM +0100, Alan Cox wrote:
> > Can we always be sure the rss will fit in an atomic_t - is it > 32bits on the
> > ultrsparc/alpha ?
> 
> It is not.

It is not even 32bit on sparc32 (24bit only).

Jakub
-
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: Updated Linux 2.4 Status/TODO List (from the ALS show)

2000-10-13 Thread Richard Henderson

On Fri, Oct 13, 2000 at 12:45:47PM +0100, Alan Cox wrote:
> Can we always be sure the rss will fit in an atomic_t - is it > 32bits on the
> ultrsparc/alpha ?

It is not.


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: 2.4.0-test6 network socket problems

2000-10-13 Thread Richard B. Johnson

On Fri, 13 Oct 2000, J. Scott Kasten wrote:

> I've found the problem.  This type of loop does not work:
> 
> do {
> alarm(t);
> read(fd);
> if (EINT)
>exception();
> else
>alarm(0);
> } while (data);
> 
> There are some semantics here that differ from other *nix where this
> works.  The read() won't come out when the alarm comes, and the socket
> will effectively become broken.
> 
> Instead, it appears that I needed to use select(), which probably would
> have been better in the first place anyway.
> 
> Thanks to anyone that took the time to look at this.
> 

You can certainly use select() and it's 'better' and more useful.
However, the problem is the default nature of the way signal() in the 'C'
runtime library sets up the handler.

You should use sigaction() without the SA_RESTART flag. This lets
a signal unblock a system call, the resulting errno being EINTER.


Cheers,
Dick Johnson

Penguin : Linux version 2.2.17 on an i686 machine (801.18 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: dual head r128

2000-10-13 Thread Geert Uytterhoeven

On Fri, 13 Oct 2000, Benjamin Herrenschmidt wrote:
> >Or, more general, treat [PCI] I/O space similar to [PCI] memory space. Just
> >like we must use ioremap() for memory space:
> >
> >cookie = ioremap(memory_space_address, size);
> >x = readb(cookie+offset);
> >
> >we could have ioportremap() for I/O space:
> >
> >cookie = ioportremap(io_space_address, size);
> >x = inb(cookie+offset);
> >
> >On PC, ioportremap(x) would evaluate to (x). On other platforms, we can do
> >whatever we want.
> 
> That would make us fall in the same trap as we are now with multiple IO
> busses having overlapping IO mappings. (Basically, every IO bus on some
> multi-bus systems have 0->64k IO range). ioportremap() cannot "know" on
> which bus the device is, except if we also pass the pci_dev* parameter
> (and NULL for ISA).

But you can fixup all pci_dev's so bus 0 takes 0x0-0x0f, bus 1 takes
0x1-0x1, and so on. ioportremap() finds out the bus by looking at the
region.

I/O space is not limited to 64 kB on non-ia32, we can use the full size of an
unsigned long.

Legacy I/O mappings (`I have legacy lp0 on bus 0 and legacy lp1 on bus 1') can
be sorted out in ioportremap() as well.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [EMAIL PROTECTED]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

-
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: A patch to loop.c for better cryption support

2000-10-13 Thread kernel

On Fri, Oct 13, 2000 at 04:28:30AM +0200, Andi Kleen wrote:
(snip)
> 2.4 has already broken backwards compatibility to 2.2 (IV changed
> from disk absolute to relative). When you change it now (before 2.4.0) 
> it is relatively painless. I think the change is a good idea. 
> 

Caution is advised when depending upon crypto systems that use relative 
block numbers as IV.  The security may not be a strong as hoped.
There are some who believe that "not unique" IVs (across multiple 
filesystems) facilitates some methods of cryptanalysis.

Strong security is the reason absolute block numbers were chosen at
the time I introduced loop.c cipher-block-chaining support (in 
kernel 2.1.130).  This has the unfortunate side effect of preventing 
filesystem relocation... leading some to claim that loop.c is now 
broken.  A crypto system is only as strong as its weakest link.

Perhaps losetup can allow the user to specify a "IVseed" value
and then pass to the transfer modules IVseed + relative block.
This would also allow existing absolute block based encrypted file
systems to be relocated (IVseed = absolute # of 1st block), satisfy
those among us who demand unique IVs, and allow those who prefer 
operational convenience at the cost of weaker security to do so.

Reed H. Petty
[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-test6 network socket problems

2000-10-13 Thread J. Scott Kasten

I've found the problem.  This type of loop does not work:

do {
alarm(t);
read(fd);
if (EINT)
   exception();
else
   alarm(0);
} while (data);

There are some semantics here that differ from other *nix where this
works.  The read() won't come out when the alarm comes, and the socket
will effectively become broken.

Instead, it appears that I needed to use select(), which probably would
have been better in the first place anyway.

Thanks to anyone that took the time to look at this.

-S-



> I'm working with test6 on an embedded
> QED MIPS arch in big endian mode. I
> have run into some bizarre socket problems that appear to affect both
> udp and tcp transport.  Applications actively using sockets (examples,
> ftp, tftp, others...) will unexpectedly stop receiving data on the
> socket, even though data is present.  The process will be forever
> sleeping on the read even though data is queued up.  To illustrate my
> point, I've dug deep into the udp code (net/ipv4/udp.c) and the
> datagram core (net/core/datagram.c) researching the simple tftp
> example.

-
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-test10-pre2 - drivers/net/rcpci45.c - conflicting types

2000-10-13 Thread Francois Romieu

gcc -D__KERNEL__ -I/tmp/romieu/tmp/linux-2.4.0-test10-pre2/include -Wall 
-Wstrict-prototypes -O2 -fomit-frame-pointer -pipe   -march=i686 -fno-strict-aliasing 
-DMODULE -DMODVERSIONS -include 
/tmp/romieu/tmp/linux-2.4.0-test10-pre2/include/linux/modversions.h   -c -o rcpci45.o 
rcpci45.c
In file included from rcpci45.c:79:
rclanmtl.h:73: redefinition of `u16'
/tmp/romieu/tmp/linux-2.4.0-test10-pre2/include/asm/types.h:34: `u16' previously 
declared here
rclanmtl.h:75: conflicting types for `u32'
/tmp/romieu/tmp/linux-2.4.0-test10-pre2/include/asm/types.h:37: previous declaration 
of `u32'
make[2]: *** [rcpci45.o] Error 1
make[2]: Leaving directory `/tmp/romieu/tmp/linux-2.4.0-test10-pre2/drivers/net'
make[1]: *** [_modsubdir_net] Error 2
make[1]: Leaving directory `/tmp/romieu/tmp/linux-2.4.0-test10-pre2/drivers'
make: *** [_mod_drivers] Error 2

drivers/net/rclanmtl.h defines U8, U16 and U32 for its own usage and
it seems to clashes with include/net/divert.h (coming from 
./include/linux/netdevice.h).

I s/ed the rpci45 driver with u8,16,32. Should the same be done for divert ?

-- 
Ueimor

 1.bz2


[linux-fbdev] [PATCH] updated vgacon/vga16fb work

2000-10-13 Thread James Simmons


Hi!

 Here is more updated work on the vgacon to fbcon to vgacon again code. I
almost got it. I just need to figure out how to free up the resources from
the fbdev drivers I tried it out on. I have attemped on the G400 matrox
driver and the vga16 driver. Both give a : Device or resource busy
when I go to rrmod it. 

 newvga.diff.gz


kernel BUG at inode.c:441

2000-10-13 Thread Jonathan Hudson


with 2.4.0test10-pre2

ksymoops 2.3.3 on i686 2.4.0-test10.  Options used
 -v /usr/src/linux/vmlinux (specified)
 -k /proc/ksyms (default)
 -l /proc/modules (default)
 -o /lib/modules/2.4.0-test10/ (default)
 -m /usr/src/linux/System.map (default)

Oct 13 20:28:58 trespassersw kernel: invalid operand:  
Oct 13 20:28:58 trespassersw kernel: CPU:0 
Oct 13 20:28:58 trespassersw kernel: EIP:0010:[prune_icache+133/232] 
Oct 13 20:28:58 trespassersw kernel: EIP:0010:[] 
Using defaults from ksymoops -t elf32-i386 -a i386
Oct 13 20:28:58 trespassersw kernel: EFLAGS: 00010282 
Oct 13 20:28:58 trespassersw kernel: eax: 001b   ebx: c171e9e8   ecx: c1236000   
edx:  
Oct 13 20:28:58 trespassersw kernel: esi: c171e9e0   edi: c64196e8   ebp: c1237fa8   
esp: c1237f84 
Oct 13 20:28:58 trespassersw kernel: ds: 0018   es: 0018   ss: 0018 
Oct 13 20:28:58 trespassersw kernel: Process kswapd (pid: 2, stackpage=c1237000) 
Oct 13 20:28:58 trespassersw kernel: Stack: c01ddb0a c01ddbc1 01b9  
0004 006f 0353 c680e548  
Oct 13 20:28:58 trespassersw kernel:c3359c48  c013f745 01ad 
c0128f67 0006 0004 0006  
Oct 13 20:28:58 trespassersw kernel:0004  c01da3d7 c1236239 
0008e000 c0128fff 0004   
Oct 13 20:28:58 trespassersw kernel: Call Trace: [tvecs+21694/76116] 
[tvecs+21877/76116] [shrink_icache_memory+33/48] [do_try_to_free_pages+91/128] 
[tvecs+7563/76116] [kswapd+115/308] [kernel_thread+40/56]  
Oct 13 20:28:58 trespassersw kernel: Call Trace: [] [] 
[] [] [] [] []  
Oct 13 20:28:58 trespassersw kernel: Code: 0f 0b 83 c4 0c 8b 53 04 8b 03 89 50 04 89 
02 8b 53 fc 8b 43  

>>EIP; c013f6c1<=
Trace; c01ddb0a 
Trace; c01ddbc1 
Trace; c013f745 
Trace; c0128f67 
Trace; c01da3d7 
Trace; c0128fff 
Trace; c0108a3c 
Code;  c013f6c1 
 <_EIP>:
Code;  c013f6c1<=
   0:   0f 0b ud2a  <=
Code;  c013f6c3 
   2:   83 c4 0c  add$0xc,%esp
Code;  c013f6c6 
   5:   8b 53 04  mov0x4(%ebx),%edx
Code;  c013f6c9 
   8:   8b 03 mov(%ebx),%eax
Code;  c013f6cb 
   a:   89 50 04  mov%edx,0x4(%eax)
Code;  c013f6ce 
   d:   89 02 mov%eax,(%edx)
Code;  c013f6d0 
   f:   8b 53 fc  mov0xfffc(%ebx),%edx
Code;  c013f6d3 
  12:   8b 43 00  mov0x0(%ebx),%eax

Let me know if any more info required.

-
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/



Nice oops from agpgart - 2.2 kernels and Alpha

2000-10-13 Thread Michal Jaegermann


On UP1100 Alpha with an AGP slot and "Advanced Micro Devices [AMD]
AMD-751 [Irongate] System Controller" an attempt to use 'agpgart'
support ends up with an oops. I tried 2.2.17 and 2.2.18pre15 kernels.
With CONFIG_AGP=y and CONFIG_AGP_AMD=y resulting kernel gets stuck
after oops and does not boot.  If CONFIG_AGP=m is used then an attempt
to insert 'agpgart' module ends up with the following oops (after
a run through 'ksymoops'):

ksymoops 2.3.4 on alpha 2.2.18pre15x.  Options used
 -V (default)
 -k /proc/ksyms (default)
 -l /proc/modules (default)
 -o /lib/modules/2.2.18pre15x/ (default)
 -m /boot/System.map-2.2.18pre15x (specified)

Unable to handle kernel paging request at virtual address 6204
insmod(1048): Oops 1
pc = []  ra = []  ps = 
Using defaults from ksymoops -t elf64-alpha -a alpha
v0 =   t0 = 6200  t1 = 6200
t2 = 0c322000  t3 = fc802000  t4 = fe85
t5 = fe85  t6 = fffe  t7 = fc000c2a
s0 = fe844e50  s1 = fe844f50  s2 = fe844cb0
s3 = 0001  s4 = 0001  s5 = fe844e50
s6 = fe840090  a0 = fd01fe14  a1 = 00b0
a2 = 0080  a3 = fc569310  a4 = fc000c2a3d60
a5 = fc000c2a3d58  t8 = 0001  t9 = fc523078
t10=   t11= fc523070  pv = fc31d640
 47f01412  or zero,128,a2
 4441f102  andnot t1,15,t1
 44420401  or t1,t1,t0
 b05e0020  stl t1,32(sp)
 4821f621  zapnot t0,15,t0
 b42a  stq t0,0(s1)
 a6090028  ldq a0,40(s0)
Trace: 332014 33bc18 310cf8 42fe80 
Warning (Oops_read): Code line not seen, dumping what data is available

>>PC;  fe841ba8 <[agpgart]amd_irongate_configure+68/140>   <=
Trace; 00332014 Before first symbol
Trace; 0033bc18 Before first symbol
Trace; 00310cf8 Before first symbol
Trace; 0042fe80 Before first symbol

1 warning issued.  Results may not be reliable.

followed by a "Segmentation fault" from insmod.  Unfortunately option
-m produces an empty symbol map for the module; also later the module
is not removable with the following output from lsmod:

agpgart21312   1  (initializing)

This bomb happens on this code

/* Write out the address of the gatt table */
OUTREG32(amd_irongate_private.registers, AMD_ATTBASE,
 agp_bridge.gatt_bus_addr);

from amd_irongate_configure() in drivers/char/agp/agpgart_be.c.
I dropped few printk's there like that:

/* Get the memory mapped registers */
pci_read_config_dword(agp_bridge.dev, AMD_MMBASE, );
printk(KERN_INFO PFX "Read irongate temp %x\n", temp);
temp = (temp & PCI_BASE_ADDRESS_MEM_MASK);
printk(KERN_INFO PFX "Masked temp to %x\n", temp);
amd_irongate_private.registers = (volatile u8 *) ioremap(temp, 4096);
printk(KERN_INFO PFX "Updated private registers to %x\n",
   amd_irongate_private.registers);

and results are as follows:

Linux agpgart interface v0.99 (c) Jeff Hartmann
agpgart: Maximum main memory to use for agp memory: 204M
agpgart: Detected AMD Irongate chipset
agpgart: Read irongate temp 6208
agpgart: Masked temp to 6200
agpgart: Updated private registers to 6200
Unable to handle kernel paging request at virtual address 6204

Any ideas what is wrong with this picture?

BTW - despite the following commment in drivers/char/drm/drm.h
"Dec 1999, Richard Henderson <[EMAIL PROTECTED]>, move to generic cmpxchg."
an attempt to compile 'drm' module includes some x86 specific code
from drivers/char/drm/drmP.h, like this:

__asm__ __volatile__(LOCK_PREFIX "cmpxchgb %b1,%2"
 : "=a"(prev)
 : "q"(new), "m"(*__xg(ptr)), "0"(old)
 : "memory");

and, as you can guess, does not compile on Alpha.  But that is the
next problem after 'agpgart'. :-)

  Michal
  [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: unresolved symbols in ipx module

2000-10-13 Thread Michael Vines

On Fri, 13 Oct 2000, John Williams wrote:

> This means to add ipx to the kernel, I have to rebuild the entire kernel
> and boot with it in order to satisfy the dependancies.  I cannot just
> compile it as a module and add it because it has non-modular
dependancies.

I encountered this same problem with the Appletalk module a couple days
ago.

I compiled my kernel (2.2.17) with Appletalk disabled, then realized that
I needed it so I built it as a module.  But it wouldn't load because it
required register_snap_client() and unregister_snap_client().

Rebuilding my kernel solved the problem, but it took a little digging
through Makefiles to figure out what was actually going on

Michael


   

-
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: test10-pre2

2000-10-13 Thread Richard Henderson

On Fri, Oct 13, 2000 at 12:22:35PM -0700, Linus Torvalds wrote:
> The PGD is 1024 entries, and the last one is used by the self-mapping
> stuff. But the VMALLOC area is NOT there ...

Ok, I was slightly confused.  Yes, the vptb is at 0xfffe
not 0xfe00.  The bit I was remembering is the SRM callback
console setup, which _does_ exist in the same PGD as vmalloc.  But
that, of course, would only be true if you were running SRM.

Thanks for the patch, Ivan.


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/



unresolved symbols in ipx module

2000-10-13 Thread John Williams

About a year ago there was a short thread about unresolved symbols in the
ipx module, which doesn't appear to have come to a solution.  I have just
had the same problem, and have some new information to add.

(kernel 2.2.16 on Redhat 6.2)

The problem:  "depmod -ae" says
depmod: *** Unresolved symbols in /lib/modules/2.2.16/misc/ipx.o
depmod: make_EII_client
depmod: destroy_EII_client
depmod: register_8022_client_Rsmp_934262ba
depmod: unregister_8022_client_Rsmp_7acef15d
depmod: register_snap_client_Rsmp_612bcc66
depmod: unregister_snap_client_Rsmp_9abefc50
depmod: make_8023_client
depmod: destroy_8023_client



The cause:
I was running a kernel without ipx capabilities, but decided I wanted to
mount some Netware volumes.  So I assumed I could just compile the
appropriate modules, add them to the running kernel, and away I go...

Unfortunately the above error happens.

Looking around the kernel sources, I see that the symbols are defined in 
net/ethernet/pe2.c, net/802/p8022.c, net/802/p8023.c, and net/802/psnap.c.
If I understand the Makefiles correctly, the EII, 8022, and snap symbols
are compiled directly into the kernel, but only if IPX_CONFIG is defined.

This means to add ipx to the kernel, I have to rebuild the entire kernel
and boot with it in order to satisfy the dependancies.  I cannot just
compile it as a module and add it because it has non-modular dependancies.

OTOH, make_8023_client and destroy_8023_client are already in the kernel,
but are still not resolving.  I haven't figured that out yet.  Any hints?

I hope this defines the problem well enough that someone more experienced
than me can fix it.  Or give me some pointers on what to do.  I assume it
would require making pe2, p8022, p8023, and psnap modular, but I don't
know how to do that yet.

~ John Williams


-
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: Dell smp won't boot

2000-10-13 Thread Matt_Domsch

It's likely the megaraid driver.  Try the megaraid driver that's in the
latest 2.2.18pre.
Thanks,
Matt

-Original Message-
From: Greg Hennessy [mailto:[EMAIL PROTECTED]]
Sent: Friday, October 13, 2000 2:59 PM
To: [EMAIL PROTECTED]
Subject: Dell smp won't boot


One of my dual cpu dell server running 2.2.15 has stopped booting.
It gets part way through the boot process and rints

wait_oin_bh, cpu 1
irq: 0 [0 0]
bh: 1 [1 0]
<[c010aefd]> <[c0119ecf]> <[c011a029]> <[c0113ad0]> <[c010933c]>

and repeats. Might this be a software problem, or should I simply call
in for a tech support person to schedule a site visit.

-
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: large memory support for x86

2000-10-13 Thread Brian Gerst

Timur Tabi wrote:
> I understand that a normal virtual address (i.e. a pointer) can only address a
> single 32-bit (4GB) memory block.  My point was that by also using more than
> one 16-bit selector, you can have multiple 4GB areas.  So for instance,
> 1000: can point to one physical address, and 1001: can point a
> different physical address.
> 
> Yes, this means that you need to use multiple selectors in order to access more
> than 4GB of virtual space.

If you were to try to overflow the linear address you would either get a
fault or a wraparound.  It won't work like the old DOS highmem tricks.

> According to section 3.8 of Intel's P3 manual, Volume 3, enabling the PAE
> increases the size of the page table entries to 64 bits.  There are other
> changes, such as extended the 20-bit page directory base address to 27 bits.
> All this means that a virtual address (selector:offset) can point to a physical
> address larger than 32 bits.
> 
> Frankly, the whole thing makes my head hurt.

Section 3.9.1, quote:
"No matter which 36-bit addressing feature is used (PAE or 36-bit PSE),
the linear address space of the processor remains at 32 bits.
Applications must partition the address space of their work loads across
multiple operating system processes to take advantage of the additonal
physical memory provided in the system."

--

Brian Gerst
-
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/



Dell smp won't boot

2000-10-13 Thread Greg Hennessy

One of my dual cpu dell server running 2.2.15 has stopped booting.
It gets part way through the boot process and rints

wait_oin_bh, cpu 1
irq: 0 [0 0]
bh: 1 [1 0]
<[c010aefd]> <[c0119ecf]> <[c011a029]> <[c0113ad0]> <[c010933c]>

and repeats. Might this be a software problem, or should I simply call
in for a tech support person to schedule a site visit.

-
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: large memory support for x86

2000-10-13 Thread Alexander Viro



On Fri, 13 Oct 2000, Timur Tabi wrote:

> ** Reply to message from Alexander Viro <[EMAIL PROTECTED]> on Fri, 13 Oct 2000
> 15:25:31 -0400 (EDT)
> 
> 
> > Ditto with PAE: 16:32->32->36.
> > In _all_ cases you are limited by the size of linear address. I.e. all
> > address modes are limited to 4Gb. All you can get from PAE is placing of
> > these 4Gb in 64Gb of physical memory.
> 
> Then how are you supposed to access all 64GB of RAM in your machine?  The
> kernel must be able to access all 64GB of RAM at once, otherwise it can't do
> proper memory management.

Kernel doesn't have to access it all at once. Most of the time it doesn't
care about the contents of most pages. It certainly needs some permanently
mapped stuff, but it's _way_ less than the full memory. The rest is mapped
and unmapped on demand. That's what kmap() and kunmap() do.

Moreover, 4.4BSD derivatives never bothered mapping the whole physical
memory in kernel space, even on 386. It's more complex than what we used
to do, but it's doable quite fine. There is no need to keep the whole
memory mapped by the kernel.

> I've been reading on the PAE in Intel's manuals.  I admit, some of it is over
> my head.  I was under the impression that it was 16:32->64->36 with PAE enabled.

Nope. 16:32->32->36. Paging is _after_ the 32-bit bottleneck. You'ld have
to change segment descriptors format to expand it.

-
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 2.2.18 and GCC versions

2000-10-13 Thread J . A . Magallon


On Fri, 13 Oct 2000 13:37:21 Andre Tomt wrote:
> 
> I have to be wicked crazy - but:
> Linux version 2.2.18pre15 (root@juce) (gcc version 2.97 20001010
> (experimental)) #7 Tue Oct 10 20:18:58 CEST 2000
> 
> It seems to "work", but it hasn't been put under stress, yet.
> The reason I tried the kernel with 2.97 was the -march=athlon option.
> 

It's 2.97, not 2.96. I think it is some strange bug with cpp not handling
va-arg macros in -traditional mode as the Makefile in 
arch/i386/lib states.

-- 
Juan Antonio Magallon Lacarta 
mailto:[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: large memory support for x86

2000-10-13 Thread Alexander Viro



On Fri, 13 Oct 2000, Timur Tabi wrote:

> I understand that a normal virtual address (i.e. a pointer) can only address a
> single 32-bit (4GB) memory block.  My point was that by also using more than
> one 16-bit selector, you can have multiple 4GB areas.  So for instance,
> 1000: can point to one physical address, and 1001: can point a
> different physical address.

_All_ of them are piped through the 4Gb address space. I.e. every segment
is mapped to a part of the same (for all segments) 4Gb. That address space
is, in turn, mapped to 64Gb of physical memory. At any moment you can't
get more than 2^32 different elements of physical memory accessible, even
though you have 48 bits of address in the beginning and 36 bits in the
end.

Think of it that way: we have two functions:

u32 map_segment(u48);
u36 map_paging(u32);

and processor does map_paging(map_segment(address)) when it calculates the
physical addresses. Even though both the range and domain are larger than
2^32, the number of different values is less or equal to it.

> Yes, this means that you need to use multiple selectors in order to access more
> than 4GB of virtual space.
> 
> According to section 3.8 of Intel's P3 manual, Volume 3, enabling the PAE
> increases the size of the page table entries to 64 bits.  There are other
> changes, such as extended the 20-bit page directory base address to 27 bits.
> All this means that a virtual address (selector:offset) can point to a physical
> address larger than 32 bits.

Virtual address gives linear address. _Then_ it is translated into
physical address. Page tables describe the latter mapping. Descriptor
tables - the former. Size of linear address is the bottleneck here and no
changes past that bottleneck can expand the number of possible values.

-
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: large memory support for x86

2000-10-13 Thread Timur Tabi

** Reply to message from Alexander Viro <[EMAIL PROTECTED]> on Fri, 13 Oct 2000
15:25:31 -0400 (EDT)


> Ditto with PAE: 16:32->32->36.
> In _all_ cases you are limited by the size of linear address. I.e. all
> address modes are limited to 4Gb. All you can get from PAE is placing of
> these 4Gb in 64Gb of physical memory.

Then how are you supposed to access all 64GB of RAM in your machine?  The
kernel must be able to access all 64GB of RAM at once, otherwise it can't do
proper memory management.

I've been reading on the PAE in Intel's manuals.  I admit, some of it is over
my head.  I was under the impression that it was 16:32->64->36 with PAE enabled.



-- 
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: large memory support for x86

2000-10-13 Thread Alexander Viro



On Fri, 13 Oct 2000, Timur Tabi wrote:

> ** Reply to message from Ingo Molnar <[EMAIL PROTECTED]> on Fri, 13 Oct 2000
> 20:44:19 +0200 (CEST)
> 
> 
> > processes are not limited to a single segment, eg. Wine uses nonstandard
> > segments. But as i said, using multiple segments does not let you out of
> > 32 bits of virtual memory.
> 
> Sure it does, just like segments let 16-bit apps access more than 64KB of
> memory.  If you have two selectors, each one can point to a different physical
> base address, and IIRC, the size of the physical address base can be 36 bits.
> That gives you 16 physically contiguous 4GB memory blocks.

RTFM. Take any manual on x86 architecture and stare at the
pictures. Ones that describe how segments work. Real mode: 16:16 ->
21 or 20. Real mode with undocumented twists: 16:16->21->32 (you _can_ get
paging with real mode style of segments). 286 protected mode: 16:16 -> 24.
Ditto with twists: 16:16->24->32. 386 protected mode: 16:32->32.
Ditto with paging: 16:32->32->32. Ditto with PAE: 16:32->32->36.
In _all_ cases you are limited by the size of linear address. I.e. all
address modes are limited to 4Gb. All you can get from PAE is placing of
these 4Gb in 64Gb of physical memory.

-
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-test6 network socket problems

2000-10-13 Thread J. Scott Kasten


I'm working with test6 on an embedded QED MIPS arch in big endian mode.  I
have run into some bizarre socket problems that appear to affect both udp
and tcp transport.  Applications actively using sockets (examples, ftp,
tftp, others...) will unexpectedly stop receiving data on the socket, even
though data is present.  The process will be forever sleeping on the read
even though data is queued up.  To illustrate my point, I've dug deep into
the udp code (net/ipv4/udp.c) and the datagram core (net/core/datagram.c)
researching the simple tftp example.

After much debugging, here is what I know:

I have followed the packets in from the network driver all the way to
udp_rcv() in udp.c.  I see it do the sk lookup and drop it off in
udp_queue_rcv_skb().  Everything is fine on that end.

On the process end, I've been watching in the udp_recvmsg() function, also
in udp.c.  Under normal operation, I see it pick up the data from the
correct skb and return.  When the rare condition that causes failure
occurs, skb_recv_datagram() returns a NULL and err is set to -ERESTARTSYS.
It is only when the process gets hung on that socket that I see this
happen.  It never revisits this portion of the code again, however, until
the sender stops transmitting data from ACK timeouts, I see the packets
continue to pile up on the udp_rcv() side without incident.

I further looked at datagram.c to see what the skb_recv_datagram() was
doing.  It was spinning through the do {} while() loop waiting for
wait_for_packet() to hand it something.  It is in that routine that the
error code is generated.  The signal_pending() function returns true
and sock_intr_errno() returns the -ERESTARTSYS code, which gets passed
back down the chain from here.

The structure of the tftp code that I'm working with is such that it does
a generic blocking read() on the socket file handle and uses an alarm to
wake up when the critical timeout is reached.  Not the most glorious code,
but demonstrates a problem none-the-less.  The read() never returns an
EINTR or EAGAIN or anything.  It's just hung.  I'm assuming that the
signal_pending() return comes from my alarm(), which means that the
process had already been sitting on that socket for a while not seeing the
data that is clearly already present.  Thus, there may be two problems
here, the signal not returning, and data trapped in the skb.

I would appreciate it if anyone more familiar with this code could point
me better to what I should be looking at, or at least explain what should
be happening that isn't.

TIA,

-S-

--

J. Scott Kasten
Email: jsk AT tetracon-eng DOT net

"In most cases, all an argument proves
 is that two people were present.."


-
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: large memory support for x86

2000-10-13 Thread Timur Tabi

** Reply to message from Brian Gerst <[EMAIL PROTECTED]> on Fri, 13 Oct 2000
15:07:42 -0400


> You missed the point.  The layering on the X86 memory managment is such:
> 
>Segment
>   |
> Virtual Address<- limited to 32 bits
>   |
> Physical Address
> 
> Segmentation never directly gives you a physical address, even in real
> mode.  Although in real mode virtual address is hardwired to physical
> address.  Virtual addresses are always 32 bits on the x86.  In real
> mode, in protected mode, and with PAE enabled.

I understand that a normal virtual address (i.e. a pointer) can only address a
single 32-bit (4GB) memory block.  My point was that by also using more than
one 16-bit selector, you can have multiple 4GB areas.  So for instance,
1000: can point to one physical address, and 1001: can point a
different physical address.

Yes, this means that you need to use multiple selectors in order to access more
than 4GB of virtual space.

According to section 3.8 of Intel's P3 manual, Volume 3, enabling the PAE
increases the size of the page table entries to 64 bits.  There are other
changes, such as extended the 20-bit page directory base address to 27 bits.
All this means that a virtual address (selector:offset) can point to a physical
address larger than 32 bits.

Frankly, the whole thing makes my head hurt.



-- 
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: test10-pre2

2000-10-13 Thread Linus Torvalds

In article <[EMAIL PROTECTED]>,
Richard Henderson  <[EMAIL PROTECTED]> wrote:
>On Fri, Oct 13, 2000 at 08:15:46PM +0400, Ivan Kokshaysky wrote:
>> On Thu, Oct 12, 2000 at 01:18:53PM -0700, Linus Torvalds wrote:
>> > See the arch/x86/mm/fault.c changes to see what arch-specific changes this
>> > can entail.
>> > 
>> This patch works for me...
>
>You shouldn't have needed any changes at all to work.
>The synchronization we already do for the vptb also
>takes care of vmalloc.

Richard: I agree that the changes "shouldn't" be needed, but from
looking at the code, the alpha doesn't actually share the PGD entry for
vmalloc'ed memory at all.

The PGD is 1024 entries, and the last one is used by the self-mapping
stuff. But the VMALLOC area is NOT there - the self-mapping uses up one
complete PGD entry (it has to - it points to itself), and we don't set
up any other special vmalloc-entry that would be global from the start..

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: large memory support for x86

2000-10-13 Thread Richard B. Johnson

On Fri, 13 Oct 2000, Chris Swiedler wrote:
> 
> Why is it that a user process can't intentionally switch segments?
> Dereferencing a 32-bit address causes the address to be calculated using the
> "current" segment descriptor, right? It seems to me that a process could set
> a new segment selector, in which case a dereference would operate on a whole
> new segment. Is there a reason why processes are limited to a single
> segment?
> 
> chris

You can (although not in user-mode). The problem is; "What RAM do you
reference?". You have 32-bits worth of addressing available in some
machine that has 32-bits worth of addressible RAM.

What can be done is to set one page to be 'not present'. Then, when
you page-fault, the page-fault handler can set some bit(s) in a
hardware page-register to map in another bank of RAM that isn't in
use yet. In principle, this would allow access to (2^16/8 -1) * (2^32 -1)
unique areas of RAM (segment descriptors are 16 bits, but they are
numbered in increments of 8.

So, you now want to copy from a segment addressed by DS, back to your
original DS, you have to rewrite the 'C' runtime library to use
'full pointers', i.e., DS:ESI, ES:EDI, etc., with ES and ES being
different. You have to dereference the full pointer on avery access!

Caching has to be turned off when RAM values that may be in the cache
reference RAM that is not back-switch in. You would have a slow mess.

However, in principle it could work.


Cheers,
Dick Johnson

Penguin : Linux version 2.2.17 on an i686 machine (801.18 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] usb audio.

2000-10-13 Thread Erik Mouw

On Fri, Oct 13, 2000 at 10:27:05AM -0700, Dunlap, Randy wrote:
> > I tried:
> > 
> >   setpci -s 00:07.2 latency_timer=20
> >   setpci -s 00:07.2 latency_timer=40
> >   setpci -s 00:07.2 latency_timer=80
> > 
> > but without effect. However, the USB device doesn't have a latency
> > timer, so that probably explains.
> 
> How about trying latency_timer=10, which will apparently
> show up as being 0 (since 10 is smaller than its
> implemented granularity).

That didn't help, but I found the problem: APM. I had GNOME battery_applet
running, and that checks /proc/apm every 2 seconds (default value).
Removing the applet from the taskbar solved the problem, and as soon as
I do "cat /proc/apm" the audio stops for about a second.

I recompiled the kernel with CONFIG_APM_ALLOW_INTS enabled, in the hope
that the USB interrupts would still come through, but that didn't solve
it. 

I'm glad I finally found the problem, but how to solve it? Is this a
bug in APM or in USB?


Erik

-- 
J.A.K. (Erik) Mouw, Information and Communication Theory Group, Department
of Electrical Engineering, Faculty of Information Technology and Systems,
Delft University of Technology, PO BOX 5031,  2600 GA Delft, The Netherlands
Phone: +31-15-2783635  Fax: +31-15-2781843  Email: [EMAIL PROTECTED]
WWW: http://www-ict.its.tudelft.nl/~erik/
-
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 SCSI proc oops

2000-10-13 Thread Linus Torvalds



On Fri, 13 Oct 2000, Torben Mathiasen wrote:
>
> Yes it works, its not all that different from my patch ;).

Yeah.

The thing I actually cared most about was the comment, which makes the
patch palatable to me. 

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: test10-pre2

2000-10-13 Thread Ivan Kokshaysky

On Fri, Oct 13, 2000 at 09:54:14AM -0700, Richard Henderson wrote:
> You shouldn't have needed any changes at all to work.

But without that change I've got oopses (fortunately not fatal) 
in swapon and modprobe.

> The synchronization we already do for the vptb also
> takes care of vmalloc.
> 
Probably I completely missed the point, but where are we doing it?

Ivan.
-
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: large memory support for x86

2000-10-13 Thread Brian Gerst

Timur Tabi wrote:
> 
> ** Reply to message from Ingo Molnar <[EMAIL PROTECTED]> on Fri, 13 Oct 2000
> 20:44:19 +0200 (CEST)
> 
> > processes are not limited to a single segment, eg. Wine uses nonstandard
> > segments. But as i said, using multiple segments does not let you out of
> > 32 bits of virtual memory.
> 
> Sure it does, just like segments let 16-bit apps access more than 64KB of
> memory.  If you have two selectors, each one can point to a different physical
> base address, and IIRC, the size of the physical address base can be 36 bits.
> That gives you 16 physically contiguous 4GB memory blocks.

You missed the point.  The layering on the X86 memory managment is such:

   Segment
  |
Virtual Address<- limited to 32 bits
  |
Physical Address

Segmentation never directly gives you a physical address, even in real
mode.  Although in real mode virtual address is hardwired to physical
address.  Virtual addresses are always 32 bits on the x86.  In real
mode, in protected mode, and with PAE enabled.

--

Brian Gerst
-
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: Updated 2.4 TODO List -- new addition WAS(test9 PCI resourcecollisions (fwd)

2000-10-13 Thread Linus Torvalds



On Fri, 13 Oct 2000, Linus Torvalds wrote:
> 
> Can you add the same extra debug code that I asked Dag Bakke to add for
> his problem:

Oh, also, can you try to see what happens if you change the define for

#define pcibios_assign_all_busses() 0

to a 1 in include/asm-i386/pci.h? That should force Linux to re-configure
all buses, regardless of whether they have been set up some way by the
BIOS. Which might make a difference.

But please do this separately from the extra debug code - I'd like to see
what the debug code says regardless of this change..

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] For 2.4: syscall revoke.

2000-10-13 Thread Alexander Viro



On Fri, 13 Oct 2000, Alan Cox wrote:

> > 1) one process does read() on device, another does revoke()
> > followed by rmmod. Oops - nothing holds module in memory, the first
> > process is executing code from that module (->read(), that is) and
> > we unmap that code.
> > 
> > 2) every access to ->f_op suddenly becomes unsafe. Basically the
> > same scenario, but here we have the window between fetching ->f_op and
> > calling ->f_op->foo. You have no exclusion here, and even if you had, you
> > still got #1 to deal with.
> 
> Is #2 actually a problem if #1 is ok. We don't destroy f_ops tables except
> on a module unload. Another thing that is arguable is that revoke() should
> not return until the revocation is completed. That would solve #1 in the 
> process I belive ?

The problem being: you have no way to tell when method returns. IOW,
there's nothing for revoke() to sleep on.

#2 is essentially the same as #1, but with an additional twist: call of
old method may happen after the new value of ->f_op is written to memory.
Some exclusion is obviously needed here. In principle, rw-semaphore with
all methods callers holding it for read and revoke() holding it for write
would be enough, but I suspect that overhead will be nasty. Something like
rw-semaphore with extremely light-weight readers and potentially slow
writer might be OK, but AFAICS there is nothing of that sort in the
tree. We have such spinlocks, but I don't see how to apply that idea to
semaphores. Besides, it ought to be small - every struct file will have to
contain such beast.

-
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: large memory support for x86

2000-10-13 Thread Petr Vandrovec

On 13 Oct 00 at 13:42, Timur Tabi wrote:
> ** Reply to message from Ingo Molnar <[EMAIL PROTECTED]> on Fri, 13 Oct 2000
> 20:44:19 +0200 (CEST)
> > processes are not limited to a single segment, eg. Wine uses nonstandard
> > segments. But as i said, using multiple segments does not let you out of
> > 32 bits of virtual memory.
> 
> Sure it does, just like segments let 16-bit apps access more than 64KB of
> memory.  If you have two selectors, each one can point to a different physical
> base address, and IIRC, the size of the physical address base can be 36 bits.
> That gives you 16 physically contiguous 4GB memory blocks.

Sure it does not. Selectors point to linear addresses, before passing them
through pagetables. You have 32+14 bits of virtual address (32 = offset,
14 = valid bits in selector), which are translated, together with
offset, to 32 bit linear address. This 32bit linear address is passed
through pagetables to 36 bit physical address. So it must go through
32bit linear address, and there is no easy way to overcome this limit.

You can either (1) forget about simple pointers and dereferencing pointers,
and go through realmode windows way - you must GlobalLock() memory area,
and you'll get pointer. Then you GlobalUnlock()... And you can lock
at most 2GB (maybe 3GB if you'll thought really good algorithm) of such 
data... Or (2) make complete segment non present, and on pagefault
unmap all pages belonging to some selector + invalidate selector, and
map something else in. You must create at least four such areas,
as you must have mapped at least CS, SS, ES and one of DS/FS/GS to
successfully execute MOVSB... So each area should be < 256MB.
Are you really sure that it is worth of effort? Also do not forget
that 'sizeof(void*) > sizeof(long)' in such environment, so tons of
code broke... And someone must translate pointers from 48bits to 32
for kernel use...
Best regards,
Petr Vandrovec
[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: large memory support for x86

2000-10-13 Thread kernel

On Fri, 13 Oct 2000, Timur Tabi wrote:

> Sure it does, just like segments let 16-bit apps access more than 64KB of
> memory.  If you have two selectors, each one can point to a different physical
> base address, and IIRC, the size of the physical address base can be 36 bits.
> That gives you 16 physically contiguous 4GB memory blocks.

No.  The segment base and length is confined to the 32 bit address space
mapped by page tables.

-ben

-
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   4   >