Re: [PATCH] Broken NR_RESERVED_FILES

2000-12-07 Thread Tigran Aivazian

Hi,

Another comment on your patch. You removed the goto used_one (probably a
good idea, I hated it as well and preferred to put it into the if()) but
you forgot to remove the label itself.

Regards,
Tigran


-
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: 64bit offsets for block devices ?

2000-12-07 Thread Alan Cox

> Is there any way of getting a standardized way of doing I/O to a block
> device which could handle 64bit addresses for the block number?

Submit patches early into 2.5 to extend the block range ?

> Don't you think that we will run into problems anyway because soon there
> will be raid systems with a couple of Terrabytes of space to waste for
> mp3's ;-)

The limit is currently about 1Tb per block so yes it will eventually get us

-
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] Broken NR_RESERVED_FILES

2000-12-07 Thread Tigran Aivazian

On Thu, 7 Dec 2000, Szabolcs Szakacsits wrote:
> Reserved fd's for superuser doesn't work.

It does actually work, but remember that the concept of "reserved file
structures for superuser" is defined as "file structures to be taken from
the freelist" whereas your patch below:

> + total_free = max_files - nr_files + nr_free_files;
> + if (total_free > NR_RESERVED_FILES || (total_free && !current->euid)) {
> + if (nr_free_files) {
> + used_one:
> + f = free_filps;
> + remove_filp(f);
> + nr_free_files--;
> + new_one:
> + memset(f, 0, sizeof(*f));
> + f->f_count = 1;
> + f->f_version = ++global_event;
> + f->f_uid = current->fsuid;
> + f->f_gid = current->fsgid;
> + put_inuse(f);
> + return f;
> + }
> + /*
> +  * Allocate a new one if we're below the limit.
> + */
>   f = kmem_cache_alloc(filp_cache, SLAB_KERNEL);

allows one to allocate a file structure from the filp_cache slab cache if
one is a superuser. That is not a "fix" -- it is a serious re-definition
of semantics of 'freelist'. There are even books (Understanding the Linux
Kernel by Bovet et all) which describe this freelist in the current
context so your patch will require updates to the books.

Having said that, it is probably a good idea to allow superuser to
allocate new file structures... just remember that you have just
_rewritten_ get_empty_filp()'s rules completely and not "fixed" them.

Regards,
Tigran

-
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] New user space serial port driver

2000-12-07 Thread Jamie Lokier

Pavel Machek wrote:
> > Please consider including this user space serial driver. It was writen for
> > the Pele 833 RAS Server but is also usable for other serial device drivers
> > in user space.
> 
> Good, someone finally implemented this. This is going to be mandatory
> if we want to support winmodems properly; also ISDN people might be
> interested [to kick AT emulation out of kernel].

For winmodems you can do a pretty good job with ptys -- the pty and tty
side access the same share termios structure.  The new driver is a
much cleaner way to the same functionality though.  (Conceptually; I
looked at the API summary but haven't looked at the code).

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



Re: Microsecond accuracy

2000-12-07 Thread Tigran Aivazian

Hi,

How about TSC? I know this has disadvantages such as:

a) not all machines have TSC

b) not all machines that claim to have TSC have a usable one.

c) on SMP the kernel makes a best effort to synchronize TSC but this may
or may not be guaranteed

d) you still need a userspace implementation to correctly map TSC cycles
to (micro)seconds using various MHz-specific ratios/whatever. I think
someone I know has already done this work but will let him speak if he
wants to release this to public or not.

other than the above, TSC (rdtsc instruction) is perfectly available to
userspace applications without special privileges. And it is 64bit so it
won't easily wrap around...

regards,
Tigran.

On Thu, 7 Dec 2000, Kotsovinos Vangelis wrote:

> 
> Is there any way to measure (with microsecond accuracy) the time of a
> program execution (without using Machine Specific Registers) ?
> I've already tried getrusage(), times() and clock() but they all have
> 10 millisecond accuracy, even though they claim to have microsecond
> acuracy.
> The only thing that seems to work is to use one of the tools that measure
> performanc through accessing the machine specific registers. They give you
> the ability to measure the clock cycles used, but their accuracy is also
> very low from what I have seen up to now.
> 
> Thank you very much in advance
> 
> --) Vangelis
> 
> -
> 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/



[PATCH] Broken NR_RESERVED_FILES

2000-12-07 Thread Szabolcs Szakacsits


Reserved fd's for superuser doesn't work. Patch for 2.2 is below,
kernel 2.4.x also has this problem, fix is similar. The default
NR_RESERVED_FILES value also had to be increased (e.g. ssh, login
needs 36, ls 16, man 45 fd's, etc).

BTW, I have an updated version of my reserved VM for superuser +
improved/fixed version of Rik's out of memory killer patch for 2.2
here,

http://mlf.linux.rulez.org/mlf/ezaz/reserved_root_vm+oom_killer-5.diff

It fixes the potential deadlock when kernel threads were blocked to
try to free pages - more details about the patch are in a former
email, http://boudicca.tux.org/hypermail/linux-kernel/2000week48/0624.html

Szaka

diff -ur linux-2.2.18pre21/fs/file_table.c linux/fs/file_table.c
--- linux-2.2.18pre21/fs/file_table.c   Tue Jan  4 13:12:23 2000
+++ linux/fs/file_table.c   Thu Dec  7 13:26:06 2000
@@ -71,30 +71,27 @@
 {
static int old_max = 0;
struct file * f;
+   int total_free;

-   if (nr_free_files > NR_RESERVED_FILES) {
-   used_one:
-   f = free_filps;
-   remove_filp(f);
-   nr_free_files--;
-   new_one:
-   memset(f, 0, sizeof(*f));
-   f->f_count = 1;
-   f->f_version = ++global_event;
-   f->f_uid = current->fsuid;
-   f->f_gid = current->fsgid;
-   put_inuse(f);
-   return f;
-   }
-   /*
-* Use a reserved one if we're the superuser
-*/
-   if (nr_free_files && !current->euid)
-   goto used_one;
-   /*
-* Allocate a new one if we're below the limit.
-*/
-   if (nr_files < max_files) {
+   total_free = max_files - nr_files + nr_free_files;
+   if (total_free > NR_RESERVED_FILES || (total_free && !current->euid)) {
+   if (nr_free_files) {
+   used_one:
+   f = free_filps;
+   remove_filp(f);
+   nr_free_files--;
+   new_one:
+   memset(f, 0, sizeof(*f));
+   f->f_count = 1;
+   f->f_version = ++global_event;
+   f->f_uid = current->fsuid;
+   f->f_gid = current->fsgid;
+   put_inuse(f);
+   return f;
+   }
+   /*
+* Allocate a new one if we're below the limit.
+   */
f = kmem_cache_alloc(filp_cache, SLAB_KERNEL);
if (f) {
nr_files++;
diff -ur linux-2.2.18pre21/include/linux/fs.h linux/include/linux/fs.h
--- linux-2.2.18pre21/include/linux/fs.hThu Nov  9 08:20:18 2000
+++ linux/include/linux/fs.hThu Dec  7 11:10:50 2000
@@ -51,7 +51,7 @@
 extern int max_super_blocks, nr_super_blocks;

 #define NR_FILE  4096  /* this can well be larger on a larger system */
-#define NR_RESERVED_FILES 10 /* reserved for root */
+#define NR_RESERVED_FILES 96 /* reserved for root */
 #define NR_SUPER 256

 #define MAY_EXEC 1

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



Microsecond accuracy

2000-12-07 Thread Kotsovinos Vangelis


Is there any way to measure (with microsecond accuracy) the time of a
program execution (without using Machine Specific Registers) ?
I've already tried getrusage(), times() and clock() but they all have
10 millisecond accuracy, even though they claim to have microsecond
acuracy.
The only thing that seems to work is to use one of the tools that measure
performanc through accessing the machine specific registers. They give you
the ability to measure the clock cycles used, but their accuracy is also
very low from what I have seen up to now.

Thank you very much in advance

--) Vangelis

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



Re: [patch] Re: [patch-2.4.0-test12-pre6] truncate(2) permissions

2000-12-07 Thread Tigran Aivazian

On Thu, 7 Dec 2000, Tigran Aivazian wrote:
> a) we don't hit that test because permission takes care of it (for
> regulars/dirs/symlinks but here only regulars are important)

omit what is in brackets but everything in email and the patch itself are
valid and tested. The detail in bracket above was unimportant since the
main text provided enough proof.

Regards,
Tigran

-
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] Re: [patch-2.4.0-test12-pre6] truncate(2) permissions

2000-12-07 Thread Tigran Aivazian

On Wed, 6 Dec 2000, Alexander Viro wrote:
> On Wed, 6 Dec 2000, Linus Torvalds wrote:
> > Why remove the EROFS test?
>
> there, so if it's not a regular file we die before the call of permission(),
> if it is and fs is readonly - we get -EROFS from permission() and die
> there. In either case we don't get to the IS_RDONLY() check...

just to add that I removed the immutable test for almost the same reason:

a) we don't hit that test because permission takes care of it (for
regulars/dirs/symlinks but here only regulars are important)

b) the error returned by permission EACCES makes a lot more sense than
EPERM we were trying to return. I already quotes Single UNIX v2 to explain
why.

Now, here is the same patch, except:

a) tested under test12-pre7

b) I suggest we explain why we return EPERM for append-only files despite
the fact that SuS and common sense suggest EACCES.

Facts verified under FreeBSD 4.2

The rationale for being compatible with 4.4BSD on append-only but not on
immutable is -- for immutable we can do the test by means of permission()
fast but for append-only we would need an extra if() above permission so
let's just be BSD-compatible.  Alternatively, one could ignore BSD
altogether and return EACCES in both. Or, one could ignore SuS altogether
and return EPERM for both immutable and append-only. It is a matter of
taste so... I chose something in the middle , perhaps non-intuitive but
optimized for speed and the size of code.

Regards,
Tigran

--- linux/fs/open.c Thu Oct 26 16:11:21 2000
+++ work/fs/open.c  Thu Dec  7 09:06:50 2000
@@ -102,7 +102,12 @@
goto out;
inode = nd.dentry->d_inode;
 
-   error = -EACCES;
+   /* For directories it's -EISDIR, for other non-regulars - -EINVAL */
+   error = -EISDIR;
+   if (S_ISDIR(inode->i_mode))
+   goto dput_and_out;
+
+   error = -EINVAL;
if (!S_ISREG(inode->i_mode))
goto dput_and_out;
 
@@ -110,12 +115,9 @@
if (error)
goto dput_and_out;
 
-   error = -EROFS;
-   if (IS_RDONLY(inode))
-   goto dput_and_out;
-
+   /* EPERM for 4.4BSD compat. EACCES would make more sense */
error = -EPERM;
-   if (IS_IMMUTABLE(inode) || IS_APPEND(inode))
+   if (IS_APPEND(inode))
goto dput_and_out;
 
/*
@@ -163,7 +165,7 @@
goto out;
dentry = file->f_dentry;
inode = dentry->d_inode;
-   error = -EACCES;
+   error = -EINVAL;
if (!S_ISREG(inode->i_mode) || !(file->f_mode & FMODE_WRITE))
goto out_putf;
error = -EPERM;

-
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: HPT366 + SMP = slight corruption in 2.3.99 - 2.4.0-11

2000-12-07 Thread Gerard Sharp

"[EMAIL PROTECTED]" wrote:
> On 2.2.17 I had good luck with BP6.

Never tried the 2.2 series with this controller - probably should get
around to doing that this weekend. :S

> EX:
> [root@animal /root]# uptime
>   3:17am  up 51 days, 20:17,  2 users,  load average: 0.00, 0.04, 0.02

Uptime proves nothing alas; I could get 30+ days if I wanted :S

> Can you post/e-mail any additional details about the lockups. I am very
> curious about this. We have a huge mosix cluster in production with BP6
> mobo's and have plans to upgrade to 2.4 as soon as an official stable
> kernel is released.

The problem is not one of lockups. The system in question doesn't lock;
it doesn't crash; it doesn't even log anything at the time - not even
APIC errors.
Instead it quietly and silently corrupts exactly four bytes at a time;
mostly on the last four bytes of a 4096 block...

I can most easily cause the corruption by copying a large amount of
known data across the disk, and then checking for differences:
cp -aR /usr/src/linux /usr/src/l2 ; diff -dur /usr/src/linux /usr/src/l2

When it does corrupt in this manner, it is not so much of a concern - I
can detect, delete, and recopy the corrupted file(s).
What is more worrying is, what if it is quietly silently and happily
corrupting other data - when I'm NOT staring at it with a paranoid
concern; for example, compiling binaries; or altering large data
files...

As such, I cannot at this time reduce the problem to one of Software or
Hardware Error; and while it is A Major Problem in my eyes; I avoid it
currently by not using the hpt366 controller :)


Gerard Sharp
Two Penguins at 1024x768
-
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/



USB-related lockup in test12-pre5

2000-12-07 Thread David Woodhouse



Haven't tried test12-pre7 yet. Is enabling bus mastering likely to make 
this magically go away? I doubt it.

This happened when trying to run excel under wine. Dual Celeron with 
CONFIG_USB_UHCI.

NMI Watchdog detected LOCKUP on CPU1, registers:
CPU:1
EIP:0010:[]
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00200086
eax: c12c9600   ebx: c7a383c0   ecx: c7a383c0   edx: c12c9600
esi: 0001   edi: 0001   ebp: c7f068a0   esp: c123dea8
ds: 0018   es: 0018   ss: 0018
Process swapper (pid: 0, stackpage=c123d000)
Stack: 0026 0001 c7a38398 c7a383c0 0001 c7a38000 c01f488e c7a383c0
   ca8578be c7a383c0 00200246  c7a383c0  c7f068a0 c01ffc3e
   c7a383c0   c12c9600  c7a3846c c7f068a0 c7f068bc
Call Trace: [] [] [] [] [] 
[] []
   [] [] [] [] [] [] 
[]
Code: f3 90 7e f8 e9 42 dc f8 ff 80 7e 24 00 f3 90 7e f8 e9 89 e7

>>EIP; c0270c21<=
Trace; c01f488e 
Trace; ca8578be <[audio]usbout_completed+7e/c0>
Trace; c01ffc3e 
Trace; c01ffd49 
Trace; c010c800 
Trace; c010ca01 
Trace; c0108f50 
Trace; c010af88 
Trace; c0108f50 
Trace; c0100018 
Trace; c0108f7c 
Trace; c0109002 
Trace; c011f47d 
Trace; c010ca47 
Code;  c0270c21 
 <_EIP>:
Code;  c0270c21<=
   0:   f3 90 repz nop<=
Code;  c0270c23 
   2:   7e f8 jlefffc <_EIP+0xfffc> c0270c1d 

Code;  c0270c25 
   4:   e9 42 dc f8 ffjmpfff8dc4b <_EIP+0xfff8dc4b> c01fe86c 

Code;  c0270c2a 
   9:   80 7e 24 00   cmpb   $0x0,0x24(%esi)
Code;  c0270c2e 
   d:   f3 90 repz nop 
Code;  c0270c30 
   f:   7e f8 jle9 <_EIP+0x9> c0270c2a 
Code;  c0270c32 
  11:   e9 89 e7 00 00jmpe79f <_EIP+0xe79f> c027f3c0 



--
dwmw2


-
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: Out of socket memory? (2.4.0-test11)

2000-12-07 Thread Dan Kegel

Daniel Walton ([EMAIL PROTECTED]) wrote:
> I've been having a problem with a high volume Linux web server. This 
> particular web server used to be a FreeBSD machine and I've been trying to 
> successfully make the switch for some time now. I've been trying the 2.4 
> development kernels as they come out and I've been tweaking the /proc 
> filesystem variables but so far nothing seems to have fixed the 
> problem. The problem is that I get "Out of socket memory" errors and the 
> networking locks up...

FWIW, the code that prints this is in ipv4/tcp_timer.c 
and it looks like it's a DoS attack countermeasure.
Looks like you can tune it with sysctl_tcp_max_orphans, among
other things.  Here's the code from test11-pre4:

/* Do not allow orphaned sockets to eat all our resources.
 * This is direct violation of TCP specs, but it is required
 * to prevent DoS attacks. It is called when a retransmission timeout
 * or zero probe timeout occurs on orphaned socket.
 *
 * Criterium is still not confirmed experimentally and may change.
 * We kill the socket, if:
 * 1. If number of orphaned sockets exceeds an administratively configured
 *limit.
 * 2. If we have strong memory pressure.
 */
