00:01:13 tsoome: so for reasons I don't understand creating the isa device, vgatext, and hv_vmbus devices seems to avoid the problem (despite none of them using that physical address) 00:03:46 bug in the hypervisor? 00:03:58 i don't know.. 00:04:19 just when i skipped over that, things booted enough I could see we weren't attachign the devices we need for gen2 vms 00:04:36 so I was able to see it was because the ACPI device ID for the vmbus had changed (again) 00:05:17 (it still need to be upstreamed, but us as well as omnios all have the hyper-v support) 00:09:29 if this really is it, it will annoy me for reasons beyond the immedate bug 00:10:31 as we treat ACPI as a bolt on enumerator of last resort 08:07:58 "UEFI & Synthetic Video: Instead of a legacy VGA adapter, Gen 2 VMs use a synthetic frame buffer (via the VMBus) and UEFI native graphics. This requires the OS to support UEFI and VMBus drivers out of the box" 08:12:11 "Because Gen 2 VMs boot strictly via UEFI and require VMBus integration for basic functions (like keyboard, mouse, and storage), the guest operating system must have the Hyper-V integration components/Linux Integration Services (LIS) built-in to be fully functional." -- or FreeBSD IS or in our case IIS:) 08:13:45 "Because emulated hardware like ISA bridges and IDE controllers is gone, you instead interact with synthetic devices mapped directly to the VMBus (e.g., synthetic network adapter, synthetic SCSI controller, synthetic video)." 08:15:04 Does it mean, the vmbus needs to be set up earlier? 12:34:48 what I'm wonering (having slept on it).. the acpidev driver is what enumerates the vmbus driver 12:34:55 https://github.com/omniosorg/illumos-omnios/blob/master/usr/src/uts/i86pc/io/acpi/acpidev/acpidev_device.c#L235-L339 12:35:55 (this is the part I still feel we do wrong and only explicitly enumerate specific allowed ACPI devices and ignore the rest vs. enumerate them and ignore specific ones when needed) 12:36:20 as a part of that, it creates the vgatext device node if it's gen2 12:36:24 along with the vmbus 12:37:26 (the EFI fb works fine -- there is a vmbus-based framebuffer driver in linux, but not freebsd... i've not ported it since it seems most useful for having more integration of a guest's graphical environment) 12:38:00 but the bug is/was the HID changed with win2025 12:39:26 so none of that was happening 12:39:30 in that link 12:40:06 what I'm wondering is since there was no framebuffer device in the tree if we were maybe then still trying to use the early boot stuff as a result (even if we shouldn't) 12:44:08 i know you did some work about using the efi framebuffer in the past (but can't remember when)... I wonder if maybe the person that hit that on actual hardware with some variant of that (prior to the stuff you did) 12:49:54 framebuffer is probably sort of an exception actually -- we do get memory mapped fb from firmware and as long as that mapping is not changed, we can still use it (as the address is known). The FB device [driver] will enter into the game when we want to change the mapping (via resolution change). 12:55:18 the frustating part is if we actually did enumerate and create devices in the device tree as the default (instead of the exception) for ACPI, it would have had 'VMBus' as a 'compatible' property, and we could have used device_aliases to bind the vmbus driver to the node (and probably avoid a lot of this special casing, or at least be able to confine it better... probably could create the necessary devices 12:55:24 during _init in the vmbus driver) 13:02:43 but ACPI used to be unreliable and hence used as a fallback? 13:18:16 probably initially, but it's been decades since that's been a real problem 13:18:38 and basically every other OS uses it on systems ~26 years old or newer 13:19:17 it also would probably mean changing the layout of the device tree which could be a problem 14:33:12 jbk... I wonder if fun-problems like this motivated $UTS/oxide to happen? :) 14:35:25 i suspect that is things like uefi and acpi are solutions because hw companies wanted to 'value add' without having to wait on microsoft (or for customers to upgrade to $LATEST) 14:35:56 also, it means they don't have to actually document how things work if it's just handled by both 14:36:24 unfortunately, most of us are stuck with them 14:36:33 so it'd be nice to take advantage of what's there 14:38:08 Agreed. 14:38:15 But the pain involved here. 14:39:31 i'm actually curious with that 'project patina' if it gets far enough along if it could be used to produce basically 'uefi for BIOS systems' (there used to be something like that with edkII but just trying to get that building with all of their bespoke build tooling is a bit of a pain) 14:39:57 it'd be a nice way to handle older non-UEFI systems 14:40:02 (assuming it works of course) 14:41:16 so we could just assume in the OS 'you have UEFI' (it'd simplify quite a few things around boot, and also allow for some other nice things) 14:42:45 "When in doubt, add another level of indirection." - L. Peterson 14:42:58 heh... 14:43:08 "project patina" seems like a good application of that. 14:43:39 well it's more i think replacing edkII with a rust implementation 14:43:47 so 'uefi written in rust' 14:45:24 (which also means less bespoke build tooling since rust and cargo has an understanding about cross compilation 14:45:58 or at least, i hope it means that 16:59:29 hrm.. does mac requery the LSO support after you down/up an interface 16:59:51 (e.g. you need to turn it off without modfying a driver.conf file, update a boot archive, reboot) 16:59:54 up/down an interface via IP? 17:00:05 yeah or ifconfig 17:01:20 So, mac is going to fix that basically at attach or maybe start time, but probably at mac_register. 17:01:26 But it's been a while. 17:01:30 Separately, IP is going to ask and cache that. 17:04:12 drat.. guess I just have to do the slow method :) 17:08:06 I was looking at that codepath a few months ago and I seem to recall there was at least something that could cause cache invalidation for checksum offload.. 17:08:10 one moment.. 17:11:45 i'm guessing why it's probably not plumbed up even as a private dladm property in any driver 17:11:50 err that's why 17:13:27 ip_verify_nce checks the cache; looks like it's handled when neighbor cache entries are deleted (conditional on nce_is_condemned == B_TRUE) 19:07:03 probably more for omnios for now, but it also appears that LSO isn't working in hyper-v either... guess I get to read up on NDIS :P 19:57:05 [illumos-gate] 18178 Makefile.master: .cc.a should PROCESS_COMMENT first, then AR -- Toomas Soome 22:03:01 [illumos-gate] 18188 loader: update .gitignore for userboot -- Toomas Soome