Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 12 Nov 2025 19:10:54 +0000
From:      bugzilla-noreply@freebsd.org
To:        virtualization@FreeBSD.org
Subject:   [Bug 290735] bhyve resume hangs
Message-ID:  <bug-290735-27103-EU7E1NcvtZ@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-290735-27103@https.bugs.freebsd.org/bugzilla/>
References:  <bug-290735-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=290735

--- Comment #1 from Roman Bogorodskiy <novel@FreeBSD.org> ---
A bit info from attaching gdb to the stuck bhyve process:

(gdb) info threads                                                              

  Id   Target Id                                       Frame                    
  1    LWP 100945 of process 57077 "mevent"            _kevent () at
_kevent.S:4                                                                     
  2    LWP 514902 of process 57077 "blk-2:0-0"         _umtx_op_err () at
/usr/src/lib/libsys/amd64/_umtx_op_err.S:38                                     
  3    LWP 514903 of process 57077 "blk-2:0-1"         _umtx_op_err () at
/usr/src/lib/libsys/amd64/_umtx_op_err.S:38                                     
  4    LWP 514904 of process 57077 "blk-2:0-2"         _umtx_op_err () at
/usr/src/lib/libsys/amd64/_umtx_op_err.S:38                                     
  5    LWP 514905 of process 57077 "blk-2:0-3"         _umtx_op_err () at
/usr/src/lib/libsys/amd64/_umtx_op_err.S:38                                     
  6    LWP 514906 of process 57077 "blk-2:0-4"         _umtx_op_err () at
/usr/src/lib/libsys/amd64/_umtx_op_err.S:38                                     
  7    LWP 514907 of process 57077 "blk-2:0-5"         _umtx_op_err () at
/usr/src/lib/libsys/amd64/_umtx_op_err.S:38                                     
  8    LWP 514908 of process 57077 "blk-2:0-6"         _umtx_op_err () at
/usr/src/lib/libsys/amd64/_umtx_op_err.S:38                                     
  9    LWP 514909 of process 57077 "blk-2:0-7"         _umtx_op_err () at
/usr/src/lib/libsys/amd64/_umtx_op_err.S:38                                     
  10   LWP 514910 of process 57077 "rfb"               _read () at _read.S:4    
* 11   LWP 514911 of process 57077 "vcpu 0"            vm_loop
(ctx=0x22061e821000, vcpu=0x22061e80d1f0) at
/usr/src/usr.sbin/bhyve/bhyverun.c:641                                          
  12   LWP 514912 of process 57077 "vcpu 1"            ioctl () at ioctl.S:4    
  13   LWP 514929 of process 57077 "checkpoint thread" _accept () at
_accept.S:4                                                                     
  14   LWP 526525 of process 57077 "rfbout"            fast_crc32
(crcval=3104297178, buf=<optimized out>, len=<optimized out>) at
/usr/src/usr.sbin/bhyve/rfb.c:444                                               
(gdb) list                                                                      

636             vmrun.cpuset = &dmask;                                          
637             vmrun.cpusetsize = sizeof(dmask);                               
638                                                                             
639             while (1) {                                                     
640                     error = vm_run(vcpu, &vmrun);                           
641                     if (error != 0)                                         
642                             break;                                          
643                                                                             
644                     exitcode = vme.exitcode;                                
645                     if (exitcode >= VM_EXITCODE_MAX ||                      
(gdb) p vme                                                                     

$6 = {exitcode = VM_EXITCODE_PAUSE, inst_length = 2, rip =
18446744072317830082, u = {inout = {bytes = 0, in = 0, string = 1, rep = 1,
port = 65232, eax = 40}, inout_str = {inout = {bytes = 0, in = 0, string = 1,
rep = 1, port = 65232, eax = 40}, paging = {       
        cr3 = 0, cpl = 0, cpu_mode = CPU_MODE_REAL, paging_mode =
PAGING_MODE_FLAT}, rflags = 4357496832, cr0 = 12884901888, index = 3, count =
14359727411886588043, addrsize = 1082130631, seg_name = 256215471, seg_desc =
{base = 1125900041078790, limit = 0,      
        access = 0}, cs_d = 49, cs_base = 240}, paging = {gpa = 176073736432,
fault_type = 0}, inst_emul = {gpa = 176073736432, gla = 0, cs_base = 0, cs_d =
0, paging = {cr3 = 4357496832, cpl = 0, cpu_mode = CPU_MODE_64BIT, paging_mode
= PAGING_MODE_64}, vie = {  
        inst = "\213\200\360\000\000\000H\307\307\000\200@\257\211E", num_valid
= 15 '\017', num_processed = 6 '\006', addrsize = 8 '\b', opsize = 4 '\004',
rex_w = 0 '\000', rex_r = 0 '\000', rex_x = 0 '\000', rex_b = 0 '\000',
rex_present = 0 '\000',            
        repz_present = 0 '\000', repnz_present = 0 '\000', opsize_override = 0
'\000', addrsize_override = 0 '\000', segment_override = 0 '\000', mod = 2
'\002', reg = 0 '\000', rm = 0 '\000', ss = 0 '\000', vex_present = 0 '\000',
vex_l = 0 '\000',               
        index = 0 '\000', base = 0 '\000', disp_bytes = 4 '\004', imm_bytes = 0
'\000', scale = 0 '\000', vex_reg = 0 '\000', vex_pp = 0 '\000', _sparebits = 0
'\000', _sparebytes = "\000", base_register = 0, index_register = 49,
segment_register = 49,            
        displacement = 240, immediate = 0, decoded = 1 '\001', _sparebyte = 0
'\000', op = {op_byte = 139 '\213', op_type = 1 '\001', op_flags = 0}}}, vmx =
{status = -19922704, exit_reason = 40, exit_qualification = 0, inst_type = 0,
inst_error = 0}, svm = {     
      exitcode = 176073736432, exitinfo1 = 0, exitinfo2 = 0}, bpt =
{inst_length = -19922704}, dbg = {trace_trap = -19922704, pushf_intercept = 40,
tf_shadow_val = 0, paging = {cr3 = 0, cpl = 0, cpu_mode = CPU_MODE_REAL,
paging_mode = 62529536}}, msr = {          
      code = 4275044592, wval = 0}, spinup_ap = {vcpu = -19922704, rip = 0},
hlt = {rflags = 176073736432, intr_status = 0}, ioapic_eoi = {vector =
-19922704}, suspended = {how = 4275044592}, ipi = {mode = 4275044592, vector =
40 '('}, task_switch = {             
      tsssel = 240, ext = 40, errcode = 0, errcode_valid = 0, reason =
TSR_CALL, paging = {cr3 = 0, cpl = 62529536, cpu_mode = CPU_MODE_PROTECTED,
paging_mode = PAGING_MODE_FLAT}}}}                                              

(gdb) n                                                                         

644                     exitcode = vme.exitcode;                                

(gdb) n                                                                         

645                     if (exitcode >= VM_EXITCODE_MAX ||                      

(gdb) n                                                                         

646                         vmexit_handlers[exitcode] == NULL) {                

(gdb) n                                                                         

645                     if (exitcode >= VM_EXITCODE_MAX ||                      

(gdb) n                                                                         

651                     rc = (*vmexit_handlers[exitcode])(ctx, vcpu, &vmrun);   

(gdb) n                                                                         

653                     switch (rc) {                                           

(gdb) p rc                                                                      

$7 = 0                                                                          
(gdb)  

Apparently the userland part of bhyve cycling is looping within the
VM_EXITCODE_PAUSE state.

-- 
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-290735-27103-EU7E1NcvtZ>