Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 23 Mar 2025 18:26:09 +0000
From:      bugzilla-noreply@freebsd.org
To:        virtualization@FreeBSD.org
Subject:   [Bug 285415] [Hyper-V] i386 panic during vm_phys_early_startup()
Message-ID:  <bug-285415-27103-6wTQ8vtgBM@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-285415-27103@https.bugs.freebsd.org/bugzilla/>
References:  <bug-285415-27103@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D285415

--- Comment #8 from Dimitry Andric <dim@FreeBSD.org> ---
(In reply to Mark Johnston from comment #7)
I tried this out, even adding an assertion that the range [KPTphys, KPTphys=
 +
ptoa(nkpt)> falls into the range allocated by getmemsize(), which is [KERNL=
OAD,
trunc_page(firstaddr)>. While the boot then seems to continue quite far, it
still dies in the end, with:

---<<BOOT>>---
MP Configuration Table version 1.4 found at 0x4f4ba0
APIC: Using the MADT enumerator.
Copyright (c) 1992-2025 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 15.0-CURRENT #8 main-n275975-5963423232e8-dirty: Sun Mar 23 19:19:29
CET 2025
    dim@hfbsd15b:/usr/obj/usr/src/i386.i386/sys/GENERIC i386
FreeBSD clang version 19.1.7 (https://github.com/llvm/llvm-project.git
llvmorg-19.1.7-0-gcd708029e0b2)
WARNING: WITNESS option enabled, expect reduced performance.
WARNING: 32-bit kernels are deprecated and may be removed in FreeBSD 15.0.
DBG /usr/src/sys/vm/vm_phys.c(2043) vm_phys_early_startup:
vm_phys_early_nsegs=3D1
DBG /usr/src/sys/vm/vm_phys.c(2046) vm_phys_early_startup:
vm_phys_early_segs[0]=3D{start=3D800000, end=3D2500000, domain=3D0}
DBG /usr/src/sys/vm/vm_phys.c(2050) vm_phys_early_startup: calling
vm_phys_add_seg(start=3D800000, end=3D2500000)
DBG /usr/src/sys/vm/vm_phys.c(517) vm_phys_add_seg: calling
vm_phys_create_seg(paddr=3D800000, VM_LOWMEM_BOUNDARY=3D1000000)
DBG /usr/src/sys/vm/vm_phys.c(424) _vm_phys_create_seg: enter, start=3D8000=
00,
end=3D1000000, domain=3D0
DBG /usr/src/sys/vm/vm_phys.c(432) _vm_phys_create_seg: vm_phys_nsegs=3D0
DBG /usr/src/sys/vm/vm_phys.c(436) _vm_phys_create_seg: seg[ 0]=3D{start=3D=
0,
end=3D0, domain=3D0
DBG /usr/src/sys/vm/vm_phys.c(447) _vm_phys_create_seg: seg[ 0]=3D{start=3D=
800000,
end=3D1000000, domain=3D0
DBG /usr/src/sys/vm/vm_phys.c(448) _vm_phys_create_seg: seg=3D0x186b804,
vm_phys_segs=3D0x186b804
DBG /usr/src/sys/vm/vm_phys.c(529) vm_phys_add_seg: calling
vm_phys_create_seg(paddr=3D1000000, end=3D2500000)
DBG /usr/src/sys/vm/vm_phys.c(424) _vm_phys_create_seg: enter, start=3D1000=
000,
end=3D2500000, domain=3D0
DBG /usr/src/sys/vm/vm_phys.c(432) _vm_phys_create_seg: vm_phys_nsegs=3D1
DBG /usr/src/sys/vm/vm_phys.c(436) _vm_phys_create_seg: seg[ 0]=3D{start=3D=
0,
end=3D0, domain=3D0
DBG /usr/src/sys/vm/vm_phys.c(438) _vm_phys_create_seg: seg[-1]=3D{start=3D=
800000,
end=3D1000000, domain=3D0
DBG /usr/src/sys/vm/vm_phys.c(447) _vm_phys_create_seg: seg[ 0]=3D{start=3D=
1000000,
end=3D2500000, domain=3D0
DBG /usr/src/sys/vm/vm_phys.c(448) _vm_phys_create_seg: seg=3D0x186b824,
vm_phys_segs=3D0x186b804
DBG /usr/src/sys/vm/vm_phys.c(529) vm_phys_add_seg: calling
vm_phys_create_seg(paddr=3D1000, end=3D9f000)
DBG /usr/src/sys/vm/vm_phys.c(424) _vm_phys_create_seg: enter, start=3D1000,
end=3D9f000, domain=3D0
DBG /usr/src/sys/vm/vm_phys.c(432) _vm_phys_create_seg: vm_phys_nsegs=3D2
DBG /usr/src/sys/vm/vm_phys.c(436) _vm_phys_create_seg: seg[ 0]=3D{start=3D=
0,
end=3D0, domain=3D0
DBG /usr/src/sys/vm/vm_phys.c(438) _vm_phys_create_seg: seg[-1]=3D{start=3D=
1000000,
end=3D2500000, domain=3D0
DBG /usr/src/sys/vm/vm_phys.c(436) _vm_phys_create_seg: seg[ 0]=3D{start=3D=
1000000,
end=3D2500000, domain=3D0
DBG /usr/src/sys/vm/vm_phys.c(438) _vm_phys_create_seg: seg[-1]=3D{start=3D=
800000,
end=3D1000000, domain=3D0
DBG /usr/src/sys/vm/vm_phys.c(436) _vm_phys_create_seg: seg[ 0]=3D{start=3D=
800000,
end=3D1000000, domain=3D0
DBG /usr/src/sys/vm/vm_phys.c(447) _vm_phys_create_seg: seg[ 0]=3D{start=3D=
1000,
end=3D9f000, domain=3D0
DBG /usr/src/sys/vm/vm_phys.c(448) _vm_phys_create_seg: seg=3D0x186b804,
vm_phys_segs=3D0x186b804
DBG /usr/src/sys/vm/vm_phys.c(529) vm_phys_add_seg: calling
vm_phys_create_seg(paddr=3D100000, end=3D800000)
DBG /usr/src/sys/vm/vm_phys.c(424) _vm_phys_create_seg: enter, start=3D1000=
00,
end=3D800000, domain=3D0
DBG /usr/src/sys/vm/vm_phys.c(432) _vm_phys_create_seg: vm_phys_nsegs=3D3
DBG /usr/src/sys/vm/vm_phys.c(436) _vm_phys_create_seg: seg[ 0]=3D{start=3D=
0,
end=3D0, domain=3D0
DBG /usr/src/sys/vm/vm_phys.c(438) _vm_phys_create_seg: seg[-1]=3D{start=3D=
1000000,
end=3D2500000, domain=3D0
DBG /usr/src/sys/vm/vm_phys.c(436) _vm_phys_create_seg: seg[ 0]=3D{start=3D=
1000000,
end=3D2500000, domain=3D0
DBG /usr/src/sys/vm/vm_phys.c(438) _vm_phys_create_seg: seg[-1]=3D{start=3D=
800000,
end=3D1000000, domain=3D0
DBG /usr/src/sys/vm/vm_phys.c(436) _vm_phys_create_seg: seg[ 0]=3D{start=3D=
800000,
end=3D1000000, domain=3D0
DBG /usr/src/sys/vm/vm_phys.c(438) _vm_phys_create_seg: seg[-1]=3D{start=3D=
1000,
end=3D9f000, domain=3D0
DBG /usr/src/sys/vm/vm_phys.c(447) _vm_phys_create_seg: seg[ 0]=3D{start=3D=
100000,
end=3D800000, domain=3D0
DBG /usr/src/sys/vm/vm_phys.c(448) _vm_phys_create_seg: seg=3D0x186b824,
vm_phys_segs=3D0x186b804
DBG /usr/src/sys/vm/vm_phys.c(529) vm_phys_add_seg: calling
vm_phys_create_seg(paddr=3D2500000, end=3Df7ff0000)
DBG /usr/src/sys/vm/vm_phys.c(424) _vm_phys_create_seg: enter, start=3D2500=
000,
end=3Df7ff0000, domain=3D0
DBG /usr/src/sys/vm/vm_phys.c(432) _vm_phys_create_seg: vm_phys_nsegs=3D4
DBG /usr/src/sys/vm/vm_phys.c(436) _vm_phys_create_seg: seg[ 0]=3D{start=3D=
0,
end=3D0, domain=3D0
DBG /usr/src/sys/vm/vm_phys.c(438) _vm_phys_create_seg: seg[-1]=3D{start=3D=
1000000,
end=3D2500000, domain=3D0
DBG /usr/src/sys/vm/vm_phys.c(447) _vm_phys_create_seg: seg[ 0]=3D{start=3D=
2500000,
end=3Df7ff0000, domain=3D0
DBG /usr/src/sys/vm/vm_phys.c(448) _vm_phys_create_seg: seg=3D0x186b884,
vm_phys_segs=3D0x186b804
DBG /usr/src/sys/vm/vm_phys.c(529) vm_phys_add_seg: calling
vm_phys_create_seg(paddr=3D100000000, end=3D1ff4ab000)
DBG /usr/src/sys/vm/vm_phys.c(424) _vm_phys_create_seg: enter, start=3D1000=
00000,
end=3D1ff4ab000, domain=3D0
DBG /usr/src/sys/vm/vm_phys.c(432) _vm_phys_create_seg: vm_phys_nsegs=3D5
DBG /usr/src/sys/vm/vm_phys.c(436) _vm_phys_create_seg: seg[ 0]=3D{start=3D=
0,
end=3D0, domain=3D0
DBG /usr/src/sys/vm/vm_phys.c(438) _vm_phys_create_seg: seg[-1]=3D{start=3D=
2500000,
end=3Df7ff0000, domain=3D0
DBG /usr/src/sys/vm/vm_phys.c(447) _vm_phys_create_seg: seg[
0]=3D{start=3D100000000, end=3D1ff4ab000, domain=3D0
DBG /usr/src/sys/vm/vm_phys.c(448) _vm_phys_create_seg: seg=3D0x186b8a4,
vm_phys_segs=3D0x186b804
Trampoline disposition 0xfe87a4c0
VT(vga): text 80x25
Hyper-V Version: 10.0.26100 [SP3]
=20
Features=3D0xae7f<VPRUNTIME,TMREFCNT,SYNIC,SYNTM,APIC,HYPERCALL,VPINDEX,REF=
TSC,IDLE,TMFREQ>
  PM Features=3D0x20 [C2]
  Features3=3D0xe0bed7b2<DEBUG,XMMHC,IDLE,NUMA,TMFREQ,SYNCMC,CRASH,NPIEP>
  Recommends: 00900c2c 00000fff
  Limits: Vcpu:240 Lcpu:2048 Int:5952
  HW Features: 0000000e, AMD: 00000000
Timecounter "Hyper-V" frequency 10000000 Hz quality 2000
....
hms0: <Hyper-V Tablet> on hidbus0
hms0: 5 buttons and [XYW] coordinates ID=3D0
panic: invalid 1st page, ofs 0x3985000, len 2048
cpuid =3D 3
time =3D 1742754087
KDB: stack backtrace:
db_trace_self_wrapper(f7,152db3c0,24baf780,3985000,800,...) at
db_trace_self_wrapper+0x28/frame 0x36eb0028
vpanic(141533a,36eb0064,36eb0064,36eb0080,132bb87,...) at vpanic+0xf4/frame
0x36eb0044
panic(141533a,3985000,0,800,3327f6d0,...) at panic+0x14/frame 0x36eb0058
storvsc_xferbuf_prepare(26c37800,24baf780,2,0) at
storvsc_xferbuf_prepare+0x147/frame 0x36eb0080
bus_dmamap_load_mem(24ba8100,24ba8180,36eb00d4,132ba40,26c37800,1) at
bus_dmamap_load_mem+0x2f2/frame 0x36eb00b4
bus_dmamap_load_ccb(24ba8100,24ba8180,3327f6d0,132ba40,26c37800,1) at
bus_dmamap_load_ccb+0x4a/frame 0x36eb00f4
storvsc_action(2b11b180,3327f6d0) at storvsc_action+0x3a7/frame 0x36eb0140
xpt_run_devq(2b117080,3326f000,28c88e40,2b117090,3327f6d0,...) at
xpt_run_devq+0x287/frame 0x36eb017c
xpt_action_default(3327f6d0) at xpt_action_default+0x3c6/frame 0x36eb01a0
scsi_action(3327f6d0) at scsi_action+0x19/frame 0x36eb01b8
dastart(33253180,3327f6d0) at dastart+0x30d/frame 0x36eb01f4
xpt_run_allocq(33253180,480) at xpt_run_allocq+0x8b/frame 0x36eb021c
cam_iosched_schedule(33268e80,33253180) at cam_iosched_schedule+0x21/frame
0x36eb0230
dastrategy(332d7754) at dastrategy+0x64/frame 0x36eb024c
g_disk_start(38ad9000,333b9430,332e6f00,1000,0,...) at g_disk_start+0x469/f=
rame
0x36eb02ac
g_io_request(38ad9000,24998dc0,200,0,332ffe00,...) at g_io_request+0x26b/fr=
ame
0x36eb02d4
g_part_start(333b9430,3707f814,332e6a80,1000,0,...) at g_part_start+0x114/f=
rame
0x36eb034c
g_io_request(333b9430,15642f40,36eb0398,20b3513,4e,...) at
g_io_request+0x26b/frame 0x36eb0374
vdev_geom_io_start(333e23c0,4,36594223,0,41,...) at
vdev_geom_io_start+0x26f/frame 0x36eb03a0
zio_vdev_io_start(333e23c0,4,36593cab,1df16d7,1e14d3b,...) at
zio_vdev_io_start+0x559/frame 0x36eb03e0
zio_nowait(333e23c0,36eb0440,1ffc930,2,2032ca0,...) at zio_nowait+0x143/fra=
me
0x36eb0420
vdev_mirror_io_start(37ff9000,33346000,37ff9000,2157040,36eb047c,...) at
vdev_mirror_io_start+0x13b/frame 0x36eb044c
zio_vdev_io_start(37ff9000,1df16d7,1e14d3b,1e185c7,1e185a1,...) at
zio_vdev_io_start+0x559/frame 0x36eb048c
zio_execute(37ff9000,1,36eb0524,fcf452,37ff9360,...) at zio_execute+0x93/fr=
ame
0x36eb04c4
taskq_run_ent(37ff9360,1) at taskq_run_ent+0x1f/frame 0x36eb04d4
taskqueue_run_locked(152db3c0,1a55074,36eb0568,36eb0554,f2e09b,...) at
taskqueue_run_locked+0x192/frame 0x36eb0524
taskqueue_thread_loop(1cecbef0,36eb0568) at taskqueue_thread_loop+0xae/frame
0x36eb0538
fork_exit(fd0090,1cecbef0,36eb0568,0,0,...) at fork_exit+0x6b/frame 0x36eb0=
554
fork_trampoline() at 0xffc0348e/frame 0x36eb0554
--- kthread start
KDB: enter: panic
[ thread pid 0 tid 100179 ]
Stopped at      kdb_enter+0x34: movl    $0,kdb_why

But this could very well be another issue, something in the storvsc stuff w=
hich
is (AFAICT) a Hyper-V specific disk driver.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-285415-27103-6wTQ8vtgBM>