Re: Incorrect UDMA timing on VIA vt82c596b

2000-10-10 Thread Vojtech Pavlik

Hi!

Ok, that means Andre's patch works. Congrats, Andre! Now, could you send
me 'hdparm -i /dev/hdb' for the ZIP? It seems to be in SWDMA0 mode,
which is interesting, because I thought it can't do that. You probably
have some newer model.

Do all your drives work correctly now?

Thanks for your effort,
Vojtech

On Tue, Oct 10, 2000 at 06:40:42AM -0500, Jordan wrote:
 I am currently booted into a 2.4.0-test10-pre1 kernel with two
 modifications, the VIA 3.6 drivers you have provided and the Patch from
 Andre that you sent.  My IBM is the primary master with the zip as its
 slave and the Kenwood is the secondary master with the Plextor as its
 slave.  Here is my /proc/ide/via file:
 
 --VIA BusMastering IDE Configuration
 Driver Version: 3.6
 South Bridge:   VIA vt82c596b (cf/cg)
 Revision:   ISA 0x23 IDE 0x10
 BM-DMA base:0xd000
 PCI clock:  33MHz
 Master Read  Cycle IRDY:0ws
 Master Write Cycle IRDY:0ws
 BM IDE Status Register Read Retry:  yes
 Max DRDY Pulse Width:   No limit
 ---Primary IDE---Secondary IDE--
 Read DMA FIFO flush:  yes yes
 End Sector FIFO flush:yes yes
 Prefetch Buffer:  yes yes
 Post Write Buffer:yes yes
 Enabled:  yes yes
 Simplex only:  no  no
 ---drive0drive1drive2drive3-
 Transfer Mode:   UDMA   DMA  UDMA   DMA
 Address Setup:   30ns  60ns  30ns  30ns
 Cmd Active:  90ns  90ns  90ns  90ns
 Cmd Recovery:90ns  90ns  30ns  30ns
 Data Active: 90ns 240ns  90ns  90ns
 Data Recovery:   30ns 240ns  30ns  30ns
 Cycle Time:  30ns 480ns  60ns 120ns
 Transfer Rate:   66.0MB/s   4.1MB/s  33.0MB/s  16.5MB/s
 
 Here is the apporiate portion of /var/log/dmesg:
 
 Uniform Multi-Platform E-IDE driver Revision: 6.31
 ide: Assuming 33MHz system bus speed for PIO modes; override with
 idebus=xx
 VP_IDE: IDE controller on PCI bus 00 dev 39
 VP_IDE: chipset revision 16
 VP_IDE: VIA vt82c596b (cf/cg) IDE UDMA66 controller on pci0:7.1
 ide0: BM-DMA at 0xd000-0xd007, BIOS settings: hda:DMA, hdb:pio
 ide1: BM-DMA at 0xd008-0xd00f, BIOS settings: hdc:DMA, hdd:DMA
 hda: IBM-DTLA-307075, ATA DISK drive
 hdb: IOMEGA ZIP 250 ATAPI, ATAPI FLOPPY drive
 hdc: KENWOOD CD-ROM UCR-421 V226G, ATAPI CDROM drive
 hdd: PLEXTOR CD-R PX-W1210A, ATAPI CDROM drive
 ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
 ide1 at 0x170-0x177,0x376 on irq 15
 hda: 150136560 sectors (76870 MB) w/1916KiB Cache, CHS=9345/255/63, UDMA(66)
 hdc: ATAPI 68X CD-ROM drive, 2048kB Cache, UDMA(33)
 Uniform CD-ROM driver Revision: 3.11
 hdb: set_drive_speed_status: status=0x51 { DriveReady SeekComplete Error }
 hdb: set_drive_speed_status: error=0x04
 hdb: 244736kB, 239/64/32 CHS, 4096 kBps, 512 sector size, 2941 rpm
 Partition check:
  hda: hda1 hda2 hda3 hda4  hda5 hda6 hda7 hda8 hda9 hda10 hda11 

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



Re: kernel 2.4.0-test9 and Cisco Pix Firewall - Might be a bug???

2000-10-10 Thread David S. Miller


echo "0" /proc/sys/net/ipv4/tcp_ecn

Yes, Cisco does know about the bug in their product.

Later,
David S. Miller
[EMAIL PROTECTED]


-- 
Unsubscribe?  mail -s unsubscribe [EMAIL PROTECTED]  /dev/null




RE: getting struct pci_dev from struct netdevice

2000-10-10 Thread Phillips, Mike

 hi all,
 given struct netdevice for any pci network device, is there any way to
get
 corresponding
 "struct pci_dev".

 No.

Not directly, but pci_dev knows about netdevice, so you can scan the
pci_dev's
to find a match with the required netdevice. (Or do a similar match search
on base_addr)

Mike

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



Re: Calling current() from interrupt context

2000-10-10 Thread kumon
Based of my measurement on i386 smp configuration,

If a system has plenty of runnable tasks, schedule() produces
noticable amount of cache misses at runqueue-head traversing and the
goodness calculations.

David S. Miller writes:
  Some of us actually have instrumented it :-) I added a coloring
  mechanism to the task/kstack allocator on sparc64.  It made no
  noticable difference whatsoever to any real life measurement I
  attempted.

Did you slide task-struct itself?

