panic: rw_enter: vmmaplk locking against myself

2018-02-13 Thread Sebastien Marie
Hi,

I would like to report a panic encountered on one of my host (i386)
running -current (Feb 7, 2018).

The host is a desktop running with ddb.panic=0, so I don't have lot of
information (just the backtrace).

I report it in order to let people know about a possible problem. I am
not able to reproduce it.


panic: rw_enter: vmmaplk locking against myself
Starting stack trace...
panic() at panic+0xc1
panic() at panic+0xc1
_rw_enter(d0c1a118,41) at _rw_enter+0x21d
vm_map_lock_try_ln(d0c1a114,d0c1a114,101323) at vm_map_lock_try_ln+0x43
uvm_map(d0c1a114,f54296f4,2000,0,,,0) at uvm_map+0x171
km_alloc(2000,d0a0d630,d0a0d6e4,d0a0d71c) at km_alloc+0x171
_bus_dmamem_map(d0bd9a38,d2f7cbcc,1,2000,d2f7cbc8,5) at _bus_dmamem_map+0x3b
usb_block_allocmem(d0bd9a38,2000,10,f54297e0) at usb_block_allocmem+0xfb
usb_allocmem(d2faf000,1800,10,f54297e0) at usb_allocmem+0x77
ohci_alloc_std(d2faf000) at ohci_alloc_std+0xbf
ohci_device_intr_done(d2f4cd48) at ohci_device_intr_done+0x29
usb_transfer_complete(d2f4cd48) at usb_transfer_complete+0x18b
ohci_softintr(d2faf000) at ohci_softintr+0xd7
softintr_dispatch(1) at softintr_dispatch+0x92
Xsoftnet() at Xsoftnet+0x12
--- interrupt ---
_rb_insert(d0b78fb4,d2f57fac,d2e59008) at _rb_insert+0xad
uaddr_bestfit_insert(d0c1a114,d2f57fa0,d2e59008) at uaddr_bestfit_insert+0x1a
uvm_mapent_free_insert(d0c1a114,d2f57fa0,d2e59008) at 
uvm_mapent_free_insert+0x52
uvm_map_fix_space(d0c1a114,d2e59008,f53ea000,f53eb000,0) at 
uvm_map_fix_space+0x1ec
uvm_mapent_mkfree(d0c1a114,d2e59648,f54299bc,f5429a00,1) at 
uvm_mapent_mkfree+0xd8
uvm_unmap_remove(d0c1a114,f53ea000,f53eb000,f5429a00,0,1) at 
uvm_unmap_remove+0x285
sys_kbind(d2f2416c,f5429a78,f5429a70) at sys_kbind+0x28d
syscall() at syscall+0x1a0
--- syscall (number -813857448) ---
end of kernel
0x6:
End of stack trace.
syncing disks... 25 14 done


On this host, only the mouse is connected using usb.

$ doas usbdevs -v
Controller /dev/usb0:
addr 1: high speed, self powered, config 1, EHCI root hub(0x), SiS(0x1039), 
rev 1.00
 port 1 powered
 port 2 powered
 port 3 powered
 port 4 powered
 port 5 powered
 port 6 powered
Controller /dev/usb1:
addr 1: full speed, self powered, config 1, OHCI root hub(0x), SiS(0x1039), 
rev 1.00
 port 1 powered
 port 2 addr 2: low speed, power 100 mA, config 1, Microsoft 3-Button Mouse 
with IntelliEye(TM)(0x0040), Microsoft(0x045e), rev 3.00
 port 3 powered
Controller /dev/usb2:
addr 1: full speed, self powered, config 1, OHCI root hub(0x), SiS(0x1039), 
rev 1.00
 port 1 powered
 port 2 powered
 port 3 powered

-- 
Sebastien Marie


OpenBSD 6.2-current (GENERIC) #397: Wed Feb  7 18:59:22 MST 2018
dera...@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC
cpu0: AMD Sempron(tm) 2400+ ("AuthenticAMD" 686-class, 256KB L2 cache) 1.69 GHz
cpu0: 
FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE,MPC,MMXX,3DNOW2,3DNOW
real mem  = 1006059520 (959MB)
avail mem = 973824000 (928MB)
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: date 03/10/06, BIOS32 rev. 0 @ 0xfdb10, SMBIOS rev. 2.3 @ 
0xf0630 (21 entries)
bios0: vendor American Megatrends Inc. version "P2.10" date 03/10/2006
bios0: American Megatrends Inc. K7S41
acpi0 at bios0: rev 0
acpi0: sleep states S0 S1 S3 S4 S5
acpi0: tables DSDT FACP APIC
acpi0: wakeup devices PS2K(S4) USB1(S4) USB2(S4) EHCI(S4) LAN_(S4) MDM_(S4) 
AUD_(S4) PCI0(S4)
acpitimer0 at acpi0: 3579545 Hz, 24 bits
acpimadt0 at acpi0 addr 0xfee0: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges
cpu0: apic clock running at 335MHz
ioapic0 at mainbus0: apid 2 pa 0xfec0, version 11, 24 pins
acpiprt0 at acpi0: bus 0 (PCI0)
acpicpu0 at acpi0: C1(@1 halt!)
acpipwrres0 at acpi0: URP1, resource for UAR1
acpipwrres1 at acpi0: URP2
acpipwrres2 at acpi0: FDDP
acpipwrres3 at acpi0: LPTP
acpibtn0 at acpi0: PWRB
"PNPB02F" at acpi0 not configured
"PNPB006" at acpi0 not configured
bios0: ROM list: 0xc/0x8000
pci0 at mainbus0 bus 0: configuration mode 1 (no bios)
pchb0 at pci0 dev 0 function 0 "SiS 741 PCI" rev 0x03
sisagp0 at pchb0
agp0 at sisagp0: aperture at 0xd000, size 0x400
ppb0 at pci0 dev 1 function 0 "SiS 648FX AGP" rev 0x00
pci1 at ppb0 bus 1
vga1 at pci1 dev 0 function 0 "SiS 6330 VGA" rev 0x00
wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
pcib0 at pci0 dev 2 function 0 "SiS 85C503 System" rev 0x25
pciide0 at pci0 dev 2 function 5 "SiS 5513 EIDE" rev 0x00: 741: DMA, channel 0 
wired to compatibility, channel 1 wired to compatibility
wd0 at pciide0 channel 0 drive 0: 
wd0: 16-sector PIO, LBA48, 39205MB, 80293248 sectors
wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 6
pciide0: channel 1 disabled (no drives)
auich0 at pci0 dev 2 function 7 "SiS 7012 AC97" rev 0xa0: apic 2 int 18, SiS7012
ac97: codec id 0x434d4983 (C-Media Electronics CMI9761A+)
audio0 at 

Hyper-V 6.2 amd install - timeout interval 1/2 prescribed interval

2018-02-13 Thread Megan
We have recently installed OpenBSD 6.2 onto the latest version of 
Microsoft's Hyper-V.  It is all running smoothly with the exception of 
one aspect, namely timeouts - the latter are expiring in 1/2 their 
prescribed interval.  The following script shows the issue:


# while 1
? sleep 1
? date
? end
Wed Feb 14 10:19:23 NZDT 2018
Wed Feb 14 10:19:24 NZDT 2018
Wed Feb 14 10:19:25 NZDT 2018
Wed Feb 14 10:19:25 NZDT 2018
Wed Feb 14 10:19:26 NZDT 2018
Wed Feb 14 10:19:26 NZDT 2018
Wed Feb 14 10:19:27 NZDT 2018
Wed Feb 14 10:19:28 NZDT 2018

The issue is also apparent with commands such as "vmstat 1" - this 
returns two reports per second as opposed to one.


We will investigate further next week with getitimer(2).   A bug report 
is filed now however as various searches have failed to identify others 
with the same issue suggesting this late version of Hyper-V may be the 
underlying trigger.


Detail pertinent to the issue:

