Ok, I find out what happens. While standard SATA setup, chain of functions is called: ... -> ata_eh_recover -> ata_eh_reset. If SATA is not initialized, then hard reset is performed (function ata_do_reset() ).
In both drivers I have, function ata_do_reset() returns 0, even if after this reset device is not working (like my second drive HDD). There is no sata_down_spd_limit() calls at all. After hard reset second device is not working, and there is no tries to recover that. At first time, or every time when I physically hotplug device, or I call "echo "- - -" > /sys/class/scsi_host/host1/scan", then chain of functions are called: ata_eh_recover -> ata_eh_schedule_probe, and variable trials is increasing. After a few hotplugs, when trials > ATA_EH_PROBE_TRIALS, then sata_down_spd_limit(link, 1) is called and it cuts down SATA bandwidth. After bandwidth limiting, hard reset is performed and then device is working. I think it's wrong behavior when it's try to limit the bandwidth ony after many hotpluging and hard resets. It could try in one ata_eh_recover() call. For my own, I changed a little code of ata_eh_reset() to check if the device is online after reset: rc = ata_do_reset(link, reset, classes, deadline, true); if( ata_link_offline(link) ) rc = -EPIPE; At the bottom of ata_eh_reset(), if rc == -EPIPE, then sata_down_spd_limit() is called and after that. This completely fixes my problem with not working drive. I don't have to manually reconnect device to be working. Only issue is some delay performed before next reset (schedule_timeout_uninterruptible function). Maybe this conversation should be moved to Linux linux-ide mailing list, t -- You received this bug notification because you are a member of Kernel Packages, which is subscribed to linux in Ubuntu. https://bugs.launchpad.net/bugs/1783906 Title: Linux 4.15 and onwards fails to initialize some hard drives Status in linux package in Ubuntu: Confirmed Status in linux source package in Bionic: Confirmed Status in linux source package in Cosmic: Confirmed Bug description: I have two hard drives, the main hard drive is a TOSHIBA DT01ACA200 the second backup hard drive is a Western Digital WD5003AZEX. I installed lubuntu 18.04.1 on the Toshiba HDD and it boots just fine, the issue is with the second hard drive, when installing the WD HDD wouldn't even come as an option to install, and after boot the WD HDD still wouldn't come up, this is the dmesg with the stock kernel (4.15) https://paste.ubuntu.com/p/kpxh94v2SK/ ata6 is the WD HDD that refuses to work. The messages: [ 302.107650] ata6: SError: { CommWake 10B8B Dispar DevExch } [ 302.107658] ata6: hard resetting link [ 307.860291] ata6: link is slow to respond, please be patient (ready=0) [ 312.120898] ata6: COMRESET failed (errno=-16) [ 363.445120] INFO: task kworker/u8:5:201 blocked for more than 120 seconds. [ 363.445131] Not tainted 4.15.0-29-generic #31-Ubuntu [ 363.445135] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. [ 363.445140] kworker/u8:5 D 0 201 2 0x80000000 [ 363.445155] Workqueue: events_unbound async_run_entry_fn [ 363.445157] Call Trace: [ 363.445171] __schedule+0x291/0x8a0 [ 363.445177] schedule+0x2c/0x80 [ 363.445182] ata_port_wait_eh+0x7c/0xf0 [ 363.445186] ? wait_woken+0x80/0x80 [ 363.445189] ata_port_probe+0x28/0x40 [ 363.445192] async_port_probe+0x2e/0x52 [ 363.445196] async_run_entry_fn+0x3c/0x150 [ 363.445199] process_one_work+0x1de/0x410 [ 363.445203] worker_thread+0x32/0x410 [ 363.445207] kthread+0x121/0x140 [ 363.445210] ? process_one_work+0x410/0x410 [ 363.445214] ? kthread_create_worker_on_cpu+0x70/0x70 [ 363.445218] ret_from_fork+0x22/0x40 Repeat constantly. Also when I try to turn off the computer, the computer seem to freeze, the lights of the keyboard and mouse turn off and the computer just stay on. I tried Tiny Core 9.0 which has linux 4.14.10, and i didn't had this issue, i also installed linux 4.14 on this lubuntu 18.04 using Ukuu Kernel Update Utility. And with this kernel version, or any previous version the WD HDD does work again. Here's a dmesg of lubuntu 18.04 with linux 4.14 and the WD HDD finally coming up at the end: https://paste.ubuntu.com/p/Gd3cGFbjTJ/ Also tried with with linux 4.17 but the WD HDD would also refuse to work on this version. Here's another dmesg with this version: https://paste.ubuntu.com/p/PmNn96vZZv/ ProblemType: Bug DistroRelease: Ubuntu 18.04 Package: linux-image-4.15.0-29-generic 4.15.0-29.31 ProcVersionSignature: Ubuntu 4.15.0-29.31-generic 4.15.18 Uname: Linux 4.15.0-29-generic x86_64 AlsaVersion: Advanced Linux Sound Architecture Driver Version k4.15.0-29-generic. ApportVersion: 2.20.9-0ubuntu7.2 Architecture: amd64 AudioDevicesInUse: USER PID ACCESS COMMAND /dev/snd/controlC0: testtest 756 F.... pulseaudio /dev/snd/controlC1: testtest 756 F.... pulseaudio Card0.Amixer.info: Card hw:0 'NVidia_1'/'HDA NVidia at 0xfe020000 irq 22' Mixer name : 'Realtek ALC1200' Components : 'HDA:10ec0888,10ec0000,00100101 HDA:10de0002,10de0101,00100000' Controls : 56 Simple ctrls : 21 Card1.Amixer.info: Card hw:1 'NVidia'/'HDA NVidia at 0xfcffc000 irq 16' Mixer name : 'Nvidia GPU 42 HDMI/DP' Components : 'HDA:10de0042,38422651,00100100' Controls : 21 Simple ctrls : 3 CurrentDesktop: LXDE Date: Thu Jul 26 17:10:58 2018 HibernationDevice: RESUME=UUID=17e70869-516d-4b63-b900-e92e3c4b73b6 InstallationDate: Installed on 2018-07-26 (0 days ago) InstallationMedia: Lubuntu 18.04.1 LTS "Bionic Beaver" - Release amd64 (20180725) MachineType: 113 1 ProcFB: 0 nouveaufb ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.15.0-29-generic root=UUID=71cf0a32-7827-49be-a2c0-cd50a72c26a1 ro quiet splash vt.handoff=1 RelatedPackageVersions: linux-restricted-modules-4.15.0-29-generic N/A linux-backports-modules-4.15.0-29-generic N/A linux-firmware 1.173.1 RfKill: 0: phy0: Wireless LAN Soft blocked: no Hard blocked: no SourcePackage: linux UpgradeStatus: No upgrade log present (probably fresh install) dmi.bios.date: 09/30/2008 dmi.bios.vendor: Phoenix Technologies, LTD dmi.bios.version: 6.00 PG dmi.board.name: 113-M2-E113 dmi.board.vendor: EVGA dmi.board.version: 1 dmi.chassis.asset.tag: Unknow dmi.chassis.type: 3 dmi.chassis.vendor: EVGA dmi.chassis.version: 113-M2-E113 dmi.modalias: dmi:bvnPhoenixTechnologies,LTD:bvr6.00PG:bd09/30/2008:svn113:pn1:pvr1:rvnEVGA:rn113-M2-E113:rvr1:cvnEVGA:ct3:cvr113-M2-E113: dmi.product.name: 1 dmi.product.version: 1 dmi.sys.vendor: 113 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1783906/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp