#
296373 |
|
04-Mar-2016 |
marius |
- Copy stable/10@296371 to releng/10.3 in preparation for 10.3-RC1 builds. - Update newvers.sh to reflect RC1. - Update __FreeBSD_version to reflect 10.3. - Update default pkg(8) configuration to use the quarterly branch.
Approved by: re (implicit) |
#
273736 |
|
27-Oct-2014 |
hselasky |
MFC r263710, r273377, r273378, r273423 and r273455:
- De-vnet hash sizes and hash masks. - Fix multiple issues related to arguments passed to SYSCTL macros.
Sponsored by: Mellanox Technologies
|
#
260385 |
|
07-Jan-2014 |
scottl |
MFC Alexander Motin's GEOM direct dispatch work:
r256603: Introduce new function devstat_end_transaction_bio_bt(), adding new argument to specify present time. Use this function to move binuptime() out of lock, substantially reducing lock congestion when slow timecounter is used.
r256606: Move g_io_deliver() out of the lock, as required for direct dispatch. Move g_destroy_bio() out too to reduce lock scope even more.
r256607: Fix passing uninitialized bio_resid argument to g_trace().
r256610: Add unmapped I/O support to GEOM RAID.
r256830: Restore BIO_UNMAPPED and BIO_TRANSIENT_MAPPING in biodonne() when unmapping temporary mapped buffer. That fixes double unmap if biodone() called twice for the same BIO (but with different done methods).
r256880: Merge GEOM direct dispatch changes from the projects/camlock branch.
When safety requirements are met, it allows to avoid passing I/O requests to GEOM g_up/g_down thread, executing them directly in the caller context. That allows to avoid CPU bottlenecks in g_up/g_down threads, plus avoid several context switches per I/O.
r259247: Fix bug introduced at r256607. We have to recalculate bp_resid here since sizes of original and completed requests may differ due to end of media.
Testing of the stable/10 merge was done by Netflix, but all of the credit goes to Alexander and iX Systems.
Submitted by: mav Sponsored by: iX Systems
|
#
256281 |
|
10-Oct-2013 |
gjb |
Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation
|
#
255860 |
|
24-Sep-2013 |
des |
Introduce a kern.geom.notaste sysctl that can be used to temporarily disable GEOM tasting to avoid the "bouncing GEOM" problem where, when you shut down the consumer of a provider which can be viewed in multiple ways (typically a mirror whose members are labeled partitions), GEOM will immediately taste that provider's alter ego and reattach the consumer.
Approved by: re (glebius)
|
#
221792 |
|
11-May-2011 |
thompsa |
Move the three geom kprocs as threads under a single pid.
Reviewed by: julian
|
#
215687 |
|
22-Nov-2010 |
jh |
Use g_eventlock to protect against losing wakeups in the g_event process and replace tsleep(9) with msleep(9) which doesn't use a timeout. The previously used timeout caused the event process to wake up ten times per second on an idle system.
one_event() is now called with the topology lock held and it returns with both the topology and event locks held when there are no more events in the queue.
Reported by: mav, Marius NĂ¼nnerich Reviewed by: freebsd-geom
|
#
181463 |
|
09-Aug-2008 |
des |
Add sbuf_new_auto as a shortcut for the very common case of creating a completely dynamic sbuf.
Obtained from: Varnish MFC after: 2 weeks
|
#
170307 |
|
05-Jun-2007 |
jeff |
Commit 14/14 of sched_lock decomposition. - Use thread_lock() rather than sched_lock for per-thread scheduling sychronization. - Use the per-process spinlock rather than the sched_lock for per-process scheduling synchronization.
Tested by: kris, current@ Tested on: i386, amd64, ULE, 4BSD, libthr, libkse, PREEMPTION, etc. Discussed with: kris, attilio, kmacy, jhb, julian, bde (small parts each)
|
#
152784 |
|
25-Nov-2005 |
le |
Add sysctl descriptions.
|
#
145259 |
|
19-Apr-2005 |
phk |
Call g_waitidle() instead of GEOM using the root_mount_hold() KPI. GEOM could (and will) get events as a result of drivers coming in late so a one-shot method is not good enough for GEOM.
|
#
145250 |
|
18-Apr-2005 |
phk |
Add a named reference-count KPI to hold off mounting of the root filesystem.
While we wait for holds to be released, print a list of who holds us back once per second.
Use the new KPI from GEOM instead of vfs_mount.c calling g_waitidle().
Use the new KPI also from ata.
With ATAmkIII's newbusification, ata could narrowly miss the window and ad0 would not exist when we tried to mount root.
|
#
141624 |
|
10-Feb-2005 |
phk |
Make various random things static
|
#
139451 |
|
30-Dec-2004 |
jhb |
Stop explicitly touching td_base_pri outside of the scheduler and simply set a thread's priority via sched_prio() when that is the desired action. The schedulers will start managing td_base_pri internally shortly.
|
#
135151 |
|
13-Sep-2004 |
pjd |
Make kern.geom.debugflags sysctl tunable from /boot/loader.conf. It will help to debug problems when booting.
Approved by: phk
|
#
125651 |
|
10-Feb-2004 |
phk |
don't call sbuf_clear() right after sbuf_new(), it is not necessary.
|
#
116522 |
|
18-Jun-2003 |
phk |
Sleep on "-" in our normal state to simplify debugging.
|
#
116196 |
|
11-Jun-2003 |
obrien |
Use __FBSDID().
Approved by: phk
|
#
114293 |
|
30-Apr-2003 |
markm |
Fix some easy, global, lint warnings. In most cases, this means making some local variables static. In a couple of cases, this means removing an unused variable.
|
#
113940 |
|
23-Apr-2003 |
phk |
Introduce a g_waitfor_event() function which posts an event and waits for it to be run (or cancelled) and use this instead of home-rolled versions.
|
#
113938 |
|
23-Apr-2003 |
phk |
More of the event stuff can now be private to geom_event.c
|
#
113937 |
|
23-Apr-2003 |
phk |
Rename g_call_me() to g_post_event(), and give it a flag argument to determine if we can M_WAITOK in malloc.
|
#
113926 |
|
23-Apr-2003 |
phk |
Move the shutdown eventhandler stuff to a more logical place.
|
#
112988 |
|
02-Apr-2003 |
phk |
Change events to have an array of "void *" references, and give the 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.
|
#
112534 |
|
24-Mar-2003 |
phk |
Turn /dev/geom.ctl from a GEOM class into a plain character device driver instead, it will never see a disk-I/O transaction, so this is a lot simpler.
|
#
112370 |
|
18-Mar-2003 |
phk |
Retire the GEOM private statistics code and use devstat instead.
|
#
110736 |
|
11-Feb-2003 |
phk |
Implement a bio-taskqueue to reduce number of context switches in disk I/O processing.
The intent is that the disk driver in its hardware interrupt routine will simply schedule the bio on the task queue with a routine to finish off whatever needs done.
The g_up thread will then schedule this routine, the likely outcome of which is a biodone() which queues the bio on g_up's regular queue where it will be picked up and processed.
Compared to the using the regular taskqueue, this saves one contextswitch.
Change our scheduling of the g_up and g_down queues to be water-tight, at the cost of breaking the userland regression test-shims.
Input and ideas from: scottl
|
#
110686 |
|
11-Feb-2003 |
phk |
Remove another printf which does not say anything we didn't already know.
|
#
110592 |
|
09-Feb-2003 |
phk |
Update the statistics collection code to track busy time instead of idle time.
Statistics now default to "on" and can be turned off with sysctl kern.geom.collectstats=0
Performance impact of statistics collection is on the order of 800 nsec per consumer/provider set on a 700MHz Athlon.
|
#
110541 |
|
08-Feb-2003 |
phk |
Move the g_stat struct to its own .h file, we will export it to other code.
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.
|
#
110523 |
|
07-Feb-2003 |
phk |
Commit the correct copy of the g_stat structure.
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.
|
#
110520 |
|
07-Feb-2003 |
phk |
Fix some sleep strings to make more sense.
|
#
108308 |
|
27-Dec-2002 |
phk |
Remove the "ascii" attribute from the sysctls so that "sysctl -a" will skip them.
|
#
108296 |
|
26-Dec-2002 |
phk |
Use a mutex assert to document our locking circumstances.
|
#
107452 |
|
01-Dec-2002 |
phk |
Fix a cut&past-o.
Spotted by: yar Approved by: re (blanket)
|
#
106101 |
|
28-Oct-2002 |
phk |
Add the remaning part of the new libdisk interaction.
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
|
#
105957 |
|
25-Oct-2002 |
phk |
Reduce the GEOM verbosity under bootverbose to something more sufferable. This is not quite the set of information I would want, but the tree where I have the "correct" version is messed up with conflicts.
Sponsored by: DARPA & NAI Labs.
|
#
105581 |
|
20-Oct-2002 |
phk |
No need to specify CTLTYPE_INT when we use SYSCTL_INT.
|
#
105358 |
|
17-Oct-2002 |
phk |
Be consistent and return the NUL at the end of kern.geom.conf{xml,dot}.
Spotted by: sam
|
#
104452 |
|
04-Oct-2002 |
phk |
Properly isolate the locking domains of sysctl from the topology lock for the sysctls which report the configuration.
Sponsored by: DARPA & NAI Labs.
|
#
104359 |
|
02-Oct-2002 |
phk |
Move GEOM's sysctls under kern.geom.
Sponsored by: DARPA & NAI Labs.
|
#
104107 |
|
28-Sep-2002 |
phk |
Zero the local-variable mutexes before we call mtx_init() on them, failing to do this may lead mtx_init() to belive they have already been initialized.
Detected by: Marc Recht <marc@informatik.uni-bremen.de>
|
#
104087 |
|
28-Sep-2002 |
phk |
Style, whitespace and lint fixes.
Sponsored by: DARPA & NAI Labs.
|
#
104063 |
|
27-Sep-2002 |
phk |
Make the UP/DOWN threads hold on to their own private mutex while doing work.
This prevents people from sleeping in the UP/DOWN I/O path by mistake or design (doing so almost invariably result in deadlocks since it stalls all I/O processing in the given direction.
Sponsored by: DARPA & NAI Labs.
|
#
104060 |
|
27-Sep-2002 |
phk |
Various no-ops:
Add a __unused.
Make the 2byte decoder functions return 16 bits for the benefits of picky lints.
No need to grab giant around a tsleep() when we have a timeout.
Sponsored by: DARPA & NAI Labs.
|
#
99028 |
|
29-Jun-2002 |
julian |
Don't use the static thread.. it is going away.
|
#
93250 |
|
26-Mar-2002 |
phk |
Eliminate some thread pointers which do not make sense anymore.
Split private parts of geom.h into geom_int.h. The latter should never be included in class implemtations.
|
#
93248 |
|
26-Mar-2002 |
phk |
Cave in to tradition and rename "methods" to "classes".
|
#
92108 |
|
11-Mar-2002 |
phk |
First commit of the GEOM subsystem to make it easier for people to test and play with this.
This is not yet production quality and should be run only on dedicated test boxes.
For people who want to develop transformations for GEOM there exist a set of shims to run geom in userland (ask phk@freebsd.org).
Reports of all kinds to: phk@freebsd.org Please include in report: dmesg sysctl debug.geomdot sysctl debug.geomconf
Known significant limitations: no kernel dump facility. ioctls severely restricted.
Sponsored by: DARPA, NAI Labs
|