summaryrefslogtreecommitdiffstats
path: root/sys/geom/geom_int.h
Commit message (Collapse)AuthorAgeFilesLines
* More of the event stuff can now be private to geom_event.cphk2003-04-231-11/+0
|
* Rename g_call_me() to g_post_event(), and give it a flagphk2003-04-231-1/+1
| | | | argument to determine if we can M_WAITOK in malloc.
* Remove the now unused hardcoded g_post_event() event support.phk2003-04-231-12/+0
|
* Turn EV_NEW_PROVIDER into a g_call_me() event.phk2003-04-231-1/+0
|
* Convert EV_SPOILED event to use g_call_me().phk2003-04-231-1/+0
|
* Turn the hardwired NEW_CLASS event into a g_call_me() event.phk2003-04-231-1/+0
|
* Move the shutdown eventhandler stuff to a more logical place.phk2003-04-231-0/+1
|
* Add handling for cancelled events in the g_call_me() methods.phk2003-04-021-1/+0
|
* Change events to have an array of "void *" references, and give thephk2003-04-021-9/+8
| | | | | | | | | | | event posting functions varargs to fill these. Attribute g_call_me() to appropriate g_geom's where necessary. Add a flag argument to g_call_me() methods which will be used to signal cancellation of events in the future. This commit should be a no-op.
* Remove some debugging in the new OAM[*] and add a debug flag for otherphk2003-03-311-0/+1
| | | | | | | | | parts of it. [*] I've been asked what "OAM" means: It's an acronym used in the telecom industry, "Operations And Maintenance", and there it covers anything from a single unlabeled led on the frontpanel the the full nightmare of CMIP for SS7.
* Turn /dev/geom.ctl from a GEOM class into a plain character device driverphk2003-03-241-0/+3
| | | | instead, it will never see a disk-I/O transaction, so this is a lot simpler.
* Introduce g_cancel_events() and use it a couple of places where it makesphk2003-03-231-0/+1
| | | | sense.
* Introduce an SX lock which allows us to stall event processingphk2003-03-231-0/+2
| | | | during OAM operations.
* Mitigate deadlock situation pending a more complete solution.phk2003-03-211-1/+4
|
* Retire the GEOM private statistics code and use devstat instead.phk2003-03-181-5/+0
|
* Implement a handle for efficient implementation of perforations inphk2003-02-121-4/+7
| | | | | | | | | | | | | lower extremities. Setting bit 4 in debugflags (sysctl kern.geom.debugflags=16) will allow any open to succeed on rank#1 providers. This will generally correspond to the physical disk devices: ad0, da0, md0 etc. This fundamentally violates the mechanics of GEOMs autoconfiguration, and is only provided as a debugging facility, so obviously error reports on GEOM where this bit is or has been set will not be accepted.
* Move the g_stat struct to its own .h file, we will export it to other code.phk2003-02-081-0/+5
| | | | | | | | | | | | | | | | | | Insted of embedding a struct g_stat in consumers and providers, merely include a pointer. Remove a couple of <sys/time.h> includes now unneeded. Add a special allocator for struct g_stat. This allocator will allocate entire pages and hand out g_stat functions from there. The "id" field indicates free/used status. Add "/dev/geom.stats" device driver whic exports the pages from the allocator to userland with mmap(2) in read-only mode. This mmap(2) interface should be considered a non-public interface and the functions in libgeom (not yet committed) should be used to access the statistics data.
* Move #defines of major/minor to internal header file so other bits canphk2003-02-081-1/+8
| | | | share and coordinate with geom_dev.
* Commit the correct copy of the g_stat structure.phk2003-02-071-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add debug.sizeof.g_stat sysctl. Set the id field of the g_stat when we create consumers and providers. Remove biocount from consumer, we will use the counters in the g_stat structure instead. Replace one field which will need to be atomically manipulated with two fields which will not (stat.nop and stat.nend). Change add companion field to bio_children: bio_inbed for the exact same reason. Don't output the biocount in the confdot output. Fix KASSERT in g_io_request(). Add sysctl kern.geom.collectstats defaulting to off. Collect the following raw statistics conditioned on this sysctl: for each consumer and provider { total number of operations started. total number of operations completed. time last operation completed. sum of idle-time. for each of BIO_READ, BIO_WRITE and BIO_DELETE { number of operations completed. number of bytes completed. number of ENOMEM errors. number of other errors. sum of transaction time. } } API for getting hold of these statistics data not included yet.
* Add the remaning part of the new libdisk interaction.phk2002-10-281-0/+1
| | | | | | | WARNING: This is not a published interface, it is a stopgap measure for WARNING: libdisk so we can get 5.0-R out of the door. Sponsored by: DARPA & NAI Labs
* Properly isolate the locking domains of sysctl from the topology lockphk2002-10-041-3/+3
| | | | | | for the sysctls which report the configuration. Sponsored by: DARPA & NAI Labs.
* Disable the g_sanity() check unless people ask for it in the debugflags.phk2002-09-301-0/+4
| | | | Sponsored by: DARPA & NAI Labs.
* Style, whitespace and lint fixes.phk2002-09-281-1/+0
| | | | Sponsored by: DARPA & NAI Labs.
* Implement g_call_me() as a way for geom methods to schedule operationsphk2002-09-271-0/+3
| | | | | | | | | | | | | | | | to be performed in the event-thread. To do this, we need to lock the eventlist with g_eventlock (nee g_doorlock), since g_call_me() being called from the UP/DOWN paths will not be able to aquire g_topology_lock. This also means that for now these events are not referenced on any particular consumer/provider/geom. For UP/DOWN path use, this will not become a problem since the access() function will make sure we drain any bio's before we dismantle. Sponsored by: DARPA & NAI Labs.
* s/classs/classes/ to fixup grammer after the previous global renaming.phk2002-04-041-1/+1
| | | | Sponsored by: DARPA & NAI Labs
* Eliminate some thread pointers which do not make sense anymore.phk2002-03-261-0/+87
Split private parts of geom.h into geom_int.h. The latter should never be included in class implemtations.
OpenPOWER on IntegriCloud