On Sun, Apr 30, 2023, at 12:43 PM, Brian Conway wrote:
> On Tue, Apr 25, 2023, at 9:47 AM, Dave Voutila wrote:
>> tech@:
>>
>> The below diff splits out virtio device emulation for virtio block and
>> network devices into separate fork+exec'd & pledge(2)'d subprocesses.
>>
>> In order of priority, this diff:
>>
>> 1. Isolates common exploit targets (e.g. emulated network devices) from
>>    the rest of the vm process, tightening pledge to "stdio" per device.
>>
>> 2. Increases responsiveness of guest i/o since we no longer have a
>>    single thread servicing virtio pci and device emulation.
>>
>> I'd like to land this diff this week, so if you use atypical vmd
>> configurations like:
>>
>> 1. multiple vioblk disks per vm
>> 2. multiple nics per vm
>> 3. send/receive
>> 4. qcow2 base images
>>
>> This diff has lots of info logging enabled by default to help me
>> identify what's breaking, so please reply with log message output if
>> something goes sideways.
>>
>> -dv
>
> Apologies for being late to the party, I'm testing this now via 
> snapshots. The host in question was last updated a few weeks ago, i.e. 
> before the deluge of recent work. It's an amd64 VMM host running (among 
> other things) an i386 7.3 release VM. After updating the host to the 
> latest snapshot, things appear to run fine, but I did notice the 
> following new messages consistently when powering off (halt -p) the 
> i386 VM:
>
> Apr 29 18:41:09 coofun /bsd: uvn_flush: obj=0xfffffd815a44fee0, 
> offset=0x43287000.  error during pageout.
> Apr 29 18:41:09 coofun /bsd: uvn_flush: WARNING: changes to page may be 
> lost!
>
> Apr 30 17:28:26 coofun /bsd: uvn_flush: obj=0xfffffd812ff90c08, 
> offset=0x4378c000.  error during pageout.
> Apr 30 17:28:26 coofun /bsd: uvn_flush: WARNING: changes to page may be 
> lost!

I should have been more clear, these messages are on the amd64 VMM host.

Also, the guest is using a standard raw disk image, so I don't think it 
actually meets any of your atypical scenarios 1-4.

Brian

