summaryrefslogtreecommitdiffstats
path: root/sys/geom/raid3
Commit message (Collapse)AuthorAgeFilesLines
* Allow to insert new component to geom_raid3 without specifying number.mav2013-01-151-16/+29
| | | | | PR: kern/160562 MFC after: 2 weeks
* Alike to r242314 for GRAID make GRAID3 more aggressive in marking volumesmav2013-01-151-9/+12
| | | | | | | | | | | as clean on shutdown and move that action from shutdown_pre_sync stage to shutdown_post_sync to avoid extra flapping. ZFS tends to not close devices on shutdown, that doesn't allow GEOM RAID to shutdown gracefully. To handle that, mark volume as clean just when shutdown time comes and there are no active writes. MFC after: 2 weeks
* When synchronizing, include in the config dump amount ofglebius2012-09-111-0/+5
| | | | | | | | | | | | | | | bytes syncronized. The rationale behind this is the following: for large disks the percent synchronisation counter ticks too seldom, and monitoring software (as well as human operator) can't tell whether synchronisation goes on or one of disks got stuck. On an idle server one can look into gstat and see whether synchronisation goes on or not, but on a busy server that won't work. Also, new value monitored can be differentiated obtaining the synchronisation speed quite precisely. Submitted by: Konstantin Kukushkin <dark ramtel.ru> Reviewed by: pjd
* Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs.ed2011-11-071-2/+3
| | | | | | The SYSCTL_NODE macro defines a list that stores all child-elements of that node. If there's no SYSCTL_DECL macro anywhere else, there's no reason why it shouldn't be static.
* Include sys/sbuf.h directly.ae2011-07-111-0/+1
| | | | Reviewed by: pjd
* Implement relaxed comparision for hardcoded provider names to make itmav2011-04-271-1/+2
| | | | | ignore adX/adaY difference in both directions to simplify migration to the CAM-based ATA or back.
* Add some FEATURE macros for various GEOM classes.netchild2011-02-251-0/+1
| | | | | | | | | | | No FreeBSD version bump, the userland application to query the features will be committed last and can serve as an indication of the availablility if needed. Sponsored by: Google Summer of Code 2010 Submitted by: kibab Reviewed by: silence on geom@ during 2 weeks X-MFC after: to be determined in last commit with code from this project
* Sector size can not be greater than MAXPHYS. Since GRAID3 calculatesae2011-01-121-0/+4
| | | | | | | | sector size from user-specified block size, report to user about big blocksize. PR: kern/147851 MFC after: 1 week
* Move wakeup() out of mutex to reduce contention.mav2010-01-051-3/+3
|
* Slightly optimize XOR calculation.mav2010-01-051-24/+31
|
* As soon as geom_raid3 reports it's own stripe as sector size, report largestmav2009-12-241-0/+14
| | | | | underlying provider's stripe, multiplied by number of data disks in array, due to transformation done, as array stripe.
* Make graid3 fallback to malloc() when component request size is biggermav2009-12-212-9/+15
| | | | then maximal prepared UMA zone size. This fixes crash with MAXPHYS > 128K.
* Revert r190676,190677thompsa2009-04-101-1/+1
| | | | | | | The geom and CAM changes for root_hold are the wrong solution for USB design quirks. Requested by: scottl
* Add a how argument to root_mount_hold() so it can be passed NOWAIT and be calledthompsa2009-04-031-1/+1
| | | | in situations where sleeping isnt allowed.
* Rename the kthread_xxx (e.g. kthread_create()) callsjulian2007-10-201-3/+3
| | | | | | | | | | | to kproc_xxx as they actually make whole processes. Thos makes way for us to add REAL kthread_create() and friends that actually make theads. it turns out that most of these calls actually end up being moved back to the thread version when it's added. but we need to make this cosmetic change first. I'd LOVE to do this rename in 7.0 so that we can eventually MFC the new kthread_xxx() calls.
* Commit 14/14 of sched_lock decomposition.jeff2007-06-051-2/+2
| | | | | | | | | | | - 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)
* Now, that we have gjournal in the tree add possibility to configurepjd2006-11-013-8/+49
| | | | | | gmirror and graid3 in a way that it is not resynchronized after a power failure or system crash. It is safe when gjournal is running on top of gmirror/graid3.
* Change spaces to tabs where needed.pjd2006-11-012-24/+24
|
* Implement BIO_FLUSH handling by simply passing it down to the components.pjd2006-10-311-0/+47
| | | | Sponsored by: home.pl
* Guard against invalid metadata.pjd2006-10-101-0/+6
| | | | MFC after: 1 week
* One more white space fix.pjd2006-09-301-1/+1
|
* Remove trailing spaces.pjd2006-09-301-16/+16
|
* Small fixes after adding __printflike() to gctl_error().pjd2006-09-161-4/+4
| | | | | Approved by: phk MFC after: 3 days
* Fix synchronization in gmirror and graid3 which I broken. Synchronizationpjd2006-09-131-2/+5
| | | | | | | | request can still have bio_to set to sc_provider (this is READ part of a synchronization request) and in this case g_{mirror,raid3}_sync() wasn't called as it should be. MFC after: 1 week
* move created/detected/activated under debug level 1 to quiet the common case..jmg2006-09-091-5/+7
| | | | | | | | | | add count of active and total components to the launched line so you can see at a glance if your mirror/raid3 is complete... now: GEOM_MIRROR: Device mirror/sam launched (2/2). Reviewed by: pjd
* Not only a request from us can be passed to g_{mirror,raid3}_worker()pjd2006-08-091-5/+11
| | | | | | | function, but also a request to us, in which case checking bio_cflags is wrong, because the class above us is controling it, not we. MFC after: 1 week
* Commit the results of the typo hunt by Darren Pilgrim.yar2006-08-041-1/+1
| | | | | | | | | | This change affects documentation and comments only, no real code involved. PR: misc/101245 Submitted by: Darren Pilgrim <darren pilgrim bitfreak org> Tested by: md5(1) MFC after: 1 week
* Don't use f-word in comments. We are gentlemans.pjd2006-08-011-1/+1
| | | | Pointed out by: Maciej Sobczak
* Always allow to specify components with /dev/ prefix.pjd2006-07-131-0/+4
| | | | MFC after: 3 days
* Use proper defines instead of magic values.pjd2006-07-101-2/+2
| | | | MFC after: 1 week
* When kern.geom.raid3.use_malloc tunnable is set to 1, malloc(9) instead ofpjd2006-07-091-43/+88
| | | | | | | | uma(9) will be used for memory allocation. In case of problems or tracking bugs, there are more useful tools for malloc(9) debugging than for uma(9) debugging, like memguard(9) and redzone(9). MFC after: 1 week
* Remove bogus assertion.pjd2006-07-071-1/+0
| | | | | Reported by: Bradley W. Dutton <brad-fbsd-stable@duttonbros.com> MFC after: 3 days
* Allow to close access even if device is already destroyed.pjd2006-07-031-3/+5
| | | | | | Reported by: Ulrich Spoerlein <uspoerlein@gmail.com> PR: kern/98093 MFC after: 1 week
* Use G_RAID3_FOREACH_SAFE_BIO() macro instead of G_RAID3_FOREACH_BIO() inpjd2006-05-041-6/+4
| | | | | | | | | two places where g_io_request() is called. g_io_request() can free bio structure so we can't reference it after and G_RAID3_FOREACH_BIO() macro was doing this. Found by: Coverity Prevent analysis tool (with my new models) MFC after: 1 day
* We shouldn't lock the topology here - we will panic on assertion insidepjd2006-04-301-2/+0
| | | | | | | g_raid3_bump_syncid(). Reported by: Bradley W. Dutton <brad-fbsd-stable@duttonbros.com> MFC after: 1 day
* - Don't hold the device sx lock when going to sleep.pjd2006-04-281-6/+23
| | | | | | | | - Prevent possible live-lock in case of memory problems by freeing already completed requests first. Reported and tested by: markus, Bradley W. Dutton <brad-fbsd-stable@duttonbros.com> MFC after: 1 day
* - Remove dead code.pjd2006-04-281-9/+9
| | | | | | | - Comment possible event miss, which isn't critical, but probably can be fixed by replacing the event lock usage with the queue lock. MFC after: 2 weeks
* Be sure to not destroy device twice. This is not possible in theory, butpjd2006-04-281-2/+13
| | | | | | with this change there is even no theoretical race. MFC after: 2 weeks
* Fix storing offset of already synchronized data. Offset in entire array waspjd2006-04-181-3/+5
| | | | | | | | | | | | | stored in metadata instead of an offset in single disk. After reboot/crash synchronization process started from a wrong offset skipping (not synchronizing) part of the component which can lead to data corrutpion (when synchronization process was interrupted on initial synchronization) or other strange situations like 'graid3 status' showing value more than 100%. Reported, reviewed and tested by: ru Reported by: Dmitry Morozovsky <marck@rinet.ru> MFC after: 1 day
* Introduce and use delayed-destruction functionality from a pre-sync hook,pjd2006-04-103-55/+82
| | | | | | | | | | which means that devices will be destroyed on last close. This fixes destruction order problems when, eg. RAID3 array is build on top of RAID1 arrays. Requested, reviewed and tested by: ru MFC after: 2 weeks
* Preserve previous behaviour of kern.geom.raid3.n{64,16,4}k tunables were 0pjd2006-03-281-1/+1
| | | | | | | means unlimited. Reported by: ru MFC after: 3 days
* Increase debug level for "Thread exiting." message. It's not that importantpjd2006-03-251-1/+1
| | | | | | and is 0 by accident. MFC after: 3 days
* Update copyright for 2006.pjd2006-03-192-2/+2
|
* kern.geom.raid3.sync_requests=2 seems to be a better default - it stillpjd2006-03-191-3/+3
| | | | | | keeps disks very busy, but makes system much more responsive. While here, kill extra space.
* Fix build on 64-bit platforms.ru2006-03-131-2/+2
|
* - Reimplement I/O data allocation to prevent deadlocks.pjd2006-03-133-352/+672
| | | | | | | | | | | | | | | | | | | Submitted by: green - Speed up synchronization process by using configurable number of I/O requests in parallel. + Add kern.geom.raid3.sync_requests tunable which defines how many parallel I/O requests should be used. + Retire kern.geom.raid3.reqs_per_sync and kern.geom.raid3.syncs_per_sec sysctls. - Fix race between regular and synchronization requests. - Reimplement raid3's data synchronization - do not use the topology lock for this purpose, as it may case deadlocks. - Stop synchronization from pre-sync hook. - Fix some other minor issues. Tested by: Mike Tancsa <mike@sentex.net> MFC after: 3 days
* When inserting a new component md_provsize metadata field wasn't set, whichpjd2006-03-101-0/+1
| | | | | | | | means that old problem was triggered (when two providers end at the same offset, eg. ad0 and ad0s1 and the wrong was is picked up by gmirror/graid3). Reported by: Michal Suszko <dry@dry.pl> MFC after: 3 days
* Do not use bio structure after g_io_deliver(), it may not longer by valid.pjd2006-02-221-1/+1
| | | | | Found and fixed by: Vsevolod Lobko <seva@ip.net.ua> MFC after: 3 days
* On component state change to ACTIVE don't forget to update metadata.pjd2006-02-121-3/+2
| | | | MFC after: 3 days
* Use time_uptime instead of time_second, as the latter may go backwards.pjd2006-02-121-4/+4
| | | | | Suggested by: ru MFC after: 3 days
OpenPOWER on IntegriCloud