(a) OpenBSD dmesg (amd64 6.2):
OpenBSD 6.2 (GENERIC.MP) #134: Tue Oct  3 21:22:29 MDT 2017
dera...@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP
real mem = 4278124544 (4079MB)
avail mem = 4141449216 (3949MB)
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 2.3 @ 0xf8ec0 (216 entries)
bios0: vendor American Megatrends Inc. version "090006" date 04/28/2016
bios0: Microsoft Corporation Virtual Machine
acpi0 at bios0: rev 0
acpi0: sleep states S0 S5
acpi0: tables DSDT FACP WAET SLIC OEM0 SRAT APIC OEMB
acpi0: wakeup devices
acpitimer0 at acpi0: 3579545 Hz, 32 bits
acpihve0 at acpi0
acpimadt0 at acpi0 addr 0xfee0: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: Intel(R) Xeon(R) Gold 5120 CPU @ 2.20GHz, 1709.96 MHz
cpu0:
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,SS,HTT,SSE3,PCLMUL,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,HV,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,3DNOWP,FSGSBASE,BMI1,HLE,AVX2,SMEP,BMI2,ERMS,RTM,MPX,AVX512F,AVX512DQ,RDSEED,ADX,SMAP,CLFLUSHOPT,AVX512CD,AVX512BW,AVX512VL 


cpu0: 256KB 64b/line 8-way L2 cache
cpu0: smt 0, core 0, package 0
mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges
cpu0: apic clock running at 114MHz
cpu1 at mainbus0: apid 1 (application processor)
cpu1: Intel(R) Xeon(R) Gold 5120 CPU @ 2.20GHz, 1253.22 MHz
cpu1:
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,SS,HTT,SSE3,PCLMUL,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,HV,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,3DNOWP,FSGSBASE,BMI1,HLE,AVX2,SMEP,BMI2,ERMS,RTM,MPX,AVX512F,AVX512DQ,RDSEED,ADX,SMAP,CLFLUSHOPT,AVX512CD,AVX512BW,AVX512VL 


cpu1: 256KB 64b/line 8-way L2 cache
cpu1: smt 0, core 1, package 0
ioapic0 at mainbus0: apid 0 pa 0xfec0, version 11, 24 pins
, remapped to apid 0
acpiprt0 at acpi0: bus 0 (PCI0)
acpicpu0 at acpi0: C1(@1 halt!)
acpicpu1 at acpi0: C1(@1 halt!)
"PNP0F03" at acpi0 not configured
"PNP0700" at acpi0 not configured
"VMBus" at acpi0 not configured
"Hyper_V_Gen_Counter_V1" at acpi0 not configured
pvbus0 at mainbus0: Hyper-V 10.0
hyperv0 at pvbus0: protocol 3.0, features 0x2e7f
hyperv0: heartbeat, kvp, shutdown, timesync
hvs0 at hyperv0 channel 2: ide, protocol 6.2
scsibus1 at hvs0: 2 targets
sd0 at scsibus1 targ 0 lun 0:  SCSI3 0/direct
fixed naa.60022480d06a442ed63ddfc772b7efe4
sd0: 1024MB, 512 bytes/sector, 2097152 sectors, thin
hvn0 at hyperv0 channel 14: NVS 5.0 NDIS 6.30, address 00:15:5d:53:2a:18
hvs1 at hyperv0 channel 15: scsi, protocol 6.2
scsibus2 at hvs1: 2 targets
sd1 at scsibus2 targ 0 lun 0:  SCSI3 0/direct
fixed naa.600224805fb780b116ca1e1edad6094c
sd1: 61440MB, 512 bytes/sector, 125829120 sectors, thin
pci0 at mainbus0 bus 0
pchb0 at pci0 dev 0 function 0 "Intel 82443BX" rev 0x03
pcib0 at pci0 dev 7 function 0 "Intel 82371AB PIIX4 ISA" rev 0x01
pciide0 at pci0 dev 7 function 1 "Intel 82371AB IDE" rev 0x01: DMA,
channel 0 wired to compatibility, channel 1 wired to compatibility
pciide0: channel 0 disabled (no drives)
atapiscsi0 at pciide0 channel 1 drive 0
scsibus3 at atapiscsi0: 2 targets
cd0 at scsibus3 targ 0 lun 0:  ATAPI 5/cdrom
removable
cd0(pciide0:1:0): using PIO mode 4, DMA mode 2
piixpm0 at pci0 dev 7 function 3 "Intel 82371AB Power" rev 0x02: SMBus
disabled
vga1 at pci0 dev 8 function 0 "Microsoft VGA" rev 0x00
wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
isa0 at pcib0
isadma0 at isa0
fdc0 at isa0 port 0x3f0/6 irq 6 drq 2
com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
com1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo
pckbc0 at isa0 port 0x60/5 irq 1 irq 12
pckbd0 at pckbc0 (kbd slot)
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pms0 at pckbc0 (aux slot)
wsmouse0 at pms0 mux 0
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
vscsi0 at root
scsibus4 at vscsi0: 256 

