My experience in RTLinux is two stations i586 on kernel 2.0.35 and RTL release9H.
Selfmade kernel from Slackware 3.5.
Both computers is furnished by IDE disk. And both stations are generate messages 
with "status=0xd0 { Busy }". After your letter I think that such a message I can 
easily simulate
on any RTL computer.

My RTL-driver generates POCSAG messages to pager system. So, it operates shortly 
(50-150 usec) every 1-2 msec. Data for driver are generated by application program. No 
floating point is used there.

My late experimet shows the following:

 - SCSI disk does not produce such a message. ( Message is generated by Linux driver 
ide.c );

 - There is so called "state of bad operations on IDE". 
If, after reload, driver is active but does not perform any data exchange with  
application program,  Your test routine operates normally at least some hours. But if 
there are any parallel operations on IDE and between driver and application - messages 
are start to be generated. This generation continues even if the application  
terminates.  After several dosens of messages sync usually hangs up, but everything 
else operates properlly.   
 
 - Hacking ide.c with a goal to remove the reset of IDE interface after error has no 
effect - 
   operations are executed normally, but  sync hangs up with the same probability.
   So, "Busy status" is an additional interrupt during normal IDE disk operation;

 - Once a two-week period my Linux may hang up too. 
Sometimes I can see a lot of sendmail tasks that can't be killed. After it during 
reboot command it hangs up on "Unmounting file systems" and after it nothing excluding 
the "good pinging from net" and "pressing reset botton" is possible to do. Is this the 
issue of "Busy messages + resets" or not - I don't know.

Regards, Gerasimov Victor.
 


--------- ORIGINAL MESSAGE  --------------

     To: "'RT-Linux'" <[EMAIL PROTECTED]> 
     Subject: [rtl] kernel: hda: read_intr: status=0xd0 { Busy } crashing sync. 
     From: "Steve Higgins" <[EMAIL PROTECTED]> 
     Date: Thu, 3 Jun 1999 12:26:35 +0100 

I'm experimenting with the kernel 2.0.RTL1.1 on a i486 using o/s tools from
the Red Hat 5.2 CDROM. 

(I actually downloaded the full RTL kernel source distribution rather than trying to
get the patches working).

I made progres and now have a card generating interrupts every 20ms. My RTlinux
device driver intercepts the interrupt and services it taking about 1.5 ms to do this
(worst case recorded about 3 ms).

I then thought I put some load on the main Linux system to see how stable 
the system is with my driver. 

I wrote a script which basically loops doing the following.

while 1:
        cp test.dat test2.dat
        sync
        rm test2.dat
        sync

To hammer the disk.

This started to occasionally produce the following message
kernel: hda: read_intr: status=0xd0 { Busy }.

However what is more worrying is that very occasionally the script hangs.
when I run a 'ps' command the hang always happens on a 'sync' command.
and the sync cannot be killed - even by a 'kill -9'

Has anyone any ideas as to why this is happenning? 

Does anyone have any suggestions?

In my background reading I came across someone commenting about possible
problems in using floating point instructions in interrupt routines. 

Could someone explain this in any more detail.

Regards Steve

--- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
----
For more information on Real-Time Linux see:
http://www.rtlinux.org/~rtlinux/

Reply via email to