static int tcp_out_of_resources(struct sock *sk, int do_reset)
{
struct tcp_opt *tp = &(sk->tp_pinfo.af_tcp);
int orphans = atomic_read(_orphan_count);
 
/* If peer does not open window for long time, or did not transmit
 * anything for long time, penalize it. */
if ((s32)(tcp_time_stamp - tp->lsndtime) > 2*TCP_RTO_MAX || !do_reset)
orphans <<= 1;
 
/* If some dubious ICMP arrived, penalize even more. */
if (sk->err_soft)
orphans <<= 1;
 
if (orphans >= sysctl_tcp_max_orphans ||
(sk->wmem_queued > SOCK_MIN_SNDBUF &&
 atomic_read(_memory_allocated) > sysctl_tcp_mem[2])) {
if (net_ratelimit())
printk(KERN_INFO "Out of socket memory\n");
-
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: Out of socket memory? (2.4.0-test11)

2000-12-07 Thread Dan Kegel

Daniel Walton ([EMAIL PROTECTED]) wrote:
 I've been having a problem with a high volume Linux web server. This 
 particular web server used to be a FreeBSD machine and I've been trying to 
 successfully make the switch for some time now. I've been trying the 2.4 
 development kernels as they come out and I've been tweaking the /proc 
 filesystem variables but so far nothing seems to have fixed the 
 problem. The problem is that I get "Out of socket memory" errors and the 
 networking locks up...

FWIW, the code that prints this is in ipv4/tcp_timer.c 
and it looks like it's a DoS attack countermeasure.
Looks like you can tune it with sysctl_tcp_max_orphans, among
other things.  Here's the code from test11-pre4:

/* Do not allow orphaned sockets to eat all our resources.
 * This is direct violation of TCP specs, but it is required
 * to prevent DoS attacks. It is called when a retransmission timeout
 * or zero probe timeout occurs on orphaned socket.
 *
 * Criterium is still not confirmed experimentally and may change.
 * We kill the socket, if:
 * 1. If number of orphaned sockets exceeds an administratively configured
 *limit.
 * 2. If we have strong memory pressure.
 */
static int tcp_out_of_resources(struct sock *sk, int do_reset)
{
struct tcp_opt *tp = (sk-tp_pinfo.af_tcp);
int orphans = atomic_read(tcp_orphan_count);
 
/* If peer does not open window for long time, or did not transmit
 * anything for long time, penalize it. */
if ((s32)(tcp_time_stamp - tp-lsndtime)  2*TCP_RTO_MAX || !do_reset)
orphans = 1;
 
/* If some dubious ICMP arrived, penalize even more. */
if (sk-err_soft)
orphans = 1;
 
if (orphans = sysctl_tcp_max_orphans ||
(sk-wmem_queued  SOCK_MIN_SNDBUF 
 atomic_read(tcp_memory_allocated)  sysctl_tcp_mem[2])) {
if (net_ratelimit())
printk(KERN_INFO "Out of socket memory\n");
-
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/



USB-related lockup in test12-pre5

2000-12-07 Thread David Woodhouse



Haven't tried test12-pre7 yet. Is enabling bus mastering likely to make 
this magically go away? I doubt it.

This happened when trying to run excel under wine. Dual Celeron with 
CONFIG_USB_UHCI.

NMI Watchdog detected LOCKUP on CPU1, registers:
CPU:1
EIP:0010:[c0270c21]
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00200086
eax: c12c9600   ebx: c7a383c0   ecx: c7a383c0   edx: c12c9600
esi: 0001   edi: 0001   ebp: c7f068a0   esp: c123dea8
ds: 0018   es: 0018   ss: 0018
Process swapper (pid: 0, stackpage=c123d000)
Stack: 0026 0001 c7a38398 c7a383c0 0001 c7a38000 c01f488e c7a383c0
   ca8578be c7a383c0 00200246  c7a383c0  c7f068a0 c01ffc3e
   c7a383c0   c12c9600  c7a3846c c7f068a0 c7f068bc
Call Trace: [c01f488e] [ca8578be] [c01ffc3e] [c01ffd49] [c010c800] 
[c010ca01] [c0108f50]
   [c010af88] [c0108f50] [c0100018] [c0108f7c] [c0109002] [c011f47d] 
[c010ca47]
Code: f3 90 7e f8 e9 42 dc f8 ff 80 7e 24 00 f3 90 7e f8 e9 89 e7

EIP; c0270c21 stext_lock+4e6d/8f50   =
Trace; c01f488e usb_submit_urb+1e/30
Trace; ca8578be [audio]usbout_completed+7e/c0
Trace; c01ffc3e process_urb+1de/230
Trace; c01ffd49 uhci_interrupt+b9/120
Trace; c010c800 handle_IRQ_event+60/90
Trace; c010ca01 do_IRQ+a1/100
Trace; c0108f50 default_idle+0/40
Trace; c010af88 ret_from_intr+0/20
Trace; c0108f50 default_idle+0/40
Trace; c0100018 startup_32+18/cb
Trace; c0108f7c default_idle+2c/40
Trace; c0109002 cpu_idle+52/70
Trace; c011f47d do_softirq+6d/a0
Trace; c010ca47 do_IRQ+e7/100
Code;  c0270c21 stext_lock+4e6d/8f50
 _EIP:
Code;  c0270c21 stext_lock+4e6d/8f50   =
   0:   f3 90 repz nop=
Code;  c0270c23 stext_lock+4e6f/8f50
   2:   7e f8 jlefffc _EIP+0xfffc c0270c1d 
stext_lock+4e69/8f50
Code;  c0270c25 stext_lock+4e71/8f50
   4:   e9 42 dc f8 ffjmpfff8dc4b _EIP+0xfff8dc4b c01fe86c 
uhci_submit_urb+6c/2d0
Code;  c0270c2a stext_lock+4e76/8f50
   9:   80 7e 24 00   cmpb   $0x0,0x24(%esi)
Code;  c0270c2e stext_lock+4e7a/8f50
   d:   f3 90 repz nop 
Code;  c0270c30 stext_lock+4e7c/8f50
   f:   7e f8 jle9 _EIP+0x9 c0270c2a stext_lock+4e76/8f50
Code;  c0270c32 stext_lock+4e7e/8f50
  11:   e9 89 e7 00 00jmpe79f _EIP+0xe79f c027f3c0 tvecs+1678/e4f8



--
dwmw2


-
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: HPT366 + SMP = slight corruption in 2.3.99 - 2.4.0-11

2000-12-07 Thread Gerard Sharp

"[EMAIL PROTECTED]" wrote:
 On 2.2.17 I had good luck with BP6.

Never tried the 2.2 series with this controller - probably should get
around to doing that this weekend. :S

 EX:
 [root@animal /root]# uptime
   3:17am  up 51 days, 20:17,  2 users,  load average: 0.00, 0.04, 0.02

Uptime proves nothing alas; I could get 30+ days if I wanted :S

 Can you post/e-mail any additional details about the lockups. I am very
 curious about this. We have a huge mosix cluster in production with BP6
 mobo's and have plans to upgrade to 2.4 as soon as an official stable
 kernel is released.

The problem is not one of lockups. The system in question doesn't lock;
it doesn't crash; it doesn't even log anything at the time - not even
APIC errors.
Instead it quietly and silently corrupts exactly four bytes at a time;
mostly on the last four bytes of a 4096 block...

I can most easily cause the corruption by copying a large amount of
known data across the disk, and then checking for differences:
cp -aR /usr/src/linux /usr/src/l2 ; diff -dur /usr/src/linux /usr/src/l2

When it does corrupt in this manner, it is not so much of a concern - I
can detect, delete, and recopy the corrupted file(s).
What is more worrying is, what if it is quietly silently and happily
corrupting other data - when I'm NOT staring at it with a paranoid
concern; for example, compiling binaries; or altering large data
files...

As such, I cannot at this time reduce the problem to one of Software or
Hardware Error; and while it is A Major Problem in my eyes; I avoid it
currently by not using the hpt366 controller :)


Gerard Sharp
Two Penguins at 1024x768
-
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] Re: [patch-2.4.0-test12-pre6] truncate(2) permissions

2000-12-07 Thread Tigran Aivazian

On Wed, 6 Dec 2000, Alexander Viro wrote:
 On Wed, 6 Dec 2000, Linus Torvalds wrote:
  Why remove the EROFS test?

 there, so if it's not a regular file we die before the call of permission(),
 if it is and fs is readonly - we get -EROFS from permission() and die
 there. In either case we don't get to the IS_RDONLY() check...

just to add that I removed the immutable test for almost the same reason:

a) we don't hit that test because permission takes care of it (for
regulars/dirs/symlinks but here only regulars are important)

b) the error returned by permission EACCES makes a lot more sense than
EPERM we were trying to return. I already quotes Single UNIX v2 to explain
why.

Now, here is the same patch, except:

a) tested under test12-pre7

b) I suggest we explain why we return EPERM for append-only files despite
the fact that SuS and common sense suggest EACCES.

Facts verified under FreeBSD 4.2

The rationale for being compatible with 4.4BSD on append-only but not on
immutable is -- for immutable we can do the test by means of permission()
fast but for append-only we would need an extra if() above permission so
let's just be BSD-compatible.  Alternatively, one could ignore BSD
altogether and return EACCES in both. Or, one could ignore SuS altogether
and return EPERM for both immutable and append-only. It is a matter of
taste so... I chose something in the middle , perhaps non-intuitive but
optimized for speed and the size of code.

Regards,
Tigran

--- linux/fs/open.c Thu Oct 26 16:11:21 2000
+++ work/fs/open.c  Thu Dec  7 09:06:50 2000
@@ -102,7 +102,12 @@
goto out;
inode = nd.dentry-d_inode;
 
-   error = -EACCES;
+   /* For directories it's -EISDIR, for other non-regulars - -EINVAL */
+   error = -EISDIR;
+   if (S_ISDIR(inode-i_mode))
+   goto dput_and_out;
+
+   error = -EINVAL;
if (!S_ISREG(inode-i_mode))
goto dput_and_out;
 
@@ -110,12 +115,9 @@
if (error)
goto dput_and_out;
 
-   error = -EROFS;
-   if (IS_RDONLY(inode))
-   goto dput_and_out;
-
+   /* EPERM for 4.4BSD compat. EACCES would make more sense */
error = -EPERM;
-   if (IS_IMMUTABLE(inode) || IS_APPEND(inode))
+   if (IS_APPEND(inode))
goto dput_and_out;
 
/*
@@ -163,7 +165,7 @@
goto out;
dentry = file-f_dentry;
inode = dentry-d_inode;
-   error = -EACCES;
+   error = -EINVAL;
if (!S_ISREG(inode-i_mode) || !(file-f_mode  FMODE_WRITE))
goto out_putf;
error = -EPERM;

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



Microsecond accuracy

2000-12-07 Thread Kotsovinos Vangelis


Is there any way to measure (with microsecond accuracy) the time of a
program execution (without using Machine Specific Registers) ?
I've already tried getrusage(), times() and clock() but they all have
10 millisecond accuracy, even though they claim to have microsecond
acuracy.
The only thing that seems to work is to use one of the tools that measure
performanc through accessing the machine specific registers. They give you
the ability to measure the clock cycles used, but their accuracy is also
very low from what I have seen up to now.

Thank you very much in advance

--) Vangelis

-
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] Broken NR_RESERVED_FILES

2000-12-07 Thread Szabolcs Szakacsits


Reserved fd's for superuser doesn't work. Patch for 2.2 is below,
kernel 2.4.x also has this problem, fix is similar. The default
NR_RESERVED_FILES value also had to be increased (e.g. ssh, login
needs 36, ls 16, man 45 fd's, etc).

BTW, I have an updated version of my reserved VM for superuser +
improved/fixed version of Rik's out of memory killer patch for 2.2
here,

http://mlf.linux.rulez.org/mlf/ezaz/reserved_root_vm+oom_killer-5.diff

It fixes the potential deadlock when kernel threads were blocked to
try to free pages - more details about the patch are in a former
email, http://boudicca.tux.org/hypermail/linux-kernel/2000week48/0624.html

Szaka

diff -ur linux-2.2.18pre21/fs/file_table.c linux/fs/file_table.c
--- linux-2.2.18pre21/fs/file_table.c   Tue Jan  4 13:12:23 2000
+++ linux/fs/file_table.c   Thu Dec  7 13:26:06 2000
@@ -71,30 +71,27 @@
 {
static int old_max = 0;
struct file * f;
+   int total_free;

-   if (nr_free_files  NR_RESERVED_FILES) {
-   used_one:
-   f = free_filps;
-   remove_filp(f);
-   nr_free_files--;
-   new_one:
-   memset(f, 0, sizeof(*f));
-   f-f_count = 1;
-   f-f_version = ++global_event;
-   f-f_uid = current-fsuid;
-   f-f_gid = current-fsgid;
-   put_inuse(f);
-   return f;
-   }
-   /*
-* Use a reserved one if we're the superuser
-*/
-   if (nr_free_files  !current-euid)
-   goto used_one;
-   /*
-* Allocate a new one if we're below the limit.
-*/
-   if (nr_files  max_files) {
+   total_free = max_files - nr_files + nr_free_files;
+   if (total_free  NR_RESERVED_FILES || (total_free  !current-euid)) {
+   if (nr_free_files) {
+   used_one:
+   f = free_filps;
+   remove_filp(f);
+   nr_free_files--;
+   new_one:
+   memset(f, 0, sizeof(*f));
+   f-f_count = 1;
+   f-f_version = ++global_event;
+   f-f_uid = current-fsuid;
+   f-f_gid = current-fsgid;
+   put_inuse(f);
+   return f;
+   }
+   /*
+* Allocate a new one if we're below the limit.
+   */
f = kmem_cache_alloc(filp_cache, SLAB_KERNEL);
if (f) {
nr_files++;
diff -ur linux-2.2.18pre21/include/linux/fs.h linux/include/linux/fs.h
--- linux-2.2.18pre21/include/linux/fs.hThu Nov  9 08:20:18 2000
+++ linux/include/linux/fs.hThu Dec  7 11:10:50 2000
@@ -51,7 +51,7 @@
 extern int max_super_blocks, nr_super_blocks;

 #define NR_FILE  4096  /* this can well be larger on a larger system */
-#define NR_RESERVED_FILES 10 /* reserved for root */
+#define NR_RESERVED_FILES 96 /* reserved for root */
 #define NR_SUPER 256

 #define MAY_EXEC 1

-
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: Microsecond accuracy

2000-12-07 Thread Tigran Aivazian

Hi,

How about TSC? I know this has disadvantages such as:

a) not all machines have TSC

b) not all machines that claim to have TSC have a usable one.

c) on SMP the kernel makes a best effort to synchronize TSC but this may
or may not be guaranteed

d) you still need a userspace implementation to correctly map TSC cycles
to (micro)seconds using various MHz-specific ratios/whatever. I think
someone I know has already done this work but will let him speak if he
wants to release this to public or not.

other than the above, TSC (rdtsc instruction) is perfectly available to
userspace applications without special privileges. And it is 64bit so it
won't easily wrap around...

regards,
Tigran.

On Thu, 7 Dec 2000, Kotsovinos Vangelis wrote:

 
 Is there any way to measure (with microsecond accuracy) the time of a
 program execution (without using Machine Specific Registers) ?
 I've already tried getrusage(), times() and clock() but they all have
 10 millisecond accuracy, even though they claim to have microsecond
 acuracy.
 The only thing that seems to work is to use one of the tools that measure
 performanc through accessing the machine specific registers. They give you
 the ability to measure the clock cycles used, but their accuracy is also
 very low from what I have seen up to now.
 
 Thank you very much in advance
 
 --) Vangelis
 
 -
 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: [PATCH] New user space serial port driver

2000-12-07 Thread Jamie Lokier

Pavel Machek wrote:
  Please consider including this user space serial driver. It was writen for
  the Pele 833 RAS Server but is also usable for other serial device drivers
  in user space.
 
 Good, someone finally implemented this. This is going to be mandatory
 if we want to support winmodems properly; also ISDN people might be
 interested [to kick AT emulation out of kernel].

For winmodems you can do a pretty good job with ptys -- the pty and tty
side access the same share termios structure.  The new driver is a
much cleaner way to the same functionality though.  (Conceptually; I
looked at the API summary but haven't looked at the code).

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



Re: [PATCH] Broken NR_RESERVED_FILES

2000-12-07 Thread Tigran Aivazian

On Thu, 7 Dec 2000, Szabolcs Szakacsits wrote:
 Reserved fd's for superuser doesn't work.

It does actually work, but remember that the concept of "reserved file
structures for superuser" is defined as "file structures to be taken from
the freelist" whereas your patch below:

 + total_free = max_files - nr_files + nr_free_files;
 + if (total_free  NR_RESERVED_FILES || (total_free  !current-euid)) {
 + if (nr_free_files) {
 + used_one:
 + f = free_filps;
 + remove_filp(f);
 + nr_free_files--;
 + new_one:
 + memset(f, 0, sizeof(*f));
 + f-f_count = 1;
 + f-f_version = ++global_event;
 + f-f_uid = current-fsuid;
 + f-f_gid = current-fsgid;
 + put_inuse(f);
 + return f;
 + }
 + /*
 +  * Allocate a new one if we're below the limit.
 + */
   f = kmem_cache_alloc(filp_cache, SLAB_KERNEL);

allows one to allocate a file structure from the filp_cache slab cache if
one is a superuser. That is not a "fix" -- it is a serious re-definition
of semantics of 'freelist'. There are even books (Understanding the Linux
Kernel by Bovet et all) which describe this freelist in the current
context so your patch will require updates to the books.

Having said that, it is probably a good idea to allow superuser to
allocate new file structures... just remember that you have just
_rewritten_ get_empty_filp()'s rules completely and not "fixed" them.

Regards,
Tigran

-
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] Broken NR_RESERVED_FILES

2000-12-07 Thread Tigran Aivazian

Hi,

Another comment on your patch. You removed the goto used_one (probably a
good idea, I hated it as well and preferred to put it into the if()) but
you forgot to remove the label itself.

Regards,
Tigran


-
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: 64bit offsets for block devices ?

2000-12-07 Thread Alan Cox

 Is there any way of getting a standardized way of doing I/O to a block
 device which could handle 64bit addresses for the block number?

Submit patches early into 2.5 to extend the block range ?

 Don't you think that we will run into problems anyway because soon there
 will be raid systems with a couple of Terrabytes of space to waste for
 mp3's ;-)

The limit is currently about 1Tb per block so yes it will eventually get us

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



Re: [patch] Re: [patch-2.4.0-test12-pre6] truncate(2) permissions

2000-12-07 Thread Alexander Viro



On Thu, 7 Dec 2000, Tigran Aivazian wrote:

 The rationale for being compatible with 4.4BSD on append-only but not on
 immutable is -- for immutable we can do the test by means of permission()
 fast but for append-only we would need an extra if() above permission so
 let's just be BSD-compatible.  Alternatively, one could ignore BSD
 altogether and return EACCES in both. Or, one could ignore SuS altogether
 and return EPERM for both immutable and append-only. It is a matter of
 taste so... I chose something in the middle , perhaps non-intuitive but
 optimized for speed and the size of code.

Big, loud "yuck". The first rule of optimization: don't. I agree that
in the current code test for immutable is dead. However, the rationale
above is a BS. The path is nowhere near time-critical ones. Moreover,
it doesn't make the code simpler.

History: 4.4BSD treats immutable and append-only the same way it treats
removal from sticky-bit directories, etc. I.e. consistenly returns
-EPERM. Yes, on access(), open() for write, directory operations, yodda,
yodda.

So correct solution may very well be to change the return value of
permission(9). FWIW, MAY_TRUNCATE might be a good idea - notice that
knfsd already has something like that. It makes sense for directories,
BTW - having may_delete() drop the IS_APPEND() test and pass MAY_TRUNCATE
to permission() instead.

looking at the truncate(2) manpage
Oh, lovely - where the hell had the following come from?
% man truncate
...
   EINVAL The  pathname  contains  a character with the high-
  order bit set.
...
Andries, would you mind removing that, erm, statement? I'm curious about
its genesis - AFAIK we had 8bit-clean namei for ages (quite possibly since
0.01).

-
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-test12-pre4 + cs46xx + KDE 2.0 = frozen system

2000-12-07 Thread Alan Cox

 I copied the cs46xx.c driver from 2.4.0-test11 to 2.4.0-test11-ac1,
 rebuilt, and I got a test11-ac1 kernel which works with KDE 2.0 and sound.

Excellent, that really narrows it down. Once 2.2.18 is out I will try and
get to the bottom of this
-
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] Broken NR_RESERVED_FILES

