-
Guest83
hello, I am having trouble installing any illumos based OS in virt-manager. i have tried omnios, triblix, openindiana, and smartos. all of them exhibit the same behavior. after getting to the menu where you are given the option for multi user boot / boot options / etc.. i get a kernel panic that flashes on the screen for less than a second before
-
Guest83
being sent back to SeaBIOS. i enabled the debugger and did a stack trace and got
-
Guest83
```
-
Guest83
kmdb_enter+0xb()
-
Guest83
debug_enter+0x75()
-
Guest83
panicsys+0x651()
-
Guest83
vpanic+0x15c()
-
Guest83
~panic+0x40()
-
Guest83
0xfffffffffb869f03()
-
Guest83
trap+0x999()
-
Guest83
cmntrap_pushed+0x3c()
-
Guest83
bcopy_ck_size+0xea()
-
Guest83
0xfffffffffb864faa()
-
Guest83
startup+0x5a()
-
Guest83
main+0x36()
-
Guest83
_locore_start+0x88()
-
Guest83
```
-
Guest83
couldnt find a bug report or anything that seemed to exactly match (possible i didnt look hard enough). is this a known issue? i have tried messing around with the configuration (different nproc, ram amount, remove / change devices)
-
jbk
it's a guess that it's somewhere in startup_modules
-
jbk
I would really try EFI
-
jbk
if you can
-
jbk
you can also try escaping to the loader prompt typing 'set prom_debug=1' then booting (either type 'boot' or 'menu' to return to the menu system and boot from there -- either way should work)
-
jbk
it will make the console fairly verbose, but might give you a better idea of where things are going wrong
-
Guest83
oof lol, yea switching to efi fixed it. thank you
-
Guest83
cant believe i didnt try that :facepalm:
-
jbk
it'd be nice to dig in deeper to understand what it's not liking there (though really everything these days should be using UEFI)
-
jbk
it's basically old enough to drink in the US now
-
jbk
:)
-
Guest83
hmm not really seeing anything useful it seems to me ??
-
Guest83
```
-
Guest83
../../i86pc/os/startup.c:2074: startup_vm() done
-
Guest83
../../i86pc/os/startup.c:2093: startup_tsc() starting...
-
Guest83
../../i86pc/os/timestamp.c:1028: Calibrating the TSC...
-
Guest83
../../i86pc/os/timestamp.c:1103: 'tsccpp[i]->tscc_source' is 'Hyper-V'
-
Guest83
../../i86pc/os/timestamp.c:1103: 'tsccpp[i]->tscc_source' is 'VMware'
-
Guest83
../../i86pc/os/timestamp.c:1103: 'tsccpp[i]->tscc_source' is 'PIT'
-
Guest83
../../i86pc/os/startup.c:2096: 'tsc_freq' is 0x10bb479b4
-
Guest83
../../i86pc/os/startup.c:1521: startup_modules() starting...
-
Guest83
panic[cpu0]/thread=fffffffffbca9420: BAD TRAP: type=e (#pf Page fault) rp=fffffffffbcaf0b0 addr=fffffe0604c07370
-
Guest83
#pf Page fault
-
Guest83
Bad kernel fault at addr=0xfffffe0604c07370
-
Guest83
```
-
jbk
so 4.5GHz?
-
jbk
oh they're gone
-
jbk
do we actually document the format for the names in driver_aliases anywhere?
-
jbk
e.g. for most pci/pciex you have pci<VENID>,<DEVID> but there are other variants to that as well
-
rmustacc
Probably not as well as we could. But I have a summary in
github.com/illumos/ipd/blob/master/ipd/0009/README.md jbk.
-
fenix
→ IPD 9: PCI Alias Disambiguation (published)
-
jbk
ahh thanks..
-
rmustacc
I think it'd probably be helpful to put something into maybe pci(4D) and pcie(4D).
-
rmustacc
Thoughts?
-
jbk
that was where I looked at first, so it would make sense to me at least..
-
jbk
rmustacc: when you originally started on the ice, driver, did you by any chance have any thoughts on how to manage the shared resources for cards w/ multiple ports? IIUC, like this card I'm testing has two ports, so 2 PFs, but IIUC, the total # of TX/RX queues (and a few other things) are per card, not per PF
-
jbk
with newer, bigger systems, it seems like it _might_ become something we might need to manage in the near(ish) future
-
jbk
(mostly wondering if we need any placeholders now to avoid problems if/when we do need to deal with that)
-
jbk
(if not, that's fine, just figure I'd ask in case you did)
-
rmustacc
In an ideal world we would have a shared nexus driver that enumerated ports. But lacking that I would do what I did with i40e where each port discovers its peers on the same PCI device and basically just divide up.
-
rmustacc
The nexus doesn't make sense due to the fact that they use a function per pf, so the i40e approach is what I would probably do off hand.
-
rmustacc
I don't really remember anything deeper there.
-
jbk
ok..
-
rmustacc
Look at i40e_device_t, i40e_device_find, etc.
-
jbk
(I was kinda wondering about the nexus driver bit because the other fun wrinkle is there's a chance -- thankfully not immediately -- that we might need something that does RDMA (which AFAIK would be either ice or mlxcx).. but from what _little_ i've looked suggests that might need it's own dip
-
jbk
(I really hope we don't, but not my call)
-
jbk
could I suppose just hang it off the ice node
-
rmustacc
If there's something more specific for the resource stuff, feel free to shoot me an e-mail jbk.
-
gitomat
[illumos-gate] 18333 stmf_sbd: get/load PP data ioctls must validate buffer sizes -- Toomas Soome <tsoome⊙mc>
-
sommerfeld
jbk: at the very least have visibility for each shared resource -- perhaps kstats for each shared resource showing how many you have total, how many are unallocated is free, and how many each port is using.
-
sommerfeld
if doing something to a port fails because the shared resource is overcommited, have sensible error messages explaining why..
-
jbk
sommerfeld: the big one is that (for example) this card has 2 PCI functions (2 physical ports) so 2 dips, but the TX and RX rings are shared (or maybe pooled might be a better way to describe it)
-
jbk
the card has (for example) 2K TX queues (that can be used for LSO, up to I think 16K total)
-
jbk
and AFAIK those 2K queues can be divided in any way you want between the two dips
-
jbk
(I need to look at the i40e stuff still)
-
jbk
but either you need to coordiate between them (and of course if there's another physical card, that's separate)
-
jbk
or just decide '2 ports? ok, i'll divide everything by 2' (or 4 if 4 ports, etc)
-
jbk
the odd/annoyign thing is you really want to attach a driver at the PCI device level, and let it enumerate the PCI functions, but we can't do that (AFAIK)
-
jbk
or something like that to better match what's happening
-
jbk
(though that's also probably not perfect either even if it was possible)
-
jbk
due to each function having their own cfgspace, etc.