| From | Sent On | Attachments |
|---|---|---|
| Warner Losh | Oct 23, 1999 11:08 pm | |
| Wes Peters | Oct 24, 1999 12:06 am | |
| Matthew Jacob | Oct 24, 1999 8:25 pm | |
| Nate Williams | Oct 25, 1999 9:46 am | |
| Warner Losh | Oct 25, 1999 11:22 am | |
| Nate Williams | Oct 25, 1999 11:27 am | |
| Warner Losh | Oct 25, 1999 11:40 am | |
| Warner Losh | Oct 25, 1999 11:50 am | |
| Matthew Jacob | Oct 25, 1999 11:52 am | |
| Nate Williams | Oct 25, 1999 11:57 am | |
| Nate Williams | Oct 25, 1999 12:02 pm | |
| Matthew Jacob | Oct 25, 1999 12:12 pm | |
| Nate Williams | Oct 25, 1999 12:14 pm | |
| Matthew Jacob | Oct 25, 1999 12:15 pm | |
| Nate Williams | Oct 25, 1999 12:20 pm | |
| Matthew Jacob | Oct 25, 1999 12:35 pm | |
| Warner Losh | Oct 25, 1999 12:46 pm | |
| Matthew Jacob | Oct 25, 1999 12:49 pm | |
| Terry Lambert | Oct 25, 1999 5:55 pm | |
| Terry Lambert | Oct 25, 1999 6:03 pm | |
| Nate Williams | Oct 25, 1999 6:04 pm | |
| Terry Lambert | Oct 25, 1999 6:09 pm | |
| Terry Lambert | Oct 25, 1999 6:12 pm | |
| Terry Lambert | Oct 25, 1999 7:20 pm | |
| Nate Williams | Oct 25, 1999 8:55 pm | |
| Wes Peters | Oct 25, 1999 9:54 pm | |
| Randell Jesup | Oct 26, 1999 4:13 am | |
| Nate Williams | Oct 26, 1999 8:24 am | |
| Randell Jesup | Oct 26, 1999 8:37 am | |
| Bill Fumerola | Oct 26, 1999 9:06 am | |
| Wes Peters | Oct 26, 1999 11:27 am | |
| Nate Williams | Oct 26, 1999 1:07 pm | |
| Wes Peters | Oct 26, 1999 1:08 pm | |
| Terry Lambert | Oct 26, 1999 6:40 pm | |
| Terry Lambert | Oct 26, 1999 6:48 pm | |
| Nate Williams | Oct 26, 1999 7:01 pm | |
| Nate Williams | Oct 26, 1999 7:03 pm | |
| Warner Losh | Oct 26, 1999 7:58 pm | |
| Christopher Masto | Oct 27, 1999 1:04 am | |
| Daniel O'Connor | Oct 27, 1999 1:11 am | |
| Warner Losh | Oct 27, 1999 9:27 am | |
| Nate Williams | Oct 27, 1999 10:03 am | |
| Warner Losh | Oct 27, 1999 10:11 am | |
| Wes Peters | Oct 27, 1999 10:16 am | |
| Nate Williams | Oct 27, 1999 10:17 am | |
| Warner Losh | Oct 27, 1999 10:20 am | |
| Nate Williams | Oct 27, 1999 10:32 am | |
| Warner Losh | Oct 27, 1999 10:39 am | |
| Wes Peters | Oct 27, 1999 10:48 am | |
| Christopher Masto | Oct 27, 1999 11:34 am | |
| Warner Losh | Oct 27, 1999 11:57 am | |
| Daniel O'Connor | Oct 27, 1999 5:33 pm | |
| Warner Losh | Oct 27, 1999 8:35 pm | |
| Daniel O'Connor | Oct 27, 1999 8:38 pm | |
| Wes Peters | Oct 28, 1999 1:23 pm | |
| Terry Lambert | Oct 29, 1999 9:56 am | |
| Nate Williams | Oct 29, 1999 11:51 am | |
| Terry Lambert | Oct 30, 1999 2:23 pm | |
| Terry Lambert | Oct 30, 1999 2:26 pm | |
| Nate Williams | Oct 30, 1999 3:09 pm | |
| Wes Peters | Oct 30, 1999 5:04 pm | |
| Warner Losh | Oct 30, 1999 10:31 pm | |
| Terry Lambert | Nov 1, 1999 12:11 pm | |
| Warner Losh | Nov 1, 1999 2:35 pm |
| Subject: | Re: Racing interrupts | |
|---|---|---|
| From: | Nate Williams (na...@mt.sri.com) | |
| Date: | Oct 25, 1999 11:57:02 am | |
| List: | org.freebsd.freebsd-arch | |
: Possibly, but the races still exist, and you can still get in a position : where the hardware is gone. (I've verified this, having done alot of : the work in the old pccard on suspend/resume.)
OK. So there is a small window there, but nothing that can be counted upon. One must therefore assume that the hardware is gone when the interrupt comes in...
Agreed. Sean also brought up the fact that it was necessary for Stratus to do this in the case of 'failed' hardware, which is a big deal not to hang your kernel when you're advertising yourself as fault-tolerant. :)
: It's certainly not impossible, but it does make the drivers that much : more complex. And, (not to disagree with Sean), I don't see how you : fix all the problems, simply because at some point you must assume the : hardware exists, and if it disappears in the middle of an operation : without any way of knowing that it's gone, how can you recover from it?
Yes. W/o explicit checks for 'am I gone' it is very hard, and where do you make them, and there is still a tiny race between the checking for am I gone and the touching of hardware. These races can be made so small as to be hard to lose.
The 'am I gone' race is a big one (IMO), and instead of trying to minimize that race (which I don't think we can minimize much at all), I think the solution (which is much more complex) is to re-write the device drivers to never do busy-wait loops, never-ending timeouts, etc...
Unfortunately, this may require changes to some basic FreeBSD assumptions (timeouts in particular). Do tsleep/wakeup provide for a 'default' timeout and notification?
That's one reason I think that having some way to terminate the current thread of execution at any instruction with a simple callback saying, "I killed your driver thread, cope with the loss of hardware" is about as good as we're going to get.
This requiers changes to all drivers to not expect that a piece of hardware exists. And, if the thread is never given the indication that the hardware is gone (think fast interrupts), it still must deal with the fact that the hardware *may* be gone.
It would also have a nice side-effect of making FreeBSD much more tolerant of failing hardware, although I'm not sure we would need to go the the lengths that a company like Stratus does. They don't have to support the wide variety of hardware that FreeBSD does.
: When someone removes the bridge away from you while you're walking : across the chasm, how can you be expected to 'recover' from it? ;)
By hanging onto the bridge :-) Or registering a SIGBRIDGE handler and hoping that the 'chute deploys in time :-).
That implies that you are informed that the bridge is gone, instead of finding out about it from striking the ground w/out a net. :(
Nate
To Unsubscribe: send mail to majo...@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message