--
Computer Systems Laboratory, Fujitsu Labs.
[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: getting struct pci_dev from struct netdevice

2000-10-10 Thread Jeff Garzik

"Phillips, Mike" wrote:
 
  hi all,
  given struct netdevice for any pci network device, is there any way to
 get
  corresponding
  "struct pci_dev".
 
  No.
 
 Not directly, but pci_dev knows about netdevice, so you can scan the
 pci_dev's
 to find a match with the required netdevice

Or really?  Exactly how does one do this?


 (Or do a similar match search
 on base_addr)

Doesn't work on 64-bit platforms, I don't think.  Not all net drivers
set base_address in any case.

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



Re: spurious 8259A interrupt?

2000-10-10 Thread Richard B. Johnson

On Mon, 9 Oct 2000, Daniel Lange wrote:

 Periodically, I get the following error with the 2.4.0test9 kernel:
 
 spurious 8259A interrupt: IRQ7.
 
[SNIPPED...]

This will sometimes happen with the 8259A and really should not even
be logged. There is a default handler for all interrupts. If this
handler gets control from an unallocated interrupt, it writes this
message, ACKs the interrupt, then returns.

 Initializing CPU#0

You are using a SMP kernel on a `386 UP machine. That tends to make
these burps show up. It is harmless, though.

 Console: colour VGA+ 80x25
 Calibrating delay loop... 3.10 BogoMIPS

This shows something I don't understand. Either the counter wrapped,
a timer is mis-programmed, or the CPU clock speed is about 1.5 MHz.
You should look into this. Older kernels generally show the BogoMIPS
as being about equal to the CPU clock speed +/- 20%. Newer kernels
generally show it being about 2 times the clock speed +/- 20%. 

 CPU: 386
 Checking 'hlt' instruction... OK.
 Checking for popad bug... Buggy.

I have one of these too.


Cheers,
Dick Johnson

Penguin : Linux version 2.2.17 on an i686 machine (801.18 BogoMips).

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


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



Re: Updated 2.4 TODO List

2000-10-10 Thread Andrew Morton

[EMAIL PROTECTED] wrote:
 
 3. Security
 
  * Fix module remove race bug (still to be done: TTY, ldisc, I2C,
video_device - Al Viro) (Rogier Wolff will handle ATM)

Patch for tty and ldisc is in your inbox...

 ...
 
 8. Fix Exists But Isnt Merged
 
 ...
  * Many network device drivers don't call MOD_INC_USE_COUNT in
dev-open. (Paul Gortmaker has patches)

This should be rephrased "Many network device drivers call
MOD_INC_USE_COUNT too late in dev-open()".

And it has been proposed (frequently, by me) that the
dev_hold()/dev_put()/unregister_netdevice() logic ensures that netdevice
drivers are _not_ race prone wrt module removal and so no development is
needed here.

Unless someone squeaks I suggest you take the red pen to this one.

 ...
 9. To Do
 
 ...
  * Misc locking problems
   + drivers/pcmcia/ds.c: ds_read  ds_write. SMP locks are
 missing, on UP the sleep_on() use is unsafe.


It is my understanding that hen's teeth easily outnumber SMP PCMCIA
systems.  spinlocks in drivers/pcmcia/ and drivers/net/pcmcia/ are
almost nonexistent.

So I propose that this item be removed simply by stating "Linux 2.4 does
not support PCMCIA on multiprocessors".   Comments, David?
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



SCSI lock-up when scanning with SNAPSCAN1236

2000-10-10 Thread Bernd Porr

Hi There!

1.: SCSI lock-up when scanning with SNAPSCAN1236
2.:

I have an AGFA SNAP-scan 1236S and used it with the kernel
2.2.16 and with the new beta-test-kernel 2.4.0-test9.

The SCSI-Controller is a aha152x and is working fine with
the 2.2.16 kernel except that there is an error message from
the aha152x module but the scan is ok:
Oct 10 13:19:43 snoopy kernel: aha152x: more data than expected (128
bytes)
Oct 10 13:19:43 snoopy kernel: aha152x: data ( 3  3  3  3  3  3  3  3  4
6  6  6  6  7  6  7 37 1d 11 25 2c 16  c 11 ab ff ab 9e  2 25 16 1d 19 19
16 19 20 2a 28 16  0 1d 23 16  1  2  2  2  2  2  2  2  2  2  2  2  2  2  2
2  3  3  3  3  3  3  3  3  2  3  3  3  2  3  3  2  2  3  3  3  3  3  3  3
3  2  2  2  3  3  3  3  3  3  3  3  3  3  3  2  2  2  2  2  3  3  3  3  5
6  6  6  6  6  6  6 37 1d 11 25 2c 16  c 11 ab ff ab 9d )


But with the new test-kernel only the detection of the scanner is
working fine. When I start the scan process the whole SCSI-Bus is
locked up.

I tested the SCSI bus with and without parity but the problem was
still the same (I could only switch off the parity with modifying
the code but this is another problem).

This is the detection of the scanner by the aha152x-module:

Oct  7 18:14:57 snoopy kernel: aha152x0: vital data: rev=3, io=0x340
(0x340/0x34
0), irq=9, scsiid=7, reconnect=disabled, parity=disabled,
synchronous=disabled,
delay=100, extended translation=disabled
Oct  7 18:14:57 snoopy kernel: aha152x0: trying software interrupt, ok.
Oct  7 18:14:57 snoopy kernel: scsi0 : Adaptec 152x SCSI
driver; $Revision: 2.0
$
Oct  7 18:14:57 snoopy kernel: scsi : 1 host.
Oct  7 18:14:58 snoopy kernel:   Vendor: AGFA  Model: SNAPSCAN 1236
Rev:
 1.50
Oct  7 18:14:58 snoopy kernel:   Type:   Scanner
ANSI
 SCSI revision: 02
Oct  7 18:16:57 snoopy kernel: Detected scsi generic sg0 at scsi0, channel
0, id
 2, lun 0, type 6

after that you could start xscanimage but it locked up.


4.: 2.4.0-test9
5.: 
6.: scanimage/xscanimage (latest version, sane 1.0.3).
7.2:
processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model   : 7
model name  : Pentium III (Katmai)
stepping: 2
cpu MHz : 501.142
cache size  : 512 KB
fdiv_bug: no
hlt_bug : no
sep_bug : no
f00f_bug: no
coma_bug: no
fpu : yes
fpu_exception   : yes
cpuid level : 3
wp  : yes
flags   : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov
pat pse36 pn mmx fxsr xmm
bogomips: 999.42

7.4.: -001f : dma1
0020-003f : pic1
0040-005f : timer
0060-006f : keyboard
0080-008f : dma page reg
00a0-00bf : pic2
00c0-00df : dma2
00f0-00ff : fpu
01f0-01f7 : ide0
0210-021f : 3c509
02f8-02ff : serial(auto)
0340-035f : aha152x
0378-037a : parport0
03bc-03be : parport1
03c0-03df : vga+
03f6-03f6 : ide0
03f8-03ff : serial(auto)

7.6.: Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: SEAGATE  Model: ST43400N Rev: 0116
  Type:   Direct-AccessANSI SCSI revision: 02
Host: scsi0 Channel: 00 Id: 02 Lun: 00
  Vendor: AGFA Model: SNAPSCAN 1236Rev: 1.50
  Type:   Scanner  ANSI SCSI revision: 02

8.: I used an update directly from the snapscan-developer-page but
the result was the same.


Cheers
/Bernd
---
http://www.neurop.ruhr-uni-bochum.de/~porr
http://www.cn.stir.ac.uk/~bp1

-
To unsubscribe from this list: send 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] VM fix for 2.4.0-test9 OOM handler

2000-10-10 Thread Marco Colombo

On Mon, 9 Oct 2000, Linus Torvalds wrote:

 On Mon, 9 Oct 2000, Rik van Riel wrote:
 
   I'd prefer just X having a higher "mm nice level" or something.
  
  Which it has, because:
  
  1) CAP_RAW_IO
  2) p-euid == 0
 
 Oh, I agree, but we might want to generalize this a bit so that root could
 say "this process is important" and then drop root privileges and still
 get "credited" for the fact that it's important.
 
 It's not a big deal. It works for X right now.

How about using

p-rlim[RLIMIT_AS].rlim_cur

to weight the badness point for a process?
On my system, a 128MB RAM + 256MB swap, it defaults to some (insane?) value:

bash$ ulimit -vH -vS
virtual memory (kbytes)  4194302
virtual memory (kbytes)  2105343

for every process, which just means it is unused.

The idea is:
1) set default for rlim[RLIMIT_AS].rlim_max to a saner value;
2) processes with higher rlim[RLIMIT_AS].rlim_cur get lower badness.

This way, the badness of a process is not proportional to its absolute
size, but to the fraction of allowed AS it is using. Processes
that are capable(CAP_SYS_RESOURCE) can set RLIMIT_AS to a very high value,
so they get less badness point. X is a perfect candidate.

User's runaway processes (netscape) will have lower rlim[RLIMIT_AS].rlim_cur,
thus will get higher badness.

Something like:

-   points = p-mm-total_vm;
+   points = p-mm-total_vm / (p-rlim[RLIMIT_AS].rlim_cur  AS_FACTOR);

with

#define AS_FACTOR 30

maybe? (this is Rik's call, he knows better than me how to balance it...)

It's simple, it's configurable. 1) may be enforced by the kernel, or
completely left to user space.
On my system, in its default configuration (no use of RLIMIT_AS),
it has no impact at all (all processes have the same limit).

Sounds good or am I missing something?

 
   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/
 

.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: lowish-latency patch for 2.4.0-test9

2000-10-10 Thread Andrew Morton

Andi Kleen wrote:
 
 On Fri, Oct 06, 2000 at 10:00:36PM +1100, Andrew Morton wrote:
  The little-low-latency patch for test9 is at
 
http://www.uow.edu.au/~andrewm/linux/2.4.0-test9-low-latency.patch
 
  Notes:
 
  - It now passes Benno's tests with 50% headroom (thanks to
Ingo's scheduler race fix).
 
 What was that race exactly ?

Not completely sure.  I _think_ the problem was that when the kernel was
switching from your SCHED_FIFO process to some other process, and an
interrupt occurred between the reenabling of interrupts and the
switch_to() in schedule(), and that interrupt tried to wake the
SCHED_FIFO process, it wasn't noticed until the next timeslice.  That
was as far as I got when the problem magically disappeared.  Due to
this hunk:

switch_to(prev, next, prev);
__schedule_tail(prev);

same_process:
reacquire_kernel_lock(current);
+   if (current-need_resched)
+   goto tq_scheduler_back;

return;


 There is a scheduler race which may also hurt (and is harder to fix):
 when the timer interrupt hits in syscall exit after the need_resched check
 was done then you may lose a time slice. The window can be quite long
 when signals are handled (after do_signal returned there is no reschedule
 check). Without signals it is only a few instructions window.
 
 I have not checked if it really is a problem in practice though. With
 lots of signals it may be a problem.

Is it not a matter of:

a): checking need_resched after the call to do_signal() and

b): disabling local interrupts prior to the final need_resched
check to make this test atomic wrt interrupts.  RESTORE_ALL
will do the right thing and an intervening smp_send_reschedule()
will be blocked until the return to user space.

Seems too simple...
-
To unsubscribe from this list: send 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: getting struct pci_dev from struct netdevice

2000-10-10 Thread Phillips, Mike

Hi Andrew,

Take a look at the olympic driver (drivers/net/tokenring/olympic.c)
function olympic_proc_info. This is called from a read into the proc
filesystem. When we get the read we want to print out details on
all the olympic devices in the system so we have to scan the
pci tree and find a match based on base_addr. This works in both
2.2 and 2.4

Jeff:
 Or really?  Exactly how does one do this?

pdev-driver_data = dev

Of course the driver has to implement this.

Mike

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



Re: Calling current() from interrupt context

2000-10-10 Thread Jeff V. Merkey



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



Fwd: set_rtc_mmss ?

2000-10-10 Thread Chen Shiyuan

Oops.. sorry for the typo. The server in question is running linux-2.2.16 
tarball from ftp.kernel.org instead of 2.2.17 .

Thanks!

- Forwarded message from [EMAIL PROTECTED] -
Date: Tue, 10 Oct 2000 21:28:14 +0800 (SGT)
From: [EMAIL PROTECTED]
Reply-To: [EMAIL PROTECTED]
Subject: set_rtc_mmss ?
To: [EMAIL PROTECTED]

Hello!

I am currently running the tarball linux-2.2.17 from ftp.kernel.org on a
RedHat Linux 6.2 server. The server is a Dell PowerEdge 4300 with 1GB RAM
, 2 x PIII600 and a DRAC PERC2/SC RAID controller.

The server mainly runs software like MySQL Server, Samba Server, NFS
Server and LDAP Server.

All is working well except that randomly, sometimes afer a few days or
sometimes after many weeks, the following error message would appear when
I type dmesg at the shell prompt.

set_rtc_mmss: can't update from 50 to 1
set_rtc_mmss: can't update from 50 to 2
set_rtc_mmss: can't update from 50 to 3
set_rtc_mmss: can't update from 50 to 4
set_rtc_mmss: can't update from 53 to 4
set_rtc_mmss: can't update from 53 to 5
set_rtc_mmss: can't update from 53 to 6
set_rtc_mmss: can't update from 53 to 7
set_rtc_mmss: can't update from 49 to 0
set_rtc_mmss: can't update from 49 to 1
set_rtc_mmss: can't update from 49 to 2
set_rtc_mmss: can't update from 49 to 3
set_rtc_mmss: can't update from 56 to 7
set_rtc_mmss: can't update from 56 to 8
set_rtc_mmss: can't update from 56 to 9
set_rtc_mmss: can't update from 56 to 10

And when I check up on /proc/rtc, it is no longer running and is stuck at
the time when the first set_rtc_mmss error occurs. When I tried to run
programs like setclock to update the hardware clock, it just jams there
for a very long time and a strace shows that it is trying to access
/proc/rtc .

server:~# date
Tue Oct 10 21:21:04 SGT 2000

server:~# uptime
  9:21pm  up 36 days,  4:54,  1 user,  load average: 2.88, 2.04, 1.83

server:~# cat /proc/rtc
rtc_time: 17:41:57
rtc_date: 2000-10-09
rtc_epoch   : 1900
alarm   : 04:33:37
DST_enable  : no
BCD : yes
24hr: yes
square_wave : no
alarm_IRQ   : no
update_IRQ  : no
periodic_IRQ: no
periodic_freq   : 1024
batt_status : okay

server:~# fuser -u -a -v /proc/rtc

 USERPID ACCESS COMMAND
/proc/rtc
No process references; use -v for the complete list

Does anyone have any idea what could be causing this problem? The only
solution that I came across till date is to reboot the server and then
set back the correct date/time in the CMOS before allowing the server to
bootup.

Many thanks in advance!

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



Matrox framebuffer

2000-10-10 Thread Daniel Podlejski

I have problem with Matrox G400 framebuffer. After turn
on computer, kernel freez durning boot with snow on my monitor.
When I start it with options video=matrox:disbled, and run XFree86
4.0.1 with official drivers from Matrox web page, and reboot my
computer again - everything works fine.

From dmesg:

matroxfb: Matrox unknown G400 (AGP) detected
matroxfb: MTRR's turned on
matroxfb: cannot set xres to 800, rounded up to 832
matroxfb: cannot set xres to 800, rounded up to 832
matroxfb: 800x600x8bpp (virtual: 832x20160)
matroxfb: framebuffer at 0x4200, mapped to 0xc8805000, size 16777216
Console: switching to colour frame buffer device 100x37
fb0: MATROX VGA frame buffer device

And lspci -v:

01:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G400 AGP (rev 04) 
(prog-if 00 [VGA])
Subsystem: Matrox Graphics, Inc. Millennium G400 16Mb SGRAM
Flags: medium devsel, IRQ 11
Memory at 4200 (32-bit, prefetchable) [size=32M]
Memory at 4080 (32-bit, non-prefetchable) [size=16K]
Memory at 4000 (32-bit, non-prefetchable) [size=8M]
Expansion ROM at unassigned [disabled] [size=64K]
Capabilities: [dc] Power Management version 2
Capabilities: [f0] AGP version 2.0

uname -a
Linux random 2.4.0-test9 #1 Tue Oct 10 15:05:22 CEST 2000 i686 unknown

-- 
Daniel Podlejski [EMAIL PROTECTED]
   ... When you're through with life and all hope is lost,
   Hold out your hand cos right till the end - friends will be friends ...
-
To unsubscribe from this list: send 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] VM fix for 2.4.0-test9 OOM handler

2000-10-10 Thread Andrea Arcangeli

On Tue, Oct 10, 2000 at 04:38:02AM +0100, Philipp Rumpf wrote:
 Init should never die.  If we get to do_exit in init we'll panic which is
 the right thing to do (reboot on critical systems).

If the page fault can fail with OOM on init, init will get a SIGSEGV while
running a signal handler (copy-user will return -EFAULT regardless it was an
oom or a real segfault) and it _won't_ panic and the system is unusable.

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



OnStream SCSI tape driver osst

2000-10-10 Thread Kurt Garloff

Hi Linus, hi Alan,

I'd like to get some driver included into the mainstream kernels.

The driver is a new high-level SCSI driver, which was derived from the
standard st driver. It drives the OnStream tape drives SC-30/50 (SCSI) and
DI-30 (IDE, via ide-scsi) and USB-30 (USB, via usb-storage). The parallel
port drive (DP-30) could also be driven, if there was a SCSI emulation layer
for it ...
The reason why this driver is needed, is that the OnStream drives are not
completely conforming with the SCSI-2 spec for Serial Access Storage Devices
(commonly named tapes), which basically is the same as QIC-157.
Therefore st fails to drive those OnStream tape drives. 
(There is a second generation drive, ADR-x0, which has a much more advanced
 firmware and does fully comply with SCSI-2 spec, BTW.)
The commands are rather QIC-172 and especially the error handling is a
little bit tricky.

Apart from this problem, the drives are rather nice devices, offering good
performance (15/25 GB uncompressed at 1MB/s (IDE, USB) or 2MB/s (SCSI)) for
reasonable prices.

OnStream was interested to get those drives supported by Linux and provided
docu, test devices and help to get the driver working.
Some people were found to work on this. After some discussion with Kai
Makisara, the decision was taken to not integrate lots of if (onstream) code
into the standard st, but instead fork a new st like driver osst (OnStream
Scsi Tape). A new char device has been registered for it (char-major-206)
with HPA.

A beta driver is out there since almost half a year now (see
http://linux1.onstream.nl/
) and has proven to work very well.
So, I think it's time to get the driver into the mainstream kernel, so
normal users can profit from it. Of course, the driver is GPL'ed.

I know that this is rather late for 2.4, and I know what the term feature
freeze means. Sorry about this! 
I meant to ask you for inclusion of the driver some weeks ago, already, but
the problem was that I really do not want to send you a patch, which has
rejects due to the changes in SCSI. Now, as SCSI seems to be stable again
(and better than before), I could do some serious final testing again and
would really like to get it included now.

The risk of destabilizing the kernel is zero:
* Kai already integrated a patch into st to reject the non st-compatible
  OnStream tape drives [static char * st_incompatible(Scsi_Device* SDp)]
* osst will only try to drive the OnStream devices
* Thanks to the recent changes in SCSI of 2.4 kernels, we do not even need
  to touch any other SCSI driver file. (The patch to st just does include
  the signatures for rejection from a different file, which is also used by
  osst; this way duplication of information is avoided.)
* Lots of testers squashed out the bugs. (No, I'm not crazy and claim that
  there are none left.)

So, it's just an additional driver for some nice hardware that was not
supported before. It would be nice to get it included ASAP. If 2.4.0 is not
possible any more, 2.4.1 would still be a good solution ...
(Should I try to get Ted to put this on the TODO list?)

BTW, Kai supports inclusion of it into the mainstream kernel.

Linus, Alan, the whole driver stuff can be downloaded from 
http://linux1.onstream.nl/test/
I'll create a patch against the most recent 2.4 and 2.2 trees I can find,
and send it via PM to you, so you do not need to do a combined patch copy
procedure.


I'd like to not forget to mention the people who actually did the work.
Willem Riede [EMAIL PROTECTED] did by far the largest part of the coding. He
is the MAINTAINER, and the patch adds his name to the list.
Some code was copied from or modelled after Gadi Oxmans ide-tape
[EMAIL PROTECTED] and Terry Hardies userspace application osg
[EMAIL PROTECTED]. I did also contribute some code. Thanks also go to Kai
Makisara [EMAIL PROTECTED] (the st maintainer) for discussing design
issues with us. Jack Bombeeck [EMAIL PROTECTED] and some of his
colleagues helped wherever they could and will need to take care not to get
addicted to Linux ;-) I'd also like to thank Matthew Darm and David Brown
for their usb-storage work and all the testers who sent reports.


Regards,
-- 
Kurt Garloff   [EMAIL PROTECTED] [Eindhoven, NL]
Physics: Plasma simulations [EMAIL PROTECTED]   [TU Eindhoven, NL]
Linux: SCSI, Security  [EMAIL PROTECTED]   [SuSE Nuernberg, FRG]
 (See mail header or public key servers for PGP2 and GPG public keys.)
-
To unsubscribe from this list: send 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 + Winchip2/2A processor family == hang on boot

2000-10-10 Thread davej


 I tried the patch, but the result is the same... Uncompressing Linux...,
 now booting the kernel..., NOTHING
 These Winchips need all the help they can get, so if you know something
 else I might try...

Ok, I've narrowed it down to the changes to mtrr.c in test8
Looks like the Cyrix III changes broke things.
Didn't something similar happen when these changes made it into
a 2.2.18pre ? Alan?

For now reverse the diff below by patching with -R
I'll take a look at a proper fix after lectures later today[1]..
unless someone else spots the error in the meantime.

regards,

Dave.

[1] Why do all the fun things happen on my busiest days ? :)

-- 
| Dave Jones [EMAIL PROTECTED]  http://www.suse.de/~davej
| SuSE Labs


diff -u --recursive --new-file v2.4.0-test8/linux/arch/i386/kernel/mtrr.c 
linux/arch/i386/kernel/mtrr.c
--- v2.4.0-test8/linux/arch/i386/kernel/mtrr.c  Wed Jul 12 21:58:41 2000
+++ linux/arch/i386/kernel/mtrr.c   Sun Oct  1 20:35:15 2000
@@ -319,10 +319,10 @@
 #endif
 
 #ifdef USERSPACE_INTERFACE
-static char *ascii_buffer = NULL;
-static unsigned int ascii_buf_bytes = 0;
+static char *ascii_buffer;
+static unsigned int ascii_buf_bytes;
 #endif
-static unsigned int *usage_table = NULL;
+static unsigned int *usage_table;
 static DECLARE_MUTEX(main_lock);
 
 /*  Private functions  */
@@ -356,7 +356,8 @@
if (boot_cpu_data.x86 = 6) break; /* Athlon and post-Athlon CPUs */
/* else fall through */
   case X86_VENDOR_CENTAUR:
-   return;
+   if(boot_cpu_data.x86 != 6)
+   return;
/*break;*/
 }
 /*  Save value of CR4 and clear Page Global Enable (bit 7)  */
@@ -380,6 +381,7 @@
 {
   case X86_VENDOR_AMD:
   case X86_VENDOR_INTEL:
+  case X86_VENDOR_CENTAUR:
/*  Disable MTRRs, and set the default type to uncached  */
rdmsr (MTRRdefType_MSR, ctxt-deftype_lo, ctxt-deftype_hi);
wrmsr (MTRRdefType_MSR, ctxt-deftype_lo  0xf300UL, ctxt-deftype_hi);
@@ -403,8 +405,11 @@
if (boot_cpu_data.x86 = 6) break; /* Athlon and post-Athlon CPUs */
/* else fall through */
   case X86_VENDOR_CENTAUR:
-   __restore_flags (ctxt-flags);
-   return;
+   if(boot_cpu_data.x86 != 6)
+   {
+   __restore_flags (ctxt-flags);
+   return;
+   }
/*break;*/
 }
 /*  Flush caches and TLBs  */
@@ -415,6 +420,7 @@
 {
   case X86_VENDOR_AMD:
   case X86_VENDOR_INTEL:
+  case X86_VENDOR_CENTAUR:
wrmsr (MTRRdefType_MSR, ctxt-deftype_lo, ctxt-deftype_hi);
break;
   case X86_VENDOR_CYRIX:
@@ -453,9 +459,17 @@
/*break;*/
   case X86_VENDOR_CYRIX:
/*  Cyrix have 8 ARRs  */
+   return 8;
   case X86_VENDOR_CENTAUR:
 /*  and Centaur has 8 MCR's  */
-   return 8;
+   if(boot_cpu_data.x86==5)
+   return 8;
+   /*  the cyrix III has intel compatible MTRR */
+   if(boot_cpu_data.x86==6)
+   {
+   rdmsr (MTRRcap_MSR, config, dummy);
+   return (config  0xff);
+   }
/*break;*/
 }
 return 0;
@@ -471,12 +485,15 @@
   case X86_VENDOR_AMD:
if (boot_cpu_data.x86  6) return 1; /* pre-Athlon CPUs */
/* else fall through */
+  case X86_VENDOR_CENTAUR:
+if (boot_cpu_data.x86 == 5)
+   return 1;   /* C6 */
+/* CyrixIII is Intel like */
   case X86_VENDOR_INTEL:
rdmsr (MTRRcap_MSR, config, dummy);
return (config  (110));
/*break;*/
   case X86_VENDOR_CYRIX:
-  case X86_VENDOR_CENTAUR:
return 1;
/*break;*/
 }
@@ -623,7 +640,7 @@
 }   /*  End Function centaur_get_mcr  */
 
 static void (*get_mtrr) (unsigned int reg, unsigned long *base,
-unsigned long *size, mtrr_type *type) = NULL;
+unsigned long *size, mtrr_type *type);
 
 static void intel_set_mtrr_up (unsigned int reg, unsigned long base,
   unsigned long size, mtrr_type type, int do_safe)
@@ -766,7 +783,7 @@
 
 static void (*set_mtrr_up) (unsigned int reg, unsigned long base,
unsigned long size, mtrr_type type,
-   int do_safe) = NULL;
+   int do_safe);
 
 #ifdef CONFIG_SMP
 
@@ -1194,7 +1211,7 @@
printk ("mtrr: size: %lx  base: %lx\n", size, base);
return -EINVAL;
}
-if (boot_cpu_data.x86_vendor == X86_VENDOR_CENTAUR)
+if (boot_cpu_data.x86_vendor == X86_VENDOR_CENTAUR  boot_cpu_data.x86 == 5)
{
if (type != MTRR_TYPE_WRCOMB)
{
@@ -1779,8 +1796,16 @@
get_free_region = cyrix_get_free_region;
break;
  case X86_VENDOR_CENTAUR:
-get_mtrr = centaur_get_mcr;
-set_mtrr_up = centaur_set_mcr_up;
+if(boot_cpu_data.x86 == 5)
+{
+   get_mtrr = centaur_get_mcr;
+   set_mtrr_up = 

A patch to loop.c for better cryption support

2000-10-10 Thread Ingo Rohloff

Hi,

First some explanation. Most cryption algorithms initialize
the cryption process with some init values, called IV (by me :-).
This means that two identical clear messages will give
different encrypted messages, if different IVs are used.

The loop device supports different IVs;
the IVs are initilized with the requested block
number. 

I believe a better way is to use the requested
sector number from CURRENT-sector. 
Using this value should make the encryption and decryption
process completely independent from the underlying device.

This is especially important when using a backing file.
At the moment (as far as i heard) you can't use a backing
file on a harddisk and then burn it to a CD, because the
blocksize changes. Using sectors as atomic encryption unit
should solve this problem.

There is one drawback: The cryption algorithms have to
know this semantic. At the moment most of the cryption algorithms
use CBC mode to crypt a stream. When sector numbers are
used as IV's the CBC mode has to be restarted periodically
after 512 bytes with an incremented sector number as new IV's.

(Please CC me if you want to comment :-) )

so long
  Ingo

PS: Please have a look at the patch. It is against linux-2.4test9.
I already mailed this patch to Alexander Kjeldaas who
maintains the international crypto patch, but I don't know
who maintains the loop device. (I know that it was originally
written by Theodore Ts'o, but is he also the Maintainer ?)
Please include the patch into the main tree... 


--- linux-2.4test9/drivers/block/loop_old.c Tue Oct 10 14:25:10 2000
+++ linux-2.4test9/drivers/block/loop.c Tue Oct 10 16:09:11 2000
@@ -169,7 +169,7 @@
 }
 
 static int lo_send(struct loop_device *lo, char *data, int len, loff_t pos,
-   int blksize)
+   int IV)
 {
struct file *file = lo-lo_backing_file; /* kudos to NFsckingS */
struct address_space *mapping = lo-lo_dentry-d_inode-i_mapping;
@@ -182,7 +182,6 @@
index = pos  PAGE_CACHE_SHIFT;
offset = pos  (PAGE_CACHE_SIZE - 1);
while (len  0) {
-   int IV = index * (PAGE_CACHE_SIZE/blksize) + offset/blksize;
size = PAGE_CACHE_SIZE - offset;
if (size  len)
size = len;
@@ -221,7 +220,7 @@
 struct lo_read_data {
struct loop_device *lo;
char *data;
-   int blksize;
+   int IV;
 };
 
 static int lo_read_actor(read_descriptor_t * desc, struct page *page, unsigned long 
offset, unsigned long size)
@@ -230,8 +229,8 @@
unsigned long count = desc-count;
struct lo_read_data *p = (struct lo_read_data*)desc-buf;
struct loop_device *lo = p-lo;
-   int IV = page-index * (PAGE_CACHE_SIZE/p-blksize) + offset/p-blksize;
-
+   int IV = p-IV;
+   
if (size  count)
size = count;
 
@@ -251,7 +250,7 @@
 }
 
 static int lo_receive(struct loop_device *lo, char *data, int len, loff_t pos,
-   int blksize)
+   int IV)
 {
struct file *file = lo-lo_backing_file;
struct lo_read_data cookie;
@@ -259,7 +258,7 @@
 
cookie.lo = lo;
cookie.data = data;
-   cookie.blksize = blksize;
+   cookie.IV = IV;
desc.written = 0;
desc.count = len;
desc.buf = (char*)cookie;
@@ -270,7 +269,7 @@
 
 static void do_lo_request(request_queue_t * q)
 {
-   int block, offset, len, blksize, size;
+   int sector, block, offset, len, blksize, size;
char*dest_addr;
struct loop_device *lo;
struct buffer_head *bh;
@@ -296,8 +295,9 @@
}
 
dest_addr = current_request-buffer;
+   sector = current_request-sector;
len = current_request-current_nr_sectors  9;
-
+  
blksize = BLOCK_SIZE;
if (blksize_size[MAJOR(lo-lo_device)]) {
blksize = blksize_size[MAJOR(lo-lo_device)][MINOR(lo-lo_device)];
@@ -348,7 +348,7 @@
 
if ((lo-transfer)(lo, current_request-cmd,
   bh-b_data + offset,
-  dest_addr, size, block)) {
+  dest_addr, size, sector)) {
printk(KERN_ERR "loop: transfer error block %d\n",
   block);
brelse(bh);
@@ -371,10 +371,10 @@
pos = ((loff_t)current_request-sector  9) + lo-lo_offset;
spin_unlock_irq(io_request_lock);
if (current_request-cmd == WRITE) {
-   if (lo_send(lo, dest_addr, len, pos, blksize))
+   if (lo_send(lo, dest_addr, len, pos, sector))
goto error_out_lock;
} else {
-   if (lo_receive(lo, dest_addr, len, pos, blksize))
+   if (lo_receive(lo, dest_addr, len, pos, sector))
goto error_out_lock;
}
 done:



Re: [PATCH] VM fix for 2.4.0-test9 OOM handler

2000-10-10 Thread Andrea Arcangeli

On Tue, Oct 10, 2000 at 09:06:49AM +0200, Helge Hafting wrote:
 If you want init to live - prove that it don't eat too much memory.

I don't see why the machine should be stable only if init is small.
My kernel won't be stable only if init is small since it doesn't cost
anything to handle correctly the big init case.

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



Re: [PATCH] VM fix for 2.4.0-test9 OOM handler

2000-10-10 Thread Rogier Wolff

Linus Torvalds wrote:
 Basically, the only thing _I_ think X can do is to really say "oh, please
 don't count my memory, because everything I do I do for my clients, not
 for myself". 
 
 THAT is my argument. Basically there is nothing we can reliably account.
 
 So we might as well fall back on just saying "X is more important than
 some random client", and have a mm niceness level. Which right now is
 obviously approximated by the IO capabilities tests etc.

FYI:

I ran my machine out of memory (without crashing by the way) this
weekend by loading a whole bunch of large images into netscape. I
noticed not being able to open more windows when I saw my swapspace
exhausted. I noticed the large netscape, and killed it. 

At that moment my X was still taking 80Mb of RAM. I manually killed it
and restarted it to get rid of that memory. 

So if Netscape can "pump" 40 extra megabytes of memory out of X, this
can be exploited. 

Now we're back to the point that a heuristic can never be right all
the time..

Roger. 

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



Re: OnStream SCSI tape driver osst

2000-10-10 Thread Matthew Jacob


(There is a second generation drive, ADR-x0, which has a much more advanced
 firmware and does fully comply with SCSI-2 spec, BTW.)

'fully'? Not.

This latter drive has had problems too, but it seems to me that the arrival of
the ADR-50 should preclude the need to support the ADR-30.




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



Segfaults using xawtv

2000-10-10 Thread John Coppens

Hi...

I _hate_ to do this, but I couldn't find (except for a reference to 
"others who have segfaults using glibc") no reference to this problem. 
Insmod of i2c, videodev and bttv succeed without problems or any message 
in /var/log/debug, messages or syslog.

Also, though I'm surely no expert, I tested a bit with gdb  such, and
suspect there may be a problem that's not directly xawtv/bttv related.

Any suggestions?

John

---insmod

insmod i2c
insmod videodev
(insmod tuner type=4)
insmod bttv card=30

---dmesg:

i2c: initialized
Linux video capture interface: v1.00
bttv0: Brooktree Bt878 (rev 2) bus: 0, devfn: 80, irq: 5, memory: 0xe700.
PCI: Enabling bus mastering for device 00:50
bttv: 1 Bt8xx card(s) found.
bttv0: NO fader chip: TEA6300
bttv0: model: BT878

---lsmod:

Module  Size  Used by
tuner   2180   1
bttv   33824   0
videodev2592   2  [bttv]
i2c 3488   2  [tuner bttv]
ppp_deflate40800   0  (autoclean)
ide-cd 23924   1  (autoclean)
cdrom  27324   0  (autoclean) [ide-cd]
bsd_comp3816   0
lp  4728   0  (unused)

---Versions:

xawtv: 3.21
bttv: 0.7.44
kernel: 2.2.16, with USB and I2C patches
TV norm here: PAL/N, which is US channel spacing, Euro-50Hz PAL image.
  but I'm testing with a PAL-B camera.
board: Flyvideo 98
error messages: see below

---Backtrace:

(I recompiled with -ggdb, to get more info. The error messages are the same
 using -g or -ggdb)

Starting program: /usr/local/src/multimedia/xawtv-3.21/src/xawtv
This is xawtv-3.21, running on Linux/i586 (2.2.16)
visual: id=0x22 class=4 (TrueColor), depth=24
x11: 1024x768, 32 bit/pixel, 4096 byte/scanline, DGA
waitpid: No child processes
waitpid: No child processes
Program received signal SIGSEGV, Segmentation fault.
0x4021c27d in memset () from /lib/libc.so.6
(gdb) bt
#0  0x4021c27d in memset () from /lib/libc.so.6
#1  0x806f8e6 in capability ()
#2  0x8055fb7 in grabber_open (device=0x8061cd1 "/dev/video", sw=1024, sh=768,
base=0xe540, format=8, width=4096) at grab.c:111
#3  0x8050c88 in grabber_init () at xt.c:303
#4  0x8050579 in main (argc=1, argv=0xb784) at main.c:2365


--
-
To unsubscribe from this list: send 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] VM fix for 2.4.0-test9 OOM handler

2000-10-10 Thread Rik van Riel

On Tue, 10 Oct 2000, Philipp Rumpf wrote:

   The algorithm you posted on the list in this thread will kill
   init if on 4Mbyte machine without swap init is large 3 Mbytes
   and you execute a task that grows over 1M.
  
  This sounds suspiciously like the description of a DEAD system ;)
 
 But wouldn't a watchdog daemon which doesn't allocate any memory
 still get run ?

Indeed, it would. It would also /prevent/ the system
from automatically rebooting itself into a usable state ;)

  (in which case you simply don't care if init is being killed or not)
 
 You care about getting an automatic reboot.  So you need to be sure the
 watchdog daemon gets killed first or you panic() after some time.

echo 30  /proc/sys/kernel/panic

regards,

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

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

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



[PATCH] OOM killer API (was: [PATCH] VM fix for 2.4.0-test9 OOM handler)

2000-10-10 Thread Ingo Oeser

[OOM killer war]

Hi there,

before you argue endlessly about the "Right OOM Killer (TM)", I
did a small patch to allow replacing the OOM killer at runtime.

You can even use modules, if you are careful (see khttpd on how
to do this without refcouting).

So now you can stop arguing about the one and only OOM killer,
implement it, provide it as module and get back to the important
stuff ;-)

PS: Patch is against test10-pre1.

Thanks for listening

Ingo Oeser

--- linux-2.4.0-test10-pre1/mm/oom_kill.c   Tue Oct 10 16:31:08 2000
+++ linux-2.4.0-test10-pre1-ioe/mm/oom_kill.c   Tue Oct 10 16:59:27 2000
@@ -13,6 +13,8 @@
  *  machine) this file will double as a 'coding guide' and a signpost
  *  for newbie kernel hackers. It features several pointers to major
  *  kernel subsystems and hints as to where to find out what things do.
+ *
+ *  Added oom_killer API for special needs - Ingo Oeser
  */
 
 #include linux/mm.h
@@ -136,7 +138,7 @@
 }
 
 /**
- * oom_kill - kill the "best" process when we run out of memory
+ * oom_kill_rik - kill the "best" process when we run out of memory
  *
  * If we run out of memory, we have the choice between either
  * killing a random task (bad), letting the system crash (worse)
@@ -147,7 +149,9 @@
  * CAP_SYS_RAW_IO set, send SIGTERM instead (but it's unlikely that
  * we select a process with CAP_SYS_RAW_IO set).
  */
-void oom_kill(void)
+
+
+static void oom_kill_rik(void)
 {
 
struct task_struct *p = select_bad_process();
@@ -207,4 +211,63 @@
 
/* Else... */
return 1;
+}
+
+/* Protects oom_killer against resetting during its execution */
+static rwlock_t oom_kill_lock = RW_LOCK_UNLOCKED;
+
+static oom_killer_t oom_killer = oom_kill_rik;
+
+/** 
+ * oom_kill - the oom_kill wrapper for installable OOM killers
+ *
+ * Wraper around the OOM killers, that can be installed via
+ * install_oom_killer and reset_default_oom_killer.
+ *
+ * This gets called from kswapd() in linux/mm/vmscan.c when we 
+ * really run out of memory.
+ */
+void oom_kill(void) {
+   read_lock(oom_kill_lock);
+   oom_killer();
+   read_unlock(oom_kill_lock);
+}
+
+/**
+ * install_oom_killer - install alternate OOM killer
+ * @new_oom_kill: the alternate OOM killer provided by the caller
+ *
+ * Since the default OOM killer (oom_kill_rik) is not suitable 
+ * for everyone, we provide an interface to install custom OOM killers.
+ * 
+ * You can take the most appropriate action for your application if the
+ * kernel goes OOM.
+ *
+ * Providing an NULL argument just returns the current OOM killer.
+ *
+ * Returns: The OOM killer, which has been installed so far.
+ * 
+ * NOTE: We don't do refcounting on OOM killers, so be careful with 
+ * modules
+ */
+oom_killer_t install_oom_killer(oom_killer_t new_oom_kill) {
+   oom_killer_t tmp;
+   write_lock(oom_kill_lock);
+   tmp=oom_killer;
+   if (new_oom_kill) 
+   oom_killer=new_oom_kill;
+   write_unlock(oom_kill_lock);
+   return tmp;
+}
+
+/**
+ * reset_default_oom_killer - reset back to default OOM killer
+ *
+ * If you are going to unload the module which provided 
+ * your OOM killer, you can install the default one by this.
+ *
+ * Returns: The OOM killer, which has been installed so far.
+ */
+oom_killer_t reset_default_oom_killer(void) {
+   return install_oom_killer(oom_kill_rik);
 }
--- linux-2.4.0-test10-pre1/include/linux/swap.hTue Oct 10 16:31:08 2000
+++ linux-2.4.0-test10-pre1-ioe/include/linux/swap.hTue Oct 10 16:44:22 2000
@@ -127,8 +127,14 @@
 #define read_swap_cache(entry) read_swap_cache_async(entry, 1);
 
 /* linux/mm/oom_kill.c */
+typedef void (*oom_killer_t)(void);
+
 extern int out_of_memory(void);
 extern void oom_kill(void);
+
+oom_killer_t install_oom_killer(oom_killer_t new_oom_kill);
+oom_killer_t reset_default_oom_killer(void);
+
 
 /*
  * Make these inline later once they are working properly.
-- 
Feel the power of the penguin - run [EMAIL PROTECTED]
esc:x
-
To unsubscribe from this list: send 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: getting struct pci_dev from struct netdevice

2000-10-10 Thread Phillips, Mike

 Doesn't work for all devices.  Also since base_addr is truncated to
 16-bits when passed to ifconfig, this gets even nastier for userspace.

You do the best you can with what's available :)

 ...and noone but the driver can trust this information to be pointing to
 an up-to-date struct netdevice.

Shame, perhaps this can be enforced as part of the new pci api.

 Since struct pci_dev is probably going to morph into a more generic
 struct hw_dev, maybe struct netdevice needs a pci_dev member...

Would be nice, or perhaps netdevice should expose a function to return
the information and let the driver provide the specifics.

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



Re: [PATCH] VM fix for 2.4.0-test9 OOM handler

2000-10-10 Thread Rik van Riel

On Tue, 10 Oct 2000, Philipp Rumpf wrote:
 On Tue, Oct 10, 2000 at 12:06:07PM -0300, Rik van Riel wrote:
  On Tue, 10 Oct 2000, Philipp Rumpf wrote:
 The algorithm you posted on the list in this thread will kill
 init if on 4Mbyte machine without swap init is large 3 Mbytes
 and you execute a task that grows over 1M.

This sounds suspiciously like the description of a DEAD system ;)
   
   But wouldn't a watchdog daemon which doesn't allocate any memory
   still get run ?
  
  Indeed, it would. It would also /prevent/ the system
  from automatically rebooting itself into a usable state ;)
 
 So it's not dead in the "oh, it'll be back in 30 seconds" sense.  
 So our behaviour is broken (more so than random process
 killing).

*nod*

Not killing init when we "should" definately prevents
embedded systems from auto-rebooting when they should
do so.

(OTOH, I don't think embedded systems will run into
this OOM issue too much)

   You care about getting an automatic reboot.  So you need to be sure the
   watchdog daemon gets killed first or you panic() after some time.
  
  echo 30  /proc/sys/kernel/panic
 
 that's what I said.  we need to be sure to _get_ a panic() though.

I believe the kernel automatically panic()s when init
dies ... from kernel/exit.c::do_exit()

if (tsk-pid == 1)
panic("Attempted to kill init!");

[which will make our system auto-reboot and be back on its feet
in a healty state again soon]

regards,

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

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

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



Re: [PATCH] OOM killer API (was: [PATCH] VM fix for 2.4.0-test9 OOM handler)

2000-10-10 Thread Rik van Riel

On Tue, 10 Oct 2000, Ingo Oeser wrote:

 before you argue endlessly about the "Right OOM Killer (TM)", I
 did a small patch to allow replacing the OOM killer at runtime.
 
 So now you can stop arguing about the one and only OOM killer,
 implement it, provide it as module and get back to the important
 stuff ;-)

This is definately a cool toy for people who have doubts
that my OOM killer will do the wrong thing in their
workloads.

If anyone can demonstrate that the current OOM killer is
doing the wrong thing and has a replacement algorithm
available, please let us know ... ;)

[lets move the discussion back to a less theoretical and
more practical point of view]

regards,

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

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

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



Re: Incorrect UDMA timing on VIA vt82c596b

2000-10-10 Thread Vojtech Pavlik

On Tue, Oct 10, 2000 at 07:21:05AM -0500, Jordan wrote:

 Everything is working great!  I can access my hard drive quickly, both
 CD drives are working and I can read and write to my zip as a
 partitioned drive or as a block device for Tar archives.  Thanks for all
 of the help.

Great. Thanks for your help, too.

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



Re: [PATCH] VM fix for 2.4.0-test9 OOM handler

2000-10-10 Thread Philipp Rumpf

On Tue, Oct 10, 2000 at 12:30:51PM -0300, Rik van Riel wrote:
 Not killing init when we "should" definately prevents
 embedded systems from auto-rebooting when they should
 do so.
 
 (OTOH, I don't think embedded systems will run into
 this OOM issue too much)

but when they do, they're hard to fix.  Think about an elevator control
system with a single process that happens to implement a somewhat broken
version of the elevator algorithm ;)

  that's what I said.  we need to be sure to _get_ a panic() though.
 
 I believe the kernel automatically panic()s when init
 dies ... from kernel/exit.c::do_exit()
 
 if (tsk-pid == 1)
 panic("Attempted to kill init!");

guess who added that code.  We still kill init with SIGTERM which doesn't
seem to work though.

-
To unsubscribe from this list: send 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] OOM killer API (was: [PATCH] VM fix for 2.4.0-test9 OOM handler)

2000-10-10 Thread Ingo Oeser

On Tue, Oct 10, 2000 at 12:32:50PM -0300, Rik van Riel wrote:
  So now you can stop arguing about the one and only OOM killer,
  implement it, provide it as module and get back to the important
  stuff ;-)
 
 This is definately a cool toy for people who have doubts
 that my OOM killer will do the wrong thing in their
 workloads.

Thanks ;-)

But I forgot to include my changes to the mm/Makefile (to export
the API for modules).

Here is a _working_ one:

--- linux-2.4.0-test10-pre1/mm/oom_kill.c   Tue Oct 10 16:31:08 2000
+++ linux-2.4.0-test10-pre1-ioe/mm/oom_kill.c   Tue Oct 10 16:59:27 2000
@@ -13,6 +13,8 @@
  *  machine) this file will double as a 'coding guide' and a signpost
  *  for newbie kernel hackers. It features several pointers to major
  *  kernel subsystems and hints as to where to find out what things do.
+ *
+ *  Added oom_killer API for special needs - Ingo Oeser
  */
 
 #include linux/mm.h
@@ -136,7 +138,7 @@
 }
 
 /**
- * oom_kill - kill the "best" process when we run out of memory
+ * oom_kill_rik - kill the "best" process when we run out of memory
  *
  * If we run out of memory, we have the choice between either
  * killing a random task (bad), letting the system crash (worse)
@@ -147,7 +149,9 @@
  * CAP_SYS_RAW_IO set, send SIGTERM instead (but it's unlikely that
  * we select a process with CAP_SYS_RAW_IO set).
  */
-void oom_kill(void)
+
+
+static void oom_kill_rik(void)
 {
 
struct task_struct *p = select_bad_process();
@@ -207,4 +211,63 @@
 
/* Else... */
return 1;
+}
+
+/* Protects oom_killer against resetting during its execution */
+static rwlock_t oom_kill_lock = RW_LOCK_UNLOCKED;
+
+static oom_killer_t oom_killer = oom_kill_rik;
+
+/** 
+ * oom_kill - the oom_kill wrapper for installable OOM killers
+ *
+ * Wraper around the OOM killers, that can be installed via
+ * install_oom_killer and reset_default_oom_killer.
+ *
+ * This gets called from kswapd() in linux/mm/vmscan.c when we 
+ * really run out of memory.
+ */
+void oom_kill(void) {
+   read_lock(oom_kill_lock);
+   oom_killer();
+   read_unlock(oom_kill_lock);
+}
+
+/**
+ * install_oom_killer - install alternate OOM killer
+ * @new_oom_kill: the alternate OOM killer provided by the caller
+ *
+ * Since the default OOM killer (oom_kill_rik) is not suitable 
+ * for everyone, we provide an interface to install custom OOM killers.
+ * 
+ * You can take the most appropriate action for your application if the
+ * kernel goes OOM.
+ *
+ * Providing an NULL argument just returns the current OOM killer.
+ *
+ * Returns: The OOM killer, which has been installed so far.
+ * 
+ * NOTE: We don't do refcounting on OOM killers, so be careful with 
+ * modules
+ */
+oom_killer_t install_oom_killer(oom_killer_t new_oom_kill) {
+   oom_killer_t tmp;
+   write_lock(oom_kill_lock);
+   tmp=oom_killer;
+   if (new_oom_kill) 
+   oom_killer=new_oom_kill;
+   write_unlock(oom_kill_lock);
+   return tmp;
+}
+
+/**
+ * reset_default_oom_killer - reset back to default OOM killer
+ *
+ * If you are going to unload the module which provided 
+ * your OOM killer, you can install the default one by this.
+ *
+ * Returns: The OOM killer, which has been installed so far.
+ */
+oom_killer_t reset_default_oom_killer(void) {
+   return install_oom_killer(oom_kill_rik);
 }
--- linux-2.4.0-test10-pre1/include/linux/swap.hTue Oct 10 16:31:08 2000
+++ linux-2.4.0-test10-pre1-ioe/include/linux/swap.hTue Oct 10 16:44:22 2000
@@ -127,8 +127,14 @@
 #define read_swap_cache(entry) read_swap_cache_async(entry, 1);
 
 /* linux/mm/oom_kill.c */
+typedef void (*oom_killer_t)(void);
+
 extern int out_of_memory(void);
 extern void oom_kill(void);
+
+oom_killer_t install_oom_killer(oom_killer_t new_oom_kill);
+oom_killer_t reset_default_oom_killer(void);
+
 
 /*
  * Make these inline later once they are working properly.
--- linux-2.4.0-test10-pre1/mm/Makefile Tue Oct 10 16:31:08 2000
+++ linux-2.4.0-test10-pre1-ioe/mm/Makefile Tue Oct 10 16:34:06 2000
@@ -10,7 +10,8 @@
 O_TARGET := mm.o
 O_OBJS  := memory.o mmap.o filemap.o mprotect.o mlock.o mremap.o \
vmalloc.o slab.o bootmem.o swap.o vmscan.o page_io.o \
-   page_alloc.o swap_state.o swapfile.o numa.o oom_kill.o
+   page_alloc.o swap_state.o swapfile.o numa.o
+OX_OBJS  := oom_kill.o
 
 ifeq ($(CONFIG_HIGHMEM),y)
 O_OBJS += highmem.o

Regards

Ingo Oeser
-- 
Feel the power of the penguin - run [EMAIL PROTECTED]
esc:x
-
To unsubscribe from this list: send 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: tmscsim update for Linux 2.2.18pre15?

2000-10-10 Thread Ishikawa

Kurt Garloff wrote:

 Actually, 2.0e3 did include one rather important fix which solved the
 trouble: Some devices get upset, when the driver tries to negotiate sync
 (or wide) connections, but the device actually does not support it.
 So, the driver now waits for the first INQUIRY result and parses the
 relevant fields to determine, whether sync should be tried.

 As far as I can conclude from the reports I got since the 2.0e3 release (two
 weeks ago), it solves the remaining issues.

I believe I sent the successful report to Kurt, but just in case,
the latest tmscsim driver from the web page worked just fine.
In my case, it negotiated the sync transfer with the hard disks
successfully while it didn't with the old async CD drive.
Expected correct behavior.
This is with 2.4.0-test9.(Oh, I think when I reported to Kurt, it
was test9-prexxx, but it now works with test-9 on my PC.)

I would like to thank Kurt for continueing to maintain
the old tmscsim driver for the new kernel.

Happy Hacking,

Chiaki Ishikawa



-
To unsubscribe from this list: send 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 check_asm.c on sun4m

2000-10-10 Thread Taco IJsselmuiden

Hi,

While trying 2.4.0-test10-pre1 on my Sun4m SparcSystem600, i'm getting an
error during 'make dep' ;((
I don't know anything about assembly, so there I can't help, but here's
the output:

galaxy:/usr/src/kernel-source-2.4-0-test10-pre1# make dep
make -C arch/sparc/kernel check_asm
make[1]: Entering directory
`/usr/src/kernel-source-2.4-0-test10-pre1/arch/sparc/kernel'
gcc272 -E -D__KERNEL__ -I/usr/src/kernel-source-2.4-0-test10-pre1/include
tmp.c -o tmp.i
/bin/sh ./check_asm.sh -data task tmp.i check_asm_data.c
/bin/sh ./check_asm.sh -data mm tmp.i check_asm_data.c
/bin/sh ./check_asm.sh -data thread tmp.i check_asm_data.c
gcc272 -D__KERNEL__ -I/usr/src/kernel-source-2.4-0-test10-pre1/include
-Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -mno-fpu
-fcall-used-g5 -fcall-used-g7  -S -o check_asm_data.s check_asm_data.c
/bin/sh ./check_asm.sh -ints check_asm_data.s check_asm.c
/bin/sh ./check_asm.sh -printf task tmp.i check_asm.c
/bin/sh ./check_asm.sh -printf mm tmp.i check_asm.c
/bin/sh ./check_asm.sh -printf thread tmp.i check_asm.c
gcc272 -o check_asm check_asm.c
check_asm.c:5: parse error before `0'
make[1]: *** [check_asm] Error 1
make[1]: Leaving directory
`/usr/src/kernel-source-2.4-0-test10-pre1/arch/sparc/kernel'
make: *** [check_asm] Error 2
galaxy:/usr/src/kernel-source-2.4-0-test10-pre1# 

Anyone knows what the problem could be ??

please cc me, 'cuz i'm not on the lk list...

Greetz,
Taco.
---
"I was only 75 years old when I met her and I was still a kid"
  -- Duncan McLeod

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



RAID setup

2000-10-10 Thread Anil kumar

Hi,
 I want to setup RAID.
 I am working on kernel version 2.2.12.
 I am using RAID patches available.

 I create a RAID configuring file called 
  /etc/raidtab 

 #mkraid /dev/md0/*md0 is the device I am   
  selecting*/

 After this when I check /proc/mdstat , I find that
 /dev/md0 is not running.
 The /proc/mdstat gives message:
 device md0:inactive.

 Where am I wrong?
 should I be doing something else before  after
 mkraid?

 I am not able to post messages to linu-raid group.
 May I know what is the correct mail id for this
 group?

with regards,
  Anil

__
Do You Yahoo!?
Get Yahoo! Mail - Free email you can access from anywhere!
http://mail.yahoo.com/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: Incorrect UDMA timing on VIA vt82c596b

2000-10-10 Thread Vojtech Pavlik

On Tue, Oct 10, 2000 at 12:20:07PM -0400, Mark Hahn wrote:

  Btw, reading the ATA/ATAPI-6 specs I think UDMA66 should work on a
  setup where would be just one drive and a really short, 40-wire cable
  without problems as well. I've even seen systems shipped like that.
 
 uh, what part of the spec leads you to that conclusion?
 I've haven't seen a draft more recent than ~1h2000, but
 they've been unambiguous about absolutely requiring
 80-conductors for = ata66, and that two-connector cables
 must be 5=l=18, and three-connector cables 10=l=18.

ATA/ATAPI-6 draft rev. 0a, page 14 (sheet 28 of 404), table 2, row 4,
column 1, plus comment 4 in the same table.

And from the engineering point of view, it seems reasonable, too.

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



Re: Calling current() from interrupt context

2000-10-10 Thread Linus Torvalds

In article [EMAIL PROTECTED],
Jamie Lokier  [EMAIL PROTECTED] wrote:
Linus Torvalds wrote:
 You can also still do the stack pointer plaything by just using
 indirection: and when you context switch you switch the pointer around at
 the base of the per-cpu interrupt stack.

Indirection, à la "current = *(stack  ~8191)" might not be a bad idea
in general.  As Ralf Baechle noted, having all the task structs at the
same offset isn't good for the cache.

Well, indirection is worse. You get a cache killer there too, and added
to that your "current" lookup is just noticeably slower even without any
cache issues..

Also, there's a very simple rule of thumb that a lot of otherwise smart
people forget: hardware gets better.

In particular, direct-mapped caches basically do not exist any more in
any reasonable CPU.  Sure, the L1 is still direct-mapped on some setups,
but (a) that's going away, and (b) if the CPU is reasonable the only
reason for this is that the L1 is really close and really fast, and the
L2 is good. 

With CPU technology of today, any good CPU architect will work _hard_ at
making cache misses less likely, and there are absolutely no signs of
this changing - rather the reverse.  Which means that you should expect
caches to go from the current four-way to eigth and more (with the L1
possibly staying at direct or two-way, but with low latency for a L2
miss).

Yes, it's "expensive" in area and in cycle time, but it's less expensive
than missing more. And most work-loads of today are not well-behaved
fortran stuff, so there are no longer any excuses for cache coloring and
trying to hide bad hardware that way.

Finally, most of the uses of "current" are _not_ of the type where you
look at multiple task structures in a row.  The scheduler is in fact
pretty much the only case that this really happens in (oh, "wakeup()" can do it,
but if you have multiple processes waiting non-exclusively on a wakeup,
you have _other_ performance problems).

In the end it hasn't been much of a problem in Linux (scheduler
performance issues have tended to be _much_ more about avoiding
unnecessary scheduling and selecting the _right_ process than about
trying to avoid two cache misses). 

