summaryrefslogtreecommitdiffstats
path: root/sys/geom/concat
Commit message (Collapse)AuthorAgeFilesLines
* MFC Alexander Motin's GEOM direct dispatch work:scottl2014-01-072-25/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs.ed2011-11-071-1/+2
| | | | | | 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.
* Refactor disk disconnection and geom destruction handling sequences.mav2011-11-012-50/+44
| | | | | | | | Do not close/destroy opened consumer directly in case of disconnect. Instead keep it existing until it will be closed in regular way in response to upstream provider destruction. Delay geom destruction in the same way. Previous implementation could destroy consumers still having active requests and worked only because of global workaround made on GEOM level.
* Include sys/sbuf.h directly.ae2011-07-111-0/+1
| | | | Reviewed by: pjd
* Remove "for a moment" assignment. struct g_geom zeroed when allocated.ae2011-05-041-2/+0
| | | | MFC after: 1 week
* 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
* Add support for dumping kernel to gconcat.mav2010-09-161-0/+38
| | | | Dumping goes to the component, where dump partition begins.
* Make geom_concat to passthrough stripe parameters of the first component,mav2009-12-241-5/+8
| | | | hoping that rest will fit.
* If provider is open for writing when we taste it, skip it for classes thatpjd2009-10-091-0/+4
| | | | | | | | | | | | | | | | | | | | depend on on-disk metadata. This was we won't attach to providers that are used by other classes. For example we don't want to configure partitions on da0 if it is part of gmirror, what we really want is partitions on mirror/foo. During regular work it works like this: if provider is open for writing a class receives the spoiled event from GEOM and detaches, once provider is closed the taste event is send again and class can rediscover its metadata if it is still there. This doesn't work that way when new class arrives, because GEOM gives all existing providers for it to taste, also those open for writing. Classes have to decided on their own if they want to deal with such providers (eg. geom_dev) or not (classes modified by this commit). Reported by: des, Oliver Lehmann <lehmann@ans-netz.de> Tested by: des, Oliver Lehmann <lehmann@ans-netz.de> Discussed with: phk, marcel Reviewed by: marcel MFC after: 3 days
* Check return value of gctl_get_asciiparam().trasz2009-05-121-0/+4
| | | | | Found with: Coverity Prevent(tm) CID: 1118
* Add sbuf_new_auto as a shortcut for the very common case of creating ades2008-08-091-1/+1
| | | | | | | completely dynamic sbuf. Obtained from: Varnish MFC after: 2 weeks
* Implement BIO_FLUSH handling by simply passing it down to the components.pjd2006-10-311-0/+39
| | | | Sponsored by: home.pl
* Remove trailing spaces.pjd2006-02-012-2/+2
|
* Allow to specify only one disk. This is helpful when we want to extendpjd2006-01-301-3/+3
| | | | | | our concatenated device later. MFC after: 1 week
* Normalize a significant number of kernel malloc type names:rwatson2005-10-311-1/+1
| | | | | | | | | | | | | | | | | | | - Prefer '_' to ' ', as it results in more easily parsed results in memory monitoring tools such as vmstat. - Remove punctuation that is incompatible with using memory type names as file names, such as '/' characters. - Disambiguate some collisions by adding subsystem prefixes to some memory types. - Generally prefer lower case to upper case. - If the same type is defined in multiple architecture directories, attempt to use the same name in additional cases. Not all instances were caught in this change, so more work is required to finish this conversion. Similar changes are required for UMA zone names.
* Before calling g_orphan_provider(), add G_PF_WITHER flag, so GEOM will knowpjd2005-07-171-0/+1
| | | | | | | | to destroy it. PR: kern/81758 Submitted by: trasz <trasz@buziaczek.pl> MFC after: 3 days
* - Add a missing g_io_deliver() in case of allocation failure - we didn'tpjd2005-04-031-3/+17
| | | | | | | | | completed I/O requests here. - First allocate all needed bios, so if any of allocations fail, we can free memory before sending any I/O requests down. Reported by: Pawel Malachowski MFC after: 3 days
* - Add md_provsize field to metadata, which will help withpjd2005-02-272-4/+15
| | | | | | | | | | | | | | | | | shared-last-sector problem. After this change, even if there is more than one provider with the same last sector, the proper one will be chosen based on its size. It still doesn't fix the 'c' partition problem (when da0s1 can be confused with da0s1c) and situation when 'a' partition starts at offset 0 (then da0s1a can be confused with da0s1 and da0s1c). One can use '-h' option there, when creating device or avoid sharing last sector. Actually, when providers share the same last sector and their size is equal, they provide exactly the same data, so the name (da0s1, da0s1a, da0s1c) isn't important at all. - Provide backward compatibility. - Update copyright's year. MFC after: 1 week
* This is not needed anymore, it is forced in GEOM now.pjd2004-09-201-3/+0
| | | | | | | | | Actually, it can even cause some problems, because GEOM requires sectorsize to be more than 0 on first access, not on provider creation, so we can skip valid providers by doing this check here. Reported by: Divacky Roman <xdivac02@stud.fit.vutbr.cz> Sven Willenberger <sven@dmv.com>
* Allow to configure debug level from /boot/loader.conf.pjd2004-08-301-0/+1
|
* Skip providers with not defined sector size.pjd2004-08-261-0/+3
| | | | Reported by: kuriyama
* - Introduce option for hardcoding providers' names into metadata.pjd2004-08-092-1/+20
| | | | | | | | | | | | It allows to fix problems when last provider's sector is shared between few providers. - Bump version number for CONCAT and STRIPE and add code for backward compatibility. - Do not bump version number of MIRROR, as it wasn't officially introduced yet. Even if someone started to play with it, there is no big deal, because wrong MD5 sum of metadata will deny those providers. - Update manual pages. - Add version history to g_(stripe|concat).h files.
* Do not use g_wither_geom(9). I doesn't work in the way which is expectedpjd2004-08-091-2/+3
| | | | | here anymore (after g_wither_washer() was introduced), i.e. geom and consumer will not be immediately destroyed if possible.
* Tag all geom classes in the tree with a version number.phk2004-08-081-0/+1
|
* Improve geom(8)'s 'list' command to show geoms and their providers andpjd2004-07-261-27/+36
| | | | consumers. Teach STRIPE, CONCAT and NOP classes about this improvement.
* Change naming scheme from /dev/<name>.concat to /dev/concat/<name>.pjd2004-07-262-16/+14
|
* M_WAITOK is ok here, while I'm using M_WAITOK later in this function.pjd2004-07-261-8/+1
|
* Fix exclusive-bit leakage.pjd2004-07-181-1/+1
|
* - Add 'stop' command, which works just like 'destroy' command, but soundspjd2004-07-052-2/+3
| | | | | | less dangerous. - Update manual pages and extend examples. - Bump versions.
* Dump some more informations:pjd2004-05-261-17/+28
| | | | | | | | | - device state - list of used providers - total number of disks - number of disks online Prodded by: Alex Deiter <tiamat@komi.mts.ru>
* - Teach CONCAT class how to talk with geom(8).pjd2004-05-202-102/+157
| | | | | | | - Remove provider if any disk was lost. - Dump CONCAT version. Supported by: Wheel - Open Technologies - http://www.wheel.pl
* Fix compilation on 64-bit architectures.pjd2004-05-041-1/+2
| | | | Noticed by: Tinderbox
* - Don't check if 'gp' is non-NULL, it always is and GEOM wants topjd2004-04-201-10/+10
| | | | | dump geom configuration when 'pp' and 'cp' are NULL. - Use tabs instead of spaces.
* - Don't take sectorsize from first disk. Calculate it by findingpjd2004-03-091-19/+48
| | | | | | | least common multiple of all disks sector sizes. This will allow to safely concatenate disks with different sector sizes. - Mark unused function arguments. - Other minor cleanups.
* Print a space character between string given as a macro argument andpjd2004-03-091-0/+1
| | | | bio description.
* Correct year in copyrights.pjd2004-03-042-2/+2
|
* - Remove d_valid field, we can use d_consumer field to check if diskpjd2004-03-032-10/+7
| | | | | is valid. - Use SYSCTL_DECL() instead of using own, ugly extern.
* Removed unused fields.pjd2004-03-011-2/+0
|
* We don't need d_length field.pjd2004-03-011-2/+0
|
* Even if we're sure that we can't be orphaned here, we have to definepjd2004-02-271-1/+2
| | | | | | | | | orphan field - we're enforcing it in GEOM. This will reach KASSERT in INVARIANTS case. Add missing space. Approved by: scottl (mentor)
* Remove unused field.pjd2004-02-271-1/+0
| | | | Approved by: scottl (mentor)
* Introduce CONCAT GEOM class for disk concatenation.pjd2004-02-192-0/+862
It allows manual and automatic (based on on-disk metadata) concatenation. Reviewed by: phk, scottl Approved by: scottl (mentor)
OpenPOWER on IntegriCloud