Date: Thu, 18 Aug 2011 18:30:24 +0200 From: Christoph Hoffmann <christoph_hoffmann@me.com> To: John Baldwin <jhb@freebsd.org> Cc: freebsd-current@freebsd.org Subject: Re: gptzfsboot error using HP Smart Array P410i Controller Message-ID: <23B6937F-F261-4DC4-9168-96720251C98D@me.com> In-Reply-To: <201108161515.50127.jhb@freebsd.org> References: <E040B3A9-9B62-4545-ADC9-5CE3A9217024@me.com> <DA5CE78B-5AAB-4DFC-B9EE-BFCF45AFC16F@me.com> <9B96176A-7550-4B60-8F4D-0B667EEF7A15@me.com> <201108161515.50127.jhb@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Hello John, Thank you very much indeed for the hints. I am under the impression that we are facing a problem with = synchronisation=20 of CPU local caches. I also wasn't able to find any problem with memory=20= allocation. This box is equipped with: 1 Processor(s) detected, 4 total cores enabled, Hyperthreading is = enabled =20 Proc 1: Intel(R) Xeon(R) CPU E5630 @ 2.53GHz = =20 QPI Speed: 5.8 GT/s = =20 Changing the order of execution in zfsboot.c main() function to [=85] int main(void) { [=85] bios_getmem(); if (high_heap_size > 0) { [=85] bootinfo.bi_version =3D BOOTINFO_VERSION; bootinfo.bi_size =3D sizeof(bootinfo); bootinfo.bi_basemem =3D bios_basemem / 1024; bootinfo.bi_extmem =3D bios_extmem / 1024; bootinfo.bi_memsizes_valid++; /* bootinfo.bi_bios_dev =3D dsk->drive; */ bootinfo.bi_bios_dev =3D *(uint8_t *)PTOV(ARGS); dsk =3D malloc(sizeof(struct dsk)); dsk->drive =3D *(uint8_t *)PTOV(ARGS); dsk->type =3D dsk->drive & DRV_HARD ? TYPE_AD : TYPE_FD; dsk->unit =3D dsk->drive & DRV_MASK; dsk->slice =3D *(uint8_t *)PTOV(ARGS + 1) + 1; dsk->part =3D 0; dsk->start =3D 0; dsk->init =3D 0; bootdev =3D MAKEBOOTDEV(dev_maj[dsk->type], dsk->slice, dsk->unit, dsk->part), [=85] fixes the problem. Any comments will be appreciated. Best Regards, Christoph -- Christoph Hoffmann On Aug 16, 2011, at 9:15 PM, John Baldwin wrote: > On Tuesday, August 16, 2011 1:46:48 pm Christoph Hoffmann wrote: >> Setting high_heap_size to zero ends with an error: >>=20 >> Attempting Boot =46rom CD-ROM >> Attempting Boot =46rom Hard Drive (C:) >> 474: high_heap_size=3D0x0; dsk=3D0x1a000; &bootinfo=3D0x8694 >> malloc failure >=20 > Hmm, I am really at a loss for what is trashing 'dsk'. You could > possibly try adjusting bios_getmem() to force it to use > high_heap_size from bios_extmem (that is at the bottom of the > function) perhaps. However, that is mostly a bit of a guess that > some part of your BIOS is randomly zero'ing dsk. >=20 > I'm at a loss as to how the assignments to bootinfo would trash > 'dsk'. :( >=20 > --=20 > John Baldwin > _______________________________________________ > freebsd-current@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to = "freebsd-current-unsubscribe@freebsd.org"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?23B6937F-F261-4DC4-9168-96720251C98D>