Opened 7 years ago
Last modified 7 years ago
#13811 assigned bug
[AHCI] comreset slows down booting
Reported by: | diver | Owned by: | kallisti5 |
---|---|---|---|
Priority: | normal | Milestone: | Unscheduled |
Component: | Drivers/Disk | Version: | R1/Development |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Platform: | All |
Description
VMware Fusion stops at disk icon for a minute printing the following:
port 1 undergoing COMRESET ... port 32 undergoing COMRESET
then continues booting normally.
I can workaround it if I disable sata in .vmx file:
sata0.present = "FALSE"
This was likely introduced during port reset rework last year: https://github.com/haiku/haiku/commits/master/src/add-ons/kernel/busses/scsi/ahci/ahci_port.cpp
Attachments (1)
Change History (10)
by , 7 years ago
comment:1 by , 7 years ago
patch: | 0 → 1 |
---|
comment:2 by , 7 years ago
patch: | 1 → 0 |
---|
comment:3 by , 7 years ago
comment:4 by , 7 years ago
Now, I did add a check to try and reduce startup times around a bunch of empty ports: https://github.com/haiku/haiku/commit/2f6a9c685a0b6490796c08ef8120cff1ea743dc5#diff-697beff8b60e79980fa710483bbf73ba
However, the check doesn't seem to be working on your system.. it appears from the data i've been presented that VMWare is listing those 32 SATA ports as having drives attached. (even though I assume none are?)
comment:5 by , 7 years ago
Sure, I switched all my virtual drives from SATA to IDE and removed IDE CDROM but that didn't help. Th problem goes away only when I disable SATA in .vmx file.
comment:6 by , 7 years ago
I also found this issue on an old laptop which have only an IDE (PATA) hard disk: during the boot process, stops at disk icon for about 6 - 7 seconds; I am totally sure that in past (eg with Alpah 4) this didn't occurred. Anyway, here there is a syslog grabbed after a reboot: https://dev.haiku-os.org/attachment/ticket/13904/syslog
comment:7 by , 7 years ago
Looks like a different issue as there are no COMRESET messages in the syslog.
comment:8 by , 7 years ago
Well, for what is worth, Haiku Alpha 4 boot quickly fast on my laptop, so is definitely a regression somewhere.
The AHCI driver currently iterates over each port and does a communication reset prior to starting up to try and make things as reliable as possible.
Each reset does include a small delay while the port stabilizes.
We could likely tune the delays better, however, this all leads me to a bigger question. Why is your VMWare Fusion presenting 32 SATA ports to the OS? The number of SATA ports is generally configurable (this is at least the case on VirtualBox and libvirtd)