> The guest *appears* to run fine and reboots with a clean filesystem, 
> but I also haven't gone through the filesystem with a comb. I have not 
> had a chance to spin up an amd64 guest this weekend yet.
>
> Thanks!
>
> Brian Conway
>
> amd64 host dmesg:
>
> OpenBSD 7.3-current (GENERIC.MP) #1168: Fri Apr 28 14:47:06 MDT 2023
>     dera...@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP
> real mem = 4072996864 (3884MB)
> avail mem = 3929907200 (3747MB)
> random: good seed from bootblocks
> mpath0 at root
> scsibus0 at mpath0: 256 targets
> mainbus0 at root
> bios0 at mainbus0: SMBIOS rev. 3.2 @ 0x79851000 (17 entries)
> bios0: vendor American Megatrends Inc. version "GB1B 0.04" date 
> 10/20/2021
> bios0: BESSTAR TECH LIMITED N40
> efi0 at bios0: UEFI 2.7
> efi0: American Megatrends rev 0x5000d
> acpi0 at bios0: ACPI 6.2
> acpi0: sleep states S0 S3 S4 S5
> acpi0: tables DSDT FACP FPDT FIDT MSDM MCFG SSDT DBG2 DBGP HPET LPIT 
> APIC NPKT SSDT SSDT SSDT SSDT SSDT SSDT BGRT TPM2 DMAR WDAT NHLT WSMT
> acpi0: wakeup devices HDAS(S3) XHC_(S4) XDCI(S4) RP01(S4) PXSX(S4) 
> RP02(S4) PXSX(S4) RP03(S4) PXSX(S4) RP04(S4) PXSX(S4) RP05(S4) PXSX(S4) 
> RP06(S4) PXSX(S4)
> acpitimer0 at acpi0: 3579545 Hz, 32 bits
> acpimcfg0 at acpi0
> acpimcfg0: addr 0xe0000000, bus 0-255
> acpihpet0 at acpi0: 19200000 Hz
> acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
> cpu0 at mainbus0: apid 0 (boot processor)
> cpu0: Intel(R) Celeron(R) N4020 CPU @ 1.10GHz, 1095.50 MHz, 06-7a-08
> cpu0: 
> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,SDBG,CX16,xTPR,PDCM,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,3DNOWP,PERF,ITSC,FSGSBASE,TSC_ADJUST,SGX,SMEP,ERMS,MPX,RDSEED,SMAP,CLFLUSHOPT,PT,SHA,UMIP,MD_CLEAR,IBRS,IBPB,STIBP,SSBD,SENSOR,ARAT,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
> cpu0: 24KB 64b/line 6-way D-cache, 32KB 64b/line 8-way I-cache, 4MB 
> 64b/line 16-way L2 cache
> cpu0: smt 0, core 0, package 0
> mtrr: Pentium Pro MTRR support, 10 var ranges, 88 fixed ranges
> cpu0: apic clock running at 19MHz
> cpu0: mwait min=64, max=64, C-substates=0.2.0.2.4.2.1.1, IBE
> cpu1 at mainbus0: apid 2 (application processor)
> cpu1: Intel(R) Celeron(R) N4020 CPU @ 1.10GHz, 1096.97 MHz, 06-7a-08
> cpu1: 
> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,SDBG,CX16,xTPR,PDCM,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,3DNOWP,PERF,ITSC,FSGSBASE,TSC_ADJUST,SGX,SMEP,ERMS,MPX,RDSEED,SMAP,CLFLUSHOPT,PT,SHA,UMIP,MD_CLEAR,IBRS,IBPB,STIBP,SSBD,SENSOR,ARAT,XSAVEOPT,XSAVEC,XGETBV1,XSAVES
> cpu1: 24KB 64b/line 6-way D-cache, 32KB 64b/line 8-way I-cache, 4MB 
> 64b/line 16-way L2 cache
> cpu1: smt 0, core 1, package 0
> ioapic0 at mainbus0: apid 1 pa 0xfec00000, version 20, 120 pins
> acpiprt0 at acpi0: bus 0 (PCI0)
> acpiprt1 at acpi0: bus 4 (RP01)
> acpiprt2 at acpi0: bus 5 (RP02)
> acpiprt3 at acpi0: bus 1 (RP03)
> acpiprt4 at acpi0: bus 2 (RP04)
> acpiprt5 at acpi0: bus 3 (RP05)
> acpiprt6 at acpi0: bus -1 (RP06)
> acpipci0 at acpi0 PCI0: 0x00000000 0x00000011 0x00000001
> "ESSX8336" at acpi0 not configured
> acpicmos0 at acpi0
> glkgpio0 at acpi0 GPO1 uid 1 addr 0xd0c40000/0xcef irq 14, 80 pins
> glkgpio1 at acpi0 GPO0 uid 2 addr 0xd0c50000/0xaff irq 14, 80 pins
> glkgpio2 at acpi0 GPO2 uid 3 addr 0xd0c90000/0x7bf irq 15, 20 pins
> glkgpio3 at acpi0 GPO3 uid 4 addr 0xd0c80000/0x82f irq 14, 35 pins
> acpibtn0 at acpi0: PWRB
> "INT33A1" at acpi0 not configured
> tpm0 at acpi0 TPM_ 2.0 (CRB) addr 0xfed40000/0x5000, device 0x00000000 
> rev 0x0
> "PNP0C0B" at acpi0 not configured
> acpipwrres0 at acpi0: DRST
> acpipwrres1 at acpi0: DRST
> acpipwrres2 at acpi0: DRST
> acpipwrres3 at acpi0: DRST
> acpipwrres4 at acpi0: DRST
> acpipwrres5 at acpi0: DRST
> acpipwrres6 at acpi0: WRST
> acpicpu0 at acpi0: C3(10@150 mwait.1@0x60), C2(10@50 mwait.1@0x21), 
> C1(1000@1 mwait.1@0x1), PSS
> acpicpu1 at acpi0: C3(10@150 mwait.1@0x60), C2(10@50 mwait.1@0x21), 
> C1(1000@1 mwait.1@0x1), PSS
> acpipwrres7 at acpi0: FN00, resource for FAN0
> acpitz0 at acpi0: critical temperature is 95 degC
> acpivideo0 at acpi0: GFX0
> acpivout0 at acpivideo0: DD1F
> cpu0: Enhanced SpeedStep 1095 MHz: speeds: 1101, 1100, 1000, 900, 800 
> MHz
> pci0 at mainbus0 bus 0
> pchb0 at pci0 dev 0 function 0 "Intel Gemini Lake Host" rev 0x06
> "Intel Gemini Lake DPTF" rev 0x06 at pci0 dev 0 function 1 not 
> configured
> inteldrm0 at pci0 dev 2 function 0 "Intel UHD Graphics 600" rev 0x06
> drm0 at inteldrm0
> inteldrm0: msi, GEMINILAKE, gen 9
> azalia0 at pci0 dev 14 function 0 "Intel Gemini Lake HD Audio" rev 
> 0x06: msi
> azalia0: no supported codecs
> "Intel Gemini Lake MEI" rev 0x06 at pci0 dev 15 function 0 not 
> configured
> ahci0 at pci0 dev 18 function 0 "Intel Gemini Lake AHCI" rev 0x06: msi, 
> AHCI 1.3.1
> ahci0: PHY offline on port 0
> ahci0: port 1: 6.0Gb/s
> scsibus1 at ahci0: 32 targets
> sd0 at scsibus1 targ 1 lun 0: <ATA, NT-256 2242, SN11> 
> naa.50000000000027b6
> sd0: 244198MB, 512 bytes/sector, 500118192 sectors, thin
> ppb0 at pci0 dev 19 function 0 "Intel Gemini Lake PCIE" rev 0xf6: msi
> pci1 at ppb0 bus 1
> iwm0 at pci1 dev 0 function 0 "Intel AC 3165" rev 0x79, msi
> ppb1 at pci0 dev 19 function 1 "Intel Gemini Lake PCIE" rev 0xf6: msi
> pci2 at ppb1 bus 2
> re0 at pci2 dev 0 function 0 "Realtek 8168" rev 0x15: RTL8168H/8111H 
> (0x5400), msi, address 84:47:09:09:b7:8e
> rgephy0 at re0 phy 7: RTL8251 PHY, rev. 0
> ppb2 at pci0 dev 19 function 2 "Intel Gemini Lake PCIE" rev 0xf6: msi
> pci3 at ppb2 bus 3
> ppb3 at pci0 dev 20 function 0 "Intel Gemini Lake PCIE" rev 0xf6
> pci4 at ppb3 bus 4
> ppb4 at pci0 dev 20 function 1 "Intel Gemini Lake PCIE" rev 0xf6
> pci5 at ppb4 bus 5
> xhci0 at pci0 dev 21 function 0 "Intel Gemini Lake xHCI" rev 0x06: msi, 
> xHCI 1.0
> usb0 at xhci0: USB revision 3.0
> uhub0 at usb0 configuration 1 interface 0 "Intel xHCI root hub" rev 
> 3.00/1.00 addr 1
> dwiic0 at pci0 dev 22 function 0 "Intel Gemini Lake I2C" rev 0x06: apic 
> 1 int 27
> iic0 at dwiic0
> "ESSX8336" at iic0 addr 0x11 not configured
> dwiic1 at pci0 dev 22 function 3 "Intel Gemini Lake I2C" rev 0x06: apic 
> 1 int 30
> iic1 at dwiic1
> sdhc0 at pci0 dev 28 function 0 "Intel Gemini Lake eMMC" rev 0x06: apic 
> 1 int 39
> sdhc0: SDHC 3.0, 200 MHz base clock
> sdmmc0 at sdhc0: 8-bit, sd high-speed, mmc high-speed, ddr52, dma
> pcib0 at pci0 dev 31 function 0 "Intel Gemini Lake LPC" rev 0x06
> ichiic0 at pci0 dev 31 function 1 "Intel Gemini Lake SMBus" rev 0x06: 
> apic 1 int 20
> iic2 at ichiic0
> isa0 at pcib0
> isadma0 at isa0
> pcppi0 at isa0 port 0x61
> spkr0 at pcppi0
> vmm0 at mainbus0: VMX/EPT
> efifb at mainbus0 not configured
> scsibus2 at sdmmc0: 2 targets, initiator 0
> sd1 at scsibus2 targ 1 lun 0: <SD/MMC, SCA64G, 0000> removable
> sd1: 59648MB, 512 bytes/sector, 122159104 sectors
> uhidev0 at uhub0 port 2 configuration 1 interface 0 "Logitech USB 
> Keyboard" rev 1.10/64.00 addr 2
> uhidev0: iclass 3/1
> ukbd0 at uhidev0: 8 variable keys, 6 key codes
> wskbd0 at ukbd0: console keyboard
> uhidev1 at uhub0 port 2 configuration 1 interface 1 "Logitech USB 
> Keyboard" rev 1.10/64.00 addr 2
> uhidev1: iclass 3/0, 3 report ids
> ucc0 at uhidev1 reportid 1: 2 usages, 3 keys, enum
> wskbd1 at ucc0 mux 1
> uhid0 at uhidev1 reportid 2: input=1, output=0, feature=0
> ucc1 at uhidev1 reportid 3: 21 usages, 14 keys, enum
> wskbd2 at ucc1 mux 1
> ugen0 at uhub0 port 6 "Generic USB2.0-CRW" rev 2.00/39.60 addr 3
> ugen1 at uhub0 port 7 "Intel Bluetooth" rev 2.00/0.01 addr 4
> vscsi0 at root
> scsibus3 at vscsi0: 256 targets
> softraid0 at root
> scsibus4 at softraid0: 256 targets
> root on sd0a (b6b9cb10be699de6.a) swap on sd0b dump on sd0b
> drm:pid0:intel_step_init *WARNING* [drm] Unknown revid 0x06
> drm:pid0:intel_dp_aux_wait_done *ERROR* [drm] *ERROR* AUX C/DDI C/PHY 
> C: did not complete or timeout within 10ms (status 0xad4002ff)
> inteldrm0: 1920x1080, 32bpp
> wsdisplay0 at inteldrm0 mux 1: console (std, vt100 emulation), using 
> wskbd0
> wskbd1: connecting to wsdisplay0
> wskbd2: connecting to wsdisplay0
> wsdisplay0: screen 1-5 added (std, vt100 emulation)
> iwm0: hw rev 0x210, fw ver 29.4063824552.0, address a4:42:3b:34:d2:80
> uid 0 on /tmp: file system full
> uvn_flush: obj=0xfffffd812ff90c08, offset=0x4378c000.  error during 
> pageout.
> uvn_flush: WARNING: changes to page may be lost!
>
> i386 guest dmesg:
>
> OpenBSD 7.3 (GENERIC) #1: Thu Mar 30 11:37:43 UTC 2023
>     
> bcon...@b73-i386.int.rcesoftware.com:/usr/src/sys/arch/i386/compile/GENERIC
> real mem  = 1341657088 (1279MB)
> avail mem = 1300058112 (1239MB)
> random: good seed from bootblocks
> mpath0 at root
> scsibus0 at mpath0: 256 targets
> mainbus0 at root
> bios0 at mainbus0: date 06/23/99, BIOS32 rev. 0 @ 0xfefc2, SMBIOS rev. 
> 2.4 @ 0xf3740 (10 entries)
> bios0: vendor SeaBIOS version "1.14.0p3-OpenBSD-vmm" date 01/01/2011
> bios0: OpenBSD VMM
> acpi at bios0 function 0x0 not configured
> pcibios at bios0 function 0x1a not configured
> bios0: ROM list: 0xef000/0x1000!
> cpu0 at mainbus0: (uniprocessor)
> cpu0: Intel(R) Celeron(R) N4020 CPU @ 1.10GHz ("GenuineIntel" 
> 686-class) 24 MHz, 06-7a-08
> cpu0: 
> FPU,V86,DE,PSE,TSC,MSR,PAE,CX8,SEP,PGE,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,SSE3,PCLMUL,SSSE3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,RDRAND,HV,NXE,PAGE1GB,LONG,LAHF,3DNOWP,ITSC,FSGSBASE,SMEP,ERMS,RDSEED,SMAP,CLFLUSHOPT,SHA,UMIP,MD_CLEAR,MELTDOWN
> pvbus0 at mainbus0: OpenBSD
> pvclock0 at pvbus0
> pci0 at mainbus0 bus 0: configuration mode 1 (no bios)
> pchb0 at pci0 dev 0 function 0 "OpenBSD VMM Host" rev 0x00
> virtio0 at pci0 dev 1 function 0 "Qumranet Virtio RNG" rev 0x00
> viornd0 at virtio0
> virtio0: irq 3
> virtio1 at pci0 dev 2 function 0 "Qumranet Virtio Network" rev 0x00
> vio0 at virtio1: address fe:e1:bb:d1:21:46
> virtio1: irq 5
> virtio2 at pci0 dev 3 function 0 "Qumranet Virtio Storage" rev 0x00
> vioblk0 at virtio2
> scsibus1 at vioblk0: 1 targets
> sd0 at scsibus1 targ 0 lun 0: <VirtIO, Block Device, >
> sd0: 20480MB, 512 bytes/sector, 41943040 sectors
> virtio2: irq 6
> virtio3 at pci0 dev 4 function 0 "OpenBSD VMM Control" rev 0x00
> vmmci0 at virtio3
> virtio3: irq 7
> isa0 at mainbus0
> isadma0 at isa0
> com0 at isa0 port 0x3f8/8 irq 4: ns8250, no fifo
> com0: console
> pcdisplay0 at isa0 port 0x3d0/16 iomem 0xb8000/32768
> wsdisplay0 at pcdisplay0 mux 1: console (80x25, vt100 emulation)
> npx0 at isa0 port 0xf0/16: reported by CPUID; using exception 16
> vscsi0 at root
> scsibus2 at vscsi0: 256 targets
> softraid0 at root
> scsibus3 at softraid0: 256 targets
> root on sd0a (7b376d3efe69a188.a) swap on sd0b dump on sd0b

Reply via email to