I'm personally convinced that anybody who would try to make "current"
lookup more complicated to get cache coloring effects is looking at a
losing proposition - you may find machines where it would win, but never
in the long run. Give it up.

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



Re: {PATCH] Re: wasting time on page fault

2000-10-10 Thread Linus Torvalds



On Tue, 10 Oct 2000, Jamie Lokier wrote:
 
 The assembler doesn't use nops for alignment -- it inserts longer
 instructions that are effectively nops, either 1 or two.  For larger
 stretches, the assembler inserts a jmp itself for alignment.

Note that some of them are not very good no-ops. At least at some point
the "long" no-op was

lea 0x(%esi),%esi

and you could cause AGI stalls and non-pairing with two of them in a row -
making the long no-op sequence potentially quite slow. The one-byte no-op
is recognized by the CPU as being a no-op (even though technically it
originally was a "xchg ax,ax" instruction decoding-wise - it doesn't
actually get executed as that in any modern CPU and thus avoids all the
dependencies implied in the traditional decode).

It may be that the special "lea" no-op is also recognized as such in newer
CPU's, but it wasn't in the early ones.

Linus

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



Re: [RFC] New ideas for the OOM handler

2000-10-10 Thread lamont

On Mon, 9 Oct 2000, Byron Stanoszek wrote:
  it also might be good to have options to kill anything connected to a pty
  first, and to not kill anything attatched to the console.  obviously these
  leave ways for admins to shoot themselves in the foot, but they could be
  useful.
 
 I _had_ thought of that, but I don't know how clear that is in the process
 structure. Malicious users can simply run setsid() to detach from a controlling
 tty, thereby defeating the rule.