Re: Hyper-V 6.2 amd install - timeout interval 1/2 prescribed interval

2018-02-13 Thread Mike Larkin
On Wed, Feb 14, 2018 at 11:01:00AM +1300, Megan wrote:
> We have recently installed OpenBSD 6.2 onto the latest version of
> Microsoft's Hyper-V.  It is all running smoothly with the exception of one
> aspect, namely timeouts - the latter are expiring in 1/2 their prescribed
> interval.  The following script shows the issue:
> 
> # while 1
> ? sleep 1
> ? date
> ? end
> Wed Feb 14 10:19:23 NZDT 2018
> Wed Feb 14 10:19:24 NZDT 2018
> Wed Feb 14 10:19:25 NZDT 2018
> Wed Feb 14 10:19:25 NZDT 2018
> Wed Feb 14 10:19:26 NZDT 2018
> Wed Feb 14 10:19:26 NZDT 2018
> Wed Feb 14 10:19:27 NZDT 2018
> Wed Feb 14 10:19:28 NZDT 2018
> 
> The issue is also apparent with commands such as "vmstat 1" - this returns
> two reports per second as opposed to one.

Interesting that people have reported exactly the opposite with kvm/qemu
(timeouts taking twice as long).

I'll check a few Hyper-V servers and see what I come up with and report back.

-ml

> 
> We will investigate further next week with getitimer(2).   A bug report is
> filed now however as various searches have failed to identify others with
> the same issue suggesting this late version of Hyper-V may be the underlying
> trigger.
> 
> Detail pertinent to the issue:
>
> (a) OpenBSD dmesg (amd64 6.2):
> OpenBSD 6.2 (GENERIC.MP) #134: Tue Oct  3 21:22:29 MDT 2017
> dera...@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP
> real mem = 4278124544 (4079MB)
> avail mem = 4141449216 (3949MB)
> mpath0 at root
> scsibus0 at mpath0: 256 targets
> mainbus0 at root
> bios0 at mainbus0: SMBIOS rev. 2.3 @ 0xf8ec0 (216 entries)
> bios0: vendor American Megatrends Inc. version "090006" date 04/28/2016
> bios0: Microsoft Corporation Virtual Machine
> acpi0 at bios0: rev 0
> acpi0: sleep states S0 S5
> acpi0: tables DSDT FACP WAET SLIC OEM0 SRAT APIC OEMB
> acpi0: wakeup devices
> acpitimer0 at acpi0: 3579545 Hz, 32 bits
> acpihve0 at acpi0
> acpimadt0 at acpi0 addr 0xfee0: PC-AT compat
> cpu0 at mainbus0: apid 0 (boot processor)
> cpu0: Intel(R) Xeon(R) Gold 5120 CPU @ 2.20GHz, 1709.96 MHz
> cpu0:
> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,SS,HTT,SSE3,PCLMUL,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,HV,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,3DNOWP,FSGSBASE,BMI1,HLE,AVX2,SMEP,BMI2,ERMS,RTM,MPX,AVX512F,AVX512DQ,RDSEED,ADX,SMAP,CLFLUSHOPT,AVX512CD,AVX512BW,AVX512VL
> 
> cpu0: 256KB 64b/line 8-way L2 cache
> cpu0: smt 0, core 0, package 0
> mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges
> cpu0: apic clock running at 114MHz
> cpu1 at mainbus0: apid 1 (application processor)
> cpu1: Intel(R) Xeon(R) Gold 5120 CPU @ 2.20GHz, 1253.22 MHz
> cpu1:
> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,SS,HTT,SSE3,PCLMUL,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,HV,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,3DNOWP,FSGSBASE,BMI1,HLE,AVX2,SMEP,BMI2,ERMS,RTM,MPX,AVX512F,AVX512DQ,RDSEED,ADX,SMAP,CLFLUSHOPT,AVX512CD,AVX512BW,AVX512VL
> 
> cpu1: 256KB 64b/line 8-way L2 cache
> cpu1: smt 0, core 1, package 0
> ioapic0 at mainbus0: apid 0 pa 0xfec0, version 11, 24 pins
> , remapped to apid 0
> acpiprt0 at acpi0: bus 0 (PCI0)
> acpicpu0 at acpi0: C1(@1 halt!)
> acpicpu1 at acpi0: C1(@1 halt!)
> "PNP0F03" at acpi0 not configured
> "PNP0700" at acpi0 not configured
> "VMBus" at acpi0 not configured
> "Hyper_V_Gen_Counter_V1" at acpi0 not configured
> pvbus0 at mainbus0: Hyper-V 10.0
> hyperv0 at pvbus0: protocol 3.0, features 0x2e7f
> hyperv0: heartbeat, kvp, shutdown, timesync
> hvs0 at hyperv0 channel 2: ide, protocol 6.2
> scsibus1 at hvs0: 2 targets
> sd0 at scsibus1 targ 0 lun 0:  SCSI3 0/direct
> fixed naa.60022480d06a442ed63ddfc772b7efe4
> sd0: 1024MB, 512 bytes/sector, 2097152 sectors, thin
> hvn0 at hyperv0 channel 14: NVS 5.0 NDIS 6.30, address 00:15:5d:53:2a:18
> hvs1 at hyperv0 channel 15: scsi, protocol 6.2
> scsibus2 at hvs1: 2 targets
> sd1 at scsibus2 targ 0 lun 0:  SCSI3 0/direct
> fixed naa.600224805fb780b116ca1e1edad6094c
> sd1: 61440MB, 512 bytes/sector, 125829120 sectors, thin
> pci0 at mainbus0 bus 0
> pchb0 at pci0 dev 0 function 0 "Intel 82443BX" rev 0x03
> pcib0 at pci0 dev 7 function 0 "Intel 82371AB PIIX4 ISA" rev 0x01
> pciide0 at pci0 dev 7 function 1 "Intel 82371AB IDE" rev 0x01: DMA,
> channel 0 wired to compatibility, channel 1 wired to compatibility
> pciide0: channel 0 disabled (no drives)
> atapiscsi0 at pciide0 channel 1 drive 0
> scsibus3 at atapiscsi0: 2 targets
> cd0 at scsibus3 targ 0 lun 0:  ATAPI 5/cdrom
> removable
> cd0(pciide0:1:0): using PIO mode 4, DMA mode 2
> piixpm0 at pci0 dev 7 function 3 "Intel 82371AB Power" rev 0x02: SMBus
> disabled
> vga1 at pci0 dev 8 function 0 "Microsoft VGA" rev 0x00
> wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
> wsdisplay0: screen 1-5 added (80x25, vt100 emulation)