2000-12-07 Thread Szabolcs Szakacsits


On Thu, 7 Dec 2000, Tigran Aivazian wrote:
 On Thu, 7 Dec 2000, Szabolcs Szakacsits wrote:
  Reserved fd's for superuser doesn't work.
 It does actually work,

What do you mean under "work"? I meant user apps are able to
exhaust fd's completely and none is left for superuser.

 but remember that the concept of "reserved file
 structures for superuser" is defined as "file structures to be taken from
 the freelist"

Yes, in this sense it works and it's also very close to unhelpfulness.

 whereas your patch below:
[...]
 allows one to allocate a file structure from the filp_cache slab cache if
 one is a superuser.

Or one is user and didn't hit yet the reserved fd's (and of course
superuser aren't able to allocate more then max_files).

Szaka

-
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: YMF PCI - thanks, glitches, patches (fwd)

2000-12-07 Thread Alan Cox

 The Linux-sound list appears to be dead (I don't see my message in
 http://www.kernelnotes.org/lnxlists/linux-sound/), so I'm sending to the

[EMAIL PROTECTED] is alive and well however.

 An additional problem is that opl3 cannot find the device unless I load
 and unload the old driver (ymf_sb). Probably the new driver should put the
 OPL3 interface to the legacy mode if it cannot handle it directly.

Probably

 Dec  5 18:08:16 fonzie kernel: ymfpci: ioctl cmd 0x5401
 Dec  5 18:08:50 fonzie last message repeated 9 times

Just debugging this is fine

 $ play spinout.wav
 sox: Unable to set audio speed to 5512 (set to 8000)

8Khz is the lower limit right now the way the board is driven.

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



Re: [patch] Re: [patch-2.4.0-test12-pre6] truncate(2) permissions

2000-12-07 Thread Tigran Aivazian

On Thu, 7 Dec 2000, Alexander Viro wrote:
 So correct solution may very well be to change the return value of
 permission(9). FWIW, MAY_TRUNCATE might be a good idea - notice that
 knfsd already has something like that. It makes sense for directories,
 BTW - having may_delete() drop the IS_APPEND() test and pass MAY_TRUNCATE
 to permission() instead.

Alexander,

The above sounds like an excellent idea (MAY_TRUNCATE specifically!) but
please understand that I simply wanted to minimize the amount of
fundamental code changes. Yes, it would be much cleaner to have a MAY_XXX
which groups little specific tests together for every scenario, e.g. for
truncate().

So, I wasn't suggesting BS as the "best thing for all times" but merely as
the "best thing at the moment without changing too much and yet not
leaving dead code in there and not adding too much new code".

Regards,
Tigran

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



64 bit s390 and 2.4.0-test11 (was Memory management bug)

2000-12-07 Thread schwidefsky




Hi,
good news (at least for us): linux on the 64 bit S/390 (aka zServer)
is now running pretty stable. Our implementation of ptep_get_and_clear
didn't clear the pte if the invalid bit was already set. But a swapped
page has the invalid bit set too and in that case we didn't clear the
pte. That did cause the BUG() in swap_state.c:60.

With this new backend in mind I'd like to suggest two small changes
for the common code.
1) move establish_pte to the architecture dependent folders. Our
implementation looks like this:

static inline void ptep_invalidate_and_flush(pte_t *ptep, unsigned long
addr)
{
if (!(pte_val(*ptep)  _PAGE_INVALID))
__asm__ __volatile__ ("ipte %0,%1" : : "a" (ptep), "a"
(addr));
}

static inline void establish_pte(struct vm_area_struct * vma,
 unsigned long address,
 pte_t *page_table, pte_t entry)
{
ptep_invalidate_and_flush(page_table, address);
set_pte(page_table, entry);
}

The question I face at the moment is: where is the right place in
include/asm for establish_pte. I added it to include/asm-generic/pgtable.h
and include/asm-i386/pgtable.h but I now face the problem that the
default implementation has a call to flush_tlb_page and that is defined
in pgalloc.h. I added an #include asm/pgalloc.h but I fear that this
could
cause compile errors. For details see establish_pte.diff.

2) add a check for EI_CLASS in the binfmt_elf loader. We will use the
same EM_S390 for 31 bit and 64 bit binaries. The distinction is done
by means of the EI_CLASS byte in the ELF header. See binfmt_elf.diff

blue skies,
   Martin

Linux/390 Design  Development, IBM Deutschland Entwicklung GmbH
Schönaicherstr. 220, D-71032 Böblingen, Telefon: 49 - (0)7031 - 16-2247
E-Mail: [EMAIL PROTECTED]

(See attached file: establish_pte.diff)(See attached file: binfmt_elf.diff)

 establish_pte.diff
 binfmt_elf.diff


Re: [PATCH] Broken NR_RESERVED_FILES

2000-12-07 Thread Tigran Aivazian

On Thu, 7 Dec 2000, Szabolcs Szakacsits wrote:
 On Thu, 7 Dec 2000, Tigran Aivazian wrote:
  On Thu, 7 Dec 2000, Szabolcs Szakacsits wrote:
   Reserved fd's for superuser doesn't work.
  It does actually work,
 
 What do you mean under "work"? I meant user apps are able to
 exhaust fd's completely and none is left for superuser.

really? how did you manage to do that? On a 2.4.0-test12-pre7 system I
cannot reproduce the behaviour you describe. I.e. at least
NR_RESERVED_FILES (which I agree with you should be increased!) are left
to superuser processes whilst the user processes are denied.

How exactly are you reproducing this? I wrote a simple while (1)
{open("/dev/null", 0); } program and run many instances of it as user. At
some stage user starts failing but superuser happily draws from the
freelist. Of course, the superuser cannot start complex programs which
require many descriptos but that is entirely the issues of
NR_RESERVED_FILES being too small on which I totally agree with you.

Regards,
Tigran

-
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: Out of socket memory? (2.4.0-test11)

2000-12-07 Thread Andi Kleen

On Wed, Dec 06, 2000 at 10:56:32PM -0600, Daniel Walton wrote:
 
 Hello,
 
 I've been having a problem with a high volume Linux web server.  This 
 particular web server used to be a FreeBSD machine and I've been trying to 
 successfully make the switch for some time now.  I've been trying the 2.4 
 development kernels as they come out and I've been tweaking the /proc 
 filesystem variables but so far nothing seems to have fixed the 
 problem.  The problem is that I get "Out of socket memory" errors and the 
 networking locks up.  Sometimes the server will go for weeks without 

You should probably first find out what and why is generating these messages.
It isn't the kernel. When the web server is generating when a send blocks
then it is badly broken.


-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: D-LINK DFE-530-TX

2000-12-07 Thread James Bourne

On Wed, 6 Dec 2000, Mike A. Harris wrote:

 Which ethernet module works with this card?  2.2.17 kernel

Should be the rtl8139 driver.

Regards,
Jim

 --
   Mike A. Harris  -  Linux advocate  -  Open source advocate
   This message is copyright 2000, all rights reserved.
   Views expressed are my own, not necessarily shared by my employer.
 --

-- 
James Bourne, Web Systems Administrator
Mount Royal College, Calgary, AB, CA
www.mtroyal.ab.ca

-
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-2] Configuring Synchronous Interfaces in Linux

2000-12-07 Thread Alan Cox

 I think we need few ioctl calls: get + set media (int argument),
 get + set speed (probably two - RX and TX), etc.
 In my 2.4 HDLC stuff - to be published :-( - there something like that
 (in private ioctl range, of course).

I think we are agreeing


I'm saying use something like

struct 
{
u16 media_group;
union
{
struct hdlc_physical ...
struct hdlc_bitstream
struct hdlc_protocol
struct fr_protocol
struct eth_physical
struct atm_physical
struct dsl_physical
struct dsl_bitstream
struct tr_physical
struct wireless_physical
struct wireless_80211
struct wireless_auth
} config;
}

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: Microsecond accuracy

2000-12-07 Thread Tigran Aivazian

On Thu, 7 Dec 2000, Tigran Aivazian wrote:

 Hi,
 
 How about TSC? I know this has disadvantages such as:
 
 a) not all machines have TSC

while we are on this subject, please let me emphasize that you should
_not_ be using cpuid instruction to detect the presence of TSC but should
parse the /proc/cpuinfo file. There are many valid reasons why Linux's
idea of TSC presence may not be the same as hardware's (cpuid
instruction) idea.

Regards,
Tigran

-
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-2] Configuring Synchronous Interfaces in Linux

2000-12-07 Thread Jeff Garzik

Alan Cox wrote:
 
  I think we need few ioctl calls: get + set media (int argument),
  get + set speed (probably two - RX and TX), etc.
  In my 2.4 HDLC stuff - to be published :-( - there something like that
  (in private ioctl range, of course).
 
 I think we are agreeing
 
 I'm saying use something like
 
 struct
 {
 u16 media_group;
 union
 {
 struct hdlc_physical ...
 struct hdlc_bitstream
 struct hdlc_protocol
 struct fr_protocol
 struct eth_physical

Not yet another one for eth...  We now have ethtool for this.  And a
generic netdevice::set_config wrapper can be created that simply calls
the ethtool ioctl with the proper info and locking.

Jeff


-- 
Jeff Garzik |
Building 1024   | These are not the J's you're lookin' for.
MandrakeSoft| It's an old Jedi mind trick.
-
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.18pre24 ooops

2000-12-07 Thread Gbor Lnrt

Hi,

Running both of 2.2.18pre21 and pre24 casues this ooops with mpegp when
it tries to produce sound (with -nosound option, it's okey).
mpegp is out mpeg player based on libac3,libmpeg2,mpg123,libvo.
It can be found at ftp://esp-team.scene.hu/esp-team/linux/MPlayer/

Problem occured when I tried to play matrix.vob, which includes 48Khz
stereo auido (ftp://terminal.hu/matrix.vob).

Output of lspci and kernel configuration file are attached.

The player got sigsegv, and the meesage found in syslog translated with
ksymoops is the following (devide error: ):

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

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

Warning (compare_maps): ksyms_base symbol module_list_R__ver_module_list not found in 
System.map.  Ignoring ksyms_base entry
Dec  7 14:25:50 vega kernel: CPU:0
Dec  7 14:25:50 vega kernel: EIP:
0010:[eepro100:__insmod_eepro100_O/lib/modules/2.2.18pre24/net/eepro100.o_+-75593/96]
Dec  7 14:25:50 vega kernel: EFLAGS: 00210046
Dec  7 14:25:50 vega kernel: eax:    ebx: c66dfce0   ecx:    edx: 

Dec  7 14:25:50 vega kernel: esi:    edi: c66dfcc0   ebp: 00200246   esp: 
c30e3eac
Dec  7 14:25:50 vega kernel: ds: 0018   es: 0018   ss: 0018
Dec  7 14:25:50 vega kernel: Process mpegp (pid: 549, process nr: 74, 
stackpage=c30e3000)
Dec  7 14:25:50 vega kernel: Stack: c66dfcc0 00200246 03e6 c3126b60 0003 
c8018eff c66dfcc0 c66dfcc0
Dec  7 14:25:50 vega kernel:c756dc00 00200246   0400 
000a 000d bb80
Dec  7 14:25:50 vega kernel:c7a6c6c0  0004 c32893f8  
c012f57e c3126b60 
Dec  7 14:25:50 vega kernel: Call Trace: 
[eepro100:__insmod_eepro100_O/lib/modules/2.2.18pre24/net/eepro100.o_+-73985/96] 
[do_select+274/512] 
[eepro100:__insmod_eepro100_O/lib/modules/2.2.18pre24/net/eepro100.o_+-77357/96] 
[sys_select+881/1176] [system_call+52/56]
Dec  7 14:25:50 vega kernel: Code: f7 f6 89 d5 89 4b 1c 01 6b 28 80 7b 05 01 0f
85 a8 00 00 00
Using defaults from ksymoops -t elf32-i386 -a i386

Code;   Before first symbol
 _EIP:
Code;   Before first symbol
   0:   f7 f6 div%esi,%eax
Code;  0002 Before first symbol
   2:   89 d5 mov%edx,%ebp
Code;  0004 Before first symbol
   4:   89 4b 1c  mov%ecx,0x1c(%ebx)
Code;  0007 Before first symbol
   7:   01 6b 28  add%ebp,0x28(%ebx)
Code;  000a Before first symbol
   a:   80 7b 05 01   cmpb   $0x1,0x5(%ebx)
Code;  000e Before first symbol
   e:   0f 85 a8 00 00 00 jnebc _EIP+0xbc 00bc Before first symbol


2 warnings issued.  Results may not be reliable.

- Gabor

-- 
 ---[ Gbor Lnrt ][ Vivendi Telecom Hungary ]---[ [EMAIL PROTECTED] ]---
 U have 8 bit computer or chip of them and it's unused or to be sold? Call me!
 ---[ +36 30 2270823 ] LGB ---[ Linux/UNIX/8bit 4ever ]-

00:00.0 Host bridge: Intel Corporation 82810E GMCH [Graphics Memory Controller Hub] 
(rev 03)
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- 
SERR+ FastB2B-
Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=fast TAbort- TAbort- 
MAbort+ SERR- PERR-
Latency: 0

00:01.0 VGA compatible controller: Intel Corporation 82810E CGC [Chipset Graphics 
Controller] (rev 03) (prog-if 00 [VGA])
Subsystem: Compaq Computer Corporation: Unknown device b1c1
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- 
SERR- FastB2B-
Status: Cap+ 66Mhz+ UDF- FastB2B+ ParErr- DEVSEL=medium TAbort- TAbort- 
MAbort- SERR- PERR-
Latency: 0
Interrupt: pin A routed to IRQ 11
Region 0: Memory at 4400 (32-bit, prefetchable)
Region 1: Memory at 4040 (32-bit, non-prefetchable)
Capabilities: [dc] Power Management version 1
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA 
PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:1e.0 PCI bridge: Intel Corporation 82801AA PCI Bridge (rev 02) (prog-if 00 [Normal 
decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- 
SERR+ FastB2B-
Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=fast TAbort- TAbort- 
MAbort- SERR- PERR-
Latency: 0
Bus: primary=00, secondary=01, 

Re: 2.4.0-test12-pre4 + cs46xx + KDE 2.0 = frozen system

2000-12-07 Thread Steven Cole

On Thursday 07 December 2000 06:28, Alan Cox wrote:
  I copied the cs46xx.c driver from 2.4.0-test11 to 2.4.0-test11-ac1,
  rebuilt, and I got a test11-ac1 kernel which works with KDE 2.0 and
  sound.

 Excellent, that really narrows it down. Once 2.2.18 is out I will try and
 get to the bottom of this

Linus Torvalds wrote:
The only reason for this pre7 is to resolve some warring patches in the
cs46xx driver.

It looks like cs46xx version 1.10 is a winner.

Crystal 4280/461x + AC97 Audio, version 1.10, 07:08:39 Dec  7 2000
cs461x: Card found at 0xf8ffe000 and 0xf8e0, IRQ 18
cs461x: Unknown card (1028:0096) at 0xf8ffe000/0xf8e0, IRQ 18
ac97_codec: AC97 Audio codec, id: 0x4352:0x5914 (Unknown)

The cs46xx driver in test12-pre7 by Nils Faerber, Thomas Woller, et al works 
great with my troublesome Dell 420.  I'm now listening to music on the CD, 
running KDE 2.0 with the machine booted up on 2.4.0-test12-pre7.

Many thanks to all who helped with this.

Steven

-
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-2] Configuring Synchronous Interfaces in Linux

2000-12-07 Thread Alan Cox

  struct hdlc_protocol
  struct fr_protocol
  struct eth_physical
 
 Not yet another one for eth...  We now have ethtool for this.  And a
 generic netdevice::set_config wrapper can be created that simply calls
 the ethtool ioctl with the proper info and locking.

There I disagree. I would do it the other way up. Post 2.4 you make the
ethtool ioctl simply build an eth_physical and run in that way. Right now
the ethtool stuff is a bit hackish and cannot handle upcoming real world
situations such as setting the cryptokey for onboard crypto on ethernet
cards, or handling devices that present themselves as ethernet but are not
at the physical layer being remotely honest about it.

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/



related to pthread

2000-12-07 Thread Rajiv Majumdar



Hi

I am trying to write a multithreaded tcp/ip daemon using the pthread
interface. The server compiles well but during an exec it gives the
following error message : "Pthread internal error : message :
__libc__reinit() failed" and creates a core dump.

I would highly appreciate any help.

Rajiv


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



Re: [patch] Re: [patch-2.4.0-test12-pre6] truncate(2) permissions

2000-12-07 Thread Tigran Aivazian

On Thu, 7 Dec 2000, Alexander Viro wrote:
 On Thu, 7 Dec 2000, Tigran Aivazian wrote:
 
  The rationale for being compatible with 4.4BSD on append-only but not on
  immutable is -- for immutable we can do the test by means of permission()
  fast but for append-only we would need an extra if() above permission so
  let's just be BSD-compatible.  Alternatively, one could ignore BSD
  altogether and return EACCES in both. Or, one could ignore SuS altogether
  and return EPERM for both immutable and append-only. It is a matter of
  taste so... I chose something in the middle , perhaps non-intuitive but
  optimized for speed and the size of code.
 
 So correct solution may very well be to change the return value of
 permission(9). FWIW, MAY_TRUNCATE might be a good idea - notice that
 knfsd already has something like that. It makes sense for directories,
 BTW - having may_delete() drop the IS_APPEND() test and pass MAY_TRUNCATE
 to permission() instead.
 

Ok, so you agree with me (I ignore your comment on "BS" because it would
imply that your own suggestion is BS too and that is not nice) that one of
the three alternatives must be chosen. Which one? You have not specified
yet. So far you only said that a different implementation, i.e. a
different place to put the checks, is preferrable.

Which of these three you think is a good idea:

a) be 4.4BSD-compatible and return EPERM for both immutable and
append-only

b) be SuSv2-compatible and return EACCES for both immutable and
append-only

c) be half-compatible with BSD and half-compatible with SuS but with
minimum changes to current code

I understand and agree that c) is not a very good idea. Then, a) or b)?

