> On 11. Mar 2025, at 12:08, Carsten Grzemba via illumos-discuss > <discuss@lists.illumos.org> wrote: > > Recently I see an crash dump with > > NOTICE: SAM-QFS: samfs1: Initiated mount filesystem > > panic[cpu3]/thread=fffffe0019e3dc20: > BAD TRAP: type=7 (#nm Device not available) rp=fffffe0019e3d780 addr=0 > > looking on the stack of the faulted thread > > fffffe0019e3d690 unix:die+d3 () > fffffe0019e3d770 unix:trap+855 () > fffffe0019e3d780 unix:cmntrap+e9 () > fffffe0019e3da10 samfs:sam_map_block+6f () > fffffe0019e3dc00 samfs:sam_block_thread+1574 () > fffffe0019e3dc10 unix:thread_start+b () > > and the the disassembled function sam_map_block > > > sam_map_block::dis > sam_map_block: pushq %rbp > sam_map_block+1: movl %ecx,%eax > sam_map_block+3: shrl $0xc,%ecx > sam_map_block+6: andb $0xef,%ah > sam_map_block+9: andl $0x1,%ecx > sam_map_block+0xc: xorl $0x1,%ecx > sam_map_block+0xf: movq %rsp,%rbp > sam_map_block+0x12: pushq %r15 > sam_map_block+0x14: pushq %r14 > sam_map_block+0x16: movq %rsi,%r14 > sam_map_block+0x19: pushq %r13 > sam_map_block+0x1b: movq %r8,%r13 > sam_map_block+0x1e: pushq %r12 > sam_map_block+0x20: pushq %rbx > sam_map_block+0x21: subq $0x178,%rsp > sam_map_block+0x28: movl %eax,0xfffffffffffffecc(%rbp) > sam_map_block+0x2e: leaq (%rsi,%rdx),%rax > sam_map_block+0x32: movq 0x3e8(%rdi),%r12 > sam_map_block+0x39: movq %rdx,0xfffffffffffffec0(%rbp) > sam_map_block+0x40: movq %r9,0xfffffffffffffea8(%rbp) > sam_map_block+0x47: movb %cl,0xfffffffffffffecb(%rbp) > sam_map_block+0x4d: movq %rax,0xfffffffffffffe98(%rbp) > sam_map_block+0x54: movq %r12,0xfffffffffffffe70(%rbp) > sam_map_block+0x5b: movq %rdi,%r12 > sam_map_block+0x5e: nop > sam_map_block+0x60: testq %r13,%r13 > sam_map_block+0x63: je +0x18 <sam_map_block+0x7d> > sam_map_block+0x65: xorl %esi,%esi > sam_map_block+0x67: movq $0x0,0x30(%r13) > sam_map_block+0x6f: pxor %xmm0,%xmm0 > > I build this kernel module with GCC14. > > I have no clear understanding what "Bad trap: type=7 (#nm Device not > available) " means. Looking on the assembler instruction "pxor %xmm0,%xmm0" > seems that here special multimedia registers are used. > > Is it possible the show the contents of this registers in mdb? > What does "Bad trap: type=7" means? >
We do build kernel with: Makefile.uts:CFLAGS_uts += $(STAND_FLAGS_$(CLASS)) Makefile.master:STAND_FLAGS_64 = $($(MACH64)_STAND_FLAGS) Makefile.master:amd64_STAND_FLAGS= -xmodel=kernel $(NO_SIMD) Makefile.master:NO_SIMD= -_gcc=-mno-mmx -_gcc=-mno-sse Which does switch off the use of FP registers. If you actually do need those registers, then you need to use in kernel API to handle the FP context properly. rgds, toomas ------------------------------------------ illumos: illumos-discuss Permalink: https://illumos.topicbox.com/groups/discuss/Te2d5885af4d3b9f6-M8832f9c60aeebd52c0efa001 Delivery options: https://illumos.topicbox.com/groups/discuss/subscription