Well, I wasn't thinking about killing pty-attatched processes as being
necessarily 100% effective or secure, but merely potentially useful.  
Clearly it doesn't help in the case of a malicious forkbombing user.  
Sparing console processes seems like it should be reasonably secure though
(at least as secure as your console is).

-
To unsubscribe from this list: send 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] VM fix for 2.4.0-test9 OOM handler

2000-10-10 Thread Linus Torvalds



On Tue, 10 Oct 2000, Rogier Wolff wrote:
 
 So if Netscape can "pump" 40 extra megabytes of memory out of X, this
 can be exploited. 
 
 Now we're back to the point that a heuristic can never be right all
 the time..

I agree. In fact, we never left that.

Nothing is perfect.

In fact, a lot of engineering is _recognizing_ that you can never achieve
"perfect", and you're much better off not even trying - and having a
simple system that is "good enough".

This is the old adage of "perfect is the enemy of good" - trying too hard
is actually _detrimental_ in 99% of all cases. We should have simple
heuristics that work most of the time, instead of trying to cajole a
complex system like X to help us do some complicated resource management
system.

Complexity will just result in the OOM killer failing in surprising ways.

A simple heuristic will mean that the OOM killer will still fail, but at
least it won't be be in subtle and surprising ways.

Linus

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



Re: {PATCH] Re: wasting time on page fault

2000-10-10 Thread Jamie Lokier

Linus Torvalds wrote:
  The assembler doesn't use nops for alignment -- it inserts longer
  instructions that are effectively nops, either 1 or two.  For larger
  stretches, the assembler inserts a jmp itself for alignment.
 
 Note that some of them are not very good no-ops. At least at some point
 the "long" no-op was
 
   lea 0x(%esi),%esi
 
 and you could cause AGI stalls and non-pairing with two of them in a row -
 making the long no-op sequence potentially quite slow.

When it must emit two no-ops in a row, it uses %esi and then %edi so
there's no AGI from that.  However, the assembler doesn't check
preceding instructions to pick a decent register for the no-op
instruction.  Solution: avoid writing to %esi before an alignment op.

 It may be that the special "lea" no-op is also recognized as such in newer
 CPU's, but it wasn't in the early ones.

Does Crusoe recognise that? :-)

-- 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: Interrupt/Sleep deadlock

2000-10-10 Thread Ivan Passos


On Thu, 28 Sep 2000, Ivan Passos wrote:
 
 In order to get the configuration of a board, I have to send, from
 userspace, an ioctl to the driver and wait for the board to complete its
 action. The way this is implemented is as follows:
 - In the ioctl, the driver sends a command to the board and then goes to
   sleep (interruptible_sleep_on(info-config_wait));
 - The board receives the command, handles it and answers back with an
   interrupt;
 - The driver's interrupt handler schedules a bottom-half action.
 - The bottom-half calls wake_up_interuptible(info-config_wait).
 - The ioctl returns and the userspace application has the board 
   configuration.
 
 Now, the problem: the board is so fast that it interrupts back _before_
 the driver goes to sleep, i.e.:
 - Driver sends command to board;
 - Driver goes to sl... interrupt back from board!!
 - Interrupt handler schedules bottom-half.
 - Bottom-half calls wake_up.
 - Ioctl continues, and _then_ goes to sleep. System locked.
 
 I can't disable interrupts before going to sleep, because the event that
 wakes me up is an interrupt. However, if I don't protect it from the
 interrupts, the system locks ...
 
 Is there any other way in Linux to implement this?!?!?!

This e-mail is to thank everybody who answered, and to let you know that
the solution I'm using is the one suggested by Nigel Gamble
[EMAIL PROTECTED]:

"You could use a semaphore for this.  Initialize it to 0, then call
down() from the ioctl, and up() from the interrupt handler.  If the
up() happens before the down(), the down() won't go to sleep."

Initializing it to 0 means:

cfg_sem = MUTEX_LOCKED;

It's the simplest to understand, and it works great!!

Does anybody see a problem with this implementation??

Thanks again!!

Later,
Ivan

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



Re: kernel.org verification key updated

2000-10-10 Thread Walter Hofmann

I cannot verify this signature with gpg or pgp. gpg says

gpg: invalid radix64 character 00 skipped
gpg: Signature made Tue Oct 10 08:26:46 2000 MEST using DSA key ID 2BCBC621
gpg: BAD signature from "H. Peter Anvin (hpa) [EMAIL PROTECTED]"

Walter


-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Hi everyone,

I just wanted to let everyone know that we have changed the
cryptographic key for the Linux Kernel Archives.  The reason is that
the original key was generated with an expiration date, and
unfortunately it appears that too much software out there doesn't
support changing the expiration date on an already valid key (the
ability to do that, arguably, makes the expiration date useless
anyway.)

Therefore, we have revoked key 1E1A8782 generated 1999-10-15 and
replaced it with key 517D0F0E generated 2000-10-10.  Please see
http://www.kernel.org/signature.html for more information.

The archive machine is currently in process of generating new
signature files; they should be distributed to mirrors shortly
thereafter in normal order.

-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

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.0.0 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE54ramfZ3uzivLxiERAnw7AJ4mNH5RUMz/OGtfCIY0qVNE9ETFggCeOfPo
IInpWMaytVNCW1vqWMRG+50=
=zatN
-END PGP SIGNATURE-
-
To unsubscribe from this list: send 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 + Winchip2/2A processor family == hang on boot

2000-10-10 Thread Frank de Lange

Dave,

This patch fixed the problems, for now. The system now boots OK, and seems to
run OK (have not hit it very hard yet since it currently runs without a
heatsink). Tnanks...

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: 2.4.0-test9 + Winchip2/2A processor family == hang on boot

2000-10-10 Thread James Simmons


Either you forgot to attach the patch for it was bigger than 40K.

