Bug 173078

Summary: Re: amd64/170677: FreeBSD 9.x does not boot if 2 hard disks are on system
Product: Base System Reporter: Harald von Fellenberg <productnews>
Component: amd64Assignee: freebsd-amd64 (Nobody) <amd64>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Unspecified   
Hardware: Any   
OS: Any   

Description Harald von Fellenberg 2012-10-25 18:40:00 UTC
Followup to my earlies bug report amd64/170677.

I instrumented the loader code (in /usr/src/sys/boot) with various
printf's to see where the delay occurs. Here are my findings:

1. in /usr/src/sys/boot/common/devopen.c around line 47:

    /* point to device-specific data so that device open can use it */
    f->f_devdata = dev;
    result = dev->d_dev->dv_open(f, dev);
    if (result != 0) {

the call to dev->d_dev->dv_open(f, dev) always blocks for around 15
seconds, both for existing and non-existing files. Why is that?

2. the loader opens about 19 existing files (among them the kernel at
/boot/kernel/kernel five times!) and tries to open about 18 non-existing
files (among them /boot/kernel/linker.hints twice). Each open adds about
15 seconds, so the complete time to get to the loader menu is around 10
to 11 minutes.

I do not know why this delay occurs, why it only occurs when 2 HDs are
present, and how it can be avoided. every help to solve this riddle is
appreciated!
Comment 1 Mark Linimon freebsd_committer freebsd_triage 2012-12-03 04:52:01 UTC
State Changed
From-To: open->closed

Misfiled followup to amd64/170677; content migrated.