CVS log for src/sys/dev/ata/ata_subr.c
Up to [cvs.NetBSD.org] / src / sys / dev / ata
Request diff between arbitrary revisions
Keyword substitution: kv
Default branch: MAIN
Revision 1.8.4.1: download - view: text, markup, annotated - select for diffs
Tue Feb 8 14:45:00 2022 UTC (2 years, 10 months ago) by martin
Branches: netbsd-9
CVS tags: netbsd-9-4-RELEASE,
netbsd-9-3-RELEASE
Diff to: previous 1.8: preferred, colored; next MAIN 1.9: preferred, colored
Changes since revision 1.8: +7 -2
lines
Pull up following revision(s) (requested by jdolecek in ticket #1426):
sys/dev/ata/ata_recovery.c: revision 1.3
sys/dev/ata/ata_subr.c: revision 1.9
stop xfer timeouts during recovery, all xfers will be requeued anyway
this avoids race with the timeout routine when processing the xfers
for requeueing
should fix PR kern/54790 by Izumi Tsutsui
Revision 1.11.2.1: download - view: text, markup, annotated - select for diffs
Sun Jan 3 16:34:57 2021 UTC (3 years, 11 months ago) by thorpej
Branches: thorpej-futex
Diff to: previous 1.11: preferred, colored; next MAIN 1.12: preferred, colored
Changes since revision 1.11: +5 -4
lines
Sync w/ HEAD.
Revision 1.13: download - view: text, markup, annotated - select for diffs
Wed Dec 23 08:17:01 2020 UTC (3 years, 11 months ago) by skrll
Branches: MAIN
CVS tags: thorpej-ifq-base,
thorpej-ifq,
thorpej-i2c-spi-conf2-base,
thorpej-i2c-spi-conf2,
thorpej-i2c-spi-conf-base,
thorpej-i2c-spi-conf,
thorpej-futex2-base,
thorpej-futex2,
thorpej-futex-base,
thorpej-cfargs2-base,
thorpej-cfargs2,
thorpej-cfargs-base,
thorpej-cfargs,
thorpej-altq-separation-base,
thorpej-altq-separation,
perseant-exfatfs-base-20240630,
perseant-exfatfs-base,
perseant-exfatfs,
netbsd-10-base,
netbsd-10-0-RELEASE,
netbsd-10-0-RC6,
netbsd-10-0-RC5,
netbsd-10-0-RC4,
netbsd-10-0-RC3,
netbsd-10-0-RC2,
netbsd-10-0-RC1,
netbsd-10,
cjep_sun2x-base1,
cjep_sun2x-base,
cjep_sun2x,
cjep_staticlib_x-base1,
cjep_staticlib_x-base,
cjep_staticlib_x,
bouyer-sunxi-drm-base,
bouyer-sunxi-drm,
HEAD
Diff to: previous 1.12: preferred, colored
Changes since revision 1.12: +3 -3
lines
Add missing '\n' in debug
Revision 1.12: download - view: text, markup, annotated - select for diffs
Sat Dec 19 18:09:44 2020 UTC (3 years, 11 months ago) by jmcneill
Branches: MAIN
Diff to: previous 1.11: preferred, colored
Changes since revision 1.11: +4 -3
lines
ata_timeout: restore spl in ATACH_RECOVERING path
Revision 1.11: download - view: text, markup, annotated - select for diffs
Sat May 2 19:09:56 2020 UTC (4 years, 7 months ago) by thorpej
Branches: MAIN
Branch point for: thorpej-futex
Diff to: previous 1.10: preferred, colored
Changes since revision 1.10: +2 -5
lines
Back out changes to use a threadpool for now; it's causing trouble
for some folks on Thinkpads.
Revision 1.9.2.1: download - view: text, markup, annotated - select for diffs
Sat Apr 25 11:23:59 2020 UTC (4 years, 7 months ago) by bouyer
Branches: bouyer-xenpvh
Diff to: previous 1.9: preferred, colored; next MAIN 1.10: preferred, colored
Changes since revision 1.9: +7 -4
lines
Sync with bouyer-xenpvh-base2 (HEAD)
Revision 1.10: download - view: text, markup, annotated - select for diffs
Sat Apr 25 00:07:27 2020 UTC (4 years, 7 months ago) by thorpej
Branches: MAIN
CVS tags: bouyer-xenpvh-base2
Diff to: previous 1.9: preferred, colored
Changes since revision 1.9: +7 -4
lines
Rather than creating a kthread-per-channel, use a threadpool and a
threadpool-job-per-channel for the in-thread-context work that needs
to be done (which is rare).
On one of my test systems, this results in the total number of LWPs
after multi-user boot dropping from 116 to 78.
Revision 1.4.6.2: download - view: text, markup, annotated - select for diffs
Wed Apr 8 14:08:03 2020 UTC (4 years, 8 months ago) by martin
Branches: phil-wifi
Diff to: previous 1.4.6.1: preferred, colored; branchpoint 1.4: preferred, colored; next MAIN 1.5: preferred, colored
Changes since revision 1.4.6.1: +7 -2
lines
Merge changes from current as of 20200406
Revision 1.9: download - view: text, markup, annotated - select for diffs
Sat Apr 4 22:30:02 2020 UTC (4 years, 8 months ago) by jdolecek
Branches: MAIN
CVS tags: phil-wifi-20200421,
phil-wifi-20200411,
phil-wifi-20200406,
bouyer-xenpvh-base1,
bouyer-xenpvh-base
Branch point for: bouyer-xenpvh
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +7 -2
lines
stop xfer timeouts during recovery, all xfers will be requeued anyway
this avoids race with the timeout routine when processing the xfers
for requeueing
should fix PR kern/54790 by Izumi Tsutsui
Revision 1.4.6.1: download - view: text, markup, annotated - select for diffs
Mon Jun 10 22:07:06 2019 UTC (5 years, 6 months ago) by christos
Branches: phil-wifi
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +128 -189
lines
Sync with HEAD
Revision 1.4.4.2: download - view: text, markup, annotated - select for diffs
Mon Nov 26 01:52:30 2018 UTC (6 years ago) by pgoyette
Branches: pgoyette-compat
CVS tags: pgoyette-compat-merge-20190127
Diff to: previous 1.4.4.1: preferred, colored; branchpoint 1.4: preferred, colored; next MAIN 1.5: preferred, colored
Changes since revision 1.4.4.1: +122 -212
lines
Sync with HEAD, resolve a couple of conflicts
Revision 1.8: download - view: text, markup, annotated - select for diffs
Wed Nov 7 17:05:54 2018 UTC (6 years, 1 month ago) by jdolecek
Branches: MAIN
CVS tags: phil-wifi-20191119,
phil-wifi-20190609,
pgoyette-compat-20190127,
pgoyette-compat-20190118,
pgoyette-compat-1226,
pgoyette-compat-1126,
netbsd-9-base,
netbsd-9-2-RELEASE,
netbsd-9-1-RELEASE,
netbsd-9-0-RELEASE,
netbsd-9-0-RC2,
netbsd-9-0-RC1,
isaki-audio2-base,
isaki-audio2,
is-mlppp-base,
is-mlppp,
ad-namecache-base3,
ad-namecache-base2,
ad-namecache-base1,
ad-namecache-base,
ad-namecache
Branch point for: netbsd-9
Diff to: previous 1.7: preferred, colored
Changes since revision 1.7: +5 -2
lines
don't touch the queue structure in ata_queue_active() if atabus is already
detached from the channel
fixes panic on null pointer derefence during shutdown reported privately
by Launey Thomas
Revision 1.7: download - view: text, markup, annotated - select for diffs
Mon Oct 22 20:13:47 2018 UTC (6 years, 1 month ago) by jdolecek
Branches: MAIN
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +119 -212
lines
Merge jdolecek-ncqfixes branch
- ata_xfer's are dynamicall allocated as needed using a pool, no longer
limited to number of possible openings supported by controller; dump
and recovery paths use dedicated pre-allocated storage
- moved callouts and condvars from ata_xfer to queue or channel, so that
ata_xfer does not need special initialization
- slot allocation now done when xfer is being activated, uncoupled
from memory allocation; active slots are no longer tracked by controller
code
- channel and drive reset is done always via the atabus thread, and
now executes with channel locked the whole time
- NCQ recovery moved to shared function, and run via the thread also
- added some workarounds for buggy error recovery AHCI emulation in QEMU
and Parallels
designed to primarily fix kern/52614, but might also help with kern/47041
and kern/53183
Revision 1.6.2.8: download - view: text, markup, annotated - select for diffs
Thu Oct 11 20:57:51 2018 UTC (6 years, 2 months ago) by jdolecek
Branches: jdolecek-ncqfixes
Diff to: previous 1.6.2.7: preferred, colored; branchpoint 1.6: preferred, colored; next MAIN 1.7: preferred, colored
Changes since revision 1.6.2.7: +41 -2
lines
refactor shared parts of the SATA error recovery into new function
ata_recovery_resume() and use for ahcisata/siisata/mvsata, also replace
per-controller hold/unhold with generic version
move the shared recovery code into separate file ata_recovery.c
Revision 1.6.2.7: download - view: text, markup, annotated - select for diffs
Sat Oct 6 21:19:55 2018 UTC (6 years, 2 months ago) by jdolecek
Branches: jdolecek-ncqfixes
Diff to: previous 1.6.2.6: preferred, colored; branchpoint 1.6: preferred, colored
Changes since revision 1.6.2.6: +3 -3
lines
actually, just make dump use the same queue skip as recovery, and remove the
no longer necessary ata_queue_reset() call from wd(4)
also for PR kern/47041
Revision 1.6.2.6: download - view: text, markup, annotated - select for diffs
Sat Sep 22 17:50:09 2018 UTC (6 years, 2 months ago) by jdolecek
Branches: jdolecek-ncqfixes
Diff to: previous 1.6.2.5: preferred, colored; branchpoint 1.6: preferred, colored
Changes since revision 1.6.2.5: +2 -50
lines
remove explicit ata_channel_start() calls, it's no longer necessary
now that ata_xfer's are allocated via pool and not really limited;
replace by just a callout to restart the processing for rare cases
where system runs out of memory
Revision 1.6.2.5: download - view: text, markup, annotated - select for diffs
Sat Sep 22 09:22:59 2018 UTC (6 years, 2 months ago) by jdolecek
Branches: jdolecek-ncqfixes
Diff to: previous 1.6.2.4: preferred, colored; branchpoint 1.6: preferred, colored
Changes since revision 1.6.2.4: +48 -154
lines
separate ata_xfer slot allocation and the memory allocation, so that
there can be more queued xfers than number of supported slots by controller,
and use a pool instead of custom pre-allocation
primarily to help PR kern/52614
remove no longer needed custom wd(4) logic for flush cache
switch also wd(4) trim/suspend/setcache/wdioctlstrategy to sleep waiting
for the memory, they are all called from process context and this
avoids spurious failures
Revision 1.6.2.4: download - view: text, markup, annotated - select for diffs
Mon Sep 17 20:54:41 2018 UTC (6 years, 2 months ago) by jdolecek
Branches: jdolecek-ncqfixes
Diff to: previous 1.6.2.3: preferred, colored; branchpoint 1.6: preferred, colored
Changes since revision 1.6.2.3: +3 -2
lines
convert from malloc()/free() to kmem_zalloc()/kmem_free()
Revision 1.6.2.3: download - view: text, markup, annotated - select for diffs
Mon Sep 17 19:00:43 2018 UTC (6 years, 2 months ago) by jdolecek
Branches: jdolecek-ncqfixes
Diff to: previous 1.6.2.2: preferred, colored; branchpoint 1.6: preferred, colored
Changes since revision 1.6.2.2: +3 -3
lines
switch from TAILQ to SIMPLEQ for ata_xfer pending queue to save
space, don't need doubly linked queue
Revision 1.6.2.2: download - view: text, markup, annotated - select for diffs
Mon Sep 17 18:36:13 2018 UTC (6 years, 2 months ago) by jdolecek
Branches: jdolecek-ncqfixes
Diff to: previous 1.6.2.1: preferred, colored; branchpoint 1.6: preferred, colored
Changes since revision 1.6.2.1: +4 -3
lines
move low-level protocol handlers hooks from ata_xfer to separate struct,
initialized statically
primarily to reduce ata_xfer struct size, but also improves readibility,
and enforces consistency
Revision 1.4.4.1: download - view: text, markup, annotated - select for diffs
Thu Sep 6 06:55:48 2018 UTC (6 years, 3 months ago) by pgoyette
Branches: pgoyette-compat
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +33 -4
lines
Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
Revision 1.6.2.1: download - view: text, markup, annotated - select for diffs
Fri Aug 31 19:08:03 2018 UTC (6 years, 3 months ago) by jdolecek
Branches: jdolecek-ncqfixes
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +51 -31
lines
refactor ata_xfer to be just dumb structure; move all callouts/condvars out
retry callout to wd(4); reset callout and the active/cmd finish condvars
to channel queue; change code using the condvars so it works if there
are multiple waiters
simplify the async wait code for cmds, replace ata_wait_xfer()/ata_wake_xfer()
with ata_wait_cmd()
fix the callout_invoking/ack race handling code for timeouts to
actually have chance to work; change mvsata(4) to use generic timeout func
towards resolution of kern/52614
Revision 1.6: download - view: text, markup, annotated - select for diffs
Fri Aug 10 22:43:22 2018 UTC (6 years, 4 months ago) by jdolecek
Branches: MAIN
CVS tags: pgoyette-compat-1020,
pgoyette-compat-0930,
pgoyette-compat-0906,
jdolecek-ncqfixes-base
Branch point for: jdolecek-ncqfixes
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +5 -4
lines
fix race in wd_lastclose() on systems with two ide disks on same
channel, which happened when one disk had pending I/O while the other
disk executed the final disk flush - need to restart bufq processing
once xfer is freed in this case
it could happen e.g. on boot when system executes fsck on different
partitions on the two drives in parallell and hence open and closes
the disk devices repeatedly
add KASSERT() for empty bufq on wd_lastclose(), and fix similar issue
also on suspend/standby path
this was introduced by the NCQ merge and not dksubr - before the merge
each drive had their own xfer, so they could not block each other
fixes PR kern/52783 by Onno van der Linden; many thanks for extensive
help with tracking this down
Revision 1.5: download - view: text, markup, annotated - select for diffs
Mon Aug 6 20:07:05 2018 UTC (6 years, 4 months ago) by jdolecek
Branches: MAIN
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +30 -2
lines
add wddebug() which dumps some status for attached disks; indended for
debugging of PR kern/52783
Revision 1.4.2.2: download - view: text, markup, annotated - select for diffs
Sun Dec 3 11:36:59 2017 UTC (7 years ago) by jdolecek
Branches: tls-maxphys
Diff to: previous 1.4.2.1: preferred, colored; branchpoint 1.4: preferred, colored; next MAIN 1.5: preferred, colored
Changes since revision 1.4.2.1: +438 -0
lines
update from HEAD
Revision 1.4.2.1
Fri Oct 20 07:06:07 2017 UTC (7 years, 1 month ago) by jdolecek
Branches: tls-maxphys
FILE REMOVED
Changes since revision 1.4: +0 -438
lines
file ata_subr.c was added on branch tls-maxphys on 2017-12-03 11:36:59 +0000
Revision 1.4: download - view: text, markup, annotated - select for diffs
Fri Oct 20 07:06:07 2017 UTC (7 years, 1 month ago) by jdolecek
Branches: MAIN
CVS tags: tls-maxphys-base-20171202,
phil-wifi-base,
pgoyette-compat-base,
pgoyette-compat-0728,
pgoyette-compat-0625,
pgoyette-compat-0521,
pgoyette-compat-0502,
pgoyette-compat-0422,
pgoyette-compat-0415,
pgoyette-compat-0407,
pgoyette-compat-0330,
pgoyette-compat-0322,
pgoyette-compat-0315
Branch point for: tls-maxphys,
phil-wifi,
pgoyette-compat
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +12 -2
lines
move ata_queue_alloc(1) and ata_queue_free() calls to ata_channel_init()
and ata_channel_destroy() respectively, to make attachment code simpler,
and to make it easier to spot special queue manipulation like cmdide(4)
on topic of PR kern/52606
Revision 1.3: download - view: text, markup, annotated - select for diffs
Thu Oct 19 20:45:07 2017 UTC (7 years, 1 month ago) by jdolecek
Branches: MAIN
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +12 -4
lines
more detailed debug info; also sync DEBUG_* values in wd.c with ata.c
Revision 1.2: download - view: text, markup, annotated - select for diffs
Tue Oct 17 18:52:50 2017 UTC (7 years, 1 month ago) by jdolecek
Branches: MAIN
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +3 -3
lines
reintroduce ATACH_IRQ_WAIT flag for attachments using wdcintr(), only
process the interrupt when the flag is set - this fixes spurious interrupt
during post-reset drive setup in wdc_ata_bio_start(), and wdc_atapi_start()
while those functions set WDCTL_IDS, this seems to be ignored by certain
(maybe all) PCI-IDE controllers; usually the implicit KERNEL_LOCK() would
prevent the interrupt anyway, but not when the start routine is started
from the atabus thread, which doesn't take it
fixes 'panic: wdc_ata_bio_intr: bad state' reported on current-users
by Chavdar Ivanov
Revision 1.1: download - view: text, markup, annotated - select for diffs
Tue Oct 10 17:19:38 2017 UTC (7 years, 2 months ago) by jdolecek
Branches: MAIN
split off functions used by 'wd* at umass?' into separate file, unfortunately
the previous approach with NATABUS doesn't work for kernels which include
MODULAR, but not atabus - such as macppc and evbarm
CVSweb <webmaster@jp.NetBSD.org>