| 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: | Wes Peters (we...@softweyr.com) | |
| Date: | Oct 26, 1999 1:08:07 pm | |
| List: | org.freebsd.freebsd-arch | |
Bill Fumerola wrote:
On Mon, 25 Oct 1999, Nate Williams wrote:
The system will not crash as a result of this.
Not true, it will hang the system. I can show this if more proof is needed on my laptop. There is no software solution that will avoid all problems.
Then you have borked drivers or some other bogon. I can cleanly do all of the things Terry says without problem. This alone means it is not only possible, but there exists a method to do it properly.
Try this: hang a disk drive off a SlimSCSI and start something I/O intensive on the drive, like a disk benchmark write test. Now pop the SCSI card out during the I/O.
I'm trying not to add noise because I have no idea of the technical workings behind pccard ejection, but lets certainly not discount it just because on someone's laptop it doesn't work.
First you should know PCMCIA was designed with memory cards in mind.
The ejection mechanism tells you the card is going away by providing an interrupt. It's the same interrupt that all other notifications from the card use. It does this by having a short pin on the connector; when the short pin becomes detached the PCMCIA Controller in your system generates the interrupt. You have some small amount of time before the rest of the pins become detached in which you can still communicate with the card, but this time is not fixed, it will depend on the card, the ejector, and on how hard the user pushes the ejector button.
If you've just begun to process another interrupt from the card, such as I/O ready or I/O complete, you won't be able to process the ejection interrupt until your current interrupt completes, but what happens if the card goes away before your current interrupt completes? Then you're attempting to read and write I/O ports and/or memory locations that no longer exist, but you don't know they no longer exist.
The "right" thing to do would be for the hardware controller to generate a bus error if you try to write registers or memory addresses for a card that has gone away, but it doesn't.
You're also left with questions about what to do with outstanding I/O requests when the device goes away, and how to handle the open references to the device.
None of the design is simple, and it is complicated by the fact that PCMCIA wasn't developed for I/O devices. If you want to jump in and help, I'm sure everyone involved would welcome the help. Buy the PCMCIA and CardBus architecture books, familiarize yourself with the code, and ponder how to handle these and other stick issues as cleanly as possible. Submit working patches, ask intelligent questions, and give intelligent answers. You know, kind of like working on FreeBSD. ;^)
-- "Where am I, and what am I doing in this handbasket?"
Wes Peters Softweyr LLC we...@softweyr.com http://softweyr.com/
To Unsubscribe: send mail to majo...@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message