Re: Hyper-V 6.2 amd install - timeout interval 1/2 prescribed interval

2018-02-13 Thread Mark Kettenis
> Date: Tue, 13 Feb 2018 15:30:39 -0800
> From: Mike Larkin 
> 
> On Wed, Feb 14, 2018 at 11:01:00AM +1300, Megan wrote:
> > We have recently installed OpenBSD 6.2 onto the latest version of
> > Microsoft's Hyper-V.  It is all running smoothly with the exception of one
> > aspect, namely timeouts - the latter are expiring in 1/2 their prescribed
> > interval.  The following script shows the issue:
> > 
> > # while 1
> > ? sleep 1
> > ? date
> > ? end
> > Wed Feb 14 10:19:23 NZDT 2018
> > Wed Feb 14 10:19:24 NZDT 2018
> > Wed Feb 14 10:19:25 NZDT 2018
> > Wed Feb 14 10:19:25 NZDT 2018
> > Wed Feb 14 10:19:26 NZDT 2018
> > Wed Feb 14 10:19:26 NZDT 2018
> > Wed Feb 14 10:19:27 NZDT 2018
> > Wed Feb 14 10:19:28 NZDT 2018
> > 
> > The issue is also apparent with commands such as "vmstat 1" - this returns
> > two reports per second as opposed to one.
> 
> Interesting that people have reported exactly the opposite with kvm/qemu
> (timeouts taking twice as long).
> 
> I'll check a few Hyper-V servers and see what I come up with and report back.

Well, this one is probably related to:

> cpu0: Intel(R) Xeon(R) Gold 5120 CPU @ 2.20GHz, 1709.96 MHz

and/or:

> cpu0: apic clock running at 114MHz

which almost certainly means the calibration of the timecounter is wrong.

  sysctl kern.timecounter.choice=acpitimer0

might improve things.