Current-Users archive

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

Re: "bootinfo too big" netbooting amd64-8.0_BETA?



I'm just guessing, but since the list of bootinfo types was recently updated for maxv's pre-kern stuff, I might guess that we actually are overflowing the table. (The introduction of SVS might also have increased the number of things the bootloader needs to do.) If that's the case we should be able to just expand by increasing BTINFO_MAX value from 32 to 48 or even 64.

From src/sys/arch/x86/include/bootinfo.h we have

@@ -40,6 +40,7 @@
 #define BTINFO_USERCONFCOMMANDS	13
 #define BTINFO_EFI		14
 #define BTINFO_EFIMEMMAP	15
+#define BTINFO_PREKERN		16

 #define BTINFO_STR "bootpath", "rootdevice", "bootdisk", "netif", \
     "console", "biosgeom", "symtab", "memmap", "bootwedge", "modulelist", \




On Sat, 27 Jan 2018, Paul Goyette wrote:

Well, there's only one place I can find where that "bootinfo too big" message gets generated, src/sys/arch/i386/stand/lib/bootinfo.c:46

	...
	if (bootinfo->nentries >= BTINFO_MAX) {
		panic("bootinfo too big");
	}
	 bootinfo->entry[bootinfo->nentries++] = vtophys(what);
	...


Perhaps you could increase the limit in bootinfo.h (it's currently set to 32, which should be enough).

You might also add something at the beginning of bi_add (in bootinfo.c) to print the arguments.

printf("%s: what %p, type %d, size %d\n", __func__, what, type, size);

(Yes, here 'size' is an int, and not a size_t, so use %d vs %z!)

As far as the "scsiverbose should fail", yeah, you haven't gotten that far yet. At this point we're just creating the list of stuff that the bootloader needs to do, we haven't actually loaded anything yet.

I might also suggest filing a PR so the data in this thread doesn't get lost!

Thanks!


On Fri, 26 Jan 2018, John D. Baker wrote:

On Thu, 25 Jan 2018, John D. Baker wrote:

On Fri, 26 Jan 2018, Paul Goyette wrote:
Hmmm.  Can you provide the [module load messages] segment?

I'm not too familiar with the boot mechanism, but it is possible that
changes in modules' "require" lists could be resulting in more info
being stuffed into the bootinfo structure.  Did it generate messages
for _all_ modules specified in boot.cfg ?

For reference, from the "/boot.cfg" file:

load=acpiverbose
load=pciverbose
load=scsiverbose
load=usbverbose
load=miiverbose

On serial console after issusing 'consdev com0':

NetBSD/x86 PXE boot, Revision 5.1 (Sat Nov 18 23:07:27 UTC 2017) (from NetBSD 8.99.7)
Memory: 547/3659136 k
boot /netbsd -s
7853808+134256+1962896 [408314+519024+348660]=0xb38058
Loading /stand/amd64/8.0/modules/acpiverbose/acpiverbose.kmod
Loading /stand/amd64/8.0/modules/pciverbose/pciverbose.kmod
Loading /stand/amd64/8.0/modules/scsiverbose/scsiverbose.kmod
Loading /stand/amd64/8.0/modules/usbverbose/usbverbose.kmod
Loading /stand/amd64/8.0/modules/miiverbose/miiverbose.kmod
Loading /stand/amd64/8.0/modules/nfs/nfs.kmod
bootinfo too big

On video:

Boot fail


Likewise, with an alternate netbsd-8 kernel:

boot /netbsd-GENERIC_R5RS -s
18176760+813164+1283988 [1087755+1137336+790749]=0x16e0e00
Loading /stand/amd64/8.0/modules/acpiverbose/acpiverbose.kmod
Loading /stand/amd64/8.0/modules/pciverbose/pciverbose.kmod
Loading /stand/amd64/8.0/modules/scsiverbose/scsiverbose.kmod
Loading /stand/amd64/8.0/modules/usbverbose/usbverbose.kmod
Loading /stand/amd64/8.0/modules/miiverbose/miiverbose.kmod
Loading /stand/amd64/8.0/modules/nfs/nfs.kmod
bootinfo too big


Also, have you tried -current to see if the same problem exists?

Not on this machine, yet.  I can arrange to test -current when I
capture the module-loading messages for 8.0_BETA.


Attempt booting a -current (8.99.12) kernel:

NetBSD/x86 PXE boot, Revision 5.1 (Sat Nov 18 23:07:27 UTC 2017) (from NetBSD 8.99.7)
Memory: 547/3659136 k
boot /netbsd-current -s
7895672+138688+1958464 [454095+537144+361780]=0xb4ad80
Loading /stand/amd64/8.99.12/modules/acpiverbose/acpiverbose.kmod
Loading /stand/amd64/8.99.12/modules/pciverbose/pciverbose.kmod
Loading /stand/amd64/8.99.12/modules/scsiverbose/scsiverbose.kmod
Loading /stand/amd64/8.99.12/modules/usbverbose/usbverbose.kmod
Loading /stand/amd64/8.99.12/modules/miiverbose/miiverbose.kmod
Loading /stand/amd64/8.99.12/modules/nfs/nfs.kmod
bootinfo too big

An alternate -current kernel:

boot /netbsd-GENERIC_R5RS-current -s
18210152+817388+1279764 [1102810+1151232+801597]=0x16ea9c8
Loading /stand/amd64/8.99.12/modules/acpiverbose/acpiverbose.kmod
Loading /stand/amd64/8.99.12/modules/pciverbose/pciverbose.kmod
Loading /stand/amd64/8.99.12/modules/scsiverbose/scsiverbose.kmod
Loading /stand/amd64/8.99.12/modules/usbverbose/usbverbose.kmod
Loading /stand/amd64/8.99.12/modules/miiverbose/miiverbose.kmod
Loading /stand/amd64/8.99.12/modules/nfs/nfs.kmod
bootinfo too big


The "scsiverbose" module should actually fail as it's built into
the kernels I'm booting (custom config includes "GENERIC" and elides
superfluous options/devices).  Perhaps that occurs later and wasn't
reached when bootinfo was declared too big.

Again, so far, this one machine is the only one having this trouble.
It used to work.  It appears that I last booted the machine this way
as recently as 13 August 2017 (based on file dates in the machine's
NFS file system).

Other machines netboot -current (amd64 and i386 alike) with no problem.
Said other machines have no more than 3 hard disks.

--
|/"\ John D. Baker, KN5UKS               NetBSD     Darwin/MacOS X
|\ / jdbaker[snail]mylinuxisp[flyspeck]com    OpenBSD            FreeBSD
| X  No HTML/proprietary data in email.   BSD just sits there and works!
|/ \ GPGkeyID:  D703 4A7E 479F 63F8 D3F4  BD99 9572 8F23 E4AD 1645






+------------------+--------------------------+----------------------------+
| Paul Goyette     | PGP Key fingerprint:     | E-mail addresses:          |
| (Retired)        | FA29 0E3B 35AF E8AE 6651 | paul at whooppee dot com   |
| Kernel Developer | 0786 F758 55DE 53BA 7731 | pgoyette at netbsd dot org |
+------------------+--------------------------+----------------------------+

!DSPAM:5a6bc9e191311620173634!



+------------------+--------------------------+----------------------------+
| Paul Goyette     | PGP Key fingerprint:     | E-mail addresses:          |
| (Retired)        | FA29 0E3B 35AF E8AE 6651 | paul at whooppee dot com   |
| Kernel Developer | 0786 F758 55DE 53BA 7731 | pgoyette at netbsd dot org |
+------------------+--------------------------+----------------------------+


Home | Main Index | Thread Index | Old Index