On Tue, 10 Oct 2000, Frank de Lange wrote:

 Dave,
 
 This patch fixed the problems, for now. The system now boots OK, and seems to
 run OK (have not hit it very hard yet since it currently runs without a
 heatsink). Tnanks...
 
 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/
 

-
To unsubscribe from this list: send 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 + Winchip2/2A processor family == hang on boot

2000-10-10 Thread Frank de Lange

James,

The patch I referred to can be found in Dave's message... I gave him some
feedback on the problems with Winchips...

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: Interrupt/Sleep deadlock

2000-10-10 Thread Linus Torvalds

In article [EMAIL PROTECTED],
Ivan Passos  [EMAIL PROTECTED] wrote:

"You could use a semaphore for this.  Initialize it to 0, then call
down() from the ioctl, and up() from the interrupt handler.  If the
up() happens before the down(), the down() won't go to sleep."

Initializing it to 0 means:

   cfg_sem = MUTEX_LOCKED;

It's the simplest to understand, and it works great!!

Does anybody see a problem with this implementation??

No.

This is in fact how the SCSI layer has handled similar issues for a
_loong_ time now, so it had better work - and it does.

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/



[OT] linux article with kernel references

2000-10-10 Thread Admin Mailing Lists


http://www.osopinion.com/Opinions/MontyManley/MontyManley15.html

good article, several unfortunate truths within.

-Tony
.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-.
Anthony J. Biacco   Network Administrator/Engineer
[EMAIL PROTECTED]   Intergrafix Internet Services

"Dream as if you'll live forever, live as if you'll die today"
http://www.asteroid-b612.orghttp://www.intergrafix.net
.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-.


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



Re: BTTV/TDA card, msp34xx keeps trying to come up

2000-10-10 Thread Gerd Knorr

 bttv0: model: BT848A( *** UNKNOWN *** ) [autodetected]

How about fixing this first?  The card list knows about a few
cards where it better should'nt load the msp3400 driver...


 i2c-dev.o: Registered 'bt848 #0' as minor 0
 msp34xx: I/O error #1 (read 0x12/0x1e)
 msp34xx: I/O error #2 (read 0x12/0x1e)
 msp34xx: I/O error #3 (read 0x12/0x1e)
 msp34xx: giving up, reseting chip. Sound will go off, sorry folks :-|
[ ... ]
 msp34xx: init: chip=MSP34255?-?31, has NICAM support

Looks like some other chip sits on the msp3400 address (0x80).


 --FC65C078C8667B167104A05D
 Content-Type: text/x-vcard; charset=us-ascii;
  name="david.vcf"

Plese disable this.

  Gerd

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



OOPS REPORT: Will someone _please_ look at this? (was Re: BUG OOPS REPORT: /proc/scsi/ entries not properly cleaned up)

2000-10-10 Thread Matthew Dharm

Yet more followup with myself I can reproduce this problem on
2.4.0-test10-pre1 every time.  I'm using the ide-scsi and usb-storage
modules to trigger the bug -- loading and then unloading either one causes
/proc/scsi to not be cleaned up properly.

As yet, nobody has indicated to me that they are looking into this problem.
I've taken a few experimental pokes at it, and it seems that the SCSI layer
is, in fact, calling the procfs function to remove the entries.  At least,
I think it is -- I'm not sure if it's the right entry.

Will someone _please_ look at this?  I consider this a critical item for
2.4.0, and I hope others do too.

Matt

On Mon, Oct 02, 2000 at 06:00:53PM -0700, Matthew Dharm wrote:
 Following up yet some more with myself... is anyone actually looking at
 this stuff?  I can provide even more information if desired, but I'd really
 like to know that at least one person who understands this code is looking
 at it
 
 Anyway, I managed to get a better OOPS trace.  Here it is:
 
 ksymoops 0.7c on i586 2.4.0-test9.  Options used
  -V (default)
  -k /proc/ksyms (default)
  -l /proc/modules (default)
  -o /lib/modules/2.4.0-test9/ (default)
  -m /boot/System.map (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.
 
 Reading Oops report from the terminal
 Unable to handle kernel paging request at virtual address d38c2010
 c0145032
 *pde = 01594063
 Oops: 0002
 CPU:0
 EIP:0010:[c0145032]
 Using defaults from ksymoops -t elf32-i386 -a i386
 EFLAGS: 00010286
 eax: d38c2000   ebx: cf93f0a0   ecx: c1466fc0   edx: 0023
 esi: c6c1a360   edi: cf93f0f4   ebp: ffea   esp: c8be7ef0
 ds: 0018   es: 0018   ss: 0018
 Process ls (pid: 11563, stackpage=c8be7000)
 Stack: c7f81360 c49c17e0 c0146a9c c144b800 1190 cf93f0a0 fff4 c7f81360
c49c17e0 c49c1834 c0137083 c49c17e0 c7f81360   c8be7f68
c9f0f013 c01377c4 c7f812e0 c8be7f68  c9f0f000  c8be7fa4
 Call Trace: [c0146a9c] [c0137083] [c01377c4] [f27a545f] [c0137daa] 
[c0134a71] [c010a413]
 Code: ff 40 10 8b 43 24 80 48 14 18 66 8b 43 08 25 00 f0 ff ff 66
 
 EIP; c0145032 proc_get_inode+96/108   =
 Trace; c0146a9c proc_lookup+68/8c
 Trace; c0137083 real_lookup+4f/b8
 Trace; c01377c4 path_walk+5a0/7ec
 Trace; f27a545f END_OF_CODE+1eebbdb8/
 Trace; c0137daa __user_walk+3a/54
 Trace; c0134a71 sys_newlstat+15/70
 Trace; c010a413 system_call+33/40
 Code;  c0145032 proc_get_inode+96/108
  _EIP:
 Code;  c0145032 proc_get_inode+96/108   =
0:   ff 40 10  incl   0x10(%eax)   =
 Code;  c0145035 proc_get_inode+99/108
3:   8b 43 24  movl   0x24(%ebx),%eax
 Code;  c0145038 proc_get_inode+9c/108
6:   80 48 14 18   orb$0x18,0x14(%eax)
 Code;  c014503c proc_get_inode+a0/108
a:   66 8b 43 08   movw   0x8(%ebx),%ax
 Code;  c0145040 proc_get_inode+a4/108
e:   25 00 f0 ff ffandl   $0xf000,%eax
 Code;  c0145045 proc_get_inode+a9/108
   13:   66 00 00  addb   %al,(%eax)
 
 
 1 warning issued.  Results may not be reliable.
 
 This is under the same test scenario as before -- load ide-scsi, unload
 ide-scsi, ls /proc/scsi
 
 It's interesting to note that 'cat /proc/scsi/scsi' works just fine -- only
 getting the directory listing seems to be broken, not the actual reading of
 files.
 
 Again, this was collected on 2.4.0-test9-pre7 -- but the behavior is the
 same for 2.4.0-test9-pre9.
 
 Matt
 
 On Sun, Oct 01, 2000 at 06:32:38PM -0700, Matthew Dharm wrote:
  Just to follow-up to my own post, I have some more datapoints...
  
  The bug definatley seems to be in either the SCSI layer or the procfs
  layer.  The behavior is the same if I use either ide-scsi or usb-storage,
  which are the only two SCSI modules I can test.
  
  Matt
  
  On Fri, Sep 29, 2000 at 03:19:23PM -0700, Matthew Dharm wrote:
   I'm using 2.4.0-test9-pre7 and have a _very_ reproducable OOPS with the
   SCSI layer.  Everything relevant is compiled as a module (except for the
   /proc support).
   
   The test scenario is this:
   (1) Boot the machine
   (2) modprobe ide-scsi (note this autoloads scsi_mod but nothing else)
   (3) rmmod ide-scsi
   (4) ls /proc/scsi
   Then the OOPS happens.
   
   If, instead of step (4), I instead re-modprobe ide-scsi again, then an 'ls
   /proc/scsi/' will show (without an immediate OOPS):
   
   [root@zen mdharm]# ls /proc/scsi/
   ide-scsi/  ide-scsi/  scsi
   
   No, the double ide-scsi entry isn't a typo -- this is what ls reports as
   being there.
   
   The OOPS case is decoded 

Re: [PATCH] VM fix for 2.4.0-test9 OOM handler

2000-10-10 Thread Miles Lane

Olaf Titz wrote:
 
   Still, it would be nice to recover that 4 MB when the system
   doesn't have any memory left.
  Yup. The X server could give back the memory for some cases like the
  background without too much hackery.
 
 Then Linux only needs to implement SIGDANGER, which has been talked
 about for years...
 
 X would be a good candidate to implement a handler for it. Others are
 Emacs, Mozilla or JVMs - basically everything which has a GC of some
 sort. It could even be used to implement a configurable user mode OOM
 killer.

It would be good to talk to the KDE and Gnome folks about this as well.
I am pretty sure they have large blocks of memory that could be flushed
or freed in a low-memory or OOM condition.

Miles
-
To unsubscribe from this list: send 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: Incorrect UDMA timing on VIA vt82c596b

2000-10-10 Thread Jordan

Sorry if you get multiple copies of this--I have tried sending twice
already and have yet to see it on the kernel-list.

Jordan

Here are hdparms for all my devices--

`hdparm -i /dev/hda` IBM Deskstar 7200 RPM:
/dev/hda:

 Model=IBM-DTLA-307075, FwRev=TXAOA50C, SerialNo=YS0YSF3Z455
 Config={ HardSect NotMFM HdSw15uSec Fixed DTR10Mbs }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=40
 BuffType=3(DualPortCache), BuffSize=1916kB, MaxMultSect=16,
MultSect=off
 DblWordIO=no, OldPIO=2, DMA=yes, OldDMA=2
 CurCHS=4047/16/255, CurSects=-217054981, LBA=yes, LBAsects=150136560
 tDMA={min:120,rec:120}, DMA modes: mword0 mword1 mword2 
 IORDY=on/off, tPIO={min:240,w/IORDY:120}, PIO modes: mode3 mode4 
 UDMA modes: mode0 mode1 mode2 mode3 *mode4 mode5

`hdparm -i /dev/hdb` Iomega Zip 250 internal:
/dev/hdb:
 HDIO_GET_MULTCOUNT failed: Input/output error

 Model=IOMEGA ZIP 250 ATAPI, FwRev=51.G, SerialNo=
 Config={ SpinMotCtl Removeable nonMagnetic }
 RawCHS=0/0/0, TrkSize=0, SectSize=0, ECCbytes=0
 BuffType=0(?), BuffSize=0kB, MaxMultSect=0
 DblWordIO=no, OldPIO=2, DMA=yes, OldDMA=0
 (maybe): CurCHS=0/0/0, CurSects=0, LBA=yes, LBAsects=0
 tDMA={min:180,rec:180}, DMA modes: mword0 
 IORDY=on/off, tPIO={min:500,w/IORDY:180}, PIO modes: mode3

`hdparm -i /dev/hdc` Kenwood 72x CDROM:
/dev/hdc:
 HDIO_GET_MULTCOUNT failed: Invalid argument

 Model=KENWOOD CD-ROM UCR-421 V226G, FwRev=226, SerialNo=eSNr0 21S
:W.797*
 Config={ Fixed Removeable DTR=5Mbs DTR10Mbs nonMagnetic }
 RawCHS=0/0/0, TrkSize=0, SectSize=0, ECCbytes=0
 BuffType=0(?), BuffSize=256kB, MaxMultSect=0
 DblWordIO=no, OldPIO=2, DMA=yes, OldDMA=2
 (maybe): CurCHS=0/0/0, CurSects=0, LBA=yes, LBAsects=0
 tDMA={min:120,rec:120}, DMA modes: sword0 sword1 sword2 mword0 mword1
mword2 
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, PIO modes: mode4 
 UDMA modes: mode0 mode1 *mode2

`hdparm -i /dev/hdd` Plextor 12x10x32x CDRW:

/dev/hdd:
 HDIO_GET_MULTCOUNT failed: Input/output error

 Model=PLEXTOR CD-R PX-W1210A, FwRev=1.04, SerialNo=
 Config={ Fixed Removeable DTR=5Mbs DTR10Mbs nonMagnetic }
 RawCHS=0/0/0, TrkSize=0, SectSize=0, ECCbytes=0
 BuffType=0(?), BuffSize=0kB, MaxMultSect=0
 DblWordIO=no, OldPIO=4, DMA=yes, OldDMA=2
 (maybe): CurCHS=0/0/0, CurSects=0, LBA=yes, LBAsects=0
 tDMA={min:120,rec:120}, DMA modes: sword0 sword1 sword2 mword0 mword1
*mword2 
 IORDY=on/off, tPIO={min:180,w/IORDY:120}, PIO modes: mode3 mode4

Everything is working great!  I can access my hard drive quickly, both
CD drives are working and I can read and write to my zip as a
partitioned drive or as a block device for Tar archives.  Thanks for all
of the help.

Jordan
-
To unsubscribe from this list: send 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: Incorrect UDMA timing on VIA vt82c596b

2000-10-10 Thread Vojtech Pavlik

On Tue, Oct 10, 2000 at 01:42:51PM -0400, Mark Hahn wrote:
Btw, reading the ATA/ATAPI-6 specs I think UDMA66 should work on a
setup where would be just one drive and a really short, 40-wire cable
without problems as well. I've even seen systems shipped like that.
   
   uh, what part of the spec leads you to that conclusion?
   I've haven't seen a draft more recent than ~1h2000, but
   they've been unambiguous about absolutely requiring
   80-conductors for = ata66, and that two-connector cables
   must be 5=l=18, and three-connector cables 10=l=18.
  
  ATA/ATAPI-6 draft rev. 0a, page 14 (sheet 28 of 404), table 2, row 4,
  column 1, plus comment 4 in the same table.
 
 guess I should get a more up-to-date draft!
 
  And from the engineering point of view, it seems reasonable, too.
 
 noise/crosstalk-wise, sure.  does the new spec also permit
 a min length less than 5" between host and dev1?

The spec talks about three types of connection - "40-wire assembly",
"80-wire assembly", both being three-connector cables with the
limitations you cite. Plus it talks about a "direct point-to-point
connection" for a single device case. There isn't any minimum length
specified for that case. This may be some relict in the spec, though.

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



vgaconsole driver SMP safe fix against linux-2.4.0-test9

2000-10-10 Thread Yong Chi

My first contribution to kernel =)  Someone please look over this one
carefully =)

Thanks



--- vgacon.c.bakTue Oct 10 13:50:09 2000
+++ vgacon.cTue Oct 10 14:48:06 2000
@@ -27,6 +27,9 @@
  * flashing on RHS of screen during heavy console scrolling .
  * Oct 1996, Paul Gortmaker.
  *
+ *  Change cli()/sti() to SMP safe spin_lock_irqsave() 
+ *  /spin_unlock_irqrestore() calls, Yong Chi.
+ *  Oct-10-2000 [EMAIL PROTECTED]
  *
  *  This file is subject to the terms and conditions of the GNU General Public
  *  License.  See the file COPYING in the main directory of this archive for
@@ -50,6 +53,7 @@
 #include linux/init.h
 
 #include asm/io.h
+#include asm/spinlock.h
 
 
 #define BLANK 0x0020
@@ -122,6 +126,10 @@
 static intvga_video_font_height;
 static unsigned intvga_rolled_over = 0;
 
+/*
+ * Spinlock used for irq atomic operations
+ */
+static spinlock_t irq_lock = SPIN_LOCK_UNLOCKED;
 
 static int __init no_scroll(char *str)
 {
@@ -152,8 +160,7 @@
 * ddprintk might set the console position from interrupt
 * handlers, thus the write has to be IRQ-atomic.
 */
-   save_flags(flags);
-   cli();
+ spin_lock_irqsave(irq_lock, flags);
 
 #ifndef SLOW_VGA
v1 = reg + (val  0xff00);
@@ -166,7 +173,7 @@
outb_p(reg+1, vga_video_port_reg);
outb_p(val  0xff, vga_video_port_val);
 #endif
-   restore_flags(flags);
+   spin_unlock_irqrestore(irq_lock, flags);
 }
 
 static const char __init *vgacon_startup(void)
@@ -415,7 +422,7 @@
if ((from == lastfrom)  (to == lastto)) return;
lastfrom = from; lastto = to;
 
-   save_flags(flags); cli();
+   spin_lock_irqsave(irq_lock, flags);
outb_p(0x0a, vga_video_port_reg);   /* Cursor start */
curs = inb_p(vga_video_port_val);
outb_p(0x0b, vga_video_port_reg);   /* Cursor end */
@@ -428,7 +435,7 @@
outb_p(curs, vga_video_port_val);
outb_p(0x0b, vga_video_port_reg);   /* Cursor end */
outb_p(cure, vga_video_port_val);
-   restore_flags(flags);
+   spin_unlock_irqrestore(irq_lock, flags);
 }
 
 static void vgacon_cursor(struct vc_data *c, int mode)
