| From | Sent On | Attachments |
|---|---|---|
| Alfred Perlstein | Sep 23, 1998 1:38 am | |
| Jordan K. Hubbard | Sep 23, 1998 2:29 am | |
| Alfred Perlstein | Sep 23, 1998 3:42 am | |
| Peter Wemm | Sep 23, 1998 4:24 am | |
| Jordan K. Hubbard | Sep 23, 1998 4:35 am | |
| Bruce Evans | Sep 23, 1998 5:02 pm | |
| Terry Lambert | Sep 23, 1998 6:03 pm | |
| David Holland | Sep 24, 1998 1:52 pm | |
| Archie Cobbs | Sep 24, 1998 6:20 pm | |
| Bruce Evans | Sep 25, 1998 6:37 pm | |
| Poul-Henning Kamp | Sep 25, 1998 11:31 pm | |
| Justin T. Gibbs | Sep 26, 1998 9:52 am | |
| Poul-Henning Kamp | Sep 26, 1998 10:32 am | |
| David Holland | Sep 26, 1998 7:45 pm | |
| David Holland | Sep 26, 1998 8:03 pm | |
| Poul-Henning Kamp | Sep 26, 1998 10:56 pm | |
| David Holland | Sep 26, 1998 11:59 pm | |
| Poul-Henning Kamp | Sep 27, 1998 12:21 am | |
| Greg Lehey | Sep 27, 1998 1:11 am | |
| Greg Lehey | Sep 27, 1998 1:26 am | |
| David Holland | Sep 27, 1998 1:32 am | |
| Terry Lambert | Sep 27, 1998 1:58 pm | |
| Terry Lambert | Sep 27, 1998 2:40 pm | |
| Jeremy Lea | Sep 28, 1998 7:19 am | |
| Eivind Eklund | Sep 28, 1998 9:29 am | |
| Poul-Henning Kamp | Sep 28, 1998 10:49 am | |
| Julian Elischer | Sep 28, 1998 12:24 pm | |
| Larry S. Lile | Sep 28, 1998 12:39 pm | |
| Poul-Henning Kamp | Sep 28, 1998 12:51 pm | |
| Larry S. Lile | Sep 28, 1998 1:56 pm | |
| Terry Lambert | Sep 28, 1998 4:47 pm | |
| David Holland | Sep 28, 1998 4:55 pm |
| Subject: | Re: Slice implementation (was: Current is Really Broken(tm)) | |
|---|---|---|
| From: | Terry Lambert (tlam...@primenet.com) | |
| Date: | Sep 27, 1998 2:40:05 pm | |
| List: | org.freebsd.freebsd-current | |
I can't see anything in this discussion which requires process context.
The I/O's to the disk to probe the SLICE driver format, and the allocation of a device descriptor for enqueueing the device arrival event for physical devices, which "arrive" by driver probe returning "true".
There is the need for, minimally, a kernel thread to field and process physical media arrival events.
I considered these options when writing Vinum, which is hairier than I want it to be. I decided against both of these alternatives, and for a third one: put it in an LKM. It's not going to work completely, because I need process context for I/O error recovery, but that's about the only thing.
If you need help on starting a kernel thread (process) in an LKM, I can give you info. The easiest thing to do is to look at the code in /sys/kern/init_main.c and see how the swapper, pagedaemon, vmdaemon, and update (or syncd) are started.
Tandem solved this problem decades ago: when you open a file, you specify an exclusion parameter, which can be "shared" (no exclusion), "protected" (anybody can read, only I can write), or "exclusive" (nobody else can access). There's also a parameter which specifies to wait until the file is available for access in the desired mode. This works very well. Applying the solution to UNIX is less a question of the implementation than of implementing it in a backwards-compatible manner.
O_EXLOCK, O_SHLOCK 8-).
But I would prefer to enforce a procedural interface instead of a data interface (i.e., use an ioctl() to manipulate the SLICE objects, instead of expecting the SLICE code to notice Joe Schmuck User writing disklabels on defenseless devices).
Terry Lambert ter...@lambert.org
--- Any opinions in this posting are my own and not those of my present or previous employers.
To Unsubscribe: send mail to majo...@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message





