NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/52147: deadlock when booting from USB disk



In article <20170409102500.293527A2BC%mollari.NetBSD.org@localhost>,
 <gnats-bugs%NetBSD.org@localhost> wrote:
>>Number:         52147
>>Category:       kern
>>Synopsis:       deadlock when booting from USB disk
>>Confidential:   no
>>Severity:       critical
>>Priority:       medium
>>Responsible:    kern-bug-people
>>State:          open
>>Class:          sw-bug
>>Submitter-Id:   net
>>Arrival-Date:   Sun Apr 09 10:25:00 +0000 2017
>>Originator:     Michael van Elst
>>Release:        NetBSD 7.99.67
>>Organization:
>-- 
>                                Michael van Elst
>Internet: mlelstv%serpens.de@localhost
>                                "A potential Snark may lurk in every tree."
>>Environment:
>	
>	
>System: NetBSD hoppa 7.99.67 NetBSD 7.99.67 (HOPPA) #6: Sun Apr 9
>02:46:58 CEST 2017
>mlelstv@gossam:/home/netbsd-current/obj.evbarm/home/netbsd-current/src/sys/arch/evbarm/compile/HOPPA evbarm
>Architecture: earmv6hf
>Machine: evbarm
>>Description:
>
>The latest changes to sd(4) to support FUA/DPO have a funny side effect
>when booting from USB disk (on a modular kernel).
>
>The requested settings trigger a SCSI error, since USB disks rarely support
>these commands.
>
>The scsipi layer tries to write error messages to the console using the
>scsiverbose module.
>
>On the first message, the scsiverbose module needs to be loaded from
>the same disk that is currently in error processing.
>
>-> instant deadlock.
>
>>How-To-Repeat:
>Boot a system, in this case an RPI, with root on a USB disk.
>
>>Fix:
>There are several errors.
>
>The FUA/DP0 support needs some refinement to not cause error messages
>on devices that do not support these settings.
>
>There needs to be some notion of "module load path is unavailable" so
>that autoloading a module doesn't happen when this would cause a
>deadlock. I think scsipi is the only such place for now. A quick
>solution is to just load scsiverbose unconditionally instead of
>on-demand.

Can you print the deadlock path? Or instructions how to reproduce it?

christos



Home | Main Index | Thread Index | Old Index