@@ -531,13 +538,14 @@
 
 static void vga_vesa_blank(int mode)
 {
+   unsigned long flags;
/* save original values of VGA controller registers */
if(!vga_vesa_blanked) {
-   cli();
+   spin_lock_irqsave(irq_lock, flags);
vga_state.SeqCtrlIndex = inb_p(seq_port_reg);
vga_state.CrtCtrlIndex = inb_p(vga_video_port_reg);
vga_state.CrtMiscIO = inb_p(video_misc_rd);
-   sti();
+   spin_unlock_irqrestore(irq_lock, flags);
 
outb_p(0x00,vga_video_port_reg);/* HorizontalTotal */
vga_state.HorizontalTotal = inb_p(vga_video_port_val);
@@ -561,7 +569,7 @@
 
/* assure that video is enabled */
/* "0x20" is VIDEO_ENABLE_bit in register 01 of sequencer */
-   cli();
+   spin_lock_irqsave(irq_lock, flags);
outb_p(0x01,seq_port_reg);
outb_p(vga_state.ClockingMode | 0x20,seq_port_val);
 
@@ -598,13 +606,15 @@
/* restore both index registers */
outb_p(vga_state.SeqCtrlIndex,seq_port_reg);
outb_p(vga_state.CrtCtrlIndex,vga_video_port_reg);
-   sti();
+   spin_unlock_irqrestore(irq_lock, flags);
 }
 
 static void vga_vesa_unblank(void)
 {
+   unsigned long flags;
+
/* restore original values of VGA controller registers */
-   cli();
+   spin_lock_irqsave(irq_lock, flags);
outb_p(vga_state.CrtMiscIO,video_misc_wr);
 
outb_p(0x00,vga_video_port_reg);/* HorizontalTotal */
@@ -629,7 +639,7 @@
/* restore index/control registers */
outb_p(vga_state.SeqCtrlIndex,seq_port_reg);
outb_p(vga_state.CrtCtrlIndex,vga_video_port_reg);
-   sti();
+   spin_unlock_irqrestore(irq_lock, flags);
 }
 
 static void vga_pal_blank(void)
@@ -710,6 +720,7 @@
int beg;
unsigned short video_port_status = vga_video_port_reg + 6;
int font_select = 0x00;
+   unsigned long flags;
 
if (vga_video_type != VIDEO_TYPE_EGAM) {
charmap = (char *)VGA_MAP_MEM(colourmap);
@@ -750,7 +761,7 @@
charmap += 4*cmapsz;
 #endif
 
-   cli();
+   spin_lock_irqsave(irq_lock, flags);
outb_p( 0x00, seq_port_reg );   /* First, the sequencer */
outb_p( 0x01, seq_port_val );   /* Synchronous reset */
outb_p( 0x02, seq_port_reg );
@@ -766,7 +777,7 @@
outb_p( 0x00, gr_port_val );/* disable odd-even addressing */
outb_p( 0x06, gr_port_reg );
outb_p( 0x00, gr_port_val );/* map start at A000: */
-   sti();
+   spin_unlock_irqrestore(irq_lock, flags);

if (arg) {
if (set)
@@ -793,7 +804,7 @@
}
  

Re: [PATCH] OOM killer API (was: [PATCH] VM fix for 2.4.0-test9 OOM handler)

2000-10-10 Thread Tom Rini

On Tue, Oct 10, 2000 at 12:32:50PM -0300, Rik van Riel wrote:
 On Tue, 10 Oct 2000, Ingo Oeser wrote:
 
  before you argue endlessly about the "Right OOM Killer (TM)", I
  did a small patch to allow replacing the OOM killer at runtime.
  
  So now you can stop arguing about the one and only OOM killer,
  implement it, provide it as module and get back to the important
  stuff ;-)
 
 This is definately a cool toy for people who have doubts
 that my OOM killer will do the wrong thing in their
 workloads.

I think this can be useful for more than just a cool toy.  I think that the
main thing that this discusion has shown is no OOM killer will please 100% of
the people 100% of the time.  I think we should try and have a good generic
OOM killer that kills the right process most of the time.  People can impliment
(and submit) different-style OOM killers as needed.  Or at least get 'em on
freshmeat. :)

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



Re: kernel.org verification key updated

2000-10-10 Thread H. Peter Anvin

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

It seems that there was some mangling problems going on with the
message I sent last night, so I wanted to try to re-send it with a
proper signature this time...


Hi everyone,

I just wanted to let everyone know that we have changed the
cryptographic key for the Linux Kernel Archives.  The reason is that
the original key was generated with an expiration date, and
unfortunately it appears that too much software out there doesn't
support changing the expiration date on an already valid key (the
ability to do that, arguably, makes the expiration date useless
anyway.)

Therefore, we have revoked key 1E1A8782 generated 1999-10-15 [that
should have been 1999-10-05] and replaced it with key 517D0F0E
generated 2000-10-10.  Please see http://www.kernel.org/signature.html
for more information.

The archive machine is currently in process of generating new
signature files; they should be distributed to mirrors shortly
thereafter in normal order.

-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

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.0.3 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE542mjfZ3uzivLxiERAtyTAKDeRq72ew710rxqGnRf51pBrNgVzACcDFaF
ctVXZ3QxiYrpgtgGAdtfpeM=
=hUKH
-END PGP SIGNATURE-
-- 
[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: DProbes with LTT

2000-10-10 Thread richardj_moore



Karim,

I've been back through an initial evaluation we  did for LTT, back in May.
One of the feature we highlighted we'd like to see was an ability to
specify custom formatting templates.  Our original OS/2 trace facility
allowed the user to generate formatting templates which would specify
printf-like controls. The templates were defined per major-minor code
specification, which was used to identify uniquly a formatting type and was
recorded with the trace record in the header.

We'd like to see that functionality in LTT. Would port the code from OS/2
if LTT had a suitable formatting exit for custom events. Any thoughts on
this?

Richard


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: Updated 2.4 TODO List

2000-10-10 Thread David Hinds

On Tue, Oct 10, 2000 at 02:08:45PM -0400, [EMAIL PROTECTED] wrote:
 
 I am one of those people that uses PCMCIA on an SMP machine, I also
 use 2.4. Aside from the very occasional problem, I don't see any
 locking issues. Is it possible to just leave it as is with a warning? 

I think the configuration should still permit it; the probability of
hitting the locking issue in the ds module is vanishingly small.  The
problem of non-SMP-tested PCMCIA drivers is more serious, but I'd
really call all the 2.4 PCMCIA code "experimental" at this point.

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



2.3.99 pre2 CBQ

2000-10-10 Thread Rameshbabu Prabagaran

Hi all

Has anyone tried testing CBQ with 2.3.99 pre2 kernel. I tried to set up
CBQ on an ATM interface and was not able to notice any differentiation or
treatment to packets even when I use 'bounded' with the tc commands.

I tried to test it with a 2.2.10 kernel using ds-8 and appropriate tc,
and it works perfectly, i.e. I can see the class differentiation. 

Do I have to add some patch to the 2.3.99 pre2 kernel to make it capable
of providing appropriate treatment. I believe the 2.3.99 kernels
themselves have the inbuilt support for the same. 

I would be greatful if someone can give me some clue or pointers to the
same.

thanks,
Ramesh.

P.S : Please CC the reply to me coz I haven't subscribed to the list.

-
To unsubscribe from this list: send 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-fbdev] Re: test [PATCH] new vgacon and vga16fb Part II

2000-10-10 Thread James Simmons


 And I suggest this addition (cfr. the other fbcon-*.c since 2.4.0-test5-pre5):

Done. I have alot more big changes coming :-) 

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



Re: Updated 2.4 TODO List

2000-10-10 Thread Rik van Riel

On Mon, 9 Oct 2000 [EMAIL PROTECTED] wrote:

 2. Capable Of Corrupting Your FS/data
 
  * Non-atomic page-map operations can cause loss of dirty bit on
pages (sct, alan)

Is anybody looking into fixing this bug ?

 9. To Do
 
  * mm-rss is modified in some places without holding the
page_table_lock (sct)

Probably not a show-stopper, but we're looking for
volunteers to fix this one anyway ;)

  * VM: Out of Memory handling {CRITICAL}

Seems to work now, except for the fact that it is possible
to end up with a heavily thrashing system that /just/ didn't
run out of memory and doesn't get anything killed.

Then again, you can end up with a heavily thrashing system
where you can't get anything done without running out of swap
anyway ... the proper fix for this is probably some form of
thrashing control...

  * VM: Fix the highmem deadlock, where the swapper cannot create low
memory bounce buffers OR swap out low memory because it has
consumed all resources {CRITICAL} (old bug, already reported in
2.4.0test6)

Haven't been able to reproduce it on my 1GB test machine,
but it might still be there. Can anyone confirm if this
bug is still present ?

  * VM: page-mapping-flush() callback in page_lauder() for easier
integration with journaling filesystem and maybe the network
filesystems

Possibly a 2.5 issue, or something to merge later in 2.4,
since we don't have journaling filesystems in the kernel
anyway. I guess we'll want it for the network filesystems
though.

But this is a fairly simple thing to integrate:
1) have an appropriate function in the filesystems
2) insert function pointer in the right struct
3) call the function from vmscan.c::page_launder()

  * VM: maybe rebalance the swapper a bit... we do page aging now so
maybe refill_inactive_scan() / shm_swap() and swap_out() need to
be rebalanced a bit

I'll try to look into this (3 days to go before I have to
leave for Miami) and see how things can be improved here.

 11. To Check
 
  * VFS?VM - mmap/write deadlock (demo code seems to show lock is
there)

Does anyone have the demo code at hand so we can verify if this
still happens ?

  * Stressing the VM (IOPS SPEC SFS) with HIGHMEM turned on can hang
system (linux-2.4.0test5, Ying Chen, Rik van Riel)

Ditto. Can this still be reproduced with the latest VM or was
it simply a side effect of something else in the VM that got
fixed recently ?

(the highmem code itself looks ok so the bug might well have
been caused by a side effect of something else)

 12. Probably Post 2.4
 
  * addres_space needs a VM pressure/flush callback (Ingo)

[duplicate item?]

We may want this to better support the journaling filesystems
in 2.4  but I agree that it should probably be post 2.4.0.

  * VM: physical-virtual reverse mapping, so we can do much better
page aging with less CPU usage spikes
  * VM: better IO clustering for swap (and filesystem) IO
  * VM: move all the global VM variables, lists, etc. into the pgdat
struct for better NUMA scalability
  * VM: (maybe) some QoS things, as far as they are major improvements
with minor intrusion

These 4 seem /definate/ 2.5 issues, though I hope to have them
(except maybe QoS?) ready in an patch before 2.5.0 is split off.

  * VM: thrashing control, maybe process suspension with some forced
swapping ?
  * VM: include Ben LaHaise's code, which moves readahead to the VMA
level, this way we can do streaming swap IO, complete with
drop_behind()

These two are fairly simple and may well be done in the next
few weeks. If no bug reports about the current 2.4 VM pop up,
I'll probably look into some of the issues above...


FYI, my personal VM TODO list:
- see if refill_inactive_scan(), swapout_shm(), swap_out(), etc...
  need rebalancing
- anti-thrashing code  (if no hidden nasties are present)
- better IO clustering + readahead at VMA level

AFAIK Juan Quintela is already looking into the -flush()
callback for journaling filesystems.

And one more TODO item:

* pinned page reservation system for journaling filesystems


regards,

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

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

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



Re: [PATCH] OOM killer API (was: [PATCH] VM fix for 2.4.0-test9 OOM handler)

2000-10-10 Thread Rik van Riel

On Tue, 10 Oct 2000, Tom Rini wrote:
 On Tue, Oct 10, 2000 at 12:32:50PM -0300, Rik van Riel wrote:
  On Tue, 10 Oct 2000, Ingo Oeser wrote:
  
   before you argue endlessly about the "Right OOM Killer (TM)", I
   did a small patch to allow replacing the OOM killer at runtime.
   
   So now you can stop arguing about the one and only OOM killer,
   implement it, provide it as module and get back to the important
   stuff ;-)
  
  This is definately a cool toy for people who have doubts
  that my OOM killer will do the wrong thing in their
  workloads.
 
 I think this can be useful for more than just a cool toy.  I
 think that the main thing that this discusion has shown is no
 OOM killer will please 100% of the people 100% of the time.  I
 think we should try and have a good generic OOM killer that
 kills the right process most of the time.  People can impliment
 (and submit) different-style OOM killers as needed.

Indeed, though I suspect most of the people trying this would
fall into the trap of over-engineering their OOM killer, after
which it mostly becomes less predictable ;)

regards,

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

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

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



__bad_udelay in 2.2.18pre15

2000-10-10 Thread Marcelo Tosatti


2.2.18pre15 defines udelay as (in file include/asm-i386/delay.h) : 

...

extern void __bad_udelay(void);

...

#define udelay(n) (__builtin_constant_p(n) ? \
((n)  2 ? __bad_udelay() : __const_udelay((n) *
0x10c6ul)) : \
__udelay(n))

... 


It seems __bad_udelay is not defined anywhere in the kernel source. 


-
To unsubscribe from this list: send 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: __bad_udelay in 2.2.18pre15

2000-10-10 Thread Marcus Sundberg

Marcelo Tosatti [EMAIL PROTECTED] writes:

 2.2.18pre15 defines udelay as (in file include/asm-i386/delay.h) : 
 
 ...
 
 extern void __bad_udelay(void);
 
 ...
 
 #define udelay(n) (__builtin_constant_p(n) ? \
 ((n)  2 ? __bad_udelay() : __const_udelay((n) *
 0x10c6ul)) : \
 __udelay(n))
 
 ... 
 
 
 It seems __bad_udelay is not defined anywhere in the kernel source.

Which is the whole point - you wouldn't want to call a bad function,
would you? If you reference __bad_udelay() you are doing something
wrong and should be using mdelay() instead.

//Marcus
-- 
---+
Marcus Sundberg| http://www.stacken.kth.se/~mackan
 Royal Institute of Technology |   Phone: +46 707 452062
   Stockholm, Sweden   |   E-Mail: [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/



2.4.0test-9: IDE problems

2000-10-10 Thread Chris Evans


Hi,

Finally got around to trying out 2.4.0test9. I'm going to do some VM
performance comparisons (incidentally because VM should be a carefully
measured science not random cool idea of the day which we have seen too
much of recently).

Unfortunately, I can't start fair tests yet because UDMA3 refuses to
activate in 2.4.0test-9.

I get these messages on boot

ide0: Speed warnings UDMA 3/4/5 is not functional.
hda: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hda: dma_intr: error=0x84 { DriveStatusError BadCRC }
hda: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hda: dma_intr: error=0x84 { DriveStatusError BadCRC }
hda: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hda: dma_intr: error=0x84 { DriveStatusError BadCRC }
hda: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hda: dma_intr: error=0x84 { DriveStatusError BadCRC }
ide0: reset: success
hda: DMA disabled

Subsequently, if I run
hdparm -d1 -X67 /dev/hda

I get told
ide0: Speed warnings UDMA 3/4/5 is not functional.

And this leaves me with
/dev/hda:
 Timing buffered disk reads:  64 MB in  5.71 seconds = 11.21 MB/sec

Under the stock 2.2 RedHat 7.0 kernel, the same hdparm tuning gives me
about 17Mb/s.

Anyone got any hints? I selected the ATA option. Might this be causing the
failure?

Anyone got any hints?

Cheers
Chris

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



Re: Further info on CDR-writing problems under 2.2.16

2000-10-10 Thread Athanasius

On Mon, Aug 14, 2000 at 11:55:13PM +0100, Athanasius wrote:
I'm on 2.2.17pre13 (not the latest I know, I need to sort out
 compiling latest and a reboot), my Mitsumi CR-4804TE CD-R/RW drive seems
 to work happily enough with xcdroast to write one disk, but then goes
 into super sulk mode, even getting to the stage of not wanting to mount
 and read a normal CD (I don't think it's actively objecting to the old
 Win95 CD I used to test...).  The first time this happened a reboot
 seemed to clear it up.  I prefer not to reboot unless I have to so
 haven't again yet.

   Ok, I'm on 2.2.18pre15 now, and using mkisofs and cdrecord directly.
I'm also using 'speed=2' on the cdrecord commandline.  If it's relevant,
this is using IDE-SCSI emulation.  Now, I've just managed to write 4 CDs
in a row on one bootup fine, but the 5th one bombed out nastily (as I
was writing the first version of this email, it must have been
watching).  I'm trying again with a:

echo 1  /proc/sys/dev/cdrom/debug

Ah, it's just crapped out again, all be it twice as far in this time
(95MB in rather than 43MB).  H, those first 4 burns mostly had big
gaps inbetween (1 and 2 had quite a gap, 2 to 3 was 12 hours and more, 3
and 4 were done right after each other).  I wonder if I simply have some
overheating problem in the drive.

   Anyways, some more data to add to the pile, hopefully it helps
someone track down the culprit.

thanks,

-Ath
-- 
- Athanasius = Athanasius(at)miggy.org / http://www.miggy.org/
  Finger athan(at)fysh.org for PGP key
"Hold on. Hold on to yourself.  For this is gonna hurt like hell.  Hold on.
Hold on to yourself.  I know that only time will tell." - Sarah McLachlan
-
To unsubscribe from this list: send 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 + Winchip2/2A processor family == hang on boot

2000-10-10 Thread Frank de Lange

On Tue, Oct 10, 2000 at 06:10:48PM -0700, James Simmons wrote:
  Dave,
  
  This patch fixed the problems, for now. The system now boots OK, and seems to
  run OK (have not hit it very hard yet since it currently runs without a
  heatsink). Tnanks...
  
  Cheers//Frank

Oops... looks like I was too quick to cry success... It does NOT work, even
with the patch. I tried it again and again, and could not get it to boot. I
probably put a wrong (Pentium MMX) kernel on the flashdisk when I first tested
your patch, which led me to believe it did, indeed, work. After repeated
experiments I can only conclude thay Winchip2A is still hosed, even when
reverse-applying the patch Dave sent. I'll try to find out where it stops using
the DISPLAY_.. trick...

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: tmscsim update for Linux 2.2.18pre15?

2000-10-10 Thread Matthias Andree

On Tue, 10 Oct 2000, Kurt Garloff wrote:

 Actually, 2.0e3 did include one rather important fix which solved the

Uh. Fix? This sounds like working around very broken devices to me, or
are devices allowed to wreak havoc if sync negotiation is tried in spite
of not being advertised in inquiry data?

 I'll happily sent a patch against 2.4.0t9 and/or 2.2.18p15 to
 Linus/Alan to get an updated version included in the mainstream
 kernel.

