Date: Sat, 15 May 2021 20:55:15 +0200 From: Harry Schmalzbauer <freebsd@omnilan.de> To: Wei Hu <weh@microsoft.com>, Chris Knight <stryqx@gmail.com>, "freebsd-virtualization@freebsd.org" <freebsd-virtualization@freebsd.org> Subject: Re: FreeBSD 12.1 i386 on Hyper-V Fails to Mount Root Message-ID: <ef85f9bb-ad8b-978e-da65-c887e8e8498e@omnilan.de> In-Reply-To: <c6013e67-4a37-43e1-4452-568d3ef6e5a7@omnilan.de> References: <CAHgj5TTKdiOU4bRu3SCBwKqnQaMqxUFynodh5MLBE7%2BycBiPYw@mail.gmail.com> <SG2P153MB0208B4185C3EB54120F10E74BB030@SG2P153MB0208.APCP153.PROD.OUTLOOK.COM> <c6013e67-4a37-43e1-4452-568d3ef6e5a7@omnilan.de>
next in thread | previous in thread | raw e-mail | index | archive | help
Am 14.05.2021 um 18:44 schrieb Harry Schmalzbauer: > Am 16.10.2020 um 11:35 schrieb Wei Hu via freebsd-virtualization: >>> : >>> >> Did you try 12.0? Maybe something changed in 12.x causes failure. >> I386 is not well tested on Hyper-V. I will try to reproduce and take >> a look. > > The regression happened before 12.0. > Today I stumbled across this problem too and tried 11.4 (/May 8th, > 2020) /sucessfully, while 12.0 (/Oct 19th, 2018)/ is failing with i386 > releases. > > One commit which is in 12 but not in 11.4 is r332489. > : : : > Unfortunately beyond my skills. In sys/x86/x86/local_apic.c, I added this debug printf: for (idx = IPI_DYN_FIRST; idx <= IPI_DYN_LAST; idx++) { printf("DEBUG: native_lapic_ipi_alloc(), idx = %i\n", idx); ip = &idt[idx]; func = (ip->gd_hioffset << 16) | ip->gd_looffset; if ((!pti && func == (uintptr_t)&IDTVEC(rsvd)) || (pti && func == (uintptr_t)&IDTVEC(rsvd_pti))) { vector = idx; setidt(vector, ipifunc, SDT_APIC, SEL_KPL, GSEL_APIC); break; } } This is my latest attempt to see if at least the origin of my fault tracing matches. It does. From #define IPI_DYN_FIRST (APIC_IPI_INTS + 9) in sys/x86/include/apicvar.h I expected to see 252, 253 and 254, which I sucessfully verified. Now comes the part I cannot read: (uintptr_t)&IDTVEC(rsvd) IDTVEC(rsvd) seems to be a assembler makro from sys/i386/i386/exception.s But now it doesn't make any sense for me to dig further, I simply do not understand it. Unfortunately having broken i386 support on Hyper-V is not a cosmetic issue. Removing "device hyperv" from kernel gives access to the v-hdd via legacy IDE/ada, but then I have no NIC. Choosing between missing HDD and missing network support is hard nowadays ;-) Any help getting i386 up and running back on Hyper-V highly appreciated! 11.4 is the latest working version, all i386-releases starting with 12.0 don't work! Thanks, -harry
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?ef85f9bb-ad8b-978e-da65-c887e8e8498e>