|
Revision tags: v6.4.0, v6.4.0rc1, v6.5.0, v6.2.2, v6.2.1, v6.3.0, v6.0.1, v6.0.0, v6.0.0rc1, v6.1.0, v5.8.3, v5.8.2, v5.8.1, v5.8.0, v5.9.0, v5.8.0rc1, v5.6.3, v5.6.2, v5.6.1, v5.6.0, v5.6.0rc1, v5.7.0, v5.4.3, v5.4.2 |
|
| #
eb67213a |
| 26-Mar-2019 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel - Rewrite the callout_*() API
* Rewrite the entire API from scratch and improve compatibility with FreeBSD. This is not an attempt to achieve full API compatibility, as FreeBSD's API has
kernel - Rewrite the callout_*() API
* Rewrite the entire API from scratch and improve compatibility with FreeBSD. This is not an attempt to achieve full API compatibility, as FreeBSD's API has unnecessary complexity that coders would frequently make mistakes interpreting.
* Remove the IPI mechanisms in favor of fine-grained spin-locks instead.
* Add some robustness features in an attempt to track down corrupted callwheel lists due to originating subsystems freeing structures out from under an active callout.
* The code supports a full-blown type-stable/adhoc-reuse structural separation between the front-end and the back-end, but this feature is currently not operational and may be removed at some future point. Instead we currently just embed the struct _callout inside the struct callout.
* Replace callout_stop_sync() with callout_cancel().
* callout_drain() is now implemented as a synchronous cancel instead of an asynchronous stop, which is closer to the FreeBSD API and expected operation for ported code (usb stack in particular). We will just have to fix any deadlocks which we come across.
* Retain our callout_terminate() function as the 'better' way to stop using a callout, as it will not only cancel the callout but also de-flag the structure so it can no longer be used.
show more ...
|
|
Revision tags: v5.4.1, v5.4.0, v5.5.0, v5.4.0rc1, v5.2.2, v5.2.1, v5.2.0, v5.3.0, v5.2.0rc |
|
| #
c3783d8f |
| 04-Feb-2018 |
zrj <rimvydas.jasinskas@gmail.com> |
kernel/disk: Remove use of "%b" format.
Switch to args safe "%pb%i" internal format.
|
|
Revision tags: v5.0.2 |
|
| #
c04da965 |
| 26-Nov-2017 |
zrj <rimvydas.jasinskas@gmail.com> |
kernel/nata: Extract ata_tf_read() and ata_tf_write().
While there swap check order ata_intel_31244_command() and adjust few places to use request->parent.
No functional change.
|
| #
bb15467a |
| 25-Nov-2017 |
zrj <rimvydas.jasinskas@gmail.com> |
kernel/nata: Misc cleanup in non chipset codes.
* Move some stuff around. * Add local implementations of biofinish() and g_io_deliver(). * Add prints for READ_NATIVE_MAX_ADDRESS. * Use >= in
kernel/nata: Misc cleanup in non chipset codes.
* Move some stuff around. * Add local implementations of biofinish() and g_io_deliver(). * Add prints for READ_NATIVE_MAX_ADDRESS. * Use >= in comparisons for devclass_get_maxunit()
No functional change.
show more ...
|
| #
9243051b |
| 24-Nov-2017 |
zrj <rimvydas.jasinskas@gmail.com> |
kernel/nata: Return more data for natacontrol(8).
* include info about backing subdisks * use last 16 bytes of serial number in meta (as MatrixRAID does) * add optional automatc spindown/spinup s
kernel/nata: Return more data for natacontrol(8).
* include info about backing subdisks * use last 16 bytes of serial number in meta (as MatrixRAID does) * add optional automatc spindown/spinup support (dmesg noisy) * various cleanups * natacontrol(8) additions + cleanup
Taken-from: FreeBSD
show more ...
|
| #
59503772 |
| 23-Nov-2017 |
zrj <rimvydas.jasinskas@gmail.com> |
kernel/nata: Constification.
Attempt at making nata a bit more safe: * const attributes where possible * add and use ata_set_desc() helper * add early returns (for future split modules support
kernel/nata: Constification.
Attempt at making nata a bit more safe: * const attributes where possible * add and use ata_set_desc() helper * add early returns (for future split modules support) * fix a bug in ata-sis.c where it was patching ids table.
As a bonus, now CCVER=gcc47 no longer warn on -Warray-bounds in ata-ite.c, finally allowing to buildkernel w/o NO_WERROR (ata_mode2idx() in ata-pci.c).
No functional change intended, except for bugfix in ata-sis.c.
show more ...
|
|
Revision tags: v5.0.1, v5.0.0, v5.0.0rc2, v5.1.0, v5.0.0rc1, v4.8.1, v4.8.0, v4.6.2, v4.9.0, v4.8.0rc, v4.6.1, v4.6.0, v4.6.0rc2, v4.6.0rc, v4.7.0, v4.4.3, v4.4.2, v4.4.1, v4.4.0, v4.5.0, v4.4.0rc, v4.2.4, v4.3.1, v4.2.3, v4.2.1, v4.2.0, v4.0.6, v4.3.0, v4.2.0rc, v4.0.5, v4.0.4, v4.0.3, v4.0.2 |
|
| #
15bd3c73 |
| 25-Nov-2014 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel - Fix boot-time panic in NATA revealed by new callout mechanics
* The NATA driver was using spin locks in a very, very dangerous way. They did not play nice with the new blocking callout me
kernel - Fix boot-time panic in NATA revealed by new callout mechanics
* The NATA driver was using spin locks in a very, very dangerous way. They did not play nice with the new blocking callout mechanism.
* Replace all of NATAs spinlocks with lockmgr locks. In addition, change all asynchronous callout_stop() calls to synchronous callout_stop_sync() calls, and use callout_init_lk() to auto-lock ch->state_lock for the callback, which fixes a long-time deadlock race.
Reported-by: tuxillo
show more ...
|
|
Revision tags: v4.0.1, v4.0.0, v4.0.0rc3, v4.0.0rc2, v4.0.0rc, v4.1.0 |
|
| #
ba87a4ab |
| 24-Aug-2014 |
Sascha Wildner <saw@online.de> |
kernel/spinlock: Add a description to struct spinlock.
And add it to spin_init() and SPINLOCK_INITIALIZER().
Submitted-by: dclink (see <http://bugs.dragonflybsd.org/issues/2714>) OK'd-by: dill
kernel/spinlock: Add a description to struct spinlock.
And add it to spin_init() and SPINLOCK_INITIALIZER().
Submitted-by: dclink (see <http://bugs.dragonflybsd.org/issues/2714>) OK'd-by: dillon
show more ...
|
|
Revision tags: v3.8.2, v3.8.1, v3.6.3 |
|
| #
f6e8a0a1 |
| 07-Jun-2014 |
Imre Vadasz <imre@vdsz.com> |
Convert files to UTF-8
Taken-from: FreeBSD
|
|
Revision tags: v3.8.0, v3.8.0rc2, v3.9.0, v3.8.0rc, v3.6.2, v3.6.1, v3.6.0, v3.7.1, v3.6.0rc, v3.4.3, v3.4.2, v3.4.1, v3.4.0, v3.4.0rc, v3.5.0 |
|
| #
7078f92b |
| 12-Jan-2013 |
Johannes Hofmann <johannes.hofmann@gmx.de> |
merge
|
|
Revision tags: v3.2.2 |
|
| #
cf5f86b6 |
| 10-Dec-2012 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel - Remove unnecessary mplock from ata I/O path
* ata_finish() doesn't need the MP Lock; moving it from taskqueue_swi to taskqueue_swi_mp will make sure it's not taken.
* Note that taskqueue
kernel - Remove unnecessary mplock from ata I/O path
* ata_finish() doesn't need the MP Lock; moving it from taskqueue_swi to taskqueue_swi_mp will make sure it's not taken.
* Note that taskqueue_swi(_mp) will be processed when this ithread attempts to switch back to the thread it preempted. This means that taskqueue_swi(_mp) processing exclude processing further interrupts on the ithread while they're running. This may not be desirable and is different than taskqueue_swi / swi_* / setsoft* in FreeBSD 4.x.
Submitted-by: vsrinivas
show more ...
|
|
Revision tags: v3.2.1, v3.2.0, v3.3.0, v3.0.3, v3.0.2, v3.0.1 |
|
| #
6b7107f9 |
| 27-Jan-2012 |
Venkatesh Srinivas <me@endeavour.zapto.org> |
kernel -- nata: Use ATA_DEFAULT_TIMEOUT (10) rather than 1 for ATA controlcmds.
A one-second timeout for control commands was inappropriate for SET TRANSFER MODE/ENABLE RCACHE/ENABLE WCACHE on spun-
kernel -- nata: Use ATA_DEFAULT_TIMEOUT (10) rather than 1 for ATA controlcmds.
A one-second timeout for control commands was inappropriate for SET TRANSFER MODE/ENABLE RCACHE/ENABLE WCACHE on spun-down WD Caviar Greens, among others.
show more ...
|
|
Revision tags: v3.1.0, v3.0.0 |
|
| #
86d7f5d3 |
| 26-Nov-2011 |
John Marino <draco@marino.st> |
Initial import of binutils 2.22 on the new vendor branch
Future versions of binutils will also reside on this branch rather than continuing to create new binutils branches for each new version.
|
|
Revision tags: v2.12.0, v2.13.0, v2.10.1, v2.11.0, v2.10.0, v2.9.1, v2.8.2, v2.8.1, v2.8.0, v2.9.0, v2.6.3, v2.7.3, v2.6.2, v2.7.2, v2.7.1, v2.6.1, v2.7.0, v2.6.0, v2.5.1, v2.4.1, v2.5.0, v2.4.0 |
|
| #
974066bc |
| 25-Aug-2009 |
Matthias Schmidt <matthias@dragonflybsd.org> |
Merge branch 'master' of git://chlamydia.fs.ei.tum.de/dragonfly
|
| #
e590ee86 |
| 24-Aug-2009 |
Matthew Dillon <dillon@apollo.backplane.com> |
Rename msleep() to ssleep().
* msleep() was taking a spinlock. Rename to ssleep() as per old request from hsu.
* Our mtx functions currently use mtxsleep(). Leave msleep() unassigned to make
Rename msleep() to ssleep().
* msleep() was taking a spinlock. Rename to ssleep() as per old request from hsu.
* Our mtx functions currently use mtxsleep(). Leave msleep() unassigned to make porting easier.
show more ...
|
| #
4afeea0d |
| 20-Aug-2009 |
Matthew Dillon <dillon@apollo.backplane.com> |
BIOQ - Create a more sophisticated bursting mechanic for writes.
* Add sysctls:
vfs.bioq_reorder_minor_interval vfs.bioq_reorder_minor_bytes
vfs.bioq_reorder_burst_interval vfs.bioq_reorde
BIOQ - Create a more sophisticated bursting mechanic for writes.
* Add sysctls:
vfs.bioq_reorder_minor_interval vfs.bioq_reorder_minor_bytes
vfs.bioq_reorder_burst_interval vfs.bioq_reorder_burst_bytes
* Reads are prioritized over writes. Every N (minor_interval) reads up to (minor_bytes) worth of writes are allowed in order to avoid complete write starvation (which is just as bad as complete read starvation).
* If a large amount of write data is queued to devices the related buffer cache buffers will be locked. This is not a good place to be as any readers trying to access those buffers will then also block.
When the amount of data is excessive the (burst_interval) and (burst_bytes) comes into play. This primarily helps HAMMER flush cycles.
* Try to keep vfs.hirunningspace reasonably bounded. We do not want too large a value because of the above buffer locking issue. On the flip side, we can have large numbers of delayed-write dirty buffers sitting around because they aren't locked.
* When the buffer cache is hitting hidirtybufspace the buffer daemons now try to keep the vfs.runningbufspace at hirunningspace levels instead of lorunningspace levels in order to trigger the bioq's bursting mode.
show more ...
|
| #
9469b9f3 |
| 19-Aug-2009 |
Matthew Dillon <dillon@apollo.backplane.com> |
NATA - Replace the queuing algorithm with the one used by bioq.
* NATA doesn't use bioq yet, but I replicated the algorithm to fix the read starvation issue.
* Interesting note: Because NATA does
NATA - Replace the queuing algorithm with the one used by bioq.
* NATA doesn't use bioq yet, but I replicated the algorithm to fix the read starvation issue.
* Interesting note: Because NATA does not have NCQ reads appear to be prioritized even more then they are on AHCI.
show more ...
|
|
Revision tags: v2.3.2 |
|
| #
2a2493da |
| 08-Jun-2009 |
Aggelos Economopoulos <aoiko@cc.ece.ntua.gr> |
Merge branch 'master' of /home/aggelos/devel/dfly/dfly.git/
|
| #
b2649ee6 |
| 05-Jun-2009 |
Jordan Gordeev <jgordeev@dir.bg> |
Merge branch 'master' into amd64
|
| #
d55cd0cb |
| 04-Jun-2009 |
Matthew Dillon <dillon@apollo.backplane.com> |
Minor string description changes to match READ_CAPACITY_16
|
|
Revision tags: v2.3.1, v2.2.1, v2.2.0, v2.3.0 |
|
| #
4c1219d7 |
| 29-Jan-2009 |
Joe Talbott <josepht@dragonflybsd.org> |
Merge branch 'master' of git://venus/dragonfly
|
| #
03a48513 |
| 20-Jan-2009 |
Matthew Dillon <dillon@apollo.backplane.com> |
NATA disk sort / elevator algorithm adjustments.
Move the sortq_lost counter from the request structure to the channel structure to fix some edge conditions. Limit the sort to a maximum of 16 eleme
NATA disk sort / elevator algorithm adjustments.
Move the sortq_lost counter from the request structure to the channel structure to fix some edge conditions. Limit the sort to a maximum of 16 elements before moving the freeze pointer.
This should improve the protection against large continuous linear reads and writes which can delay unrelated I/O's for very long periods of time.
Reported-by: Hasso Tepper <sinknull@crater.dragonflybsd.org>, "Simon 'corecode' Schubert" <corecode@fs.ei.tum.de>
show more ...
|
|
Revision tags: v2.1.1 |
|
| #
1d727bac |
| 23-Sep-2008 |
Matthew Dillon <dillon@dragonflybsd.org> |
Make two more changes to the ata request queue sorting code.
* Do not try to sort write requests. There's no point, the hard drive has a write cache and a much better understanding of the media t
Make two more changes to the ata request queue sorting code.
* Do not try to sort write requests. There's no point, the hard drive has a write cache and a much better understanding of the media topology and will sort the requests for us.
* Move the freeze point every 16 requests instead of every 128 to further reduce the amount of reordering we allow to prevent older requests from being delayed indefinitely by newer requests.
Note: the original ata code didn't code any limits at all, causing insanely long latencies during heavy disk I/O for no good reason.
Reported-by: Hasso Tepper <hasso@estpak.ee>
show more ...
|
|
Revision tags: v2.0.1 |
|
| #
6ce6765a |
| 28-Jun-2008 |
Matthew Dillon <dillon@dragonflybsd.org> |
Bump the sortq_lost check from 8 to 128, letting the disk optimally read or write a larger swath before forcing through long-delayed requests.
|
| #
dbe4d046 |
| 28-Jun-2008 |
Matthew Dillon <dillon@dragonflybsd.org> |
Fix a system performance issue created by ata_sort_queue(). This function implements an elevator sort but it also allows requests to be delayed indefinitely when other requests continually get inser
Fix a system performance issue created by ata_sort_queue(). This function implements an elevator sort but it also allows requests to be delayed indefinitely when other requests continually get inserted in front of them. HAMMER's almost log-linear writing really exposes this issue.
The fix is to count how many times a request got delayed due to an insertion. If the count exceeds 8, the new request is placed at the end of the queue and set as the new freeze point.
show more ...
|