Sounds good.

Thanks a lot!

 PGP signature


Re: 2.4.0test-9: IDE problems

2000-10-10 Thread Andre Hedrick


Basically you have drive that caught in the word93 rules change.

However, the error you got were real and the kernel did properly respeed
the drive to one step slower.  The problem above prevented you from going
from ATA66 to ATA44, thus you fell to ATA33.

You RHS 7.0 kernel does not have all the fallback and rules testing to
keep things running the very best and in the safest way.  Also you do not
have the rules for testing if the driver/host/device register and report
that all signals are valid and stable.

If you did not set TUNING option if the chipset has it specifically
flagged then you will not be able to retune the chipset/drive and the IO
will be out of sync.

At best it will reject DMA attempts, at worst this will do bad things to
data.

The stuff that 2.4 has that 2.2 does not have is following the rules and
guidelines set forth by the folks writing the rules.

Cheers,

Andre Hedrick
The Linux ATA/IDE guy


diff -urN linux-2.4.0-t10-1-pristine/drivers/ide/ide-features.c 
linux-2.4.0-t10-1.smsc/drivers/ide/ide-features.c
--- linux-2.4.0-t10-1-pristine/drivers/ide/ide-features.c   Thu Aug  3 16:07:42 
2000
+++ linux-2.4.0-t10-1.smsc/drivers/ide/ide-features.c   Tue Oct 10 00:00:38 2000
@@ -224,7 +224,8 @@
 #ifndef CONFIG_IDEDMA_IVB