Regards,
Tigran


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



related to pthread

2000-12-07 Thread Rajiv Majumdar




Hi

I am trying to write a multithreaded tcp/ip daemon using the pthread
interface. The server compiles well but during an exec it gives the
following error message : "Pthread internal error : message :
__libc__reinit() failed" and creates a core dump.

I would highly appreciate any help.

Rajiv


-
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-test12-pre7

2000-12-07 Thread Russell King

Linus Torvalds writes:
 - me: UHCI drivers really need to enable bus mastering.

But it'll already be turned on if pci_assign_unassigned_resources() is
called.  This calls pdev_enable_device for every single device, which
turns on the bus master bit in the PCI command register.

Is it intentional that pci_assign_unassigned_resources should:
1. enable all devices?
2. enable bus master on all devices?
   _
  |_| - ---+---+-
  |   | Russell King[EMAIL PROTECTED]  --- ---
  | | | | http://www.arm.linux.org.uk/personal/aboutme.html   /  /  |
  | +-+-+ --- -+-
  /   |   THE developer of ARM Linux  |+| /|\
 /  | | | ---  |
+-+-+ -  /\\\  |
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



getcwd() returning -ENOENT???

2000-12-07 Thread Russell King

Hi,

Can someone explain why I'm seeing the following on test12-pre7:

bash# /bin/pwd
/bin/pwd: cannot get current directory: No such file or directory
bash# vdir /proc/self/.
...
lrwxrwxrwx1 root root   0 Dec  7 14:52 cwd - 
/net/raistlin/raistlin-v2.4/linux-ebsa285 (deleted)
...
lrwxrwxrwx1 root root   0 Dec  7 14:52 root - /
...
bash# vdir
... complete listing of directory ...
bash# cat /proc/mounts
/dev/root / ext2 rw,noatime 0 0
/proc /proc proc rw 0 0
/dev/hda3 /var ext2 rw,nodiratime 0 0
/dev/hda5 /usr ext2 rw,noatime 0 0
/dev/hda6 /home ext2 rw 0 0
none /dev/pts devpts rw 0 0
none /dev/shm shm rw 0 0
automount(pid482) /net/flint autofs rw 0 0
automount(pid499) /net/raistlin autofs rw 0 0
raistlin:/usr/src/v2.4 /net/raistlin/raistlin-v2.4 nfs 
rw,v2,rsize=4096,wsize=4096,hard,udp,lock,addr=raistlin 0 0

Rebooting the machine and trying again caused this weirdness to disappear.

First time around, the network wasn't initially available when autofs
started.
   _
  |_| - ---+---+-
  |   | Russell King[EMAIL PROTECTED]  --- ---
  | | | | http://www.arm.linux.org.uk/personal/aboutme.html   /  /  |
  | +-+-+ --- -+-
  /   |   THE developer of ARM Linux  |+| /|\
 /  | | | ---  |
+-+-+ -  /\\\  |
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: [patch] Re: [patch-2.4.0-test12-pre6] truncate(2) permissions

2000-12-07 Thread Alexander Viro



On Thu, 7 Dec 2000, Tigran Aivazian wrote:

 yet. So far you only said that a different implementation, i.e. a
 different place to put the checks, is preferrable.

-EPERM returned by permission() if we ask for write access to immutable.

Al, currently walking through the /usr/share/man/man2 and swearing silently...

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



Re: The horrible hack from hell called A20

2000-12-07 Thread Andrew Morton

Linus Torvalds wrote:
 
 On Wed, 6 Dec 2000, Miles Lane wrote:
 
  Here is what goes wrong:
 
  Dec  6 04:21:32 agate kernel: eth0: Host error, FIFO diagnostic register  .
 
 But it continues to work, right?
 
 I bet that your ethernet card is just unhappy that it couldn't get DMA in
 time, because the bus was so busy. Many of the busmastering ethernet
 devices will start the packet send early, happy in the knowledge that
 they'll usually have plenty of time to DMA the data by the time they need
 it.
 
 This works fine most of the time, but if you have a busy PCI bus and
 you're doing things over a (potentially slow) PCI bridge like the Cardbus
 bridge, you're taking chances. And sometimes those chances do not work out
 ok.. Especially if you have slow memory, which most laptops have.
 
 I suspect that the worst result of this is just a noisy driver: both on
 the network (runt packets) and on the console. And it obviously will cause
 performance to suffer too, due to retransmitting packets that failed,
 and/or losing packets.
 
 There may be some rule for the threshold for sending packets or something
 else to make this happen less, so this is probably tweakable. But it
 doesn't sound deadly (unless the driver causes this to result in a dead
 network - does it?)
 

We initialise the 3com NICs so that the DMA of Tx frames doesn't
commence until 1536 free bytes are available in the Tx FIFO.  I assume
this is to make the most of the NIC's ability to bus-master-transfer an
entire frame in one slurp.  But this is irrelevant.

We initialise the NIC so it starts putting data on the wire after 128
bytes are in the Tx FIFO.  So yes, there is an opportunity for another
bus master to interrupt the slurp and to hold the bus for so long that
the NIC gets a TX underrun.  But surely not by just wiggling the mouse
around?

I have seen just one report of a person getting Tx underruns.  The
driver recovered OK.  But Miles is reporting "Host error".  This is
different.  The 3com datasheet says:

   This bit is set when a catastrophic error related to the bus
   interface occurs.

   The errors that set this bit are PCI target abort and PCI master
   abort.  

   This bis is cleared by issuing the GlobalReset command...

This is a very rare problem.  Trolling the vortex archives comes up
with a few comments from Das Nicmeisters:

Donald Becker write:
Another PCMCIA setup bug, except this one is much harder to track down.
The CardBus bridge chip isn't configured correctly.
This is a real bus problem, not a false report.

David Hinds wrote:
I've gotten a few reports of these PCI bus errors.  They have indeed
been very hard to track down, since they are specific to particular
hardware combinations, and I've never been able to reproduce them.

Donald Becker wrote:
I've gotten this error on my Vaio 505TR, but I've never been able to
reproduce it when I'm ready to observe it.

Miles, could you please apply the below patch? It'll give us a
little more info about the PCI error.  Bit 31 of `bus status' is
MasterAbort and bit 30 is TargetAbort.

Also, you can disable the start-tx-after-128-bytes feature by uncommenting

//  wait_for_completion(dev, SetTxStart|0x07ff);

near the end of vortex_up().  With this change the NIC won't start
transmitting until it has the entire frame onboard.  It shouldn't make
any difference (hah).  

This does look like a Cardbus bridge problem.



--- linux-2.4.0-test12-pre7/drivers/net/3c59x.c Tue Nov 21 20:11:20 2000
+++ linux-akpm/drivers/net/3c59x.c  Fri Dec  8 02:24:11 2000
@@ -203,7 +203,7 @@
 #include linux/delay.h
 
 static char version[] __devinitdata =
-"3c59x.c:LK1.1.11 13 Nov 2000  Donald Becker and others. 
http://www.scyld.com/network/vortex.html " "$Revision: 1.102.2.46 $\n";
+"3c59x.c:LK1.1.11 13 Nov 2000  Donald Becker and others. 
+http://www.scyld.com/network/vortex.html " "$Revision: 1.102.2.40 $\n";
 
 MODULE_AUTHOR("Donald Becker [EMAIL PROTECTED]");
 MODULE_DESCRIPTION("3Com 3c59x/3c90x/3c575 series Vortex/Boomerang/Cyclone driver");
@@ -843,10 +843,15 @@
 {
int rc;
 
-   rc = vortex_probe1 (pdev, pci_resource_start (pdev, 0), pdev-irq,
-   ent-driver_data, vortex_cards_found);
-   if (rc == 0)
-   vortex_cards_found++;
+   /* wake up and enable device */ 
+   if (pci_enable_device (pdev)) {
+   rc = -EIO;
+   } else {
+   rc = vortex_probe1 (pdev, pci_resource_start (pdev, 0), pdev-irq,
+   ent-driver_data, vortex_cards_found);
+   if (rc == 0)
+   vortex_cards_found++;
+   }
return rc;
 }
 
@@ -863,7 +868,7 @@
struct vortex_private *vp;
int option;
unsigned int eeprom[0x40], checksum = 0;/* EEPROM contents */
-   int i;
+   int i, step;
struct net_device *dev;
static int printed_version;
  

Re: getcwd() returning -ENOENT???

2000-12-07 Thread Alexander Viro



On Thu, 7 Dec 2000, Russell King wrote:

 Hi,
 
 Can someone explain why I'm seeing the following on test12-pre7:
 
 bash# /bin/pwd
 /bin/pwd: cannot get current directory: No such file or directory

Directory is unhashed. Normally it means that sucker had been deleted.

 bash# vdir /proc/self/.
 ...
 lrwxrwxrwx1 root root   0 Dec  7 14:52 cwd - 
/net/raistlin/raistlin-v2.4/linux-ebsa285 (deleted)

Ditto.

 ...
 lrwxrwxrwx1 root root   0 Dec  7 14:52 root - /
 ...
 bash# vdir
 ... complete listing of directory ...

Which means that it is _not_ deleted. Looks like it had been invalidated
for some reason. Try to reproduce that on -test10 - that should be before
NFS changes.

-
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: Microsecond accuracy

2000-12-07 Thread H. Peter Anvin

Followup to:  [EMAIL PROTECTED]
By author:Tigran Aivazian [EMAIL PROTECTED]
In newsgroup: linux.dev.kernel
 
 while we are on this subject, please let me emphasize that you should
 _not_ be using cpuid instruction to detect the presence of TSC but should
 parse the /proc/cpuinfo file. There are many valid reasons why Linux's
 idea of TSC presence may not be the same as hardware's (cpuid
 instruction) idea.
 

Unfortunately the most important instance of the in-kernel flag -- the
global one in the somewhat misnamed boot_cpu_data.x86_features --
isn't actually readable in the /proc/cpuinfo file.  It is perfectly
possible (e.g. the "notsc" option) for ALL the CPUs to report this
capability, but the global capability to still be off.

I would like to have exported the global capabilities into
/proc/cpuinfo, but I'm worried about breaking software (the "flags"
versus "features" issue was bad enough -- unfortunately, in cases like
this, there probably is no "good" solution.)

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



Re: [PATCH] Broken NR_RESERVED_FILES

2000-12-07 Thread Tigran Aivazian

On Thu, 7 Dec 2000, Szabolcs Szakacsits wrote:
 again. The failed logic is also clear from the kernel code [user
 happily allocates when freelist  NR_RESERVED_FILES].

is it clear to you? it is not clear to me, or rather the opposite seems
clear. This is what the code looks like (in 2.4):

struct file * get_empty_filp(void)
{
static int old_max = 0;
struct file * f;

file_list_lock();
if (files_stat.nr_free_files  NR_RESERVED_FILES) {
used_one:
f = list_entry(free_list.next, struct file, f_list);
list_del(f-f_list);
files_stat.nr_free_files--;

so, a normal user is only allowed to allocate from the freelist when the
number of elements on the freelist is  NR_RESERVED_FILES. I do not see
how you are able to take elements from the freelist when the number is 
NR_RESERVED_FILES unless you are a super-user, i.e. current-euid == 0.

Btw, while you are there (in 2.2 kernel) you may want to fix the
/proc/sys/fs/file-nr -- it is broken because it assumes that nr_files,
nr_free_files, max_files are allocated by the compiler at consecutive
addresses. I have fixed this for 2.4 ages ago but couldn't be bothered
with 2.2.x...

Regards,
Tigran


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



attempt to access beyond end of device

2000-12-07 Thread Jan Niehusmann

ll_rw_blk.c: generic_make_request() contains the following code:

if (maxsector  count || maxsector - count  sector) {
bh-b_state = (1  BH_Lock) | (1  BH_Mapped);
if (blk_size[major][MINOR(bh-b_rdev)]) {

/* This may well happen - the kernel calls bread()
   without checking the size of the device, e.g.,
   when mounting a device. */
printk(KERN_INFO
   "attempt to access beyond end of device\n");
printk(KERN_INFO "%s: rw=%d, want=%d, limit=%d\n",
   kdevname(bh-b_rdev), rw,
   (sector + count)1,
   blk_size[major][MINOR(bh-b_rdev)]);
}
bh-b_end_io(bh, 0);
return;
}


That means that if blk_size[major][MINOR(bh-b_rdev)] == 0, the request
is canceled but no message is printed. Shouldn't there be a warning message?

Jan





-
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] Broken NR_RESERVED_FILES

2000-12-07 Thread Szabolcs Szakacsits


On Thu, 7 Dec 2000, Tigran Aivazian wrote:
 On Thu, 7 Dec 2000, Szabolcs Szakacsits wrote:
  again. The failed logic is also clear from the kernel code [user
  happily allocates when freelist  NR_RESERVED_FILES].

 is it clear to you? it is not clear to me, or rather the opposite seems
 clear. This is what the code looks like (in 2.4):

 struct file * get_empty_filp(void)
 {
 static int old_max = 0;
 struct file * f;

 file_list_lock();
 if (files_stat.nr_free_files  NR_RESERVED_FILES) {
 used_one:
 f = list_entry(free_list.next, struct file, f_list);
 list_del(f-f_list);
 files_stat.nr_free_files--;

 so, a normal user is only allowed to allocate from the freelist when the
 number of elements on the freelist is  NR_RESERVED_FILES. I do not see
 how you are able to take elements from the freelist when the number is 
 NR_RESERVED_FILES unless you are a super-user, i.e. current-euid == 0.

Read the whole get_empty_filp function, especially this part, note the
goto new_one below and the part you didn't include above [from
the new_one label],

if (files_stat.nr_files  files_stat.max_files) {
file_list_unlock();
f = kmem_cache_alloc(filp_cachep, SLAB_KERNEL);
file_list_lock();
if (f) {
files_stat.nr_files++;
goto new_one;
}

 Btw, while you are there (in 2.2 kernel) you may want to fix the

Sorry, no time.

Szaka

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



[Fwd: 2.4.0-test12-pre7]

2000-12-07 Thread Randy Dunlap

 From: Russell King [mailto:[EMAIL PROTECTED]]
 
 Linus Torvalds writes:
  - me: UHCI drivers really need to enable bus mastering.
 
 But it'll already be turned on if pci_assign_unassigned_resources() is
 called.  This calls pdev_enable_device for every single device, which
 turns on the bus master bit in the PCI command register.
 
 Is it intentional that pci_assign_unassigned_resources should:
 1. enable all devices?
 2. enable bus master on all devices?

Russell beat me to this question (must have something to do
with that .uk location).

I think that Linus's patch is correct and that
pci/setup_res.c::pdev_enable_device() shouldn't be doing this:

/* ??? Always turn on bus mastering.  If the device doesn't support
   it, the bit will go into the bucket. */
cmd |= PCI_COMMAND_MASTER;

First, the ??? makes it iffy.

Second, if the device doesn't support it, OK, but if the device
does support bus mastering and the device has been programmed
from a previous kernel/driver bootup (i.e., the device isn't reset
by a soft boot), then the device still knows some memory addresses
to DMA into, but it shouldn't be using those.  This is addressed
in a Word .doc file at www.pcisig.com/developers/docs/ :
"Warm Boot on PCI Machines".  The short summary is that soft reset
should disable bus mastering and not re-enable it.
This doc says that device drivers (or expansion ROM code) are
responsible for setting the bus master bit.

Third, removing this will help find drivers that don't do
  pci_set_master() when they should (like UHCI HCDs).  :(

~Randy
-- 
___
|randy.dunlap_at_intel.com503-677-5408|
|NOTE: Any views presented here are mine alone|
| may not represent the views of my employer.|
---


 From: Russell King [mailto:[EMAIL PROTECTED]]
 
 Linus Torvalds writes:
  - me: UHCI drivers really need to enable bus mastering.
 
 But it'll already be turned on if pci_assign_unassigned_resources() is
 called.  This calls pdev_enable_device for every single device, which
 turns on the bus master bit in the PCI command register.
 
 Is it intentional that pci_assign_unassigned_resources should:
 1. enable all devices?
 2. enable bus master on all devices?

Russell beat me to this question (must have something to do
with that .uk location).

I think that Linus's patch is correct and that
pci/setup_res.c::pdev_enable_device() shouldn't be doing this:




Re: [patch] Re: [patch-2.4.0-test12-pre6] truncate(2) permissions

2000-12-07 Thread Andries Brouwer

On Thu, Dec 07, 2000 at 08:23:59AM -0500, Alexander Viro wrote:

 looking at the truncate(2) manpage
 Oh, lovely - where the hell had the following come from?
 % man truncate
 ...
EINVAL The  pathname  contains  a character with the high-
   order bit set.
 ...
 Andries, would you mind removing that, erm, statement? I'm curious about
 its genesis - AFAIK we had 8bit-clean namei for ages (quite possibly since
 0.01).

I removed it in man-pages-1.30.
Apparently you have an older version.
(1.31 has been released; expect 1.32 soon)

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



Why is double_fault serviced by a trap gate?

2000-12-07 Thread richardj_moore



Why is double_fault serviced by a trap gate? The problem with this is that
any double-fault caused by a stack-fault, which is the usual reason,
becomes a triple-fault. And a triple-fault results in a processor reset or
shutdown making the fault damn near impossible to get any information on.

Oughtn't the double-fault exception handler be serviced by a task gate? And
similarly the NMI handler in case the NMI is on the current stack page
frame?




Richard Moore -  RAS Project Lead - Linux Technology Centre (PISC).

http://oss.software.ibm.com/developerworks/opensource/linux
Office: (+44) (0)1962-817072, Mobile: (+44) (0)7768-298183
IBM UK Ltd,  MP135 Galileo Centre, Hursley Park, Winchester, SO21 2JN, UK


-
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] Broken NR_RESERVED_FILES

2000-12-07 Thread Tigran Aivazian

On Thu, 7 Dec 2000, Szabolcs Szakacsits wrote:
 Read the whole get_empty_filp function, especially this part, note the
 goto new_one below and the part you didn't include above [from
 the new_one label],
 
 if (files_stat.nr_files  files_stat.max_files) {
 file_list_unlock();
 f = kmem_cache_alloc(filp_cachep, SLAB_KERNEL);
 file_list_lock();
 if (f) {
 files_stat.nr_files++;
 goto new_one;
 }

I have read the whole function, including the above code, of course. The
new_one label has nothing to do with freelists -- it adds the file to the
anon_list, where the new arrivales from the slab cache go. The goto
new_one above is there simply to initialize the structure with sane
initial values

So, the normal user _cannot_ take a file structure from the freelist
unless it contains more than NR_RESERVED_FILE entries. Please read the
whole function and see it for yourself.

Regards,
Tigran

-
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: Microsecond accuracy

2000-12-07 Thread Maciej W. Rozycki

On 7 Dec 2000, H. Peter Anvin wrote:

 Unfortunately the most important instance of the in-kernel flag -- the
 global one in the somewhat misnamed boot_cpu_data.x86_features --
 isn't actually readable in the /proc/cpuinfo file.  It is perfectly
 possible (e.g. the "notsc" option) for ALL the CPUs to report this
 capability, but the global capability to still be off.

 Hmm, I recall I implemented and explicitly verified switching the
/proc/cpuinfo "tsc" flag (as well as the userland access to the TSC) off
when I wrote the code to handle the "notsc" option.  Has it changed since
then?  I recall you modified the code a bit -- I looked at the changes
then but I was pretty confident the semantics was preserved.

 There is no possibility to have TSC and non-TSC chips mixed in a single
SMP system (due to existing hardware, even though it's possible in
theory), so there is no problem with such an assymetry.  Either all chips
have the "tsc" flag in /proc/cpuinfo on or off.

-- 
+  Maciej W. Rozycki, Technical University of Gdansk, Poland   +
+--+
+e-mail: [EMAIL PROTECTED], PGP key available+

-
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: Why is double_fault serviced by a trap gate?

2000-12-07 Thread Andi Kleen

On Thu, Dec 07, 2000 at 04:04:21PM +, [EMAIL PROTECTED] wrote:
 
 
 Why is double_fault serviced by a trap gate? The problem with this is that
 any double-fault caused by a stack-fault, which is the usual reason,
 becomes a triple-fault. And a triple-fault results in a processor reset or
 shutdown making the fault damn near impossible to get any information on.
 
 Oughtn't the double-fault exception handler be serviced by a task gate? And
 similarly the NMI handler in case the NMI is on the current stack page
 frame?

Sounds like a good idea, when you can afford a few K for a special
NMI/double fault stack. On x86-64 it is planned to do that.


-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] Re: [patch-2.4.0-test12-pre6] truncate(2) permissions

2000-12-07 Thread Andries Brouwer

On Thu, Dec 07, 2000 at 10:24:31AM -0500, Alexander Viro wrote:

 Al, currently walking through the /usr/share/man/man2 and swearing silently...

Swearing? At the POSIX decisions or at the man page quality?
In the latter case, additions and corrections are very welcome.
Make sure that you have 1.31 installed. 

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



alpha pci fixes (test12-pre7)

2000-12-07 Thread Ivan Kokshaysky

This should fix at least some of the boot problems reported recently.

- boot failure on Miata with 1Gb of memory, fixed by Jay Estabrook.
  Address written to the Translated Base Registers of CIA/Pyxis
  must be shifted by 2.

- fix oops on DP264 caused by Cypress quirk. We cannot call
  pci_claim_resource() from the quirk code, otherwise on multi-hose
  machines hose resources would appear to be a sibling, not parent for
  the resource we want to claim - pcibios_fixup_bus() is called _after_
  quirks fixup, thus pci_claim_resource() will always fail.
  Fortunately, another quite simple fix is possible - just disable
  resources for standard IDE ports, and generic IDE code will assume
  legacy addresses.

- off by one check in pci_dma_supported().

- proper calculation of the address space size for 64-bit PCI cards.

- start resource allocation on the root bus from PCIBIOS_MIN_[IO,MEM],
  not from 0. Otherwise if there is a bridge on the root bus, but no I/O
  or memory, the bridge's bases would be set too low. This doesn't matter
  in the I/O case since devices behind the bridge are allocated properly
  anyway, but could be harmful for memory case - the bridge will block
  transfers to the ISA sg window from secondary bus.

- sanity check in pci_dma_supported() for bogus regions.

Ivan.

diff -urp 2.4.0t12p7/arch/alpha/kernel/core_cia.c linux/arch/alpha/kernel/core_cia.c
--- 2.4.0t12p7/arch/alpha/kernel/core_cia.c Wed Dec  6 15:00:54 2000
+++ linux/arch/alpha/kernel/core_cia.c  Thu Dec  7 13:18:33 2000
@@ -700,11 +700,11 @@ do_init_arch(int is_pyxis)
 
*(vip)CIA_IOC_PCI_W1_BASE = 0x4000 | 1;
*(vip)CIA_IOC_PCI_W1_MASK = (0x4000 - 1)  0xfff0;
-   *(vip)CIA_IOC_PCI_T1_BASE = 0;
+   *(vip)CIA_IOC_PCI_T1_BASE = 0  2;
 
*(vip)CIA_IOC_PCI_W2_BASE = 0x8000 | 1;
*(vip)CIA_IOC_PCI_W2_MASK = (0x4000 - 1)  0xfff0;
-   *(vip)CIA_IOC_PCI_T2_BASE = 0x4000;
+   *(vip)CIA_IOC_PCI_T2_BASE = 0x4000  2;
 
*(vip)CIA_IOC_PCI_W3_BASE = 0;
 }
diff -urp 2.4.0t12p7/arch/alpha/kernel/pci.c linux/arch/alpha/kernel/pci.c
--- 2.4.0t12p7/arch/alpha/kernel/pci.c  Wed Dec  6 15:00:54 2000
+++ linux/arch/alpha/kernel/pci.c   Thu Dec  7 13:16:44 2000
@@ -90,10 +90,8 @@ quirk_cypress_ide_ports(struct pci_dev *
 {
if (dev-class  8 != PCI_CLASS_STORAGE_IDE)
return;
-   dev-resource[1].start |= 2;
-   dev-resource[1].end = dev-resource[1].start;
-   pci_claim_resource(dev, 0);
-   pci_claim_resource(dev, 1);
+   dev-resource[0].flags = 0;
+   dev-resource[1].flags = 0;
 }
 
 static void __init
diff -urp 2.4.0t12p7/arch/alpha/kernel/pci_iommu.c linux/arch/alpha/kernel/pci_iommu.c
--- 2.4.0t12p7/arch/alpha/kernel/pci_iommu.cSat Sep 23 01:07:43 2000
+++ linux/arch/alpha/kernel/pci_iommu.c Thu Dec  7 13:17:36 2000
@@ -613,10 +613,10 @@ pci_dma_supported(struct pci_dev *pdev, 
/* Check that we have a scatter-gather arena that fits.  */
hose = pdev ? pdev-sysdata : pci_isa_hose;
arena = hose-sg_isa;
-   if (arena  arena-dma_base + arena-size = mask)
+   if (arena  arena-dma_base + arena-size - 1 = mask)
return 1;
arena = hose-sg_pci;
-   if (arena  arena-dma_base + arena-size = mask)
+   if (arena  arena-dma_base + arena-size - 1 = mask)
return 1;
 
return 0;
diff -urp 2.4.0t12p7/drivers/pci/pci.c linux/drivers/pci/pci.c
--- 2.4.0t12p7/drivers/pci/pci.cWed Dec  6 15:00:57 2000
+++ linux/drivers/pci/pci.c Thu Dec  7 14:46:49 2000
@@ -575,8 +575,9 @@ static void pci_read_bases(struct pci_de
pci_write_config_dword(dev, reg+4, ~0);
pci_read_config_dword(dev, reg+4, sz);
pci_write_config_dword(dev, reg+4, l);
-   if (sz)
-   res-end = res-start + (((unsigned long) ~sz)  32);
+   if (~sz)
+   res-end = res-start + 0x +
+   (((unsigned long) ~sz)  32);
 #else
if (l) {
printk(KERN_ERR "PCI: Unable to handle 64-bit address 
for device %s\n", dev-slot_name);
diff -urp 2.4.0t12p7/drivers/pci/setup-bus.c linux/drivers/pci/setup-bus.c
--- 2.4.0t12p7/drivers/pci/setup-bus.c  Wed Dec  6 15:00:57 2000
+++ linux/drivers/pci/setup-bus.c   Thu Dec  7 13:21:24 2000
@@ -205,7 +205,7 @@ pbus_assign_resources(struct pci_bus *bu
}
 }
 
-void __init 
+void __init
 pci_assign_unassigned_resources(void)
 {
struct pbus_set_ranges_data ranges;
@@ -215,8 +215,8 @@ pci_assign_unassigned_resources(void)
for(ln=pci_root_buses.next; ln != pci_root_buses; ln=ln-next) {
struct pci_bus *b = pci_bus_b(ln);
 
-   ranges.io_start = b-resource[0]-start;
-   ranges.mem_start = b-resource[1]-start;
+ 

java (and possibly other threaded apps) hanging in rt_sigsuspend

2000-12-07 Thread Frank de Lange

Hi Ulrich,

I saw your remarks on the kernel mailing list wrt. 'threaded processes get
stuck in rt_sigsuspend/fillonedir/exit_notify' dd. 2911-12, and thought you
might be interested in the fact that something quite like this also happens on
2.4.0-test11 with glibc-2.2 (release), BUT NOT ALWAYS...

I can reliably hang java (Blackdown port jdk1.3, FCS) using the -Xmx parameter
(which specifies a maximum heap size), the weird thing is that it does NOT hang
which this parameter is either not specified OR specified but larger than a
certain value. When it hangs, it always is stuck in a rt_sigsuspend call just
after a clone() call. An example:

 [frank@behemoth frank]$ java
(java starts and spits out some info, then exits as it should)

 
 [frank@behemoth frank]$ java -Xmx32m
(java ALWAYS gets stuck:

pipe([6, 7])= 0
clone() = 14732
[pid 14679] write(7, "\0\0\0\0\5\0\0\0~\266\2@ $T@\0 T@\0 
T@\300\265\2@\0\0\0"..., 148) = 148
[pid 14679] rt_sigprocmask(SIG_SETMASK, NULL, [RT_0], 8) = 0
[pid 14679] write(7, 
"`S\3@\0\0\0\0\20\321\377\277pD\37@\30\5\10\0\0\0\200\0"..., 148) = 148
[pid 14679] rt_sigprocmask(SIG_SETMASK, NULL, [RT_0], 8) = 0
[pid 14679] rt_sigsuspend([]
)


 [frank@behemoth frank]$ java -Xmx64m
