-
gitomat
[illumos-gate] 17863 libsff_8472 test needs update to libsff_8472.out post-17827 -- Jason King <jason.brian.king⊙gc>
-
gitomat
[illumos-gate] 17855 bhyve: VirtIO devices do not support MSI -- Andy Fiddaman <illumos⊙fn>
-
gitomat
[illumos-gate] 17869 aio_done: concurrent pollq completions race with aio_cleanup_exit -- Andy Fiddaman <illumos⊙fn>
-
jbk
tsoome:
pasteboard.co/M7aqSd1zk20m.png ever seen that before?
-
tsoome
thats a lot of memory to allocate... for contiguous chunk.
-
tsoome
uefi? no i have not seen it, but with uefi I would not be too surprised...
-
jbk
oh I didn't check to see if it was doing a UEFI boot or not.. I just sort of assumed it was...
-
tsoome
show efi-version
-
jbk
ok it is uefi
-
jbk
let me open up this ISO image and see if I can figure out why the archive was that large..
-
tsoome
memmap will show the current map, but thats more like statistics... we can not do much about it.
-
jbk
hrm.. the boot archive itself is about 200MB.. though that's compressed...
-
jbk
i'm guessing that's probably the uncompressed amount? e.g. loader uncompresses it when it reads it into memory?
-
tsoome
uncompressed, yes. because thats how our current "rootfs" image implementation is built. I guess its coming from time where ufs was considered to be good choice there and block level compression was not there at the time;)
-
tsoome
or hsfs for that matter...
-
jbk
having to have every go binary have it's own copy of the go runtime probably doesn't help with size :)
-
jbk
hmm.. but even omnios seems to either take a _really_ long time, or is hanging (but it does at least jump into the kernel)
-
jbk
(it's a dell amd box)
-
richlowe
why do you have go in your boot archive?
-
richlowe
that should be things we need to boot and mount root, exclusively.
-
richlowe
(see also why /usr/kernel, even, isn't there)
-
tsoome
that depends on the desired outcome, isnt it so;)
-
richlowe
sure, that's why I'm asking what the desired outcome is
-
jbk
i mean binaries written in go
-
richlowe
me too
-
jbk
whicn includes our isntaller
-
richlowe
ok, ok
-
jbk
and our install image
-
richlowe
so it's not a boot archive it's a miniroot
-
richlowe
pulls lever, moves points, switches tracks
-
jbk
though doesn't seem to matter... even this omnios ISO is hanging after it enumerates the serial ports
-
jbk
and sending an NMI (despite kmdb being set) seems to be acting like the goggles
-
jbk
(does nothing)
-
richlowe
can you hit esc fast enough to play around at the prompt?
-
richlowe
and then toomas can show you memory maps, etc.
-
richlowe
and do your install images contain the boot archive hash?
-
richlowe
if we even get far enough to try to check it :(
-
richlowe
I think the first thing I would like to know is whether the memory I put the boot archive contents in actually exists
-
richlowe
and the second thing is to double check it's actually memory
-
jbk
... and of course kmdb also doesn't accept keypresses..
-
jbk
i really need to figure out what the missing bit there...
-
jbk
because like I don't think I've found a server less than 5 years old where kmdb works from whatever BMC's KVM they have
-
jbk
well at least 5 years old...
-
richlowe
not the easiest thing, given your debugger and keyboard don't work
-
richlowe
but I guess I'd start on where we poll and hope for the best from there
-
richlowe
printf and dreams
-
richlowe
worth checking whether it never works, or whether `-d` is just too soon, too
-
jbk
dropping on at boot doesn't work at least..
-
jbk
err in
-
jbk
i'm hoping i can maybe get SOL working
-
jbk
though every vendor makes it more complicated than it probably shuold be
-
jbk
since I think almost no one uses it (but perhaps us)
-
jbk
tsoome: if i change the serial port settings, is tehre a way for loader to 'reread' them?
-
tsoome
change where?
-
tsoome
in firmware?
-
jbk
well loader spits out one line and then nothing when I setup console redirection
-
tsoome
your port is 115200?
-
jbk
yes
-
tsoome
booting from disk?
-
jbk
ISO
-
jbk
well trying to at least
-
tsoome
does it provide /boot/solaris/bootenv.rc?
-
jbk
i have no idea, i'm trying an omnios iso since it seems to be slimmer
-
jbk
and it can at least load the kernel
-
tsoome
it probably does. if the firmware allows, set port to 9600
-
tsoome
problem is, bootenv.rc is delivered with port settings 9600,8,n,1,- and it will override what you get from firmware...
-
tsoome
(and some systems will hung when you try to do that, and some systems will just lose input till kernel driver is loaded).
-
jbk
i see loading /boot/defaults/loader.conf then nothing
-
jbk
from the serial consoel window
-
tsoome
yes, because bootenv.rc does its thing....
-
jbk
heh..
-
richlowe
yeah, that's what toomas is trying to explain I think
-
richlowe
we need defaults that are good and carry through
-
richlowe
but ug
-
jbk
so I changed the setting in bios to 9600... still that from loader, but then if I do select ttyb, the kernel actually prints out on ttyb
-
richlowe
like, loader should know things, and should tell the OS what it learned, and the OS should trust it
-
richlowe
like anything else that goes through the bootinfo
-
richlowe
right?
-
richlowe
or does x86 have a smarter way to get early console access?
-
tsoome
-
fenix
→ CODE REVIEW 3327: 16330 loader: SPCR needs better handling (NEW) |
illumos.org/issues/16330
-
tsoome
we can make some steps to protect us, but IMO its time to nuke tty lines from bootenv.rc.
-
richlowe
right that's what I meant, shouldn't the default be "discovered from loader"
-
richlowe
given here in the future, it's not really a predictable thing
-
richlowe
9600,8,n,1 is not a great default anymore, and it's not obviously there's a better one
-
richlowe
the 8,n,1 are fine I suppose
-
tsoome
yep
-
jbk
on the plus side, using bloody seems to get to userland, but then can't find the install media... so progress
-
jbk
(given the stable was dieing after enumerating teh asy devices, I wonder if maybe some of those fixes are the difference)
-
richlowe
that sounds plausible
-
richlowe
unfortunately, the fixes came before the debugging help
-
tsoome
but your console is on serial, so you can not boot -B disable-asy=true ?:)
-
jbk
yeah, I'd still like to figure out what needs to be done for kmdb to work better
-
richlowe
on aarch64 we still don't/can't use asy, for unknown reasons
-
richlowe
I keep meaning to merge the newer fixes and see if they fix the older fixes
-
richlowe
rather than having an Nth copy/paste of that driver
-
tsoome
kmdb as started with -kd?
-
richlowe
I believe jbk had said so
-
richlowe
that's why I asked if `-d` was just too soon to work in that context
-
richlowe
I have considered, again on aarch64, adding a separate debug_enter later in boot when we were firing on all cylinders
-
richlowe
like, just before sched()
-
richlowe
so `-d` was as soon as possible, and a hypothetical `-D` was when everything would definitely work
-
tsoome
kmdb does basically rely on keyboard IO port acess, but if the keyboard is usb device and they did stop providing the emulation.... then there is no keyboard for kmdb.
-
richlowe
I was pretyt sure kmdb would poll usb in a weird cooperative way
-
richlowe
jlevon: memory man?
-
tsoome
kmdb loaded with -k may have chance for that, if it will bind itself to usb keyboard (with poll mode available), but -kd can not, usb is not available for i86pc/boot/ bits.
-
tsoome
altho, it would be nice if kmdb would continue on its own when started with -kd and there is no usable input device...
-
jlevon
I have no memory of kmdb doing usb io stuff. but my memory is ... weak
-
richlowe
I thought I'd run into something with polledio in the name that seemed like magic that looked like it was for that, when I was porting
-
richlowe
but my memory is no bettter
-
richlowe
it does look like there is code that steals cons_polledio and uses it
-
richlowe
but as tsoome said, not that early in boot
-
richlowe
(which is where my `-D` idea came in, where it could help)
-
jlevon
yeah, that exists. just dunno if or how that does usb. only ever explicitly saw it doing port io
-
jbk
yeah, probably need usb to do polling...
-
jbk
well assuming these virtual devices are presented as USB
-
sommerfeld
richlowe: yeah, -D as you describe it makes sense as a pragmatic measure when the console is iffy.
-
jbk
oh to have PCI ID decoding in kmdb :)
-
jbk
while loader seems to dislike the serial port, after tweakign the speed in the BIOS setting, the kernel seems ok with it...
-
jbk
and omnios bloody gets to userland
-
jbk
except that we don't seem to attach any drivers for the virtual cdrom
-
jbk
tsoome: how is loader allocating that memory? is it calling AllocatePool or AllocatePages() ?
-
tsoome
for modules? AllocatePages(), see efi/loader/copy.c
-
tsoome
but. when we are to jump to kernel, we switch off boot services (so we will "own" the machine - no more memory map changes), we copy kernel in place (fixed location - we need to pray hard its actually usable), followed by modules -- the final location must be below 4GB or dboot will blow us up (32-bit code).
-
richlowe
we should fix that
-
richlowe
though nothing you can do about the fixed kernel
-
richlowe
well, nothing you should do on a whim anyway
-
richlowe
a pic kernel is possible, but frustrating to debug. a pie kernel is probably an adventure too far, unless you _really_ need it
-
richlowe
there's downsides to all of loader relocating unix, dboot relocating unix, and unix relocating unix
-
richlowe
references internal to unix, that is.
-
tsoome
better have some sleep...
-
jbk
i kinda want to take the zfs bits from loader and turn it into a UEFI filesystem driver (so you could also for example have zpool / zfs commands from the uefi shell or browse a dataset (read only))