if ((drive-id-hw_config  0x6000) == 0) {
 #else /* !CONFIG_IDEDMA_IVB */
-   if ((drive-id-hw_config  0x2000) == 0) {
+   if (((drive-id-hw_config  0x2000) == 0) ||
+   ((drive-id-hw_config  0x4000) == 0)) {
 #endif /* CONFIG_IDEDMA_IVB */
printk("%s: Speed warnings UDMA 3/4/5 is not functional.\n", 
drive-name);
return 1;
@@ -260,7 +261,7 @@
 #ifndef CONFIG_IDEDMA_IVB
(drive-id-hw_config  0x4000) 
 #endif /* CONFIG_IDEDMA_IVB */
-   (drive-id-hw_config  0x2000)) ? 1 : 0);
+   (drive-id-hw_config  0x6000)) ? 1 : 0);
 }
 
 /*



Re: 2.4.0test-9: IDE problems

2000-10-10 Thread Chris Evans


On Tue, 10 Oct 2000, Andre Hedrick wrote:

 Basically you have drive that caught in the word93 rules change.
 
 However, the error you got were real and the kernel did properly respeed
 the drive to one step slower.  The problem above prevented you from going
 from ATA66 to ATA44, thus you fell to ATA33.
 
 You RHS 7.0 kernel does not have all the fallback and rules testing to
 keep things running the very best and in the safest way.  Also you do not
 have the rules for testing if the driver/host/device register and report
 that all signals are valid and stable.

Yes, I had some "interesting" modifications to a lot of my /usr when I
tried to activate UDMA4 under RH7.0 (I don't believe my hardware is
capable of UDMA4!)

 If you did not set TUNING option if the chipset has it specifically
 flagged then you will not be able to retune the chipset/drive and the IO
 will be out of sync.

Shortly after my first post, I noticed and activated the Intel PIIX4
support + tuning. This got rid of the nasty errors but didn't get my
17Mb/sec.

Trying your patch now.

Cheers
Chris

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



Re: getting struct pci_dev from struct netdevice

2000-10-10 Thread Alan Cox

 Not directly, but pci_dev knows about netdevice, so you can scan the
 pci_dev's
 to find a match with the required netdevice. (Or do a similar match search
 on base_addr)

Not I suspect reliably.

-
To unsubscribe from this list: send 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: spurious 8259A interrupt?

2000-10-10 Thread Alan Cox

  Initializing CPU#0
 
 You are using a SMP kernel on a `386 UP machine. That tends to make
 these burps show up. It is harmless, though.

It says this either way

  Console: colour VGA+ 80x25
  Calibrating delay loop... 3.10 BogoMIPS
 
 This shows something I don't understand. Either the counter wrapped,
 a timer is mis-programmed, or the CPU clock speed is about 1.5 MHz.

3 bogomips is right for a 386SX

 You should look into this. Older kernels generally show the BogoMIPS
 as being about equal to the CPU clock speed +/- 20%. Newer kernels
 generally show it being about 2 times the clock speed +/- 20%. 

Only if they have a TSC

-
To unsubscribe from this list: send 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 + Winchip2/2A processor family == hang on boot

2000-10-10 Thread Alan Cox

 Ok, I've narrowed it down to the changes to mtrr.c in test8
 Looks like the Cyrix III changes broke things.
 Didn't something similar happen when these changes made it into
 a 2.2.18pre ? Alan?

2.2.18pre12 or so had a bug with Winchip but its fixed in pre15 I believe,
at least my winchip is running 2.2.18pre15

-
To unsubscribe from this list: send 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.0test-9: IDE problems

2000-10-10 Thread Andre Hedrick


Also set this option "CONFIG_IDEDMA_IVB" because you are in the
transistion period of drive manufacturing.

On Tue, 10 Oct 2000, Chris Evans wrote:

 
 On Tue, 10 Oct 2000, Andre Hedrick wrote:
 
  Basically you have drive that caught in the word93 rules change.
  
  However, the error you got were real and the kernel did properly respeed
  the drive to one step slower.  The problem above prevented you from going
  from ATA66 to ATA44, thus you fell to ATA33.
  
  You RHS 7.0 kernel does not have all the fallback and rules testing to
  keep things running the very best and in the safest way.  Also you do not
  have the rules for testing if the driver/host/device register and report
  that all signals are valid and stable.
 
 Yes, I had some "interesting" modifications to a lot of my /usr when I
 tried to activate UDMA4 under RH7.0 (I don't believe my hardware is
 capable of UDMA4!)
 
  If you did not set TUNING option if the chipset has it specifically
  flagged then you will not be able to retune the chipset/drive and the IO
  will be out of sync.
 
 Shortly after my first post, I noticed and activated the Intel PIIX4
 support + tuning. This got rid of the nasty errors but didn't get my
 17Mb/sec.
 
 Trying your patch now.
 
 Cheers
 Chris
 

Andre Hedrick
The Linux ATA/IDE guy

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



Re: [PATCH] OOM killer API (was: [PATCH] VM fix for 2.4.0-test9 OOM handler)

2000-10-10 Thread Tom Rini

On Tue, Oct 10, 2000 at 05:58:46PM -0300, Rik van Riel wrote:
 On Tue, 10 Oct 2000, Tom Rini wrote:
  On Tue, Oct 10, 2000 at 12:32:50PM -0300, Rik van Riel wrote:
   On Tue, 10 Oct 2000, Ingo Oeser wrote:
   
before you argue endlessly about the "Right OOM Killer (TM)", I
did a small patch to allow replacing the OOM killer at runtime.

So now you can stop arguing about the one and only OOM killer,
implement it, provide it as module and get back to the important
stuff ;-)
   
   This is definately a cool toy for people who have doubts
   that my OOM killer will do the wrong thing in their
   workloads.
  
  I think this can be useful for more than just a cool toy.  I
  think that the main thing that this discusion has shown is no
  OOM killer will please 100% of the people 100% of the time.  I
  think we should try and have a good generic OOM killer that
  kills the right process most of the time.  People can impliment
  (and submit) different-style OOM killers as needed.
 
 Indeed, though I suspect most of the people trying this would
 fall into the trap of over-engineering their OOM killer, after
 which it mostly becomes less predictable ;)

I was thinking more along the lines of ones w/ "safety" features that not
everyone might like/need (ie /usr/local/bin/foo is always good, those
sugjestions).  It seems like useful functionality at little/no cost.
And a neat toy for now. :)

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



Announce: modutils 2.3.18 is available

2000-10-10 Thread Keith Owens

ftp://ftp.country.kernel.org/pub/linux/utils/kernel/modutils/v2.3

patch-modutils-2.3.18.bz2   Patch from modutils 2.3.17 to 2.3.18
modutils-2.3.18.tar.bz2 Source tarball, includes RPM spec file
modutils-2.3.18-1.src.rpm   As above, in SRPM format
modutils-2.3.18-1.i386.rpm  Compiled with egcs-2.91.66, glibc 2.1.2

Changelog extract

* Correct typo in modutils.spec use of mandir.
* Ignore addressless symbols in System.map, by Ivan Kokshaysky. 
* No error on unexpected relocate sections if they are empty.
* Generate modules.isapnpmap from MODULE_DEVICE_TABLE(isapnp) and
  ISAPNP_CARD_TABLE.
* Add .rhkmvtag to prune list.
* Include filename in "not an ELF file" message.

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



Re: getting struct pci_dev from struct netdevice

2000-10-10 Thread Alan Cox

 Since struct pci_dev is probably going to morph into a more generic
 struct hw_dev, maybe struct netdevice needs a pci_dev member...

There is no guarantee there would be a meaningful pci_dev. In addition in
a hot pluggable box the pointer is useless since it will change arbitarily

-
To unsubscribe from this list: send 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: DProbes with LTT

2000-10-10 Thread Karim Yaghmour


Richard,

Definitely a good idea. Enabling the programmer to specify the format of
the custom data to be printed would be great. Having this in mind, this
is why LTT has two events to enable custom tracing, the "New event" and
the "custom event". Therefore, extending the definition of "New event"
leaves a lot of possibilities open.

Here's what I had in mind for LTT (feel free to comment on this as it
is only a design for now):
In the creation of a new event, the caller of the "create event ID"
function would provide the following information:
1) An event-type string that will mainly be used to identify this
amongst the other events. ex: an IRQ entry has a string describing
it which is "IRQ entry", it also has a string describing the event in
detail, this is the purpose of #2 below.
2) A printf-style string used to print out the formatted event string.
ex: "XYZ Driver received unknown event %d on I/O port %03X with error %C"
3) A 0-terminated table containing a structure-type which has 2 entries: 
-A data-length type (fixed or variable)
-A data-length (if fixed)
Each entry would describe each of the data types that will be used with
the printf-like string
ex using the above string: the "%d" would be the first entry with a fixed
data-length of 4 bytes, the "%03X" would be the second entry with a fixed
data-length of 4 bytes, the "%C" would be the third entry with a fixed
data-length of 2 bytes. In the case of a "%s", the data-length type would
be "variable". The last entry in the table would be filled with zeros
as to show the table's end.

As previously mentioned, the "create event ID" would return a unique
event Id for the newly created event.

With this scheme, recording a custom event would amount to providing
the existing trace function with the custom event ID and a pointer to
a buffer containing the packed data to be used with the pre-provided
string. Using the example above, the caller would pass a buffer
containing the following data packed in a single buffer:
4 bytes data for "%d", 4 bytes data for "%03X", 2 bytes for "%C", for
a total of a 10 byte-buffer. The tracing function will automatically
determine the length of the buffer since it was determined upon event ID
creation. In the case that the buffer contained a string, the first word
before the string would contain the string size so that the function would
determine the exact length of the whole buffer. That said, it must be
stressed that using strings in trace statements is expensive given the
processing cost of finding out buffer lengths and so on. Therefore,
strings should be regarded as a last resort.

Once the trace is complete, the trace visualization tool would retrieve
the custom events list and read the trace according to those descriptions.
It would then output the description strings and the details string to
signal the event's occurrence in the trace. To print out the details string,
printf or one of it's variants would be provided with the printf-like
string, provided upon event-type creation, and the data belonging to the
event traced. With the example above, this would be something like:
printf("XYZ Driver received unknown event %d on I/O port %03X with error %C",
"the 4 bytes given for %d",
"the 4 bytes given for %03X"
,
etc.);

This is figurative as the real parameters would most likely be pointers and
since the printf call would have a variable amount of parameters (as always).

The advantage of using this rather than major-minor code is that the data
formatting capabilities provided are exactly the ones most programmers are
already familiar with. Though I might have missed some limitations of this
scheme that the major-minor code scheme overcomes.

What do you think?

Karim

[EMAIL PROTECTED] wrote:
 
 Karim,
 
 I've been back through an initial evaluation we  did for LTT, back in May.
 One of the feature we highlighted we'd like to see was an ability to
 specify custom formatting templates.  Our original OS/2 trace facility
 allowed the user to generate formatting templates which would specify
 printf-like controls. The templates were defined per major-minor code
 specification, which was used to identify uniquly a formatting type and was
 recorded with the trace record in the header.
 
 We'd like to see that functionality in LTT. Would port the code from OS/2
 if LTT had a suitable formatting exit for custom events. Any thoughts on
 this?
 
 Richard
 
 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

-- 
===
 Karim Yaghmour
   [EMAIL PROTECTED]
  Operating System Consultant
 (Linux kernel, real-time and distributed systems)
===
-
To unsubscribe from 

Is 2.4.0 ready for the AMD 760 MP dual Athlon chip set?

2000-10-10 Thread Dieter Nützel

Hello,

AMD has rolled out the new AMD 760 MP dual Athlon chip set at the 2000
Microprocessor Forum.
Here are the links:

 http://www.amd.com/news/prodpr/20165.html
 http://www.amd.com/news/virtualpress/mpf/richheyepres.pdf

Someone working on support for it?

The chip set seems like the Alpha Tsunami to me.

Thanks for response.
Dieter

--
Dieter Nützel
Graduate Student, Computer Science

University of Hamburg
Department of Computer Science
Cognitive Systems Group
Vogt-Kölln-Straße 30
D-22527 Hamburg, Germany

email: [EMAIL PROTECTED]
@home: [EMAIL PROTECTED]

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



Re: Updated 2.4 TODO List

2000-10-10 Thread Alan Cox

 It is not a configuration that I currently test.  I am told it mostly
 works, though some client drivers are not SMP safe.  It is something
 that should be fixed eventually, for sure, but given the number of
 open issues with PCMCIA in 2.4, I don't think it is high on the list.
 If you want to say that PCMCIA on SMP is unsupported until someone
 carefully checks it out and fixes these things, I suppose that's fine.

If we wish to do this then we might as well be honest about the current code
and say
'power management doesnt work on SMP either'

alternatively the right thing to do is to fix both PM and the pcmcia. Most of
the PCMCIA can be fixed for 2.4 by dropping lock_kernel() around the relevant
areas. Sure its ugly but PCMCIA hot swapping is not a critical performance code
path.

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: [OT] linux article with kernel references

2000-10-10 Thread Alan Cox

 http://www.osopinion.com/Opinions/MontyManley/MontyManley15.html
 
 good article, several unfortunate truths within.

Really, must be a wrong URL you posted then 8)

The average Linux kernel hacker right now is late 20's to early 30's with
a degree and working professionally on the kernel

(Its entertaining to go over the contents of MAINTAINERS now and 2 years ago
 and see who then and now is paid to work on 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: __bad_udelay in 2.2.18pre15

2000-10-10 Thread Alan Cox

 2.2.18pre15 defines udelay as (in file include/asm-i386/delay.h) : 
 extern void __bad_udelay(void);
 
 #define udelay(n) (__builtin_constant_p(n) ? \
 ((n)  2 ? __bad_udelay() : __const_udelay((n) *
 0x10c6ul)) : \
 __udelay(n))
 
 ... 
 It seems __bad_udelay is not defined anywhere in the kernel source. 

Correct. Its a compile time error trap

-
To unsubscribe from this list: send 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.0test-9: IDE problems

2000-10-10 Thread Alan Cox

 hda: dma_intr: status=0x51 { DriveReady SeekComplete Error }
 hda: dma_intr: error=0x84 { DriveStatusError BadCRC }

Bad CRC is a cable error. That could be misconfiguration but could also be
crap cables

-
To unsubscribe from this list: send 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.0test-9: IDE problems

2000-10-10 Thread Chris Evans


On Tue, 10 Oct 2000, Andre Hedrick wrote:

 Also set this option "CONFIG_IDEDMA_IVB" because you are in the
 transistion period of drive manufacturing.

Turned that on, applied the patch. BTW, your patch seems to make the
"Speed warnings" failure _more_ likely??

Still refuses to activate UDMA3. 11.5Mb/sec vs. 17Mb/sec in 2.2. Is my
hardware trying to tell me that 2.2 shouldn't be allowing me to run with
UDMA3? It's rock solid and yes I've given it a pounding.

Cheers
Chris

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



Re: 2.4.0test-9: IDE problems

2000-10-10 Thread Alan Cox

  have the rules for testing if the driver/host/device register and report
  that all signals are valid and stable.
 
 Yes, I had some "interesting" modifications to a lot of my /usr when I
 tried to activate UDMA4 under RH7.0 (I don't believe my hardware is
 capable of UDMA4!)

The 2.2 kernel we ship doesnt have the ide patches either so Im not suprised
it got upset 8)

-
To unsubscribe from this list: send 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.0test-9: IDE problems

2000-10-10 Thread Chris Evans


On Wed, 11 Oct 2000, Alan Cox wrote:

  hda: dma_intr: status=0x51 { DriveReady SeekComplete Error }
  hda: dma_intr: error=0x84 { DriveStatusError BadCRC }
 
 Bad CRC is a cable error. That could be misconfiguration but could also be
 crap cables

It went away when I enabled PIIX4 support + PIIX4 tuning support.

Cheers
Chris

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



Re: 2.4.0test-9: IDE problems

2000-10-10 Thread Chris Evans


On Wed, 11 Oct 2000, Alan Cox wrote:

 The 2.2 kernel we ship doesnt have the ide patches either so Im not suprised
 it got upset 8)

Ah yes you're correct. I saw the patch in the kernel SRPM but didn't look
far enough to see:

...
# IDE patch provides UDMA66 support, but is known to corrupt filesystems
# on a few systems, so is not applied by default.
Patch151: linux-2.2.16-ide-2805.patch
...
# Dangerous IDE patch available but off by default
#%patch151 -p1
...

Still, with hdparm -d1 -X67, I can presumably get UDMA3 and good 2.2
speeds (17Mb/s, or 21Mb/s with rawio) without this patch.

Cheers
Chris

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



Re: 2.4.0test-9: IDE problems

2000-10-10 Thread Andre Hedrick

On Wed, 11 Oct 2000, Chris Evans wrote:

 ...
 # IDE patch provides UDMA66 support, but is known to corrupt filesystems
 # on a few systems, so is not applied by default.
 Patch151: linux-2.2.16-ide-2805.patch
 ...
 # Dangerous IDE patch available but off by default
 #%patch151 -p1
 ...

Should I send RedHat an unpatch for 2.4?

Andre Hedrick
The Linux ATA/IDE guy

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



Re: 2.4.0-test9 + Winchip2/2A processor family == hang on boot

2000-10-10 Thread Frank de Lange

OK, some more info on the hang with the Winchip2A:

it seems to hang in arch/i386/kernel/setup.c, function print_memory_map, on the
first iteration of the loop. If I target to Pentium MMX and run it on the same
(Win)chip, all's well. There's something wrong here, but it is not in that
piece of code I presume... Will continue the search from here...

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/



new 3dfx framebuffer driver released

2000-10-10 Thread Kesmarki Attila

Hi Linus,

I'm maintaining a more recent driver for 3dfx cards than that one in the 
kernel  now. 

A made my latest release as a patch for 2.4.0-test9. It can be downloaded 
from http://www.medex.hu/~danthe/tdfx. I won't attach it, because it's too 
long.  

Main changes: 
- voodoo5 support
- MIPS support
- multihead support
- support other than 8 bit width fonts
- 2.4 style device initialization (pci_driver API)
- many bugfixes and testing

Please apply.

Bye,
Attila Kesmarki
  [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]: new 3dfx framebuffer driver released

2000-10-10 Thread Kesmarki Attila


Hi,

A forgot to use the [PATCH] in the subject of my last mail, so I just send it 
again.
Sorry.

Bye,
Attila


--  Forwarded Message  --
Hi Linus,

I'm maintaining a more recent driver for 3dfx cards than that one in the
kernel  now.

A made my latest release as a patch for 2.4.0-test9. It can be downloaded
from http://www.medex.hu/~danthe/tdfx. I won't attach it, because it's too
long.

Main changes:
- voodoo5 support
- MIPS support
- multihead support
- support other than 8 bit width fonts
- 2.4 style device initialization (pci_driver API)
- many bugfixes and testing

Please apply.

Bye,
Attila Kesmarki
  [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/



2.4.0test9 vm: disappointing streaming i/o under load

2000-10-10 Thread Chris Evans


Hi,

Finally got round to checking out 2.4.0test9.

Unfortunately, 2.4.0test9 exhibits poor streaming i/o performance when
under a bit of memory pressure.

The test is this: boot with mem=32M, log onto GNOME and start xmms playing
a big .wav ripped from a CD (this requires 100-200k read i/o per second).

Then, I start then kill netscape. I then started a find / and started
gnumeric firing up at the same time.

Results
===

2.2 RH7.0: the music skipped maybe twice briefly during the test.

2.4.0test9: music stuttered repeatedly while netscape started. Worse, when
firing up gnumeric with the find / on the go, there were big pauses in
sound output. On pause was over 5 seconds!!!


So not so hot.

Could this perhaps be related to the drop_behind magic penalizing
streaming i/o pages too much? Perhaps the greater ago on the i/o pages
means that when there is a little memory pressure, they are getting thrown
out the page cache before the app (xmms) gets a chance to use them!

Might it be useful for me to try pre10-1, I note it has more "balancing
fixes".

Cheers
Chris


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



Re: [OT] linux article with kernel references

2000-10-10 Thread Roman Zippel

Hi,

On Wed, 11 Oct 2000, Alan Cox wrote:

  http://www.osopinion.com/Opinions/MontyManley/MontyManley15.html
  
  good article, several unfortunate truths within.
 
 Really, must be a wrong URL you posted then 8)
 
 The average Linux kernel hacker right now is late 20's to early 30's with
 a degree and working professionally on the kernel

The article isn't that wrong, that several people get paid now for hacking
doesn't change much. It's more about proper software engineering, some
people call it "a matter of taste" and are born with it, but for other
people it's a hard learning process.

bye, Roman

-
To unsubscribe from this list: send 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: [OT] linux article with kernel references

2000-10-10 Thread John Alvord

On Wed, 11 Oct 2000 02:06:52 +0200 (MET DST), Roman Zippel
[EMAIL PROTECTED] wrote:

Hi,

On Wed, 11 Oct 2000, Alan Cox wrote:

  http://www.osopinion.com/Opinions/MontyManley/MontyManley15.html
  
  good article, several unfortunate truths within.
 
 Really, must be a wrong URL you posted then 8)
 
 The average Linux kernel hacker right now is late 20's to early 30's with
 a degree and working professionally on the kernel

The article isn't that wrong, that several people get paid now for hacking
doesn't change much. It's more about proper software engineering, some
people call it "a matter of taste" and are born with it, but for other
people it's a hard learning process.

The opinion piece is also (probably) about non-kernel software. It is
hard to tell because he gives no examples at all. It was not
pursuasive to me. I've seen terrible code on every system from IBM
mainframes to Mac. That is not news.

john
-
To unsubscribe from this list: send 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 3dfx framebuffer driver released

2000-10-10 Thread David S. Miller

   From: Kesmarki Attila [EMAIL PROTECTED]
   Date:Wed, 11 Oct 2000 02:02:24 +0200

   A made my latest release as a patch for 2.4.0-test9. It can be
   downloaded from http://www.medex.hu/~danthe/tdfx. I won't attach
   it, because it's too long.

One bug spotted, in tdfxfb_probe():

+   info-bufbase_virt =
+   ioremap_nocache(info-bufbase_phys, info-bufbase_size);
+
+   if (!info-regbase_virt) {
+   printk("fb: Can't remap %s framebuffer.\n", name);
+   iounmap(info-regbase_virt);
+   goto err3;  
+   }

Looks like a cutpaste error, you need to check info-bufbase_virt
against NULL, not info-regbase_virt ;-)

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



Re: new 3dfx framebuffer driver released

2000-10-10 Thread David S. Miller


Another bug, fb_info_tdfx uses "unsigned long" for the "iobase"
member, which is correct, but much code casts this value to a "u32"
before using it which will break such I/O port accesses on Alpha and
Sparc64 and perhaps other 64-bit platforms.

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



Re: 2.4.0-test9 + Winchip2/2A processor family == hang on boot

2000-10-10 Thread Frank de Lange

Hi'all,

Solved the problem with Winchip not booting. It turns out they do not like the
code generated by gcc (gcc version 2.95.2 19991024 (release)) when the
-march=i686 flag is set. Changing this flag to -march=i586 makes to box boot
like it should.

I do not have a working egcs 1.1.x or gcc 2.7.2x here, but I presume they DO
produce working code, if only because the earlier compilers lacked specific
support for pentium and above. It seems the arch/i386/Makefile is incorrect in
stating that these Winchips are in fact i686 compatible, or it might be that
gcc does bad things to these processors. Anyway, included is a small patch to
solve these problems with Winchips.

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 ]


*** linux/arch/i386/Makefile.orgWed Oct 11 02:22:26 2000
--- linux/arch/i386/MakefileWed Oct 11 02:22:41 2000
***
*** 70,84 
  endif
  
  ifdef CONFIG_MWINCHIPC6
! CFLAGS += $(shell if $(CC) -march=i686 -S -o /dev/null -xc /dev/null /dev/null 
21; then echo "-march=i686"; fi)
  endif
  
  ifdef CONFIG_MWINCHIP2
! CFLAGS += $(shell if $(CC) -march=i686 -S -o /dev/null -xc /dev/null /dev/null 
21; then echo "-march=i686"; fi)
  endif
  
  ifdef CONFIG_MWINCHIP3D
! CFLAGS += $(shell if $(CC) -march=i686 -S -o /dev/null -xc /dev/null /dev/null 
21; then echo "-march=i686"; fi)
  endif
  
  HEAD := arch/i386/kernel/head.o arch/i386/kernel/init_task.o
--- 70,84 
  endif
  
  ifdef CONFIG_MWINCHIPC6
! CFLAGS += $(shell if $(CC) -march=i586 -S -o /dev/null -xc /dev/null /dev/null 
21; then echo "-march=i586"; fi)
  endif
  
  ifdef CONFIG_MWINCHIP2
! CFLAGS += $(shell if $(CC) -march=i586 -S -o /dev/null -xc /dev/null /dev/null 
21; then echo "-march=i586"; fi)
  endif
  
  ifdef CONFIG_MWINCHIP3D
! CFLAGS += $(shell if $(CC) -march=i586 -S -o /dev/null -xc /dev/null /dev/null 
21; then echo "-march=i586"; fi)
  endif
  
  HEAD := arch/i386/kernel/head.o arch/i386/kernel/init_task.o



Re: [PATCH] drivers/usb/Config.in

2000-10-10 Thread Randy Dunlap

James Simmons wrote:
  Not needed.  This is a misunderstanding.  Maybe that needs
  some work (in Help maybe), but not this patch.
 
 Yes please. It can be very misleading.
 
  Then if you select USB HID support, that builds the hid driver,
  which handles mice, keyboards, joysticks, gamepads, speaker
  buttons, any-old-kind-of buttons, toaster buttons, etc.
 
 I didn't realize USB had this level of functionality.
 
  OTOH, if you want just some basic USB mouse  keyboard support,
  you don't have to use the hid driver, you can use the HIDBP
  (HID Boot Protocol) drivers instead.  However, these drivers
  (hid and hidbp) are mutually exclusive and you shouldn't
  try to select both of them.
 
 Okay I see.

James,

Please let me know if the attached patch helps to clarify this
any (or enough).  I tried adding a line between HID and HIDBP
support options, but that didn't work out, so it's not there.

Thanks,
~Randy

--- linux/Documentation/Configure.help.org  Mon Oct  9 16:47:42 2000
+++ linux/Documentation/Configure.help  Tue Oct 10 17:22:12 2000
@@ -9982,12 +9982,13 @@
   The module will be called usb-ohci.o. If you want to compile it
   as a module, say M here and read Documentation/modules.txt.
 
-USB Human Interface Device (HID) support
+USB Human Interface Device (full HID) support
 CONFIG_USB_HID
-  Say Y here if you want to connect keyboards, mice, joysticks,
-  graphic tablets, or any other HID based devices to your
-  computer via USB. More information is available:
-  Documentation/usb/input.txt.
+  Say Y here if you want full HID support to connect keyboards,
+  mice, joysticks, graphic tablets, or any other HID based devices
+  to your computer via USB. You can't use this driver and the
+  HIDBP (Boot Protocol) keyboard and mouse drivers at the same time.
+  More information is available: Documentation/usb/input.txt.
 
   If unsure, say Y.
 
@@ -9996,11 +9997,11 @@
   The module will be called hid.o. If you want to compile it as a
   module, say M here and read Documentation/modules.txt.
 
-USB HIDBP Keyboard support
+USB HIDBP Keyboard (basic) support
 CONFIG_USB_KBD
   Say Y here if you don't want to use the generic HID driver for your
   USB keyboard and prefer to use the keyboard in its limited Boot
-  Protocol mode. This driver is much smaller than the HID one.
+  Protocol mode instead. This driver is much smaller than the HID one.
 
   This code is also available as a module ( = code which can be
   inserted in and removed from the running kernel whenever you want).
@@ -10009,11 +10010,11 @@
 
   If unsure, say N.
 
-USB HIDBP Mouse support
+USB HIDBP Mouse (basic) support
 CONFIG_USB_MOUSE
   Say Y here if you don't want to use the generic HID driver for your
   USB mouse and prefer to use the mouse in its limited Boot Protocol
-  mode. This driver is much smaller than the HID one.
+  mode instead. This driver is much smaller than the HID one.
 
   This code is also available as a module ( = code which can be
   inserted in and removed from the running kernel whenever you want).
--- linux/drivers/usb/Config.in.org Mon Sep 18 15:23:30 2000
+++ linux/drivers/usb/Config.in Tue Oct 10 17:41:44 2000
@@ -79,10 +79,10 @@
if [ "$CONFIG_INPUT" = "n" ]; then
   comment '  Input core support is needed for USB HID'
else
-  dep_tristate '  USB Human Interface Device (HID) support' CONFIG_USB_HID 
$CONFIG_USB $CONFIG_INPUT
+  dep_tristate '  USB Human Interface Device (full HID) support' CONFIG_USB_HID 
+$CONFIG_USB $CONFIG_INPUT
   if [ "$CONFIG_USB_HID" != "y" ]; then
- dep_tristate '  USB HIDBP Keyboard support' CONFIG_USB_KBD $CONFIG_USB 
$CONFIG_INPUT
- dep_tristate '  USB HIDBP Mouse support' CONFIG_USB_MOUSE $CONFIG_USB 
$CONFIG_INPUT
+ dep_tristate '  USB HIDBP Keyboard (basic) support' CONFIG_USB_KBD 
+$CONFIG_USB $CONFIG_INPUT
+ dep_tristate '  USB HIDBP Mouse (basic) support' CONFIG_USB_MOUSE 
+$CONFIG_USB $CONFIG_INPUT
   fi
   dep_tristate '  Wacom Intuos/Graphire tablet support' CONFIG_USB_WACOM 
$CONFIG_USB $CONFIG_INPUT
fi



Re: Linux 2.2.18pre15

2000-10-10 Thread Matthias Andree

On Mon, 02 Oct 2000, Alan Cox wrote:

 2.2.18pre11
 o Fix dead/clashing define for NFS(Trond Myklebust)

 2.2.18pre9
 o NFSv3 support and NFS updates   (Trond Myklebust and co)

2.2.18pre15's NFS support looks strange to me. My menuconfig screen
looks like this:

  x x   * NFS filesystem support
  x x   * NFS server support
  x x   [ ]Emulate SUN NFS server
  x x   [*]NFS Version 3

While 2.2.17 + Trond's + Dave's NFSv3 patches looks like this:

  x x   * NFS filesystem support
  x x   [*]NFS Version 3 filesystem support
  x x   * NFS server support
  x x   [*]NFS Version 3 server support (EXPERIMENTAL)

It looks as if the NFS v3 Server patches did not make it, but they make
up the part that is actually interesting for interoperability, with e.
g. Solaris. 

Frankly, I don't personally care for Linux NFS v3 client support, the
server patches are the interesting part. They get Linux rid of the
long-awaited SysV-NFS-client incompatibilities.

Did you merge Dave Higgens' NFS v3 Server patches completely? Did you
reject parts of the patches?

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



CVS for kernel

2000-10-10 Thread Keith Owens

What is the current state of the vger CVS tree?  LKML FAQ points to
ftp://vger.kernel.org/pub/linux/README.CVS which either gets connection
refused or no route to host.  The mirror at samba.org is too slow, to
the extent that even doing a sync at 6AM local time gives up part way
through.  Trying to connect to a CVS pserver at vger.kernel.org gets
connection refused.

-
To unsubscribe from this list: send 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: Segfaults using xawtv

2000-10-10 Thread Gnea


On Tue, 10 Oct 2000 12:07:15 -0300, John Coppens blurted forth:

 Hi...
  
  I _hate_ to do this, but I couldn't find (except for a reference to 
  "others who have segfaults using glibc") no reference to this problem. 
  Insmod of i2c, videodev and bttv succeed without problems or any message 
  in /var/log/debug, messages or syslog.
  
  Also, though I'm surely no expert, I tested a bit with gdb  such, and
  suspect there may be a problem that's not directly xawtv/bttv related.
  
  Any suggestions?
[snip]

You may want to, if you have Gnome installed, try out an app called
Zapping.  I had some weird problems with newer version of xawtv too (my
bad for not testing it further and sending bug reports to the xawtv
author(s), i've been pretty busy and i needed a quick fix at the time,
i'll get off my ass and do something about this soon i hope) but
zapping works really well and does a better job of syncing frames in a
larger window, it's at http://zapping.sourceforge.net (this is also a
good idea so u can see if it's xawtv that has problems, or if the
problem is kernel-level)

-- 
.oO gnea at rochester dot rr dot com Oo.
.oO url: http://garson.org/~gnea Oo.

"You can tune a filesystem, but you can't tuna fish" -unknown

-
To unsubscribe from this list: send 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: __bad_udelay in 2.2.18pre15

2000-10-10 Thread Horst von Brand

Marcelo Tosatti [EMAIL PROTECTED] said:
 2.2.18pre15 defines udelay as (in file include/asm-i386/delay.h) : 
 
 ...
 
 extern void __bad_udelay(void);
 
 ...
 
 #define udelay(n) (__builtin_constant_p(n) ? \
 ((n)  2 ? __bad_udelay() : __const_udelay((n) *
 0x10c6ul)) : \
 __udelay(n))
 
 ... 
 
 
 It seems __bad_udelay is not defined anywhere in the kernel source. 

That is precisely the idea: Flag the places where udelay() is called with a
large constant value. Just won't find out uses with large _variable_
arguments, but it is a start. Netted one in PCMCIA-CS...
-- 
Horst von Brand [EMAIL PROTECTED]
Casilla 9G, Vin~a del Mar, Chile   +56 32 672616

-
To unsubscribe from this list: send 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   >