Re: ZFS boot problems with memory > 1MB

From: Guido Falsi <mad_at_madpilot.net>
Date: Fri, 9 Apr 2010 13:01:23 +0200
On Wed, Feb 24, 2010 at 09:55:27AM -0500, John Baldwin wrote:
> On Tuesday 23 February 2010 7:59:58 pm Brandon Gooch wrote:
> > On Tue, Feb 23, 2010 at 10:40 PM, John Baldwin <jhb_at_freebsd.org> wrote:
> > > On Tuesday 23 February 2010 5:04:03 pm Brandon Gooch wrote:
> > >> On Tue, Feb 23, 2010 at 3:03 PM, John Baldwin <jhb_at_freebsd.org> wrote:
[...]
> > >>
> > >> Adding printf statements to drvread():
> > >>
> > >> printf("dsk->xxx: %u\n", dsk->xxx):
> > >>
> > >> Output:
> > >>
> > >> error 1 lba 48
> > >> dsk->drive: 0
> > >> dsk->type: 0
> > >> dsk->unit: 0
> > >> dsk->slice: 0
> > >> dsk->part: 0
> > >> dsk->init: 0
> > >> dsk->start: 978673664
> > >
> > > This value looks a bit high, do you have a partition that starts at an 
> offset
> > > of about 466GB into the disk?
> > >
> > >> error 1 lba 1
> > >> dsk->drive: 0
> > >> dsk->type: 0
> > >> dsk->unit: 0
> > >> dsk->slice: 0
> > >> dsk->part: 0
> > >> dsk->init: 0
> > >> dsk->start: 0
> > >> No ZFS pools located, can't boot
> > >
> > > Sorry, I meant members of the 'packet' variable, though dsk->start is 
> useful
> > > to have as well.
> > >
> > > --
> > > John Baldwin
> > >
> > 
> > Here it is (with some crazy dsk stuff included):
> > 
> > error 1 lba 48
> > packet.len: 16
> > packet.seg: 8192
> > packet.count: 16
> > packet.lba: 47
> > packet.off: 0
> > dsk->drive: 4294967295
> > dsk->slice: 4294967295
> > dsk->type: 4294967295
> > dsk->part: 4294967295
> > dsk->unit: 4294967295
> > dsk->init: 4294967295
> > dsk->start: 4294967295
> 
> These are all -1 now which looks wrong.  The raw LBA being 47 instead of 48 
> would seem to indicate that that is the case though.
> 
> > error 1 lba 1
> > packet.len: 16
> > packet.seg: 8704
> > packet.count: 1
> > packet.lba: 1
> > packet.off: 0
> 
> Odd that the lba here isn't 0.
> 
> Can you add some more printfs, maybe to probe_drive() to try narrow down how 
> many types that is being invoked and for which drive numbers?

Hi!

I'm seeing a very similar (perhaps the same) problem on a server I'm
trying to configure.

Is there any news about this issue?

This server is an HP DL360G6 server. Unluckily it has a smartarray thing
on it, the disk are behind it.

I wanted to configure a 6 drive raidz2 with the driver
present(configured as stand alone raid0 units, this is as near you can
go to have the smartarray give direct access to the drive to the
system, I know this is not optimal.)

After following the RootOnZFS instructions after boot the system gives
me the same symptoms the parent gets. Old gptzfsboot is not an option
here. It fails to malloc. I imagine 128K heap is not enough for my
setup.

I tried adding some more printfs but it outputs really a lot of data.
especially from drive_probe(). I see it cycling through the drives and
reading various addresses, what surprises me is it gets very high LBA
numbers. For example the last try(which remains on screen) looks like
this:

packet.len = 16
packet.count = 16
packet.off = 0
packet.seg = 8192
packet.lba = 1716867670
dsk->drive = 133
dsk->type = 0
dsk->unit = 5
dsk->slice = 0
dsk->part = 0
dsk->init = 0
dsk->start = 1716867430

Hope this information helps.

I will need some guidance to tinker zfsboot.c code any more tha this :(

This is a new machine I'm trying to configure. At present it's available
for any experiment.

At some time I will have to make it work anyway(even resorting to an UFS
/boot ior similar) but I have some time to experiment with it.

So I'm available for any further help or testing needed.

Thank you in advance for any help!

-- 
Guido Falsi <mad_at_madpilot.net>
Received on Fri Apr 09 2010 - 09:01:34 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:02 UTC