(java runs, but it gets stuck if this command is repeated a few times in quick 
succession.)
 
 [frank@behemoth frank]$ java -Xmx80m
(java runs, no matter how often the command is repeated)


Some data on the test system:

[uname -a]
Linux behemoth.localnet 2.4.0-test11 #1 SMP Wed Nov 22 22:10:52 CET 2000 i686 unknown

[/lib/libc-2.2.so]
GNU C Library stable release version 2.2, by Roland McGrath et al.
Copyright (C) 1992,93,94,95,96,97,98,99,2000 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 2.95.2 19991024 (release).
Compiled on a Linux 2.4.0-test11 system on 2000-11-23.
Available extensions:
GNU libio by Per Bothner
crypt add-on version 2.1 by Michael Glad and others
The C stubs add-on version 2.1.2.
BIND-8.2.3-T5B
NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk
Glibc-2.0 compatibility add-on by Cristian Gafton 
linuxthreads-0.9 by Xavier Leroy
libthread_db work sponsored by Alpha Processor Inc
Report bugs using the `glibcbug' script to [EMAIL PROTECTED].

[java -version]
java version "1.3.0"
Java(TM) 2 Runtime Environment, Standard Edition (build Blackdown-1.3.0-FCS)
Java HotSpot(TM) Client VM (build Blackdown-1.3.0-FCS, mixed mode)


Why am I sending you this report? Well, since you indicate that you are working
on a rewrite of linuxthreads, this might be of interest. Especially the weird
behaviour wrt. the maximum heap size. I do not expect nor ask you to fix the
java problems, this is purely informational...

FYI, on a linux 2.2/glibc 2.1.3 box this problem does not occur, in case you
wondered...

I cc'd this message to the blackdown team, so they know something's amiss as
well.

Cheers//Frank
-- 
  W  ___
 ## o o\/ Frank de Lange \
 }#   \|   /  \
  ##---# _/ Hacker for Hire  \
      \  +31-320-252965/
   \[EMAIL PROTECTED]/
-
 [ Hacker: http://www.jargon.org/html/entry/hacker.html ]
-
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: [Fwd: 2.4.0-test12-pre7]

2000-12-07 Thread Alan Cox

 I think that Linus's patch is correct and that
 pci/setup_res.c::pdev_enable_device() shouldn't be doing this:
 
   /* ??? Always turn on bus mastering.  If the device doesn't support
  it, the bit will go into the bucket. */
   cmd |= PCI_COMMAND_MASTER;
 
 First, the ??? makes it iffy.

I would agree. There is hardware you need to enable, reset, configure and
then enable the master bit on otherwise it simply starts spraying random
memory addresses with bus master transfers from uninitialised hardware
registers

 by a soft boot), then the device still knows some memory addresses
 to DMA into, but it shouldn't be using those.  This is addressed

Yep. Seen that happen with amd pcnet32 stuff when net booting. The net
booter left the chip prattling into main memory, not pretty

-
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: Why is double_fault serviced by a trap gate?

2000-12-07 Thread Richard B. Johnson

On Thu, 7 Dec 2000, Andi Kleen wrote:

 On Thu, Dec 07, 2000 at 04:04:21PM +, [EMAIL PROTECTED] wrote:
  
  
  Why is double_fault serviced by a trap gate? The problem with this is that
  any double-fault caused by a stack-fault, which is the usual reason,
  becomes a triple-fault. And a triple-fault results in a processor reset or
  shutdown making the fault damn near impossible to get any information on.
  
  Oughtn't the double-fault exception handler be serviced by a task gate? And
  similarly the NMI handler in case the NMI is on the current stack page
  frame?
 
 Sounds like a good idea, when you can afford a few K for a special
 NMI/double fault stack. On x86-64 it is planned to do that.
 
 

Well, at least on current ix86 processors it can't. Attempting to
use a task gate appears to be a trick to cause the exception to
be handled on the current stack. The hardware protection hierarchy
won't let this happen. You need to have a stack that is not accessible
from the mode that will be trapped. Otherwise, a user could crash
the machine by setting ESP to 0 and waiting for the next context-
switch or timer-tick.


Cheers,
Dick Johnson

Penguin : Linux version 2.4.0 on an i686 machine (799.54 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] Broken NR_RESERVED_FILES

2000-12-07 Thread Szabolcs Szakacsits


On Thu, 7 Dec 2000, Tigran Aivazian wrote:

 On Thu, 7 Dec 2000, Szabolcs Szakacsits wrote:
  Read the whole get_empty_filp function, especially this part, note the
  goto new_one below and the part you didn't include above [from
  the new_one label],
 
  if (files_stat.nr_files  files_stat.max_files) {
  file_list_unlock();
  f = kmem_cache_alloc(filp_cachep, SLAB_KERNEL);
  file_list_lock();
  if (f) {
  files_stat.nr_files++;
  goto new_one;
  }

 I have read the whole function, including the above code, of course. The
 new_one label has nothing to do with freelists -- it adds the file to the
 anon_list, where the new arrivales from the slab cache go. The goto
 new_one above is there simply to initialize the structure with sane
 initial values

OK, 2.2 has

put_inuse(f);

instead of putting it to anon_list, so 2.4 seems ok.

Szaka

 So, the normal user _cannot_ take a file structure from the freelist
 unless it contains more than NR_RESERVED_FILE entries. Please read the
 whole function and see it for yourself.

 Regards,
 Tigran



-
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: merge_segments vs. lock_vma_mappings?

2000-12-07 Thread Ulrich . Weigand



Hello,

since test11, the merge_segments() routine assumes that every
VMA that it frees has been locked with lock_vma_mappings().

While most callers have been adapted to perform this locking,
at least two, do_mlock and sys_mprotect, do *not* currently.
This causes a deadlock in certain situations.

What's the correct way to fix this?  In mlock and mprotect,
potentially many segments could be freed; do we need to
call lock_vma_mappings on all of them before calling
merge_segments?


Mit freundlichen Gruessen / Best Regards

Ulrich Weigand

--
  Dr. Ulrich Weigand
  Linux for S/390 Design  Development
  IBM Deutschland Entwicklung GmbH, Schoenaicher Str. 220, 71032 Boeblingen
  Phone: +49-7031/16-3727   ---   Email: [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: attempt to access beyond end of device

2000-12-07 Thread Andries Brouwer

On Thu, Dec 07, 2000 at 04:56:59PM +0100, Jan Niehusmann wrote:
 ll_rw_blk.c: generic_make_request() contains the following code:
 
 if (maxsector  count || maxsector - count  sector) {
   bh-b_state = (1  BH_Lock) | (1  BH_Mapped);
   if (blk_size[major][MINOR(bh-b_rdev)]) {
 
   /* This may well happen - the kernel calls bread()
  without checking the size of the device, e.g.,
  when mounting a device. */
   printk(KERN_INFO
  "attempt to access beyond end of device\n");
   printk(KERN_INFO "%s: rw=%d, want=%d, limit=%d\n",
  kdevname(bh-b_rdev), rw,
  (sector + count)1,
  blk_size[major][MINOR(bh-b_rdev)]);
   }
   bh-b_end_io(bh, 0);
   return;
 }
 
 
 That means that if blk_size[major][MINOR(bh-b_rdev)] == 0, the request
 is canceled but no message is printed. Shouldn't there be a warning message?

Maybe that code fragment is mine. If so, then at some point
in time I decided that the answer to your question is no.

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



Re: D-LINK DFE-530-TX

2000-12-07 Thread Alan Cox

  Should be the rtl8139 driver.
 
 AFAIK, it uses the via-rhine driver. The DFE-538TX is rtl8139 based.
 Mike, if you have problems, search list archives: a few people (including
 me) reported problems under load. I've never solved them.

2.2.18pre24 has the 8139too driver that Jeff Garzik built from a mix of his 
own work and Don Becker's rather unreliable rtl8129.c driver. It seems to be
way better (but not perfect)


-
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: 64bit offsets for block devices ?

2000-12-07 Thread Stephen C. Tweedie

Hi,

On Wed, Dec 06, 2000 at 06:50:15AM -0800, Reto Baettig wrote:

 Imagine we have a virtual disk which provides a 64bit (sparse) address
 room. Unfortunately we can not use it as a block device because in a lot
 of places (including buffer_head structure), we're using a long or even
 an int for the block number. 
 
 Is there any way of getting a standardized way of doing I/O to a block
 device which could handle 64bit addresses for the block number?

It's on the agenda for urgent fixing in 2.5 (along with
block-dev-layer support for high memory on Intel, and merging in
better disk profiling, and a general cleanup of the data tables in
ll_rw_blk.c).

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



Re: YMF PCI - thanks, glitches, patches (fwd)

2000-12-07 Thread Alan Cox

 So, it's not just a matter of changing the constants under "case
 SNDCTL_DSP_SPEED" in ymf_ioctl()? Actually, I hacked them to be
 4000rate5 and it worked fine, but I'll drop this part of my patch if
 you believe it's unsafe.

I'd keep it in the absence of other evidence. 8KHz is normally the low limit
for AC97 codec based systems, but if the rate adaption is done in front of
the codec then it may well be fine

-
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: D-LINK DFE-530-TX

2000-12-07 Thread James Bourne

On Thu, 7 Dec 2000, Alan Cox wrote:

   Should be the rtl8139 driver.
 
  AFAIK, it uses the via-rhine driver. The DFE-538TX is rtl8139 based.
  Mike, if you have problems, search list archives: a few people (including
  me) reported problems under load. I've never solved them.

 2.2.18pre24 has the 8139too driver that Jeff Garzik built from a mix of his
 own work and Don Becker's rather unreliable rtl8129.c driver. It seems to be
 way better (but not perfect)

Yes, still running 2.2.17 though.

The DFE-530TX is the viacom chipset, but the DFE530TX+ (Which I guess
replaces the 538 as that is no longer listed on the Dlink site) is an
rtl8139 chip.

Jim




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


-- 
James Bourne, Web Systems Administrator
Mount Royal College, Calgary, AB, CA
www.mtroyal.ab.ca

-
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: D-LINK DFE-530-TX

2000-12-07 Thread Marco Colombo

On Thu, 7 Dec 2000, Alan Cox wrote:

   Should be the rtl8139 driver.
  
  AFAIK, it uses the via-rhine driver. The DFE-538TX is rtl8139 based.
  Mike, if you have problems, search list archives: a few people (including
  me) reported problems under load. I've never solved them.
 
 2.2.18pre24 has the 8139too driver that Jeff Garzik built from a mix of his 
 own work and Don Becker's rather unreliable rtl8129.c driver. It seems to be
 way better (but not perfect)
 

Ehm, does it drive the DFE-530TX, which, I believe, it's a via-rhine?
I had problems with the 530. I've been told that the 538 (rtl8139) works
under the same load (NFS server on a small LAN, and a 5-ports D-Link Switch),
even with the old driver.

.TM.
-- 
  /  /   /
 /  /   /   Marco Colombo
___/  ___  /   /  Technical Manager
   /  /   /  ESI s.r.l.
 _/ _/  _/ [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: D-LINK DFE-530-TX

2000-12-07 Thread Marco Colombo

On Thu, 7 Dec 2000, James Bourne wrote:

 On Thu, 7 Dec 2000, Alan Cox wrote:
 
Should be the rtl8139 driver.
  
   AFAIK, it uses the via-rhine driver. The DFE-538TX is rtl8139 based.
   Mike, if you have problems, search list archives: a few people (including
   me) reported problems under load. I've never solved them.
 
  2.2.18pre24 has the 8139too driver that Jeff Garzik built from a mix of his
  own work and Don Becker's rather unreliable rtl8129.c driver. It seems to be
  way better (but not perfect)
 
 Yes, still running 2.2.17 though.
 
 The DFE-530TX is the viacom chipset, but the DFE530TX+ (Which I guess
 replaces the 538 as that is no longer listed on the Dlink site) is an
 rtl8139 chip.

You mean that D-Link made a card named DFE530TX VIA based and one named
DFE530TX+ rtl based? Isn't it a bit confusing? B-)

 
 Jim

.TM.
-- 
  /  /   /
 /  /   /   Marco Colombo
___/  ___  /   /  Technical Manager
   /  /   /  ESI s.r.l.
 _/ _/  _/ [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-2.2.18-pre24] microcode driver fixes

2000-12-07 Thread Tigran Aivazian

Hi Alan,

I have looked at the state of microcode driver in 2.2.18-pre24 and found
that it needs a lot of changes -- a bugfix for the case when
BIOS did not update, fix to work correctly on Pentium 4 and lots of
cleanups which are in 2.4 but not in 2.2.

Tested under 2.2.18-pre24. Please consider applying this patch.

Regards,
Tigran

diff -urN -X dontdiff linux/CREDITS ucode-2.2/CREDITS
--- linux/CREDITS   Thu Dec  7 14:27:51 2000
+++ ucode-2.2/CREDITS   Thu Dec  7 14:53:22 2000
@@ -23,6 +23,12 @@
 S: University of Limerick
 S: Ireland
 
+N: Tigran Aivazian
+E: [EMAIL PROTECTED]
+W: http://www.moses.uklinux.net/patches
+D: Intel IA32 microcode update driver
+S: United Kingdom
+
 N: Werner Almesberger
 E: [EMAIL PROTECTED]
 D: dosfs, LILO, some fd features, various other hacks here and there
diff -urN -X dontdiff linux/Documentation/Changes ucode-2.2/Documentation/Changes
--- linux/Documentation/Changes Thu Dec  7 14:27:51 2000
+++ ucode-2.2/Documentation/Changes Thu Dec  7 14:56:37 2000
@@ -517,6 +517,28 @@
 Older isdn4k-utils versions don't support EXTRAVERSION into kernel version
 string. A upgrade to isdn4k-utils.v3.1beta7 or later is recomented.
 
+Intel IA32 microcode
+
+
+A driver has been added to allow updating of Intel IA32 microcode,
+accessible as both a devfs regular file and as a normal (misc)
+character device.  If you are not using devfs you may need to:
+
+mkdir /dev/cpu
+mknod /dev/cpu/microcode c 10 184
+chmod 0644 /dev/cpu/microcode
+
+as root before you can use this.  You'll probably also want to
+get the user-space microcode_ctl utility to use with this.
+
+If you have compiled the driver as a module you may need to add
+the following line:
+
+alias char-major-10-184 microcode
+
+to your /etc/modules.conf file.
+
+
 Where to get the files
 **
 
diff -urN -X dontdiff linux/Documentation/Configure.help 
ucode-2.2/Documentation/Configure.help
--- linux/Documentation/Configure.help  Thu Dec  7 14:27:51 2000
+++ ucode-2.2/Documentation/Configure.help  Thu Dec  7 14:58:04 2000
@@ -10408,12 +10408,12 @@
  it as a module.  The module will be called sbc60xxwdt.o.
 
 CONFIG_MICROCODE
-  /dev/cpu/microcode - Intel P6 CPU microcode support
+  /dev/cpu/microcode - Intel IA32 CPU microcode support
 
   If you say Y here you will be able to update the microcode on
-  Intel processors in the P6 family, e.g. Pentium Pro, Pentium II,
-  Pentium III, Xeon etc. You will obviously need the actual microcode
-  binary data itself which is not shipped with the Linux kernel.
+  Intel processors in the IA32 family, e.g. Pentium Pro, Pentium II,
+  Pentium III, Xeon, Pentium 4 etc. You will obviously need the actual
+  microcode binary data itself which is not shipped with the Linux kernel.
  
   For latest news and information on obtaining all the required
   ingredients for this driver, check:
@@ -10422,7 +10422,9 @@
   This driver is also available as a module ( = code which can be
   inserted in and removed from the running kernel whenever you want).
   The module will be called microcode.o. If you want to compile it as
-  a module, say M here and read Documentation/modules.txt.
+  a module, say M here and read Documentation/modules.txt. If you use
+  modprobe or kmod you may also want to add the line
+  'alias char-major-10-184 microcode' to your /etc/modules.conf file.
 
 /dev/cpu/*/msr - Model-specific register support
 CONFIG_X86_MSR
diff -urN -X dontdiff linux/Documentation/ioctl-number.txt 
ucode-2.2/Documentation/ioctl-number.txt
--- linux/Documentation/ioctl-number.txtThu Dec  7 14:27:51 2000
+++ ucode-2.2/Documentation/ioctl-number.txtThu Dec  7 14:58:51 2000
@@ -113,6 +113,8 @@
mailto:[EMAIL PROTECTED]
 'z'40-7F   CAN bas cardin development:
mailto:[EMAIL PROTECTED]
+'6'00-10   asm-i386/processor.h  Intel IA32 microcode update driver
+   mailto:[EMAIL PROTECTED]
 0x89   00-0F   asm-i386/sockios.h
 0x89   10-DF   linux/sockios.h
 0x89   E0-EF   linux/sockios.h SIOCPROTOPRIVATE range
diff -urN -X dontdiff linux/MAINTAINERS ucode-2.2/MAINTAINERS
--- linux/MAINTAINERS   Thu Dec  7 14:27:51 2000
+++ ucode-2.2/MAINTAINERS   Thu Dec  7 14:55:03 2000
@@ -493,6 +493,13 @@
 L: [EMAIL PROTECTED]
 S: Maintained
 
+INTEL IA32 MICROCODE UPDATE DRIVER
+P: Tigran Aivazian
+M: Tigran Aivazian [EMAIL PROTECTED]
+W:  http://www.urbanmyth.org/microcode
+L: [EMAIL PROTECTED]
+S: Maintained
+
 IP FIREWALL
 P: Paul Russell
 M: [EMAIL PROTECTED]
diff -urN -X dontdiff linux/arch/i386/config.in ucode-2.2/arch/i386/config.in
--- linux/arch/i386/config.in   Thu Dec  7 14:27:52 2000
+++ ucode-2.2/arch/i386/config.in   Thu Dec  7 14:59:17 2000
@@ -33,7 +33,7 @@
   define_bool CONFIG_X86_GOOD_APIC y
 fi
 
-tristate '/dev/cpu/microcode - Intel P6 CPU microcode support' 

[whitevampire@MINDLESS.COM: Naptha - New DoS]

2000-12-07 Thread Rodrigo Barbosa (aka morcego)

I'm just forwarding it. I know nothing about it. I don't know how it works.
I don't know how to protect agains it. I don't know what is a Kernel.
I don't know what is Linux. I don't know what is e-mail. Who am I ? 
Where am I ? What are all those green dots in the sky ? A :-)

Anyway, I talked to Riel before sending this bug here, and he acknoledged
that it's really something new:

riel hu
riel indeed, this is a new one
riel which hits in the tcp ESTABLISHED phase

- Forwarded message from White Vampire [EMAIL PROTECTED] -

Date: Wed, 6 Dec 2000 23:34:39 -0500
From: White Vampire [EMAIL PROTECTED]
Subject:  Naptha - New DoS

Greetings,

[ Misc Info ]

I find it rather odd that this has yet to be mentioned on
Bugtraq.  I know of more than one person besides myself who has
experienced some problems with this DoS since this advisory was
released.  I delayed mentioning it on this list because I figured
someone from Razor would release it, or someone who was involved with
the discovery.  Various vendors are no doubt already coding like mad.

I have disabled Keepalive in Apache (via 'Keepalive Off' in the
configuration file) and changed the kernel timeouts, as recommended by
the advisory.  This will help some, but not enough.  I hope to see
complete fixes available soon, perhaps this will help kick-start
it.  Limiting public access to TCP daemons is also a way to help prevent
attacks.

[ Quick Summary ]

Basically, it will leave a TCP connection on the target machine
in a "certain state."  The method discovered will exhaust resources on
the target machine, whereas the originating machine will not be 
affected that greatly.  Before such attacks were infeasible because the
originating machine would also be affected.  The target machine can be
starved of resources to the point of failure.

Some affected operating systems:

* Novell's Netware 5.0 with sp1 (Will not recover)
* Linux (2.2.x .. others ?) (Unknown.. can recover sometimes?)
* FreeBSD 4.0-REL (Can recover in short period)
* Possibly others.. it is a rather widespread problem.

Unaffected operating systems:

* OpenBSD seems to be unaffected
* Windows 2000 seems to be unaffected

For more information on NAPTHA visit:
http://razor.bindview.com/publish/advisories/adv_NAPTHA.html

[ Credit and Disclaimer ]

An advisory was released by Razor on November 30th.  I had not
involvement with the discovery or release of this advisory.  This e-Mail
is simply a summary to help system administrators and other individuals
who are interested or are experiencing problems learn about the
attack.  I shared my experiences and summarized some information from
the advisory.

I am just sharing the information.  Good luck to the vendors,
and good luck to the rest of the world.  I sure have not had a fun time
resulting these attacks.

Regards,
-- 
__  __   
   /  \/  \   \ /   / White Vampire\Rem
   \   \/\/   /\   Y   /  http://www.gammagear.com/ (Gear for the BOFH)
\/  \ /   http://www.webfringe.com/
 \__/\  /\___/http://www.gammaforce.org/
  \/ "Silly hacker, root is for administrators."



- End forwarded message -

-- 
 Rodrigo Barbosa (morcego)  - [EMAIL PROTECTED]
 Conectiva RD Team - http://distro.conectiva.com.br
 "Quis custodiet custodes?" - http://www.conectiva.com


 PGP signature


Re: D-LINK DFE-530-TX

2000-12-07 Thread James Bourne

On Thu, 7 Dec 2000, Marco Colombo wrote:

 On Thu, 7 Dec 2000, James Bourne wrote:

  The DFE-530TX is the viacom chipset, but the DFE530TX+ (Which I guess
  replaces the 538 as that is no longer listed on the Dlink site) is an
  rtl8139 chip.

 You mean that D-Link made a card named DFE530TX VIA based and one named
 DFE530TX+ rtl based? Isn't it a bit confusing? B-)

Ya, 530TX is a 10/100 nic Davicom chipset (sorry, not viacom *slap*)
http://www.dlink.com/products/adapters/dfe530tx/

530TX+ is 10/100 with WOL and rtl8139 chipset
http://www.dlink.com/products/adapters/dfe530txplus/

Jim


 
  Jim

 .TM.


-- 
James Bourne, Web Systems Administrator
Mount Royal College, Calgary, AB, CA
www.mtroyal.ab.ca

-
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: Microsecond accuracy

2000-12-07 Thread Christopher Friesen

Kotsovinos Vangelis wrote:
 
 Is there any way to measure (with microsecond accuracy) the time of a
 program execution (without using Machine Specific Registers) ?
 I've already tried getrusage(), times() and clock() but they all have
 10 millisecond accuracy, even though they claim to have microsecond
 acuracy.
 The only thing that seems to work is to use one of the tools that measure
 performanc through accessing the machine specific registers. They give you
 the ability to measure the clock cycles used, but their accuracy is also
 very low from what I have seen up to now.

Can you not just use something like gettimeofday()?  Do two consecutive calls to
find the execution time of the instruction itself, and then do two calls on
either side of the program execution.  Subtract the instruction execution time
from the delta, and that should give a pretty good idea of execution time.

On a 400Mhz G4, getttimeofday() consistantly takes 2 microseconds to run.

-- 
Chris Friesen| MailStop: 043/33/F10  
Nortel Networks  | work: (613) 765-0557
3500 Carling Avenue  | fax:  (613) 765-2986
Nepean, ON K2H 8E9 Canada| email: [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: [whitevampire@MINDLESS.COM: Naptha - New DoS]

2000-12-07 Thread Alan Cox

 Unaffected operating systems:
 * OpenBSD seems to be unaffected
 * Windows 2000 seems to be unaffected

Someone isnt trying hard enough ;)

Linux 2.4 is designed to handle some of these issues, but you need to 
address aspects of this in applications, protocols and elsewhere. Its basically
no different to the synbomb except the resource usage is trickier to control

-
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: attempt to access beyond end of device

2000-12-07 Thread John Kennedy

On Thu, Dec 07, 2000 at 05:34:28PM +0100, Andries Brouwer wrote:
 On Thu, Dec 07, 2000 at 04:56:59PM +0100, Jan Niehusmann wrote:
  That means that if blk_size[major][MINOR(bh-b_rdev)] == 0, the request
  is canceled but no message is printed. Shouldn't there be a warning message?
 
 Maybe that code fragment is mine. If so, then at some point
 in time I decided that the answer to your question is no.

  As a potential real-world case (but possibly unrelated), I had an
interesting situation crop-up while I was playing with the loopback
filesystems.

  If you just use the program-tools, you end up with a situation like:

losetup blah [close all] dd blah [close all] losetup -d [blah]

  In my case, I was making a standalone program that did it all in one
program and I messed up in the ordering of the close() and the LOOP_CLR_FD.

  I'm pretty sure that (with my small 10K test dataset) the I/O between
the loopback device and the looped file was never hitting the disk.
If I LOOP_CLR_FD before I closed, I ended up with bad data in the looped
file and kernel errors syslogged:

kernel: attempt to access beyond end of device
kernel: 07:00: rw=1, want=1, limit=0
kernel: dev 07:00 blksize=0 blocknr=0 sector=0 size=1024 count=1

  I tended to get 10 of those, one for each of the 10 1K blocks in
my test dataset.

  Doing the close() then the LOOP_CLR_FD got rid of the errors.
-
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: [Fwd: lost need_resched flag re-introduced?]

2000-12-07 Thread kuznet

Hello!

  A while back I reported the lost need_resched flag bug ( it happens if
  need_resched is set right before switch_to() is called).  Later on a one-line
  fix is added to __schedule_tail().
  
  current-need_resched |= prev-need_resched;
  
  I looked at the latest kernel and found this one is gone.  Is the lost
  need_resched problem taken care of in some other way?  Or is it re-introduced?

It is removed not only because it was wrong (which you have found too),
but because it was useless even if copied correctly.

current-need_resched is not changed in interrupt context outside
runqueue lock except for scheduler timer, where copying results
in nothing but spurious reschedule.

Alexey
-
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: Why is double_fault serviced by a trap gate?

2000-12-07 Thread Maciej W. Rozycki

On Thu, 7 Dec 2000, Andi Kleen wrote:

  Why is double_fault serviced by a trap gate? The problem with this is that
  any double-fault caused by a stack-fault, which is the usual reason,
  becomes a triple-fault. And a triple-fault results in a processor reset or
  shutdown making the fault damn near impossible to get any information on.
  
  Oughtn't the double-fault exception handler be serviced by a task gate? And
  similarly the NMI handler in case the NMI is on the current stack page
  frame?
 
 Sounds like a good idea, when you can afford a few K for a special
 NMI/double fault stack. On x86-64 it is planned to do that.

 A task gate is an absolute must for the double fault if we want to have a
working handler.  Intel warns the CPU state can be inconsistent when a
double fault happens and for example I've seen cases where the saved CS
and EIP were not matching each other (tests were not conducted under
Linux).  Also SS:ESP might be unusable leading to a triple fault.

 The NMI should be left alone, though, I think as we want it to be fast
for the NMI watchdog.  Task gates are not necessarily fast (depending on
how you define "fast").

-- 
+  Maciej W. Rozycki, Technical University of Gdansk, Poland   +
+--+
+e-mail: [EMAIL PROTECTED], PGP key available+

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



40Gig IDE disk wrapping around at 32Gig?

2000-12-07 Thread Stephen Williams


During an install of RedHat 6.1 onto a Dell Dimension L600cx, I partitioned
the internal 40gig disk to include 4 partitions. I initially let the disk
druid do it, but it rendered the partition table unreadable. So I used
fdisk and partitioned it with primary partitions like so:

(sectors = 255, heads = 63)

/dev/hda1  1 -- 17 (136521 blocks)
/dev/hda2  18 -- 50(265072 blocks)
/dev/hda3  51 -- 3967  (31463302 blocks)
/dev/hda4  3968 -- 4865(7213185 blocks)

Problem is, any attempt to mkfs on /dev/hda4 seems to trash the filesystems
on hda1, hda2 and hda3. It makes an ugly mess.

RedHat 6.1 installs a 2.2.12 kernel, with patches. I'm ignoring /dev/hda4
for now and I've installed 2.2.17 from source. It seems reliable as long
as I ignore /dev/hda4. I haven't tried it w/ 2.2.17 installed.

Am I running into some limit here? Are there any known issues with
Linux 2.2.12 or fdisk (or mkfs.ext2) that might relate to this?
-- 
Steve Williams"The woods are lovely, dark and deep.
[EMAIL PROTECTED]  But I have promises to keep,
[EMAIL PROTECTED]and lines to code before I sleep,
http://www.picturel.com   And lines to code before I sleep."


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



New CD-R high capacity drive specs are coming. (fwd)

2000-12-07 Thread M Sweger


Hi,

   See the article below.

I just read that the specs are out for three different types of CD-R
drives in terms of disk capacity and speeds from Constellation 3D,and it
is heading towards manufacturing. It's great for movies and coporate
archiving, but was degraded for the consumer market -- Nothing above
5Gb/side for the consumer whereas for the coporate it's 200Gb/side. I
don't think it will  compete for the PC market unless the disk capacities
are upped! Probably purposely degraded so that you can't copy a HDTV DVD
to your PC CD-R disk. Here is the 
a href="http://biz.yahoo.com/bw/001207/ny_constel.html"link /a





-
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-test12-pre7

2000-12-07 Thread Linus Torvalds



On Thu, 7 Dec 2000, Russell King wrote:
 
 Is it intentional that pci_assign_unassigned_resources should:
 1. enable all devices?
 2. enable bus master on all devices?

Probably intentional, but probably for all the wrong reasons.

The device enabling is still required for all drivers that aren't PCI
aware of PCI PnP issues. And remember - that used to be pretty much every
single Linux driver out there. So a traditional Linux system pretty much
required that all the devices came up fully enabled, because most drivers
wouldn't know to enable them (as shown by the UHCI bug).

These days, we should probably remove all the logic to enable everything
in pci_assign_unassigned_resources(), because these days pretty much all
PCI drivers are supposed to know about enabling the device (otherwise they
wouldn't work in a PC PnP environment anyway).

The only special case to this rule is "legacy devices" - things like
serial ports in legacy regions, VGA consoles etc, where a driver can use
them without even being aware of the fact that the hardware may be PCI.
Those devices tend to need setup even just for booting, though, so they
tend to be enabled rather early for other reasons anyway.

So I would probably vote for getting rid of the device enables in
pci_assign_unassigned_resources() (for all the reasons already mentioned
by others - scribbling over memory due to not being quiescent etc). But
it's not worth breaking now. 2.5.x material. Most PCI drivers may already
do the right thing, but I bet that the USB driver wasn't the only one who
forgot..

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: linux-2.4.0-test11 and sysklogd-1.3-31

2000-12-07 Thread Georg Nikodym

 "KO" == Keith Owens [EMAIL PROTECTED] writes:

 KO I would prefer to see the oops decoding completely removed from
 KO klogd.  The only justification for klogd converting the oops is
 KO to save users from running ksymoops by hand.  I would not mind
 KO klogd capturing the oops text, forking to run ksymoops then
 KO logging the ksymoops output.  Just as along as the original text
 KO was left alone and the ksymoops output was obviously
 KO distinguished from real kernel output.

Since nobody else has weighed in on this issue, I quickly did the
necessary to effect Keith's suggestion.  What follows is a patch to
sysklogd-1.3-31 (which after applying, ksym_mod.c can be removed):

# This is a BitKeeper generated patch for the following project:
# Project Name: Trans-lab fsimage sub-gate
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
#  ChangeSet1.60- 1.62   
#   src/sysklogd-1.3-31/ksym.c  1.1 - 1.2
#   src/sysklogd-1.3-31/klogd.c 1.1 - 1.2
#   src/sysklogd-1.3-31/ksyms.h 1.1 - 1.2
#   src/sysklogd-1.3-31/Makefile1.1 - 1.2
#
# The following is the BitKeeper ChangeSet Log
# 
# 00/12/07  [EMAIL PROTECTED]  1.61
# Remove ksym_mod.c to fix sysklogd build
# 
# 00/12/07  [EMAIL PROTECTED]  1.62
# Remove a remaining prototype associated with the now deleted ksym_mod.c
# 
#
diff -Nru a/src/sysklogd-1.3-31/Makefile b/src/sysklogd-1.3-31/Makefile
--- a/src/sysklogd-1.3-31/Makefile  Thu Dec  7 11:53:56 2000
+++ b/src/sysklogd-1.3-31/Makefile  Thu Dec  7 11:53:56 2000
@@ -63,9 +63,8 @@
 syslogd: syslogd.o pidfile.o
${CC} ${LDFLAGS} -o syslogd syslogd.o pidfile.o ${LIBS}
 
-klogd: klogd.o syslog.o pidfile.o ksym.o ksym_mod.o
-   ${CC} ${LDFLAGS} -o klogd klogd.o syslog.o pidfile.o ksym.o \
-   ksym_mod.o ${LIBS}
+klogd: klogd.o syslog.o pidfile.o ksym.o
+   ${CC} ${LDFLAGS} -o klogd klogd.o syslog.o pidfile.o ksym.o ${LIBS}
 
 syslog_tst: syslog_tst.o
${CC} ${LDFLAGS} -o syslog_tst syslog_tst.o
diff -Nru a/src/sysklogd-1.3-31/klogd.c b/src/sysklogd-1.3-31/klogd.c
--- a/src/sysklogd-1.3-31/klogd.c   Thu Dec  7 11:53:56 2000
+++ b/src/sysklogd-1.3-31/klogd.c   Thu Dec  7 11:53:56 2000
@@ -415,7 +415,6 @@
if (symbol_lookup) {
if ( reload_symbols  1 )
InitKsyms(symfile);
-   InitMsyms();
}
reload_symbols = change_state = 0;
return;
@@ -1059,7 +1058,6 @@
{
if (symbol_lookup) {
InitKsyms(symfile);
-   InitMsyms();
}
if ( (logsrc = GetKernelLogSrc()) == kernel )
LogKernelLine();
@@ -1075,7 +1073,6 @@
logsrc = GetKernelLogSrc();
if (symbol_lookup) {
InitKsyms(symfile);
-   InitMsyms();
}
 
 /* The main loop. */
diff -Nru a/src/sysklogd-1.3-31/ksym.c b/src/sysklogd-1.3-31/ksym.c
--- a/src/sysklogd-1.3-31/ksym.cThu Dec  7 11:53:56 2000
+++ b/src/sysklogd-1.3-31/ksym.cThu Dec  7 11:53:56 2000
@@ -656,9 +656,6 @@
last = sym_array[lp].name;
}
 
-   if ( (last = LookupModuleSymbol(value, sym)) != (char *) 0 )
-   return(last);
-
return((char *) 0);
 }
 
@@ -749,7 +746,7 @@
 * open for patches.
 */
if ( i_am_paranoid 
-(strstr(line, "Oops:") != (char *) 0)  !InitMsyms() )
+(strstr(line, "Oops:") != (char *) 0) )
Syslog(LOG_WARNING, "Cannot load kernel module symbols.\n");

 
diff -Nru a/src/sysklogd-1.3-31/ksyms.h b/src/sysklogd-1.3-31/ksyms.h
--- a/src/sysklogd-1.3-31/ksyms.h   Thu Dec  7 11:53:56 2000
+++ b/src/sysklogd-1.3-31/ksyms.h   Thu Dec  7 11:53:56 2000
@@ -32,4 +32,3 @@
 
 /* Function prototypes. */
 extern char * LookupSymbol(unsigned long, struct symbol *);
-extern char * LookupModuleSymbol(unsigned long int, struct symbol *);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



2.4.0-test9 Root no longer permitted to format floppies?

2000-12-07 Thread Richard B. Johnson


Script started on Thu Dec  7 11:44:01 2000
# fdformat /dev/fd0h1440
Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.
Formatting ... 
ioctl(FDFMTBEG): Operation not permitted
# exit
exit
Script done on Thu Dec  7 11:44:42 2000

Who do you have to be in order to format floppy drives? Or have all
the ioctl numbers been changed since 2.2.18 ?

write(1, "Double-sided, 80 tracks, 18 sec/"..., 63) = 63
write(1, "Formatting ... ", 15) = 15
ioctl(3, 0x247, 0)  = -1 EPERM (Operation not permitted)
brk(0)  = 0x804af98
brk(0x804afe8)  = 0x804afe8
brk(0x804b000)  = 0x804b000
brk(0x804c000)  = 0x804c000


It looks like they should still be okay?

fd.h:#define FDFMTBEG _IO(2,0x47)
fd.h:#defineFDFMTTRK _IOW(2,0x48, struct format_descr)
fd.h:#define FDFMTEND _IO(2,0x49)

Maybe a broken MACRO?

Cheers,
Dick Johnson

Penguin : Linux version 2.4.0 on an i686 machine (799.54 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: 2.4.0-test9 Root no longer permitted to format floppies?

2000-12-07 Thread Tigran Aivazian

there was an issue with floppy ioctls and permission checks in block
device -open routine recently. Just use test12-pre7 or other sufficiently
recent kernel and it will work.

If you _do_ want to know what's going on -- look for the thread where I
reported that floppies can't me mounted readonly, then AV proposed the
fix, then it turned out that Alain Knaff forgot to put his name in the
MAINTAINERS file so we didn't tell him about the fix and it apparently
broke some userspace tools. Later on, it was fixed in a way that makes
everyone happy.

Regards,
Tigran

 On Thu, 7 Dec 2000, Richard B. Johnson
wrote:

 
 Script started on Thu Dec  7 11:44:01 2000
 # fdformat /dev/fd0h1440
 Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.
 Formatting ... 
 ioctl(FDFMTBEG): Operation not permitted
 # exit
 exit
 Script done on Thu Dec  7 11:44:42 2000
 
 Who do you have to be in order to format floppy drives? Or have all
 the ioctl numbers been changed since 2.2.18 ?
 
 write(1, "Double-sided, 80 tracks, 18 sec/"..., 63) = 63
 write(1, "Formatting ... ", 15) = 15
 ioctl(3, 0x247, 0)  = -1 EPERM (Operation not permitted)
 brk(0)  = 0x804af98
 brk(0x804afe8)  = 0x804afe8
 brk(0x804b000)  = 0x804b000
 brk(0x804c000)  = 0x804c000
 
 
 It looks like they should still be okay?
 
 fd.h:#define FDFMTBEG _IO(2,0x47)
 fd.h:#define  FDFMTTRK _IOW(2,0x48, struct format_descr)
 fd.h:#define FDFMTEND _IO(2,0x49)
 
 Maybe a broken MACRO?
 
 Cheers,
 Dick Johnson
 
 Penguin : Linux version 2.4.0 on an i686 machine (799.54 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/
 

-
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: Why is double_fault serviced by a trap gate?

2000-12-07 Thread Andi Kleen

On Thu, Dec 07, 2000 at 05:55:07PM +0100, Maciej W. Rozycki wrote:
  The NMI should be left alone, though, I think as we want it to be fast
 for the NMI watchdog.  Task gates are not necessarily fast (depending on
 how you define "fast").

How often does the NMI watchdog handler run ? 


-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: New CD-R high capacity drive specs are coming. (fwd)

2000-12-07 Thread Andre Hedrick


Why bother, Calimetrics has a native driver solution that does a
modulation on the beam power of the laser that will triple or quadruple
the current media densities with out getting new media or new drives.

Just so you know that all of these new drive specs that claim to be
coming, I have more than likely seen or was part of, this one did not
evern register as a point of interest.

I call this stuff the ONION CD, becasue the energy require to burn a 10
layer media, regardless that you use a dye laser, will rip appart.
As long as they stay in the WORM mode it may be safe, but if they attemp
CDRW then it will die.

Cheers,

Andre Hedrick
CTO Timpanogas Research Group
EVP Linux Development, TRG
Linux ATA Development

On Thu, 7 Dec 2000, M Sweger wrote:

 
 Hi,
 
See the article below.
 
 I just read that the specs are out for three different types of CD-R
 drives in terms of disk capacity and speeds from Constellation 3D,and it
 is heading towards manufacturing. It's great for movies and coporate
 archiving, but was degraded for the consumer market -- Nothing above
 5Gb/side for the consumer whereas for the coporate it's 200Gb/side. I
 don't think it will  compete for the PC market unless the disk capacities
 are upped! Probably purposely degraded so that you can't copy a HDTV DVD
 to your PC CD-R disk. Here is the 
 a href="http://biz.yahoo.com/bw/001207/ny_constel.html"link /a


-
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: Why is double_fault serviced by a trap gate?

2000-12-07 Thread Maciej W. Rozycki

On Thu, 7 Dec 2000, Petr Vandrovec wrote:

 No. If interrupt uses task gate, task switch happens. Nothing is stored
 in context of old process except registers into TSS. There is only one
 (bad) problem. If you want to get it 100% proof (it is not needed for double
 fault, but it is definitely needed for NMI, as NMI is very often on SMP
 ia32), each CPU's IRQ vector must point to different task, otherwise you
 can get TSS in use during doublefault, leading to triplefault again...

 Well, I expect wasting a descriptor and a page of memory for the purpose
of a TSS is not a big problem.

 Yes. Currently if any ESP related problem happens in kernel, machine silently
 reboots without any message. With task gate (as Jeff Merkey proposed

 You might handle the stack fault with a task gate, actually, but I'm not
sure it's worth the hassle.  Handling just the double fault should be
sufficient. 

 some months ago, btw), you can even suspend offending task and recover
 from it... I think that also bluesmoke should use task gate, but I
 did not read documentation on this yet.

 Yep.  An MCE is an abort like a double-fault, so the CPU state might be
corrupted (by definition -- I have no idea whether it really happens). 

-- 
+  Maciej W. Rozycki, Technical University of Gdansk, Poland   +
+--+
+e-mail: [EMAIL PROTECTED], PGP key available+

-
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: Out of socket memory? (2.4.0-test11)

2000-12-07 Thread kuznet

Hello!

 What am I doing wrong?

You change parameters without investigating why failure happened.
This approach cannot succeed, of course.


 problem?  Is there any way I can get runtime information from the kernel on 
 things like amount of socket memory used and amount available?

cat /proc/net/sockstat
cat /proc/net/netstat
cat /proc/net/snmp
cat /proc/slabinfo
cat /proc/net/tcp

Next time when you will see these messages, do this, pack the result
and send to me pointopoint.

Alexey
-
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 in scsi.c

2000-12-07 Thread Andreas Klein

hello,

I have found a problem in scsi.c which in present in the 2.2 and 2.4
series. the scsi error handler thread is created with:

kernel_thread((int (*)(void *)) scsi_error_handler,
(void *) shpnt, 0);

This will lead to problems, when you have to umount the filesystem on
which the scsi-hostapter module is located.
To solve to problem I would propose to change this to:

kernel_thread((int (*)(void *)) scsi_error_handler,
  (void *) shpnt, CLONE_FILES);
 

Bye,

-- Andreas Klein
   [EMAIL PROTECTED]
   root / webmaster @cip.physik.uni-wuerzburg.de
   root / webmaster @www.physik.uni-wuerzburg.de
_
|   | 
|   Long live our gracious AMIGA!   |
|___|



-
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: 40Gig IDE disk wrapping around at 32Gig?

2000-12-07 Thread Stephen Williams


[EMAIL PROTECTED] said:
 My understanding is that the part you're accessing, above 33.6 gig,
 wraps around the int or whatever they use(i'm not a programmer, and
 i'm not going to think about what it'd actually be grin)

2.2.17 solves the problem. The 2.2.12 kernel definitely goes
berserk when faced with blocks way up there. With 2.2.17, the whole
disk works fine.

Thanks for the fast response.

-- 
Steve Williams"The woods are lovely, dark and deep.
[EMAIL PROTECTED]  But I have promises to keep,
[EMAIL PROTECTED]and lines to code before I sleep,
http://www.picturel.com   And lines to code before I sleep."


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



kernel oops: test12-pre7, xmms, emu10k

2000-12-07 Thread J Sloan

Greetings,

2.4.0-test12-preXX has been pretty stable here on
a K6/2-450 running ipchains and various net services
in addition to workstation use.

I went to bed last night while others were listening to
xmms on my workstation while working in the room.

This morning I found that xmms was frozen, and there
were several oopsen in the logs.

After restarting X, everything is functional, and xmms
is working again -

I dimly perceive that xmms and the emu10k sound
driver seem to be involved, perhaps someone more
astute can see something more definite?

Here are the decoded oops:

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

Unable to handle kernel paging request at virtual address ec4b6b63
c013c668
*pde = 
Oops: 
CPU:0
EIP:0010:[c013c668]
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010286
eax: 97249ff3   ebx:    ecx:    edx: 0001
esi: c56ba000   edi: ec4b6b57   ebp:    esp: c56bbf70
ds: 0018   es: 0018   ss: 0018
Process xmms (pid: 1391, stackpage=c56bb000)
Stack: c56ba000  befffcf4 befffcf4 ffea c876ace0 ffea
befffc8c
   c56bbf9c  c56ba000 befffcfc 8010500c 0001 c56ba000
000188d0
   1000 0003b000 d18233cc cf448900 c010a883 000b 
befffd0c
Call Trace: [d18233cc] [c010a883]
Code: 8b 57 0c 39 54 24 54 7e 04 89 54 24 54 8b 6c 24 54 83 c5 1f

EIP; c013c668 sys_select+ec/5a8   =
Trace; d18233cc [emu10k1]emu10k1_audio_ioctl+0/f4
Trace; c010a883 system_call+33/40
Code;  c013c668 sys_select+ec/5a8
 _EIP:
Code;  c013c668 sys_select+ec/5a8   =
   0:   8b 57 0c  movl   0xc(%edi),%edx   =
Code;  c013c66b sys_select+ef/5a8
   3:   39 54 24 54   cmpl   %edx,0x54(%esp,1)
Code;  c013c66f sys_select+f3/5a8
   7:   7e 04 jled _EIP+0xd c013c675
sys_select+f9/5a8
Code;  c013c671 sys_select+f5/5a8
   9:   89 54 24 54   movl   %edx,0x54(%esp,1)
Code;  c013c675 sys_select+f9/5a8
   d:   8b 6c 24 54   movl   0x54(%esp,1),%ebp
Code;  c013c679 sys_select+fd/5a8
  11:   83 c5 1f  addl   $0x1f,%ebp

Unable to handle kernel paging request at virtual address ec4b6b57
c011983c
*pde = 
Oops: 0002
CPU:0
EIP:0010:[c011983c]
EFLAGS: 00010282
eax: ec4b6b57   ebx: cec11640   ecx: 0206   edx: 0044
esi: c56ba000   edi: ec4b6b57   ebp: ec4b6b63   esp: c56bbe58
ds: 0018   es: 0018   ss: 0018
Process xmms (pid: 1391, stackpage=c56bb000)
Stack: cec11640 c56ba000 000b ec4b6b63 c0119e71 ec4b6b57 
03b1
   c0110a84 c010adae 000b c0110db2 c01e929e c56bbf3c 
c56ba000
    c0110a84  c023a260 c0115198 c56bbefc c56ba000
c7102000
Call Trace: [ec4b6b63] [c0119e71] [ec4b6b57] [c0110a84]
[c010adae] [c0110db2] [c01e929e]
   [c0110a84] [c0115198] [d1826fdf] [c013c539] [c010a9c4]
[ec4b6b57] [c013c668] [d18233cc]
   [c010a883]
Code: ff 0f 0f 94 c0 84 c0 0f 84 99 00 00 00 31 ed 31 f6 8b 57 0c

EIP; c011983c put_files_struct+8/b4   =
Trace; ec4b6b63 END_OF_CODE+1ac4c540/
Trace; c0119e71 do_exit+b9/1f4
Trace; ec4b6b57 END_OF_CODE+1ac4c534/
Trace; c0110a84 do_page_fault+0/40c
Trace; c010adae die+42/44
Trace; c0110db2 do_page_fault+32e/40c
Trace; c01e929e IRQ0x0f_interrupt+2a6e/54b8
Trace; c0110a84 do_page_fault+0/40c
Trace; c0115198 schedule+2d8/430
Trace; d1826fdf [emu10k1]copy_block+f3/100
Trace; c013c539 do_select+1f9/214
Trace; c010a9c4 error_code+34/40
Trace; ec4b6b57 END_OF_CODE+1ac4c534/
Trace; c013c668 sys_select+ec/5a8
Trace; d18233cc [emu10k1]emu10k1_audio_ioctl+0/f4
Trace; c010a883 system_call+33/40
Code;  c011983c put_files_struct+8/b4
 _EIP:
Code;  c011983c put_files_struct+8/b4   =
   0:   ff 0f decl   (%edi)   =
Code;  c011983e put_files_struct+a/b4
   2:   0f 94 c0  sete   %al
Code;  c0119841 put_files_struct+d/b4
   5:   84 c0 testb  %al,%al
Code;  c0119843 put_files_struct+f/b4
   7:   0f 84 99 00 00 00 je a6 _EIP+0xa6 c01198e2
put_files_struct+ae/b4
Code;  c0119849 put_files_struct+15/b4
   d:   31 ed xorl   %ebp,%ebp
Code;  c011984b put_files_struct+17/b4
   f:   31 f6 xorl   %esi,%esi
Code;  c011984d put_files_struct+19/b4
  11:   8b 57 0c  movl   0xc(%edi),%edx

Unable to handle kernel paging request at virtual address ec0dc836
c0119e8c
*pde = 
Oops: 0002
CPU:0
EIP:0010:[c0119e8c]
EFLAGS: 00010286
eax:    ebx: ec0dc836   ecx: 0206   edx: 
esi: c56ba000   edi: 000b   ebp: ec4b6b57   esp: c56bbd58
ds: 0018   es: 0018   ss: 0018
Process xmms (pid: 1391, stackpage=c56bb000)
Stack:  03b1 c0110a84 c010adae 000b c0110db2 c01e929e
c56bbe24
   0002 c56ba000 

Re: Why is double_fault serviced by a trap gate?

2000-12-07 Thread Maciej W. Rozycki

On Thu, 7 Dec 2000, Andi Kleen wrote:

 How often does the NMI watchdog handler run ? 

 HZ times per second.

-- 
+  Maciej W. Rozycki, Technical University of Gdansk, Poland   +
+--+
+e-mail: [EMAIL PROTECTED], PGP key available+

-
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: PCI irq routing..

2000-12-07 Thread Martin Diehl


On Wed, 6 Dec 2000, Linus Torvalds wrote:

 On Wed, 6 Dec 2000, Martin Diehl wrote:
  
 [Cardbus config space lost after APM suspend/resume]
 
 Can you remind me in a day or two if I haven't gotten back to you? I don't
 have any machines that need this, but I've seen ones that do, and if
 you're willing to test..

sure, will to do testing (and reminding ;-)

 Yes, this is expected for routers that we don't know about: we will still
 use the irq that the device claims it has, but we will obviously fail to
 try to route it (but it still works if the BIOS had already routed it -
 which is how the old code always worked anyway).

btw, I'm thinking I could guess the routing from the VLSI config space,
but I don't have any doc's. Would it be worth to try to add some specific
get/set methods for this device? What about testers (or people who have
access to the docs)?

 Anyway, for the suspend-resume thing, if you want to go ahead on your own
 without a real patch from me, the fix is along the lines of

well, took me some time to follow all the paths thru cardbus/pcmcia stuff
wrt suspend/resume from pm - but ended up at:

  - add two functions:
 
   static void yenta_save_config(pci_socket_t *socket)
   static void yenta_restore_config(pci_socket_t *socket)

That's the crucial point, imho. The PCI layer forwards the PM events to
the cardbus-driver's suspend/resume methods, which are calling 
pcmcia_suspend/resume_socket(). The latter in turn will call back the
appropriate yenta_operations which are registered to it. So much for sure.

However, there is no pcmcia_resume path forwarded to yenta since the
traditional pccard_operations did not provide such a method and pcmcia
simply re-initialized it's sockets. My assumption is, you haven't meant
to add a do-nothing resume to all the pcmcia-stuff (including i82365,
tcic) just to allow yenta to register for a resume operation which would
be there for cardbus only.
So my suggestion is to have cardbus_save/restore_config() exactly doing
what you've said for yenta_*.

  - do a "yenta_save_config()" in "yenta_suspend()" and a
"yenta_restore_config()" at the top of "yenta_resume()"

yenta_resume() does not exist.
yenta_*() replaced by cardbus_*() as explained.

  - test. Also test with the "pci_set_power_state(3)" in suspend enabled,
because it may/should actually work with that enabled too.

same point: pci_set_power_state(3) should go to cardbus_suspend(), not
yenta.

A first try of this ended oopsing at pm suspend somewhere below
pci_pm_*(). It turned out the reason was the cardbus_suspend() (and resume
too) method which was *invoked several times* in a row!

The reason for this is in drivers/pci.c where bridges are touched
twice: once as a device on a bus and once via -self from the bus behind.
I'm not sure whether this is the intended behavior - but it definitely
calls cardbus_suspend/resume() twice which breaks when forwarding to
pcmcia_suspend/resume_socket().

So I've tentatively worked around using a "once" flag added to
pci_socket_t. This solves the problems during suspend/resume and the
cardbus' config space appears to be restored as intended - good.

The bad news however is, the sockets are still broken after
resume. Unfortunately there are several candidates I've spotted:

- calling yenta_init() stuff at resume - is this sufficient?
  Probably we have to forward the pm-triggered resume from pm along
  pci - cardbus - pcmcia - yenta (last link currently missed,
  because the pcmcia layer switches from incoming resume notification
  to init path)

- some content of the mem/io regions might need to be preserved

- some TI1131 oddity wrt to CSC-INT's - requested IRQ's show up correctly
  in /proc/interrupts and are properly triggered and handled at card
  insert/eject. But after pm suspend/resume the box freezed when inserting
  or ejecting the cards (no response to SysRq anymore).

I'll try to continue on this.

Regards
Martin

-
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: PCI irq routing..

2000-12-07 Thread Linus Torvalds



On Thu, 7 Dec 2000, Martin Diehl wrote:
 
 btw, I'm thinking I could guess the routing from the VLSI config space,
 but I don't have any doc's. Would it be worth to try to add some specific
 get/set methods for this device? What about testers (or people who have
 access to the docs)?

Please do. You might leave them commented out right now, but this is
actually how most of the pirq router entries have been created: by looking
at various pirq tables and matching them up with other (non-pirq)
documentation and testing. Th epirq "link" value is basically completely
NDA'd, and is per-chipset-specific. Nobody documents it except in their
bios writers guide, if even there.

 yenta_resume() does not exist.
 yenta_*() replaced by cardbus_*() as explained.

Yes.

 The reason for this is in drivers/pci.c where bridges are touched
 twice: once as a device on a bus and once via -self from the bus behind.
 I'm not sure whether this is the intended behavior - but it definitely
 calls cardbus_suspend/resume() twice which breaks when forwarding to
 pcmcia_suspend/resume_socket().

Not intended behaviour. The self case should be removed.

 So I've tentatively worked around using a "once" flag added to
 pci_socket_t. This solves the problems during suspend/resume and the
 cardbus' config space appears to be restored as intended - good.
 
 The bad news however is, the sockets are still broken after
 resume. Unfortunately there are several candidates I've spotted:
 
 - calling yenta_init() stuff at resume - is this sufficient?
   Probably we have to forward the pm-triggered resume from pm along
   pci - cardbus - pcmcia - yenta (last link currently missed,
   because the pcmcia layer switches from incoming resume notification
   to init path)
 
 - some content of the mem/io regions might need to be preserved
 
 - some TI1131 oddity wrt to CSC-INT's - requested IRQ's show up correctly
   in /proc/interrupts and are properly triggered and handled at card
   insert/eject. But after pm suspend/resume the box freezed when inserting
   or ejecting the cards (no response to SysRq anymore).

Ok, definitely needs some more work. Thanks for testing - I have no
hardware where this is needed.

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: 2.4.0-test9 Root no longer permitted to format floppies?

2000-12-07 Thread Richard B. Johnson

On Thu, 7 Dec 2000, Tigran Aivazian wrote:

 there was an issue with floppy ioctls and permission checks in block
 device -open routine recently. Just use test12-pre7 or other sufficiently
 recent kernel and it will work.
 
 If you _do_ want to know what's going on -- look for the thread where I
 reported that floppies can't me mounted readonly, then AV proposed the
 fix, then it turned out that Alain Knaff forgot to put his name in the
 MAINTAINERS file so we didn't tell him about the fix and it apparently
 broke some userspace tools. Later on, it was fixed in a way that makes
 everyone happy.
 
 Regards,
 Tigran
 

Okay. Looks like someone is on top of this.


Cheers,
Dick Johnson

Penguin : Linux version 2.4.0 on an i686 machine (799.54 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: USB-related lockup in test12-pre5

2000-12-07 Thread Johannes Erdfelt

On Thu, Dec 07, 2000, David Woodhouse [EMAIL PROTECTED] wrote:
 Haven't tried test12-pre7 yet. Is enabling bus mastering likely to make 
 this magically go away? I doubt it.

Probably not. Enabling bus mastering is the difference between USB
working at all (transfering data to the device) and not working.

 This happened when trying to run excel under wine. Dual Celeron with 
 CONFIG_USB_UHCI.

Could you try the alternate UHCI driver? You may need to disable the
UHCI driver you have configured for the option to become visible.

 EIP; c0270c21 stext_lock+4e6d/8f50   =
 Trace; c01f488e usb_submit_urb+1e/30
 Trace; ca8578be [audio]usbout_completed+7e/c0
 Trace; c01ffc3e process_urb+1de/230
 Trace; c01ffd49 uhci_interrupt+b9/120

It looks like you were using USB audio? Could you explain what you were
doing when the oops happened?

JE

-
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: Why is double_fault serviced by a trap gate?

2000-12-07 Thread Maciej W. Rozycki

On Thu, 7 Dec 2000, Andi Kleen wrote:

 Interesting. One of my ports references for PCs lists
 
 0044r/w PIT  counter 3 (PS/2, EISA)
 used as fail-safe timer. generates an NMI on time out.
 for user generated NMI see at 0462.

 Oh no, we don't use that.  Even though we could, it's rare -- it exists
for EISA systems only and then mostly older ones (i.e. non-PCI ones).

 In fact the only chipset that provides these additional NMI sources I
have docs for is the i82350 one. 

 I don't know if modern PCs still provide this counter, but if yes it could
 be used for a slow NMI watchdog that only runs every 30s or so. 

 An ability to choose a NMI frequency, especially such a low one, would be
desirable but it is really inexistent for most IA32 systems. 

-- 
+  Maciej W. Rozycki, Technical University of Gdansk, Poland   +
+--+
+e-mail: [EMAIL PROTECTED], PGP key available+

-
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: [Fwd: lost need_resched flag re-introduced?]

2000-12-07 Thread Jun Sun

[EMAIL PROTECTED] wrote:
 
 Hello!
 
   A while back I reported the lost need_resched flag bug ( it happens if
   need_resched is set right before switch_to() is called).  Later on a one-line
   fix is added to __schedule_tail().
  
   current-need_resched |= prev-need_resched;
  
   I looked at the latest kernel and found this one is gone.  Is the lost
   need_resched problem taken care of in some other way?  Or is it re-introduced?
 
 It is removed not only because it was wrong (which you have found too),
 but because it was useless even if copied correctly.
 
 current-need_resched is not changed in interrupt context outside
 runqueue lock except for scheduler timer, where copying results
 in nothing but spurious reschedule.
 
 Alexey

Alexey,

I think wake_up_process() is called in interrupt routine quite often and it
will set need_resched flag (through reschedule_idle()).  ???

I did several run time tests and confirmed the missing need_resched flag was
happening.  Ether some new code takes care of it.  Or it is still there.

Jun
-
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: [Fwd: lost need_resched flag re-introduced?]

2000-12-07 Thread kuznet

Hello!

 I think wake_up_process() is called in interrupt routine quite often and it
 will set need_resched flag (through reschedule_idle()).  ???

It sets _right_ flag cpu_curr(this_cpu)-need_resched, rather than
current-need_resched.



 happening.  Ether some new code takes care of it.  Or it is still there.

?  8)

Alexey
-
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-test12-pre7

2000-12-07 Thread Kai Germaschewski


On Thu, 7 Dec 2000, Russell King wrote:

 Linus Torvalds writes:
  - me: UHCI drivers really need to enable bus mastering.
 
 But it'll already be turned on if pci_assign_unassigned_resources() is
 called.  This calls pdev_enable_device for every single device, which
 turns on the bus master bit in the PCI command register.

Maybe I'm stating something which is obvious to everybody, but note
that pci_assign_unassigned_resources is only called from

./arch/alpha/kernel/pci.c:  pci_assign_unassigned_resources();
./arch/mips/ddb5074/pci.c:  pci_assign_unassigned_resources();
./arch/arm/kernel/bios32.c: pci_assign_unassigned_resources();

so it looks like most archs don't use it anyway. (And that's supposedly
why pci_set_master helped people on x86)

--Kai


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