On 2021/11/29 22:50, Martin Pieuchot wrote:
> On 24/11/21(Wed) 11:16, Martin Pieuchot wrote:
> > Diff below unlock the bottom part of the UVM fault handler.  I'm
> > interested in squashing the remaining bugs.  Please test with your usual
> > setup & report back.
> 
> Thanks to all the testers, here's a new version that includes a bug fix.
> 
> Tests on !x86 architectures are much appreciated!

Running here on amd64 and arm64 (plus I added WITNESS to kernel config on
arm64 which is only for x86 in your diff). No failures so far, though
the machine is quiet (mostly just running conserver + NSD) so it's not
the best test ever - if somebody has a more active machine that would be
good to get tested.

i386 will get a good workout shortly (mkr'ing now).

I have one lock order reversal showing at boot on arm64:

witness: lock order reversal:
 1st 0xffffff800dab18c0 vmmaplk (&map->lock)
 2nd 0xffffff800da32098 inode (&ip->i_lock)
lock order "&ip->i_lock"(rrwlock) -> "&map->lock"(rwlock) first seen at:
#0  rw_enter_read+0x44
#1  uvmfault_lookup+0xd8
#2  uvm_fault_check+0x40
#3  uvm_fault+0xdc
#4  do_el1h_sync+0x118
#5  handle_el1h_sync+0x70
#6  uiomove+0x9c
#7  ffs_read+0x1cc
#8  VOP_READ+0x3c
#9  vn_rdwr+0xac
#10 vmcmd_map_readvn+0x8c
#11 exec_process_vmcmds+0x84
#12 sys_execve+0x610
#13 start_init+0x23c
#14 proc_trampoline+0x14
lock order "&map->lock"(rwlock) -> "&ip->i_lock"(rrwlock) first seen at:
#0  rw_enter+0x84
#1  rrw_enter+0x60
#2  VOP_LOCK+0x64
#3  vn_lock+0xa8
#4  uvn_io+0x19c
#5  uvm_pager_put+0xf0
#6  uvn_flush+0x274
#7  uvm_map_clean+0x228
#8  svc_handler+0x310
#9  do_el0_sync+0xe0
#10 handle_el0_sync+0x78

OpenBSD 7.0-current (GENERIC.MP) #4: Tue Nov 30 10:01:15 GMT 2021
    [email protected]:/sys/arch/arm64/compile/GENERIC.MP
real mem  = 4134567936 (3943MB)
avail mem = 3937853440 (3755MB)
random: good seed from bootblocks
mainbus0 at root: Raspberry Pi 4 Model B Rev 1.2
psci0 at mainbus0: PSCI 1.1, SMCCC 1.2
cpu0 at mainbus0 mpidr 0: ARM Cortex-A72 r0p3
cpu0: 48KB 64b/line 3-way L1 PIPT I-cache, 32KB 64b/line 2-way L1 D-cache
cpu0: 1024KB 64b/line 16-way L2 cache
cpu0: CRC32,ASID16
cpu1 at mainbus0 mpidr 1: ARM Cortex-A72 r0p3
cpu1: 48KB 64b/line 3-way L1 PIPT I-cache, 32KB 64b/line 2-way L1 D-cache
cpu1: 1024KB 64b/line 16-way L2 cache
cpu1: CRC32,ASID16
cpu2 at mainbus0 mpidr 2: ARM Cortex-A72 r0p3
cpu2: 48KB 64b/line 3-way L1 PIPT I-cache, 32KB 64b/line 2-way L1 D-cache
cpu2: 1024KB 64b/line 16-way L2 cache
cpu2: CRC32,ASID16
cpu3 at mainbus0 mpidr 3: ARM Cortex-A72 r0p3
cpu3: 48KB 64b/line 3-way L1 PIPT I-cache, 32KB 64b/line 2-way L1 D-cache
cpu3: 1024KB 64b/line 16-way L2 cache
cpu3: CRC32,ASID16
efi0 at mainbus0: UEFI 2.7
efi0: https://github.com/pftf/RPi4 rev 0x10000
smbios0 at efi0: SMBIOS 3.3.0
smbios0: vendor https://github.com/pftf/RPi4 version "UEFI Firmware v1.31" date 
09/09/2021
smbios0: Raspberry Pi Foundation Raspberry Pi 4 Model B
apm0 at mainbus0
"system" at mainbus0 not configured
"axi" at mainbus0 not configured
simplebus0 at mainbus0: "soc"
bcmclock0 at simplebus0
bcmmbox0 at simplebus0
bcmgpio0 at simplebus0
bcmaux0 at simplebus0
ampintc0 at simplebus0 nirq 256, ncpu 4 ipi: 0, 1: "interrupt-controller"
bcmtmon0 at simplebus0
bcmdmac0 at simplebus0: DMA0 DMA2 DMA4 DMA5 DMA6 DMA7 DMA8 DMA9
"timer" at simplebus0 not configured
pluart0 at simplebus0: console
com0 at simplebus0: ns16550, no working fifo
"local_intc" at simplebus0 not configured
bcmdog0 at simplebus0
bcmirng0 at simplebus0
"firmware" at simplebus0 not configured
"power" at simplebus0 not configured
"mailbox" at simplebus0 not configured
sdhc0 at simplebus0
sdhc0: SDHC 3.0, 250 MHz base clock
sdmmc0 at sdhc0: 4-bit, sd high-speed, mmc high-speed
"gpiomem" at simplebus0 not configured
"fb" at simplebus0 not configured
"vcsm" at simplebus0 not configured
"clocks" at mainbus0 not configured
"phy" at mainbus0 not configured
"clk-27M" at mainbus0 not configured
"clk-108M" at mainbus0 not configured
simplebus1 at mainbus0: "emmc2bus"
sdhc1 at simplebus1
sdhc1: SDHC 3.0, 100 MHz base clock
sdmmc1 at sdhc1: 8-bit, sd high-speed, mmc high-speed, ddr52, dma
"arm-pmu" at mainbus0 not configured
agtimer0 at mainbus0: 54000 kHz
simplebus2 at mainbus0: "scb"
bcmpcie0 at simplebus2
pci0 at bcmpcie0
ppb0 at pci0 dev 0 function 0 "Broadcom BCM2711" rev 0x10
pci1 at ppb0 bus 1
xhci0 at pci1 dev 0 function 0 "VIA VL805 xHCI" rev 0x01: intx, xHCI 1.0
usb0 at xhci0: USB revision 3.0
uhub0 at usb0 configuration 1 interface 0 "VIA xHCI root hub" rev 3.00/1.00 
addr 1
bse0 at simplebus2: address dc:a6:32:8b:e1:b7
brgphy0 at bse0 phy 1: BCM54210E 10/100/1000baseT PHY, rev. 2
"dma" at simplebus2 not configured
"hevc-decoder" at simplebus2 not configured
"rpivid-local-intc" at simplebus2 not configured
"h264-decoder" at simplebus2 not configured
"vp9-decoder" at simplebus2 not configured
gpioleds0 at mainbus0: "led0", "led1"
"sd_io_1v8_reg" at mainbus0 not configured
"sd_vcc_reg" at mainbus0 not configured
"fixedregulator_3v3" at mainbus0 not configured
"fixedregulator_5v0" at mainbus0 not configured
simplebus3 at mainbus0: "v3dbus"
"bootloader" at mainbus0 not configured
dt: 451 probes
sdmmc1: can't enable card
uhub1 at uhub0 port 1 configuration 1 interface 0 "VIA Labs USB2.0 Hub" rev 
2.10/4.21 addr 2
bwfm0 at sdmmc0 function 1
manufacturer 0x02d0, product 0xa9a6 at sdmmc0 function 2 not configured
manufacturer 0x02d0, product 0xa9a6 at sdmmc0 function 3 not configured
uhub2 at uhub1 port 4 configuration 1 interface 0 "Genesys Logic USB2.0 Hub" 
rev 2.00/77.64 addr 3
uhidev0 at uhub2 port 3 configuration 1 interface 0 "RDing TEMPerV1.4" rev 
2.00/0.01 addr 4
uhidev0: iclass 3/1, 1 report id
ukbd0 at uhidev0 reportid 1: 8 variable keys, 5 key codes
wskbd0 at ukbd0 mux 1
uhidev1 at uhub2 port 3 configuration 1 interface 1 "RDing TEMPerV1.4" rev 
2.00/0.01 addr 4
uhidev1: iclass 3/1
ugold0 at uhidev1
uhub3 at uhub2 port 4 configuration 1 interface 0 "Genesys Logic USB2.0 Hub" 
rev 2.00/77.64 addr 5
uftdi0 at uhub3 port 1 configuration 1 interface 0 "FTDI FT232R USB UART" rev 
2.00/6.00 addr 6
ucom0 at uftdi0 portno 1
uslcom0 at uhub3 port 2 configuration 1 interface 0 "Silicon Labs CP2102 USB to 
UART Bridge Controller" rev 1.10/1.00 addr 7
ucom1 at uslcom0 portno 0
uplcom0 at uhub3 port 4 configuration 1 interface 0 "Prolific Technology Inc. 
USB-Serial Controller D" rev 1.10/4.00 addr 8
ucom2 at uplcom0
umass0 at uhub0 port 2 configuration 1 interface 0 "SanDisk Ultra Fit" rev 
3.20/1.00 addr 9
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, initiator 0
sd0 at scsibus0 targ 1 lun 0: <SanDisk, Ultra Fit, 1.00> removable 
serial.0781558381079d269c03
sd0: 29340MB, 512 bytes/sector, 60088320 sectors
vscsi0 at root
scsibus1 at vscsi0: 256 targets
softraid0 at root
scsibus2 at softraid0: 256 targets
root on sd0a (a3d7f93f60aec212.a) swap on sd0b dump on sd0b
WARNING: clock lost 81 days
WARNING: CHECK AND RESET THE DATE!
gpio0 at bcmgpio0: 58 pins
bwfm0: address dc:a6:32:8b:e1:b8
ugold0: 1 sensor type ds75/12bit (temperature)

Reply via email to