SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Downloaden Sie, um offline zu lesen
Status Update on
    PCI Express Support in QEmu




Isaku Yamahata, VA Linux Systems Japan K.K.
               <yamahata@valinux.co.jp>
Xen Summit North America
April 28, 2010
Agenda
●   Introduction
●   Usage and Example
●   Implementation Details
●   Future Work
●   Considerations on further development
    issues
Introduction




    From http://en.wikipedia.org/wiki/PCI_Express
PCI Express native Hotplug
Electro Mechanical Lock(EMI)

            Slot Number




                               From http://docs.hp.com/
Eventual Goal
                    Dom0                  qemu-dm
                                                      interrupt
                                             root
                                                                         DomU
                       Inject the error       up      Virtual
                                                      PCIe Bus
                                             down

Interrupt
to notify
the error                                                          Xen VMM
                                                                   hardware
                               PCI express bus
                    PCI Express root port

                 PCI Express upstream port       PCI Express
Error Message                                    native passthrough
                PCI Express downstream port      With native hot plug support

            Error    PCI Express device
Eventual Goal
●   More PCI features/PCI express features
       –   The current emulated chipset(I440FX/PIIX3)
             is too old.
       –   So new Chipset emulator is wanted.
●   Xen PCI Express support
       –   PCI Express native hotplug
       –   PCI Express native passthourgh
               ●   When error is detected via AER(Advanced
                    Error Reporting), inject the error into
                    the guest.
●   these require several steps, so the first
    step is...
First Phase Goal
●   Make Qemu PCI Express ready
       –   Introduce new chipset emulator(Q35)
●   PCI Express native hot plug
●   Implement PCI Express port emulators, and
    make it possible to inject errors into
    guest
Current status
Qemu/PCI express
PCIe MMCONFIG                       Merged.
                                                  ●   the qemu/guest
Q35 chipset base                    working
PCIe portemulator
PCIe native hotplug
                                    working
                                    working           firmware
PCIe AER                            WIP
PCIe error injection
VBE paravirtualization
                                    WIP
                                    working           enhancement is
seabios
mcfg                                working
                                                      almost done.
e820                                working


                                                      The next step is
host bridge
initiazatlin                        working       ●
pci io/memory

                                                      qemu upstream
space initialization                working
passing acpi table outside qemu     working



                                                      merge.
vgabios
VBE paravirtualization              working

Xen
Rebase qemu base                    Not started
PCIe native passthrough             Not started
seabios update                      Not started
HotPlug functions
          Function              Supported?
          Attention Button      yes
          Power Controller      No
          MRL Sensor            No
          Attention Indicator   Yes
          Power Indicator       Yes
          Hot-Plug Surprise     Yes
          EMI                   Yes


●   Is MRL(Manually Operated Retention Latch)
    wanted?
●   Is EMI(Electro Mechanical Lock) needed?
Usage and example
PCI Express native hotplug
●   From qemu monitor command line
●   pci_add/pci_del
       –   Or device_add/device_del
       –   This is same to PCI hot plug.
       –   Internally it calls back bus specific
             function. So it eventually pci express
             hotplug logic.
●   pcie_abp [chassis.]slot
       –   push PCI express attention buttion of a
Error injection
●   pcie_error_inject [[domain:]bus:]dev.fn
    is_correctable error_status number number
    number number [number [number [number
    [number]]]]
       –   is_correctable: bool
               ●   Correctable or uncorrectable
       –   error_status: uint32_t
               ●   Spcify error type
       –   number: uint32_t*4: TLP header
       –   number: uint32_t*{0-4}: TLP header prefix
Example from Linux boot log

ACPI: RSDP 00000000000f7ae0 00014 (v00 BOCHS )
ACPI: RSDT 000000001ff78f90 00038 (v01 BOCHS BXPCRSDT 00000001 BXPC 00000001)
ACPI: FACP 000000001ffffe70 00074 (v01 BOCHS BXPCFACP 00000001 BXPC 00000001)
ACPI: DSDT 000000001ff78fd0 86C82 (v01   BXPC   BXDSDT 00000002 INTL 20100121)
ACPI: FACS 000000001ffffe00 00040
ACPI: SSDT 000000001ffffdc0 00037 (v01 BOCHS BXPCSSDT 00000001 BXPC 00000001)
ACPI: APIC 000000001ffffce0 00072 (v01 BOCHS BXPCAPIC 00000001 BXPC 00000001)
ACPI: HPET 000000001ffffca0 00038 (v01 BOCHS BXPCHPET 00000001 BXPC 00000001)
ACPI: MCFG 000000001ffffc60 0003C (v01 BOCHS BXPCMCFG 00000001 BXPC 00000001)
...
ACPI: bus type pci registered
PCI: MMCONFIG for domain 0000 [bus 00-ff] at [mem 0xe0000000-0xefffffff] (base 0xe00000
PCI: MMCONFIG at [mem 0xe0000000-0xefffffff] reserved in E820
pcieport 0000:00:04.0: setting latency timer to 64
pcieport 0000:00:04.0: 0000:00:04.0 lo: 0xfee0100c hi: 0x0 data 0x4129
pcieport 0000:00:04.0: irq 24 for MSI/MSI-X
pcieport 0000:00:04.0: Requesting control of PCIe PME from ACPI BIOS
pcieport 0000:00:04.0: 0000:00:04.0 lo: 0xfee0100c hi: 0x0 data 0x4129
pcieport 0000:00:04.0: Signaling PME through PCIe PME interrupt
pcie_pme 0000:00:04.0:pcie01: service driver pcie_pme loaded
pci_hotplug: PCI Hot Plug PCI Core version: 0.5
acpi_pcihp: acpi_get_hp_hw_control_from_firmware: Trying to get hotplug control for _SB_.PCI0
acpi_pcihp: acpi_get_hp_hw_control_from_firmware: Gained control for hotplug HW for pci 0000:00:04.0 (_SB_.PCI0)
acpi_pcihp: acpi_get_hp_hw_control_from_firmware: Trying to get hotplug control for _SB_.PCI0
acpi_pcihp: acpi_get_hp_hw_control_from_firmware: Gained control for hotplug HW for pci 0000:00:04.0 (_SB_.PCI0)
pciehp 0000:00:04.0:pcie04: Hotplug Controller:
pciehp 0000:00:04.0:pcie04:   Seg/Bus/Dev/Func/IRQ : 0000:00:04.0 IRQ 24
pciehp 0000:00:04.0:pcie04:   Vendor ID            : 0x8086
pciehp 0000:00:04.0:pcie04:   Device ID            : 0x3420
pciehp 0000:00:04.0:pcie04:   Subsystem ID         : 0x0000
pciehp 0000:00:04.0:pcie04:   Subsystem Vendor ID : 0x8086
pciehp 0000:00:04.0:pcie04:   PCIe Cap offset      : 0x90
pciehp 0000:00:04.0:pcie04:   PCI resource [7]     : [io 0x1000-0x1fff]
pciehp 0000:00:04.0:pcie04:   PCI resource [8]     : [mem 0x20000000-0x201fffff]
pciehp 0000:00:04.0:pcie04:   PCI resource [9]     : [mem 0x20200000-0x203fffff pref]
pciehp 0000:00:04.0:pcie04: Slot Capabilities      : 0x00020079
pciehp 0000:00:04.0:pcie04:   Physical Slot Number : 0
pciehp 0000:00:04.0:pcie04:   Attention Button     : yes
pciehp 0000:00:04.0:pcie04:   Power Controller     : no
pciehp 0000:00:04.0:pcie04:   MRL Sensor           : no
pciehp 0000:00:04.0:pcie04:   Attention Indicator : yes
pciehp 0000:00:04.0:pcie04:   Power Indicator      : yes
pciehp 0000:00:04.0:pcie04:   Hot-Plug Surprise    : yes
pciehp 0000:00:04.0:pcie04:   EMI Present          : yes
pciehp 0000:00:04.0:pcie04:   Command Completed    : yes                                        Enabled debug message via
pciehp 0000:00:04.0:pcie04: Slot Status
pciehp 0000:00:04.0:pcie04: Slot Control
                                                   : 0x0000
                                                   : 0x03c0
                                                                                                kernel command line
pciehp 0000:00:04.0:pcie04: HPC vendor_id 8086 device_id 3420 ss_vid 8086 ss_did 0              pci_hotplug.debug=1
pciehp 0000:00:04.0:pcie04: Registering domain:bus:dev=0000:20:00 sun=0
pci_bus 0000:20: dev 00, created physical slot 0                                                pci_hotplug.debug_acpi=1
pci_hotplug: __pci_hp_register: Added slot 0 to the list
pciehp 0000:00:04.0:pcie04: pcie_isr: intr_loc 10
                                                                                                pciehp.pciehp_debug=1
pciehp 0000:00:04.0:pcie04: pciehp_get_power_status: SLOTCTRL a8 value read 3f9                 pci_slot.debug=1
pciehp 0000:00:04.0:pcie04: service driver pciehp loaded
# lspci -vt
                               lspci
-[0000:00]-+-00.0 Intel Corporation 82G33/G31/P35/P31 Express DRAM Controller
            +-01.0 Cirrus Logic GD 5446
            +-04.0-[20]--
            +-18.0-[21]--
            +-18.1-[22]--
            +-18.2-[23]--
            +-18.3-[24]--
            +-18.4-[25]--
            +-18.5-[26]--
            +-19.0-[36-bf]--+-00.0-[37-47]--+-00.0-[38]--
          ......
            |               |               +-0e.0-[46]--
            |               |               -0f.0-[47]--
            |               +-00.1-[48-58]--+-00.0-[49]--
            |               |               +-01.0-[4a]--
            |               |               +-02.0-[4b]--
          ......
# lspci -vvvxxxx
...
00:04.0 PCI bridge: Intel Corporation 5500 Non-Legacy I/O Hub PCI Express Root Port 0 (rev 02) (p
        Physical Slot: 4
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <
        Latency: 0
        Bus: primary=00, secondary=20, subordinate=20, sec-latency=0
        I/O behind bridge: 00001000-00001fff
        Memory behind bridge: 20000000-201fffff
        Prefetchable memory behind bridge: 20200000-203fffff
        Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <
        BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
                 PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
        Capabilities: [40] Subsystem: Intel Corporation Device 0000
        Capabilities: [60] MSI: Enable+ Count=1/2 Maskable+ 64bit-
                 Address: 0000100c Data: 4129
                 Masking: 00000003 Pending: 00000000
        Capabilities: [90] Express (v2) Root Port (Slot+), MSI 00
                 DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
                         ExtTag- RBE- FLReset-
                 DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                         RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
                         MaxPayload 128 bytes, MaxReadReq 128 bytes
                 DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
...
(qemu) pci_add 20:0 nic model=e1000
                                                 hotplug
OK domain 0, bus 32, slot 0, function 0
                                  pciehp 0000:00:04.0:pcie04: pcie_isr: intr_loc 8
                                  pciehp 0000:00:04.0:pcie04: Presence/Notify input change
                                  pciehp 0000:00:04.0:pcie04: Card present on Slot(0)
                                  pciehp 0000:00:04.0:pcie04: Surprise Removal
                                  pciehp 0000:00:04.0:pcie04: pcie_isr: intr_loc 10
                                  pciehp 0000:00:04.0:pcie04: pciehp_green_led_blink: SLOTCTRL a8 write cmd 200
                                  pciehp 0000:00:04.0:pcie04: pciehp_check_link_status: lnk_status = 11
                                  pci 0000:20:00.0: found [8086:100e] class 000200 header type 00
                                  pci 0000:20:00.0: reg 10: [mem 0x00000000-0x0001ffff]
                                  pci 0000:20:00.0: reg 14: [io 0x0000-0x003f]
                                  pci 0000:20:00.0: reg 30: [mem 0x00000000-0x0001ffff pref]
                                  pci 0000:20:00.0: calling quirk_resource_alignment+0x0/0x1b5
                                  pci 0000:20:00.0: calling pci_fixup_transparent_bridge+0x0/0x2a
                                  pci 0000:20:00.0: BAR 0: assigned [mem 0x20000000-0x2001ffff]
                                  pci 0000:20:00.0: BAR 0: set to [mem 0x20000000-0x2001ffff] (PCI address [0x20000000-0x2001ffff]
                                  pci 0000:20:00.0: BAR 6: assigned [mem 0x20200000-0x2021ffff pref]
                                  pci 0000:20:00.0: BAR 1: assigned [io 0x1000-0x103f]
                                  pci 0000:20:00.0: BAR 1: set to [io 0x1000-0x103f] (PCI address [0x1000-0x103f]
                                  pcieport 0000:00:04.0: PCI bridge to [bus 20-20]
                                  pcieport 0000:00:04.0:   bridge window [io 0x1000-0x1fff]
                                  pcieport 0000:00:04.0:   bridge window [mem 0x20000000-0x201fffff]
                                  pcieport 0000:00:04.0:   bridge window [mem 0x20200000-0x203fffff pref]
                                  pcieport 0000:00:04.0: setting latency timer to 64
                                  pci 0000:20:00.0: no hotplug settings from platform
                                  pci 0000:20:00.0: using default PCI settings
                                  e1000 0000:20:00.0: enabling device (0000 -> 0003)
                                  e1000 0000:20:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
                                  e1000 0000:20:00.0: enabling bus mastering
                                  e1000 0000:20:00.0: setting latency timer to 64
                                  e1000: 0000:20:00.0: e1000_probe: (PCI:33MHz:32-bit) 52:54:00:12:34:57
                                  e1000: 0000:20:00.0: e1000_reset: Hardware Error
                                  e1000: eth1: e1000_probe: Intel(R) PRO/1000 Network Connection
                                  pciehp 0000:00:04.0:pcie04: pcie_isr: intr_loc 10
Push attention button
(qemu) pcie_abp 0
OK chassis 0, slot 0


pciehp 0000:00:04.0:pcie04: pcie_isr: intr_loc 1
pciehp 0000:00:04.0:pcie04: Attention button interrupt received
pciehp 0000:00:04.0:pcie04: Button pressed on Slot(0)
pciehp 0000:00:04.0:pcie04: pciehp_get_power_status: SLOTCTRL a8 value read 1f9
pciehp 0000:00:04.0:pcie04: PCI slot #0 - powering off due to button press.
pciehp 0000:00:04.0:pcie04: pcie_isr: intr_loc 10
pciehp 0000:00:04.0:pcie04: pciehp_green_led_blink: SLOTCTRL a8 write cmd 200
pciehp 0000:00:04.0:pcie04: pciehp_set_attention_status: SLOTCTRL a8 write cmd c0
pciehp 0000:00:04.0:pcie04: pcie_isr: intr_loc 10
pciehp 0000:00:04.0:pcie04: Disabling domain:bus:device=0000:20:00
pciehp 0000:00:04.0:pcie04: pciehp_unconfigure_device: domain:bus:dev = 0000:20:00
e1000: eth1: e1000_reset: Hardware Error
e1000 0000:20:00.0: PCI INT A disabled
pciehp 0000:00:04.0:pcie04: pcie_isr: intr_loc 10
pciehp 0000:00:04.0:pcie04: pciehp_green_led_off: SLOTCTRL a8 write cmd 300
Hot unplug
(qemu) pci_del 20:0


pciehp   0000:00:04.0:pcie04:   pcie_isr: intr_loc 8
pciehp   0000:00:04.0:pcie04:   Presence/Notify input change
pciehp   0000:00:04.0:pcie04:   Card not present on Slot(0)
pciehp   0000:00:04.0:pcie04:   Surprise Removal
pciehp   0000:00:04.0:pcie04:   Disabling domain:bus:device=0000:20:00
pciehp   0000:00:04.0:pcie04:   pciehp_unconfigure_device: domain:bus:dev = 0000:20:00
pciehp   0000:00:04.0:pcie04:   pcie_isr: intr_loc 10
pciehp   0000:00:04.0:pcie04:   pciehp_green_led_off: SLOTCTRL a8 write cmd 300




  From /proc/interrupts
  24:           13   PCI-MSI-edge        PCIe PME, pciehp
Some notes on Linux
●   Linux doesn't touch electro mechanical
    interlock(EMI).
●   Linux pcie aer doesn't log TLP header
    prefix.
Implementation Details
Q35 based new chipset emulator
●   Why new chipset?
       –   Keep the currently supported
             chipset(I440FX/PIIX3) for legacy
             compatibility.
       –   add new features for modern OSes without
             legacy compatibility.
●   Many clean ups to coexist with the
    existing chipset.(mch/ich9)
       –   Factor out i440 specific code to coexist.
PCI Express port emulator
●   Root port/upstream port/downstream port
       –   All of three ports are needed.
●   At first, PCI bridge code had to be
    cleaned up.
       –   It was just a stub, had to implement it
             first.
       –   PCI bus numbering paravirtualization
SeaBIOS modifications
●   Multi chipset support
       –   factor out i440 specific code
●   PCI Bus initialization
       –   Bus numbering paravirtualization
●   64bit BAR
●   MCFG
●   Passing DSDT from qemu command line to
    guest bios
VGABios VBE paravirtualization
●   Currently qemu mapes VBE base address to
    the hard coded address.
●   Which conflicts MMCONFIG area.
●   Make it dynamic by paravirtualization
●   However I did it differently from boch
    one.
       –   I knew bochs work after creating the patch
Future Work
Future Work
●   Complete error injection
●   Qemu Upstream Merge
●   Xen support
       –   rebasing/bios change
       –   PCI Express native passthrough
       –   AER injection
Qemu Release Plan
●   The next major release 0.13
       –   Planned target: June 1st
       –   http://www.mail-archive.com/qemu-devel@nongnu.org/msg22485.html

●   Planned features
       –   http://wiki.qemu.org/Features/0.13
Call to action
●   Help for upstream merge.
●   Rebase qemu-dm to the upstream qemu
●   Switch guest bios from bochs bios to
    seabios
Considerations on further development issues
Qemu PCI Express
●   There are no interesting emulated PCI
    Express native devices at the moment.
       –   PCIe switch port isn't interesting.
●   Any good candidate?
       –   igb, igbvf
       –   ixgb, ixgbvf
Qemu AER emulation and error
             injection
●   Is multiple header recording wanted?
       –   Maybe yes.
●   Is multiple errors injection wanted
       –   Maybe this is wanted because Linux aer
             error injection tool supports it.
PCI Exprss native passthrough
●   Xen qemu-dm rebasing
        –   Back porting patches is impractical.
                ●   They heavily depends on new qemu device
                     framework.(QDev)
●   PCI Express native passthrough
        –   Enhancing the configuration space access is
              trivial.
        –   Necessary to virtualize extended capabilities
              according to the current framework.
        –   root/downstream port should also be passthroughed?
●   Multifunction
AER Error injection into guest
●   Capturing AER error
●   Error injection
       –   TLP header mapping(address, device id)
       –   Bus topology mapping
●   Error recovery and reset
       –   Bus toplogy mapping
Error capturing
      Dom0
                                                    ●   Root ports reports all the
                                         Qemu-dm
                                                        errors generated by all
                                                        the device under the bus
Capture errors generated by chosen device           ●   The current PCIe port
                                                        service driver of AER
                 kernel
                                                        captures all errors.
                                                    ●   Enhance PCIe port service
                 PCI Express root port
                                                        driver of AER to capture
                                                        wanted errors.
              PCI Express upstream port Error
                                                    ●   Multiple errors can occur
             PCI Express downstream port      Error
                                                 downstream         downstream
                                                              ...
         Error     PCI Express device              End Node     Error End Node
Error Injection
  ●   TLP header conversion(address, device id)
  ●   Error can occur intermediate ports.
            –   PCIe bus topology mapping isn't trivial
  ●   Multiple error injection.
Interrupt


                PCI Express root port Error
                                                                  qemu-dm

             PCI Express upstream port                             root
Error
message     PCI Express downstream port                             up
                                               Where to inject?
                                                                   down
             PCI Express upstream port Error

            PCI Express downstream port
                                                                          passthrough
                 PCI Express device Error
Recovery and device/bus reset
    ●     PCIe bus can be shared by domains.

                –    Or PCIe functions are passed through to different domUs
    ●     Error can occur intermediate ports
    ●     OS would reset those ports as error recovery

                –    Which real device to reset?
    ●     Bus reset is propageted to all the under devices
    ●     What should do other domains?

                –  Notify reset?
 interrupt     packet                reset
                                                     Domain           Domain         Domain

               PCI Express root port
                                                     passthrough or dom0 uses devices
Error        PCI Express upstream port
message      Error

            PCI Express downstream port        downstream               downstream
                                                                ...
                    PCI Express device             End Node              End Node
Summary
●   Enhanced Qemu
       –   New chipset emulator(mch/ich9)
       –   PCI enhancement
       –   PCI express
               ●   MMCONFIG
               ●   Native hot plug
               ●   Error injection
●   SeaBIOS enhancement
●   VGABIOS modification
Thank you




Questions?

Weitere ähnliche Inhalte

Was ist angesagt?

Q4.11: ARM Architecture
Q4.11: ARM ArchitectureQ4.11: ARM Architecture
Q4.11: ARM ArchitectureLinaro
 
AMBA 5 COHERENT HUB INTERFACE.pptx
AMBA 5 COHERENT HUB INTERFACE.pptxAMBA 5 COHERENT HUB INTERFACE.pptx
AMBA 5 COHERENT HUB INTERFACE.pptxSairam Chebrolu
 
Running Kafka as a Native Binary Using GraalVM with Ozan Günalp
Running Kafka as a Native Binary Using GraalVM with Ozan GünalpRunning Kafka as a Native Binary Using GraalVM with Ozan Günalp
Running Kafka as a Native Binary Using GraalVM with Ozan GünalpHostedbyConfluent
 
Receive side scaling (RSS) with eBPF in QEMU and virtio-net
Receive side scaling (RSS) with eBPF in QEMU and virtio-netReceive side scaling (RSS) with eBPF in QEMU and virtio-net
Receive side scaling (RSS) with eBPF in QEMU and virtio-netYan Vugenfirer
 
Wido den Hollander - 10 ways to break your Ceph cluster
Wido den Hollander - 10 ways to break your Ceph clusterWido den Hollander - 10 ways to break your Ceph cluster
Wido den Hollander - 10 ways to break your Ceph clusterShapeBlue
 
Project ACRN expose and pass through platform hidden PCIe devices to SOS
Project ACRN expose and pass through platform hidden PCIe devices to SOSProject ACRN expose and pass through platform hidden PCIe devices to SOS
Project ACRN expose and pass through platform hidden PCIe devices to SOSProject ACRN
 
Ceph Day Melbourne - Troubleshooting Ceph
Ceph Day Melbourne - Troubleshooting Ceph Ceph Day Melbourne - Troubleshooting Ceph
Ceph Day Melbourne - Troubleshooting Ceph Ceph Community
 
Flink Forward Berlin 2018: Stefan Richter - "Tuning Flink for Robustness and ...
Flink Forward Berlin 2018: Stefan Richter - "Tuning Flink for Robustness and ...Flink Forward Berlin 2018: Stefan Richter - "Tuning Flink for Robustness and ...
Flink Forward Berlin 2018: Stefan Richter - "Tuning Flink for Robustness and ...Flink Forward
 
PCIe Gen 3.0 Presentation @ 4th FPGA Camp
PCIe Gen 3.0 Presentation @ 4th FPGA CampPCIe Gen 3.0 Presentation @ 4th FPGA Camp
PCIe Gen 3.0 Presentation @ 4th FPGA CampFPGA Central
 
PCIe BUS: A State-of-the-Art-Review
PCIe BUS: A State-of-the-Art-ReviewPCIe BUS: A State-of-the-Art-Review
PCIe BUS: A State-of-the-Art-ReviewIOSRJVSP
 
Raspberry Pi 3 + UART/Bluetooth issues
Raspberry Pi 3 + UART/Bluetooth issuesRaspberry Pi 3 + UART/Bluetooth issues
Raspberry Pi 3 + UART/Bluetooth issuesyeokm1
 
CISCO Virtual Private LAN Service (VPLS) Technical Deployment Overview
CISCO Virtual Private LAN Service (VPLS) Technical Deployment OverviewCISCO Virtual Private LAN Service (VPLS) Technical Deployment Overview
CISCO Virtual Private LAN Service (VPLS) Technical Deployment OverviewAmeen Wayok
 
BGP Path Selection & Attributes BGP Weight & BGP AS-Path Prepending
BGP Path Selection & Attributes BGP Weight & BGP AS-Path PrependingBGP Path Selection & Attributes BGP Weight & BGP AS-Path Prepending
BGP Path Selection & Attributes BGP Weight & BGP AS-Path PrependingShawan Roy
 
/proc/irq/&lt;irq>/smp_affinity
/proc/irq/&lt;irq>/smp_affinity/proc/irq/&lt;irq>/smp_affinity
/proc/irq/&lt;irq>/smp_affinityTakuya ASADA
 
Understanding the Value and Architecture of Apache Drill
Understanding the Value and Architecture of Apache DrillUnderstanding the Value and Architecture of Apache Drill
Understanding the Value and Architecture of Apache DrillDataWorks Summit
 
Sync async-blocking-nonblocking-io
Sync async-blocking-nonblocking-ioSync async-blocking-nonblocking-io
Sync async-blocking-nonblocking-ioCheoloh Bae
 
MIPI DevCon 2016: MIPI D-PHY - Physical Layer Test & Measurement Challenges
MIPI DevCon 2016: MIPI D-PHY - Physical Layer Test & Measurement ChallengesMIPI DevCon 2016: MIPI D-PHY - Physical Layer Test & Measurement Challenges
MIPI DevCon 2016: MIPI D-PHY - Physical Layer Test & Measurement ChallengesMIPI Alliance
 
The Tofu Interconnect D for the Post K Supercomputer
The Tofu Interconnect D for the Post K SupercomputerThe Tofu Interconnect D for the Post K Supercomputer
The Tofu Interconnect D for the Post K Supercomputerinside-BigData.com
 

Was ist angesagt? (20)

Q4.11: ARM Architecture
Q4.11: ARM ArchitectureQ4.11: ARM Architecture
Q4.11: ARM Architecture
 
AMBA 5 COHERENT HUB INTERFACE.pptx
AMBA 5 COHERENT HUB INTERFACE.pptxAMBA 5 COHERENT HUB INTERFACE.pptx
AMBA 5 COHERENT HUB INTERFACE.pptx
 
Running Kafka as a Native Binary Using GraalVM with Ozan Günalp
Running Kafka as a Native Binary Using GraalVM with Ozan GünalpRunning Kafka as a Native Binary Using GraalVM with Ozan Günalp
Running Kafka as a Native Binary Using GraalVM with Ozan Günalp
 
Receive side scaling (RSS) with eBPF in QEMU and virtio-net
Receive side scaling (RSS) with eBPF in QEMU and virtio-netReceive side scaling (RSS) with eBPF in QEMU and virtio-net
Receive side scaling (RSS) with eBPF in QEMU and virtio-net
 
Pcie drivers basics
Pcie drivers basicsPcie drivers basics
Pcie drivers basics
 
Wido den Hollander - 10 ways to break your Ceph cluster
Wido den Hollander - 10 ways to break your Ceph clusterWido den Hollander - 10 ways to break your Ceph cluster
Wido den Hollander - 10 ways to break your Ceph cluster
 
Project ACRN expose and pass through platform hidden PCIe devices to SOS
Project ACRN expose and pass through platform hidden PCIe devices to SOSProject ACRN expose and pass through platform hidden PCIe devices to SOS
Project ACRN expose and pass through platform hidden PCIe devices to SOS
 
Ceph Day Melbourne - Troubleshooting Ceph
Ceph Day Melbourne - Troubleshooting Ceph Ceph Day Melbourne - Troubleshooting Ceph
Ceph Day Melbourne - Troubleshooting Ceph
 
Flink Forward Berlin 2018: Stefan Richter - "Tuning Flink for Robustness and ...
Flink Forward Berlin 2018: Stefan Richter - "Tuning Flink for Robustness and ...Flink Forward Berlin 2018: Stefan Richter - "Tuning Flink for Robustness and ...
Flink Forward Berlin 2018: Stefan Richter - "Tuning Flink for Robustness and ...
 
PCIe Gen 3.0 Presentation @ 4th FPGA Camp
PCIe Gen 3.0 Presentation @ 4th FPGA CampPCIe Gen 3.0 Presentation @ 4th FPGA Camp
PCIe Gen 3.0 Presentation @ 4th FPGA Camp
 
Persistent memory
Persistent memoryPersistent memory
Persistent memory
 
PCIe BUS: A State-of-the-Art-Review
PCIe BUS: A State-of-the-Art-ReviewPCIe BUS: A State-of-the-Art-Review
PCIe BUS: A State-of-the-Art-Review
 
Raspberry Pi 3 + UART/Bluetooth issues
Raspberry Pi 3 + UART/Bluetooth issuesRaspberry Pi 3 + UART/Bluetooth issues
Raspberry Pi 3 + UART/Bluetooth issues
 
CISCO Virtual Private LAN Service (VPLS) Technical Deployment Overview
CISCO Virtual Private LAN Service (VPLS) Technical Deployment OverviewCISCO Virtual Private LAN Service (VPLS) Technical Deployment Overview
CISCO Virtual Private LAN Service (VPLS) Technical Deployment Overview
 
BGP Path Selection & Attributes BGP Weight & BGP AS-Path Prepending
BGP Path Selection & Attributes BGP Weight & BGP AS-Path PrependingBGP Path Selection & Attributes BGP Weight & BGP AS-Path Prepending
BGP Path Selection & Attributes BGP Weight & BGP AS-Path Prepending
 
/proc/irq/&lt;irq>/smp_affinity
/proc/irq/&lt;irq>/smp_affinity/proc/irq/&lt;irq>/smp_affinity
/proc/irq/&lt;irq>/smp_affinity
 
Understanding the Value and Architecture of Apache Drill
Understanding the Value and Architecture of Apache DrillUnderstanding the Value and Architecture of Apache Drill
Understanding the Value and Architecture of Apache Drill
 
Sync async-blocking-nonblocking-io
Sync async-blocking-nonblocking-ioSync async-blocking-nonblocking-io
Sync async-blocking-nonblocking-io
 
MIPI DevCon 2016: MIPI D-PHY - Physical Layer Test & Measurement Challenges
MIPI DevCon 2016: MIPI D-PHY - Physical Layer Test & Measurement ChallengesMIPI DevCon 2016: MIPI D-PHY - Physical Layer Test & Measurement Challenges
MIPI DevCon 2016: MIPI D-PHY - Physical Layer Test & Measurement Challenges
 
The Tofu Interconnect D for the Post K Supercomputer
The Tofu Interconnect D for the Post K SupercomputerThe Tofu Interconnect D for the Post K Supercomputer
The Tofu Interconnect D for the Post K Supercomputer
 

Andere mochten auch

Extracting Linux kernel feature model changes with FMDiff
Extracting Linux kernel feature model changes with FMDiff Extracting Linux kernel feature model changes with FMDiff
Extracting Linux kernel feature model changes with FMDiff NicoDintzner
 
The e820 trap of Linux kernel hibernation
The e820 trap of Linux kernel hibernationThe e820 trap of Linux kernel hibernation
The e820 trap of Linux kernel hibernationjoeylikernel
 
LCU13: ACPI power state mapping
LCU13: ACPI power state mappingLCU13: ACPI power state mapping
LCU13: ACPI power state mappingLinaro
 
Comp tia flashcards set 1 (15 cards) acpi cmos
Comp tia flashcards set 1 (15 cards) acpi   cmosComp tia flashcards set 1 (15 cards) acpi   cmos
Comp tia flashcards set 1 (15 cards) acpi cmosSue Long Smith
 
Kernel Recipes 2015: Representing device-tree peripherals in ACPI
Kernel Recipes 2015: Representing device-tree peripherals in ACPIKernel Recipes 2015: Representing device-tree peripherals in ACPI
Kernel Recipes 2015: Representing device-tree peripherals in ACPIAnne Nicolas
 
Q2.12: Power Management Across OSs
Q2.12: Power Management Across OSsQ2.12: Power Management Across OSs
Q2.12: Power Management Across OSsLinaro
 
Note - (EDK2) Acpi Tables Compile and Install
Note - (EDK2) Acpi Tables Compile and InstallNote - (EDK2) Acpi Tables Compile and Install
Note - (EDK2) Acpi Tables Compile and Installboyw165
 
BIOS, Linux and Firmware Test Suite in-between
BIOS, Linux and  Firmware Test Suite in-betweenBIOS, Linux and  Firmware Test Suite in-between
BIOS, Linux and Firmware Test Suite in-betweenAlex Hung
 
Las16 200 - firmware summit - ras what is it- why do we need it
Las16 200 - firmware summit - ras what is it- why do we need itLas16 200 - firmware summit - ras what is it- why do we need it
Las16 200 - firmware summit - ras what is it- why do we need itLinaro
 
Linux Initialization Process (1)
Linux Initialization Process (1)Linux Initialization Process (1)
Linux Initialization Process (1)shimosawa
 
Hardware Probing in the Linux Kernel
Hardware Probing in the Linux KernelHardware Probing in the Linux Kernel
Hardware Probing in the Linux KernelKernel TLV
 
High Performance Storage Devices in the Linux Kernel
High Performance Storage Devices in the Linux KernelHigh Performance Storage Devices in the Linux Kernel
High Performance Storage Devices in the Linux KernelKernel TLV
 
Linux Initialization Process (2)
Linux Initialization Process (2)Linux Initialization Process (2)
Linux Initialization Process (2)shimosawa
 
Power aware operating system
Power aware operating systemPower aware operating system
Power aware operating systemRajan Kumar Yadav
 
BUD17-TR01: Philosophy of Open Source
BUD17-TR01: Philosophy of Open SourceBUD17-TR01: Philosophy of Open Source
BUD17-TR01: Philosophy of Open SourceLinaro
 

Andere mochten auch (17)

Extracting Linux kernel feature model changes with FMDiff
Extracting Linux kernel feature model changes with FMDiff Extracting Linux kernel feature model changes with FMDiff
Extracting Linux kernel feature model changes with FMDiff
 
The e820 trap of Linux kernel hibernation
The e820 trap of Linux kernel hibernationThe e820 trap of Linux kernel hibernation
The e820 trap of Linux kernel hibernation
 
LCU13: ACPI power state mapping
LCU13: ACPI power state mappingLCU13: ACPI power state mapping
LCU13: ACPI power state mapping
 
Comp tia flashcards set 1 (15 cards) acpi cmos
Comp tia flashcards set 1 (15 cards) acpi   cmosComp tia flashcards set 1 (15 cards) acpi   cmos
Comp tia flashcards set 1 (15 cards) acpi cmos
 
70 271 Stu Chap07
70 271 Stu Chap0770 271 Stu Chap07
70 271 Stu Chap07
 
Kernel Recipes 2015: Representing device-tree peripherals in ACPI
Kernel Recipes 2015: Representing device-tree peripherals in ACPIKernel Recipes 2015: Representing device-tree peripherals in ACPI
Kernel Recipes 2015: Representing device-tree peripherals in ACPI
 
Q2.12: Power Management Across OSs
Q2.12: Power Management Across OSsQ2.12: Power Management Across OSs
Q2.12: Power Management Across OSs
 
Note - (EDK2) Acpi Tables Compile and Install
Note - (EDK2) Acpi Tables Compile and InstallNote - (EDK2) Acpi Tables Compile and Install
Note - (EDK2) Acpi Tables Compile and Install
 
BIOS, Linux and Firmware Test Suite in-between
BIOS, Linux and  Firmware Test Suite in-betweenBIOS, Linux and  Firmware Test Suite in-between
BIOS, Linux and Firmware Test Suite in-between
 
Las16 200 - firmware summit - ras what is it- why do we need it
Las16 200 - firmware summit - ras what is it- why do we need itLas16 200 - firmware summit - ras what is it- why do we need it
Las16 200 - firmware summit - ras what is it- why do we need it
 
Linux Initialization Process (1)
Linux Initialization Process (1)Linux Initialization Process (1)
Linux Initialization Process (1)
 
Hardware Probing in the Linux Kernel
Hardware Probing in the Linux KernelHardware Probing in the Linux Kernel
Hardware Probing in the Linux Kernel
 
High Performance Storage Devices in the Linux Kernel
High Performance Storage Devices in the Linux KernelHigh Performance Storage Devices in the Linux Kernel
High Performance Storage Devices in the Linux Kernel
 
Linux Initialization Process (2)
Linux Initialization Process (2)Linux Initialization Process (2)
Linux Initialization Process (2)
 
UEFI presentation
UEFI presentationUEFI presentation
UEFI presentation
 
Power aware operating system
Power aware operating systemPower aware operating system
Power aware operating system
 
BUD17-TR01: Philosophy of Open Source
BUD17-TR01: Philosophy of Open SourceBUD17-TR01: Philosophy of Open Source
BUD17-TR01: Philosophy of Open Source
 

Ähnlich wie Status update-qemu-pcie

Raspberry Pi tutorial
Raspberry Pi tutorialRaspberry Pi tutorial
Raspberry Pi tutorial艾鍗科技
 
Linux+sensor+device-tree+shell=IoT !
Linux+sensor+device-tree+shell=IoT !Linux+sensor+device-tree+shell=IoT !
Linux+sensor+device-tree+shell=IoT !Dobrica Pavlinušić
 
Introduction to .NET Micro Framework Development
Introduction to .NET Micro Framework DevelopmentIntroduction to .NET Micro Framework Development
Introduction to .NET Micro Framework Developmentchristopherfairbairn
 
XPDS16: Xen Live Patching - Updating Xen Without Rebooting - Konrad Wilk, Ora...
XPDS16: Xen Live Patching - Updating Xen Without Rebooting - Konrad Wilk, Ora...XPDS16: Xen Live Patching - Updating Xen Without Rebooting - Konrad Wilk, Ora...
XPDS16: Xen Live Patching - Updating Xen Without Rebooting - Konrad Wilk, Ora...The Linux Foundation
 
Advanced Diagnostics 2
Advanced Diagnostics 2Advanced Diagnostics 2
Advanced Diagnostics 2Aero Plane
 
ACPI and FreeBSD (Part 1)
ACPI and FreeBSD (Part 1)ACPI and FreeBSD (Part 1)
ACPI and FreeBSD (Part 1)Nate Lawson
 
Let's trace Linux Lernel with KGDB @ COSCUP 2021
Let's trace Linux Lernel with KGDB @ COSCUP 2021Let's trace Linux Lernel with KGDB @ COSCUP 2021
Let's trace Linux Lernel with KGDB @ COSCUP 2021Jian-Hong Pan
 
SR-IOV, KVM and Emulex OneConnect 10Gbps cards on Debian/Stable
SR-IOV, KVM and Emulex OneConnect 10Gbps cards on Debian/StableSR-IOV, KVM and Emulex OneConnect 10Gbps cards on Debian/Stable
SR-IOV, KVM and Emulex OneConnect 10Gbps cards on Debian/Stablejuet-y
 
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick44CON
 
Qemu device prototyping
Qemu device prototypingQemu device prototyping
Qemu device prototypingYan Vugenfirer
 
Sprint 138
Sprint 138Sprint 138
Sprint 138ManageIQ
 
Project ACRN Device Passthrough Introduction
Project ACRN Device Passthrough IntroductionProject ACRN Device Passthrough Introduction
Project ACRN Device Passthrough IntroductionProject ACRN
 

Ähnlich wie Status update-qemu-pcie (20)

Qemu Pcie
Qemu PcieQemu Pcie
Qemu Pcie
 
Graphics virtualization
Graphics virtualizationGraphics virtualization
Graphics virtualization
 
Graphics virtualization
Graphics virtualizationGraphics virtualization
Graphics virtualization
 
Raspberry Pi tutorial
Raspberry Pi tutorialRaspberry Pi tutorial
Raspberry Pi tutorial
 
Linux+sensor+device-tree+shell=IoT !
Linux+sensor+device-tree+shell=IoT !Linux+sensor+device-tree+shell=IoT !
Linux+sensor+device-tree+shell=IoT !
 
Introduction to .NET Micro Framework Development
Introduction to .NET Micro Framework DevelopmentIntroduction to .NET Micro Framework Development
Introduction to .NET Micro Framework Development
 
haifux-pcie.pdf
haifux-pcie.pdfhaifux-pcie.pdf
haifux-pcie.pdf
 
XPDS16: Xen Live Patching - Updating Xen Without Rebooting - Konrad Wilk, Ora...
XPDS16: Xen Live Patching - Updating Xen Without Rebooting - Konrad Wilk, Ora...XPDS16: Xen Live Patching - Updating Xen Without Rebooting - Konrad Wilk, Ora...
XPDS16: Xen Live Patching - Updating Xen Without Rebooting - Konrad Wilk, Ora...
 
Advanced Diagnostics 2
Advanced Diagnostics 2Advanced Diagnostics 2
Advanced Diagnostics 2
 
ACPI and FreeBSD (Part 1)
ACPI and FreeBSD (Part 1)ACPI and FreeBSD (Part 1)
ACPI and FreeBSD (Part 1)
 
XS Boston 2008 Self IO Emulation
XS Boston 2008 Self IO EmulationXS Boston 2008 Self IO Emulation
XS Boston 2008 Self IO Emulation
 
Let's trace Linux Lernel with KGDB @ COSCUP 2021
Let's trace Linux Lernel with KGDB @ COSCUP 2021Let's trace Linux Lernel with KGDB @ COSCUP 2021
Let's trace Linux Lernel with KGDB @ COSCUP 2021
 
SR-IOV, KVM and Emulex OneConnect 10Gbps cards on Debian/Stable
SR-IOV, KVM and Emulex OneConnect 10Gbps cards on Debian/StableSR-IOV, KVM and Emulex OneConnect 10Gbps cards on Debian/Stable
SR-IOV, KVM and Emulex OneConnect 10Gbps cards on Debian/Stable
 
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
 
SR-IOV Introduce
SR-IOV IntroduceSR-IOV Introduce
SR-IOV Introduce
 
Qemu device prototyping
Qemu device prototypingQemu device prototyping
Qemu device prototyping
 
Sprint 138
Sprint 138Sprint 138
Sprint 138
 
Rnote17
Rnote17Rnote17
Rnote17
 
Project ACRN Device Passthrough Introduction
Project ACRN Device Passthrough IntroductionProject ACRN Device Passthrough Introduction
Project ACRN Device Passthrough Introduction
 
Intel update
Intel updateIntel update
Intel update
 

Mehr von The Linux Foundation

ELC2019: Static Partitioning Made Simple
ELC2019: Static Partitioning Made SimpleELC2019: Static Partitioning Made Simple
ELC2019: Static Partitioning Made SimpleThe Linux Foundation
 
XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...
XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...
XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...The Linux Foundation
 
XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...
XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...
XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...The Linux Foundation
 
XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...
XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...
XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...The Linux Foundation
 
XPDDS19 Keynote: Unikraft Weather Report
XPDDS19 Keynote:  Unikraft Weather ReportXPDDS19 Keynote:  Unikraft Weather Report
XPDDS19 Keynote: Unikraft Weather ReportThe Linux Foundation
 
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...The Linux Foundation
 
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, XilinxXPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, XilinxThe Linux Foundation
 
XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Sys...
XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Sys...XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Sys...
XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Sys...The Linux Foundation
 
XPDDS19: Memories of a VM Funk - Mihai Donțu, Bitdefender
XPDDS19: Memories of a VM Funk - Mihai Donțu, BitdefenderXPDDS19: Memories of a VM Funk - Mihai Donțu, Bitdefender
XPDDS19: Memories of a VM Funk - Mihai Donțu, BitdefenderThe Linux Foundation
 
OSSJP/ALS19: The Road to Safety Certification: Overcoming Community Challeng...
OSSJP/ALS19:  The Road to Safety Certification: Overcoming Community Challeng...OSSJP/ALS19:  The Road to Safety Certification: Overcoming Community Challeng...
OSSJP/ALS19: The Road to Safety Certification: Overcoming Community Challeng...The Linux Foundation
 
OSSJP/ALS19: The Road to Safety Certification: How the Xen Project is Making...
 OSSJP/ALS19: The Road to Safety Certification: How the Xen Project is Making... OSSJP/ALS19: The Road to Safety Certification: How the Xen Project is Making...
OSSJP/ALS19: The Road to Safety Certification: How the Xen Project is Making...The Linux Foundation
 
XPDDS19: Speculative Sidechannels and Mitigations - Andrew Cooper, Citrix
XPDDS19: Speculative Sidechannels and Mitigations - Andrew Cooper, CitrixXPDDS19: Speculative Sidechannels and Mitigations - Andrew Cooper, Citrix
XPDDS19: Speculative Sidechannels and Mitigations - Andrew Cooper, CitrixThe Linux Foundation
 
XPDDS19: Keeping Coherency on Arm: Reborn - Julien Grall, Arm ltd
XPDDS19: Keeping Coherency on Arm: Reborn - Julien Grall, Arm ltdXPDDS19: Keeping Coherency on Arm: Reborn - Julien Grall, Arm ltd
XPDDS19: Keeping Coherency on Arm: Reborn - Julien Grall, Arm ltdThe Linux Foundation
 
XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...
XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...
XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...The Linux Foundation
 
XPDDS19: Status of PCI Emulation in Xen - Roger Pau Monné, Citrix Systems R&D
XPDDS19: Status of PCI Emulation in Xen - Roger Pau Monné, Citrix Systems R&DXPDDS19: Status of PCI Emulation in Xen - Roger Pau Monné, Citrix Systems R&D
XPDDS19: Status of PCI Emulation in Xen - Roger Pau Monné, Citrix Systems R&DThe Linux Foundation
 
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM Systems
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM SystemsXPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM Systems
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM SystemsThe Linux Foundation
 
XPDDS19: Bringing Xen to the Masses: The Story of Building a Community-driven...
XPDDS19: Bringing Xen to the Masses: The Story of Building a Community-driven...XPDDS19: Bringing Xen to the Masses: The Story of Building a Community-driven...
XPDDS19: Bringing Xen to the Masses: The Story of Building a Community-driven...The Linux Foundation
 
XPDDS19: Will Robots Automate Your Job Away? Streamlining Xen Project Contrib...
XPDDS19: Will Robots Automate Your Job Away? Streamlining Xen Project Contrib...XPDDS19: Will Robots Automate Your Job Away? Streamlining Xen Project Contrib...
XPDDS19: Will Robots Automate Your Job Away? Streamlining Xen Project Contrib...The Linux Foundation
 
XPDDS19: Client Virtualization Toolstack in Go - Nick Rosbrook & Brendan Kerr...
XPDDS19: Client Virtualization Toolstack in Go - Nick Rosbrook & Brendan Kerr...XPDDS19: Client Virtualization Toolstack in Go - Nick Rosbrook & Brendan Kerr...
XPDDS19: Client Virtualization Toolstack in Go - Nick Rosbrook & Brendan Kerr...The Linux Foundation
 
XPDDS19: Core Scheduling in Xen - Jürgen Groß, SUSE
XPDDS19: Core Scheduling in Xen - Jürgen Groß, SUSEXPDDS19: Core Scheduling in Xen - Jürgen Groß, SUSE
XPDDS19: Core Scheduling in Xen - Jürgen Groß, SUSEThe Linux Foundation
 

Mehr von The Linux Foundation (20)

ELC2019: Static Partitioning Made Simple
ELC2019: Static Partitioning Made SimpleELC2019: Static Partitioning Made Simple
ELC2019: Static Partitioning Made Simple
 
XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...
XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...
XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...
 
XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...
XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...
XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...
 
XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...
XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...
XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...
 
XPDDS19 Keynote: Unikraft Weather Report
XPDDS19 Keynote:  Unikraft Weather ReportXPDDS19 Keynote:  Unikraft Weather Report
XPDDS19 Keynote: Unikraft Weather Report
 
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...
 
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, XilinxXPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
 
XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Sys...
XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Sys...XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Sys...
XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Sys...
 
XPDDS19: Memories of a VM Funk - Mihai Donțu, Bitdefender
XPDDS19: Memories of a VM Funk - Mihai Donțu, BitdefenderXPDDS19: Memories of a VM Funk - Mihai Donțu, Bitdefender
XPDDS19: Memories of a VM Funk - Mihai Donțu, Bitdefender
 
OSSJP/ALS19: The Road to Safety Certification: Overcoming Community Challeng...
OSSJP/ALS19:  The Road to Safety Certification: Overcoming Community Challeng...OSSJP/ALS19:  The Road to Safety Certification: Overcoming Community Challeng...
OSSJP/ALS19: The Road to Safety Certification: Overcoming Community Challeng...
 
OSSJP/ALS19: The Road to Safety Certification: How the Xen Project is Making...
 OSSJP/ALS19: The Road to Safety Certification: How the Xen Project is Making... OSSJP/ALS19: The Road to Safety Certification: How the Xen Project is Making...
OSSJP/ALS19: The Road to Safety Certification: How the Xen Project is Making...
 
XPDDS19: Speculative Sidechannels and Mitigations - Andrew Cooper, Citrix
XPDDS19: Speculative Sidechannels and Mitigations - Andrew Cooper, CitrixXPDDS19: Speculative Sidechannels and Mitigations - Andrew Cooper, Citrix
XPDDS19: Speculative Sidechannels and Mitigations - Andrew Cooper, Citrix
 
XPDDS19: Keeping Coherency on Arm: Reborn - Julien Grall, Arm ltd
XPDDS19: Keeping Coherency on Arm: Reborn - Julien Grall, Arm ltdXPDDS19: Keeping Coherency on Arm: Reborn - Julien Grall, Arm ltd
XPDDS19: Keeping Coherency on Arm: Reborn - Julien Grall, Arm ltd
 
XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...
XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...
XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...
 
XPDDS19: Status of PCI Emulation in Xen - Roger Pau Monné, Citrix Systems R&D
XPDDS19: Status of PCI Emulation in Xen - Roger Pau Monné, Citrix Systems R&DXPDDS19: Status of PCI Emulation in Xen - Roger Pau Monné, Citrix Systems R&D
XPDDS19: Status of PCI Emulation in Xen - Roger Pau Monné, Citrix Systems R&D
 
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM Systems
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM SystemsXPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM Systems
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM Systems
 
XPDDS19: Bringing Xen to the Masses: The Story of Building a Community-driven...
XPDDS19: Bringing Xen to the Masses: The Story of Building a Community-driven...XPDDS19: Bringing Xen to the Masses: The Story of Building a Community-driven...
XPDDS19: Bringing Xen to the Masses: The Story of Building a Community-driven...
 
XPDDS19: Will Robots Automate Your Job Away? Streamlining Xen Project Contrib...
XPDDS19: Will Robots Automate Your Job Away? Streamlining Xen Project Contrib...XPDDS19: Will Robots Automate Your Job Away? Streamlining Xen Project Contrib...
XPDDS19: Will Robots Automate Your Job Away? Streamlining Xen Project Contrib...
 
XPDDS19: Client Virtualization Toolstack in Go - Nick Rosbrook & Brendan Kerr...
XPDDS19: Client Virtualization Toolstack in Go - Nick Rosbrook & Brendan Kerr...XPDDS19: Client Virtualization Toolstack in Go - Nick Rosbrook & Brendan Kerr...
XPDDS19: Client Virtualization Toolstack in Go - Nick Rosbrook & Brendan Kerr...
 
XPDDS19: Core Scheduling in Xen - Jürgen Groß, SUSE
XPDDS19: Core Scheduling in Xen - Jürgen Groß, SUSEXPDDS19: Core Scheduling in Xen - Jürgen Groß, SUSE
XPDDS19: Core Scheduling in Xen - Jürgen Groß, SUSE
 

Kürzlich hochgeladen

FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 

Kürzlich hochgeladen (20)

FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 

Status update-qemu-pcie

  • 1. Status Update on PCI Express Support in QEmu Isaku Yamahata, VA Linux Systems Japan K.K. <yamahata@valinux.co.jp> Xen Summit North America April 28, 2010
  • 2. Agenda ● Introduction ● Usage and Example ● Implementation Details ● Future Work ● Considerations on further development issues
  • 3. Introduction From http://en.wikipedia.org/wiki/PCI_Express
  • 4. PCI Express native Hotplug Electro Mechanical Lock(EMI) Slot Number From http://docs.hp.com/
  • 5. Eventual Goal Dom0 qemu-dm interrupt root DomU Inject the error up Virtual PCIe Bus down Interrupt to notify the error Xen VMM hardware PCI express bus PCI Express root port PCI Express upstream port PCI Express Error Message native passthrough PCI Express downstream port With native hot plug support Error PCI Express device
  • 6. Eventual Goal ● More PCI features/PCI express features – The current emulated chipset(I440FX/PIIX3) is too old. – So new Chipset emulator is wanted. ● Xen PCI Express support – PCI Express native hotplug – PCI Express native passthourgh ● When error is detected via AER(Advanced Error Reporting), inject the error into the guest. ● these require several steps, so the first step is...
  • 7. First Phase Goal ● Make Qemu PCI Express ready – Introduce new chipset emulator(Q35) ● PCI Express native hot plug ● Implement PCI Express port emulators, and make it possible to inject errors into guest
  • 8. Current status Qemu/PCI express PCIe MMCONFIG Merged. ● the qemu/guest Q35 chipset base working PCIe portemulator PCIe native hotplug working working firmware PCIe AER WIP PCIe error injection VBE paravirtualization WIP working enhancement is seabios mcfg working almost done. e820 working The next step is host bridge initiazatlin working ● pci io/memory qemu upstream space initialization working passing acpi table outside qemu working merge. vgabios VBE paravirtualization working Xen Rebase qemu base Not started PCIe native passthrough Not started seabios update Not started
  • 9. HotPlug functions Function Supported? Attention Button yes Power Controller No MRL Sensor No Attention Indicator Yes Power Indicator Yes Hot-Plug Surprise Yes EMI Yes ● Is MRL(Manually Operated Retention Latch) wanted? ● Is EMI(Electro Mechanical Lock) needed?
  • 11. PCI Express native hotplug ● From qemu monitor command line ● pci_add/pci_del – Or device_add/device_del – This is same to PCI hot plug. – Internally it calls back bus specific function. So it eventually pci express hotplug logic. ● pcie_abp [chassis.]slot – push PCI express attention buttion of a
  • 12. Error injection ● pcie_error_inject [[domain:]bus:]dev.fn is_correctable error_status number number number number [number [number [number [number]]]] – is_correctable: bool ● Correctable or uncorrectable – error_status: uint32_t ● Spcify error type – number: uint32_t*4: TLP header – number: uint32_t*{0-4}: TLP header prefix
  • 13. Example from Linux boot log ACPI: RSDP 00000000000f7ae0 00014 (v00 BOCHS ) ACPI: RSDT 000000001ff78f90 00038 (v01 BOCHS BXPCRSDT 00000001 BXPC 00000001) ACPI: FACP 000000001ffffe70 00074 (v01 BOCHS BXPCFACP 00000001 BXPC 00000001) ACPI: DSDT 000000001ff78fd0 86C82 (v01 BXPC BXDSDT 00000002 INTL 20100121) ACPI: FACS 000000001ffffe00 00040 ACPI: SSDT 000000001ffffdc0 00037 (v01 BOCHS BXPCSSDT 00000001 BXPC 00000001) ACPI: APIC 000000001ffffce0 00072 (v01 BOCHS BXPCAPIC 00000001 BXPC 00000001) ACPI: HPET 000000001ffffca0 00038 (v01 BOCHS BXPCHPET 00000001 BXPC 00000001) ACPI: MCFG 000000001ffffc60 0003C (v01 BOCHS BXPCMCFG 00000001 BXPC 00000001) ... ACPI: bus type pci registered PCI: MMCONFIG for domain 0000 [bus 00-ff] at [mem 0xe0000000-0xefffffff] (base 0xe00000 PCI: MMCONFIG at [mem 0xe0000000-0xefffffff] reserved in E820
  • 14. pcieport 0000:00:04.0: setting latency timer to 64 pcieport 0000:00:04.0: 0000:00:04.0 lo: 0xfee0100c hi: 0x0 data 0x4129 pcieport 0000:00:04.0: irq 24 for MSI/MSI-X pcieport 0000:00:04.0: Requesting control of PCIe PME from ACPI BIOS pcieport 0000:00:04.0: 0000:00:04.0 lo: 0xfee0100c hi: 0x0 data 0x4129 pcieport 0000:00:04.0: Signaling PME through PCIe PME interrupt pcie_pme 0000:00:04.0:pcie01: service driver pcie_pme loaded pci_hotplug: PCI Hot Plug PCI Core version: 0.5 acpi_pcihp: acpi_get_hp_hw_control_from_firmware: Trying to get hotplug control for _SB_.PCI0 acpi_pcihp: acpi_get_hp_hw_control_from_firmware: Gained control for hotplug HW for pci 0000:00:04.0 (_SB_.PCI0) acpi_pcihp: acpi_get_hp_hw_control_from_firmware: Trying to get hotplug control for _SB_.PCI0 acpi_pcihp: acpi_get_hp_hw_control_from_firmware: Gained control for hotplug HW for pci 0000:00:04.0 (_SB_.PCI0) pciehp 0000:00:04.0:pcie04: Hotplug Controller: pciehp 0000:00:04.0:pcie04: Seg/Bus/Dev/Func/IRQ : 0000:00:04.0 IRQ 24 pciehp 0000:00:04.0:pcie04: Vendor ID : 0x8086 pciehp 0000:00:04.0:pcie04: Device ID : 0x3420 pciehp 0000:00:04.0:pcie04: Subsystem ID : 0x0000 pciehp 0000:00:04.0:pcie04: Subsystem Vendor ID : 0x8086 pciehp 0000:00:04.0:pcie04: PCIe Cap offset : 0x90 pciehp 0000:00:04.0:pcie04: PCI resource [7] : [io 0x1000-0x1fff] pciehp 0000:00:04.0:pcie04: PCI resource [8] : [mem 0x20000000-0x201fffff] pciehp 0000:00:04.0:pcie04: PCI resource [9] : [mem 0x20200000-0x203fffff pref] pciehp 0000:00:04.0:pcie04: Slot Capabilities : 0x00020079 pciehp 0000:00:04.0:pcie04: Physical Slot Number : 0 pciehp 0000:00:04.0:pcie04: Attention Button : yes pciehp 0000:00:04.0:pcie04: Power Controller : no pciehp 0000:00:04.0:pcie04: MRL Sensor : no pciehp 0000:00:04.0:pcie04: Attention Indicator : yes pciehp 0000:00:04.0:pcie04: Power Indicator : yes pciehp 0000:00:04.0:pcie04: Hot-Plug Surprise : yes pciehp 0000:00:04.0:pcie04: EMI Present : yes pciehp 0000:00:04.0:pcie04: Command Completed : yes Enabled debug message via pciehp 0000:00:04.0:pcie04: Slot Status pciehp 0000:00:04.0:pcie04: Slot Control : 0x0000 : 0x03c0 kernel command line pciehp 0000:00:04.0:pcie04: HPC vendor_id 8086 device_id 3420 ss_vid 8086 ss_did 0 pci_hotplug.debug=1 pciehp 0000:00:04.0:pcie04: Registering domain:bus:dev=0000:20:00 sun=0 pci_bus 0000:20: dev 00, created physical slot 0 pci_hotplug.debug_acpi=1 pci_hotplug: __pci_hp_register: Added slot 0 to the list pciehp 0000:00:04.0:pcie04: pcie_isr: intr_loc 10 pciehp.pciehp_debug=1 pciehp 0000:00:04.0:pcie04: pciehp_get_power_status: SLOTCTRL a8 value read 3f9 pci_slot.debug=1 pciehp 0000:00:04.0:pcie04: service driver pciehp loaded
  • 15. # lspci -vt lspci -[0000:00]-+-00.0 Intel Corporation 82G33/G31/P35/P31 Express DRAM Controller +-01.0 Cirrus Logic GD 5446 +-04.0-[20]-- +-18.0-[21]-- +-18.1-[22]-- +-18.2-[23]-- +-18.3-[24]-- +-18.4-[25]-- +-18.5-[26]-- +-19.0-[36-bf]--+-00.0-[37-47]--+-00.0-[38]-- ...... | | +-0e.0-[46]-- | | -0f.0-[47]-- | +-00.1-[48-58]--+-00.0-[49]-- | | +-01.0-[4a]-- | | +-02.0-[4b]-- ......
  • 16. # lspci -vvvxxxx ... 00:04.0 PCI bridge: Intel Corporation 5500 Non-Legacy I/O Hub PCI Express Root Port 0 (rev 02) (p Physical Slot: 4 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- < Latency: 0 Bus: primary=00, secondary=20, subordinate=20, sec-latency=0 I/O behind bridge: 00001000-00001fff Memory behind bridge: 20000000-201fffff Prefetchable memory behind bridge: 20200000-203fffff Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- < BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: [40] Subsystem: Intel Corporation Device 0000 Capabilities: [60] MSI: Enable+ Count=1/2 Maskable+ 64bit- Address: 0000100c Data: 4129 Masking: 00000003 Pending: 00000000 Capabilities: [90] Express (v2) Root Port (Slot+), MSI 00 DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us ExtTag- RBE- FLReset- DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop- MaxPayload 128 bytes, MaxReadReq 128 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend- ...
  • 17. (qemu) pci_add 20:0 nic model=e1000 hotplug OK domain 0, bus 32, slot 0, function 0 pciehp 0000:00:04.0:pcie04: pcie_isr: intr_loc 8 pciehp 0000:00:04.0:pcie04: Presence/Notify input change pciehp 0000:00:04.0:pcie04: Card present on Slot(0) pciehp 0000:00:04.0:pcie04: Surprise Removal pciehp 0000:00:04.0:pcie04: pcie_isr: intr_loc 10 pciehp 0000:00:04.0:pcie04: pciehp_green_led_blink: SLOTCTRL a8 write cmd 200 pciehp 0000:00:04.0:pcie04: pciehp_check_link_status: lnk_status = 11 pci 0000:20:00.0: found [8086:100e] class 000200 header type 00 pci 0000:20:00.0: reg 10: [mem 0x00000000-0x0001ffff] pci 0000:20:00.0: reg 14: [io 0x0000-0x003f] pci 0000:20:00.0: reg 30: [mem 0x00000000-0x0001ffff pref] pci 0000:20:00.0: calling quirk_resource_alignment+0x0/0x1b5 pci 0000:20:00.0: calling pci_fixup_transparent_bridge+0x0/0x2a pci 0000:20:00.0: BAR 0: assigned [mem 0x20000000-0x2001ffff] pci 0000:20:00.0: BAR 0: set to [mem 0x20000000-0x2001ffff] (PCI address [0x20000000-0x2001ffff] pci 0000:20:00.0: BAR 6: assigned [mem 0x20200000-0x2021ffff pref] pci 0000:20:00.0: BAR 1: assigned [io 0x1000-0x103f] pci 0000:20:00.0: BAR 1: set to [io 0x1000-0x103f] (PCI address [0x1000-0x103f] pcieport 0000:00:04.0: PCI bridge to [bus 20-20] pcieport 0000:00:04.0: bridge window [io 0x1000-0x1fff] pcieport 0000:00:04.0: bridge window [mem 0x20000000-0x201fffff] pcieport 0000:00:04.0: bridge window [mem 0x20200000-0x203fffff pref] pcieport 0000:00:04.0: setting latency timer to 64 pci 0000:20:00.0: no hotplug settings from platform pci 0000:20:00.0: using default PCI settings e1000 0000:20:00.0: enabling device (0000 -> 0003) e1000 0000:20:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18 e1000 0000:20:00.0: enabling bus mastering e1000 0000:20:00.0: setting latency timer to 64 e1000: 0000:20:00.0: e1000_probe: (PCI:33MHz:32-bit) 52:54:00:12:34:57 e1000: 0000:20:00.0: e1000_reset: Hardware Error e1000: eth1: e1000_probe: Intel(R) PRO/1000 Network Connection pciehp 0000:00:04.0:pcie04: pcie_isr: intr_loc 10
  • 18. Push attention button (qemu) pcie_abp 0 OK chassis 0, slot 0 pciehp 0000:00:04.0:pcie04: pcie_isr: intr_loc 1 pciehp 0000:00:04.0:pcie04: Attention button interrupt received pciehp 0000:00:04.0:pcie04: Button pressed on Slot(0) pciehp 0000:00:04.0:pcie04: pciehp_get_power_status: SLOTCTRL a8 value read 1f9 pciehp 0000:00:04.0:pcie04: PCI slot #0 - powering off due to button press. pciehp 0000:00:04.0:pcie04: pcie_isr: intr_loc 10 pciehp 0000:00:04.0:pcie04: pciehp_green_led_blink: SLOTCTRL a8 write cmd 200 pciehp 0000:00:04.0:pcie04: pciehp_set_attention_status: SLOTCTRL a8 write cmd c0 pciehp 0000:00:04.0:pcie04: pcie_isr: intr_loc 10 pciehp 0000:00:04.0:pcie04: Disabling domain:bus:device=0000:20:00 pciehp 0000:00:04.0:pcie04: pciehp_unconfigure_device: domain:bus:dev = 0000:20:00 e1000: eth1: e1000_reset: Hardware Error e1000 0000:20:00.0: PCI INT A disabled pciehp 0000:00:04.0:pcie04: pcie_isr: intr_loc 10 pciehp 0000:00:04.0:pcie04: pciehp_green_led_off: SLOTCTRL a8 write cmd 300
  • 19. Hot unplug (qemu) pci_del 20:0 pciehp 0000:00:04.0:pcie04: pcie_isr: intr_loc 8 pciehp 0000:00:04.0:pcie04: Presence/Notify input change pciehp 0000:00:04.0:pcie04: Card not present on Slot(0) pciehp 0000:00:04.0:pcie04: Surprise Removal pciehp 0000:00:04.0:pcie04: Disabling domain:bus:device=0000:20:00 pciehp 0000:00:04.0:pcie04: pciehp_unconfigure_device: domain:bus:dev = 0000:20:00 pciehp 0000:00:04.0:pcie04: pcie_isr: intr_loc 10 pciehp 0000:00:04.0:pcie04: pciehp_green_led_off: SLOTCTRL a8 write cmd 300 From /proc/interrupts 24: 13 PCI-MSI-edge PCIe PME, pciehp
  • 20. Some notes on Linux ● Linux doesn't touch electro mechanical interlock(EMI). ● Linux pcie aer doesn't log TLP header prefix.
  • 22. Q35 based new chipset emulator ● Why new chipset? – Keep the currently supported chipset(I440FX/PIIX3) for legacy compatibility. – add new features for modern OSes without legacy compatibility. ● Many clean ups to coexist with the existing chipset.(mch/ich9) – Factor out i440 specific code to coexist.
  • 23. PCI Express port emulator ● Root port/upstream port/downstream port – All of three ports are needed. ● At first, PCI bridge code had to be cleaned up. – It was just a stub, had to implement it first. – PCI bus numbering paravirtualization
  • 24. SeaBIOS modifications ● Multi chipset support – factor out i440 specific code ● PCI Bus initialization – Bus numbering paravirtualization ● 64bit BAR ● MCFG ● Passing DSDT from qemu command line to guest bios
  • 25. VGABios VBE paravirtualization ● Currently qemu mapes VBE base address to the hard coded address. ● Which conflicts MMCONFIG area. ● Make it dynamic by paravirtualization ● However I did it differently from boch one. – I knew bochs work after creating the patch
  • 27. Future Work ● Complete error injection ● Qemu Upstream Merge ● Xen support – rebasing/bios change – PCI Express native passthrough – AER injection
  • 28. Qemu Release Plan ● The next major release 0.13 – Planned target: June 1st – http://www.mail-archive.com/qemu-devel@nongnu.org/msg22485.html ● Planned features – http://wiki.qemu.org/Features/0.13
  • 29. Call to action ● Help for upstream merge. ● Rebase qemu-dm to the upstream qemu ● Switch guest bios from bochs bios to seabios
  • 30. Considerations on further development issues
  • 31. Qemu PCI Express ● There are no interesting emulated PCI Express native devices at the moment. – PCIe switch port isn't interesting. ● Any good candidate? – igb, igbvf – ixgb, ixgbvf
  • 32. Qemu AER emulation and error injection ● Is multiple header recording wanted? – Maybe yes. ● Is multiple errors injection wanted – Maybe this is wanted because Linux aer error injection tool supports it.
  • 33. PCI Exprss native passthrough ● Xen qemu-dm rebasing – Back porting patches is impractical. ● They heavily depends on new qemu device framework.(QDev) ● PCI Express native passthrough – Enhancing the configuration space access is trivial. – Necessary to virtualize extended capabilities according to the current framework. – root/downstream port should also be passthroughed? ● Multifunction
  • 34. AER Error injection into guest ● Capturing AER error ● Error injection – TLP header mapping(address, device id) – Bus topology mapping ● Error recovery and reset – Bus toplogy mapping
  • 35. Error capturing Dom0 ● Root ports reports all the Qemu-dm errors generated by all the device under the bus Capture errors generated by chosen device ● The current PCIe port service driver of AER kernel captures all errors. ● Enhance PCIe port service PCI Express root port driver of AER to capture wanted errors. PCI Express upstream port Error ● Multiple errors can occur PCI Express downstream port Error downstream downstream ... Error PCI Express device End Node Error End Node
  • 36. Error Injection ● TLP header conversion(address, device id) ● Error can occur intermediate ports. – PCIe bus topology mapping isn't trivial ● Multiple error injection. Interrupt PCI Express root port Error qemu-dm PCI Express upstream port root Error message PCI Express downstream port up Where to inject? down PCI Express upstream port Error PCI Express downstream port passthrough PCI Express device Error
  • 37. Recovery and device/bus reset ● PCIe bus can be shared by domains. – Or PCIe functions are passed through to different domUs ● Error can occur intermediate ports ● OS would reset those ports as error recovery – Which real device to reset? ● Bus reset is propageted to all the under devices ● What should do other domains? – Notify reset? interrupt packet reset Domain Domain Domain PCI Express root port passthrough or dom0 uses devices Error PCI Express upstream port message Error PCI Express downstream port downstream downstream ... PCI Express device End Node End Node
  • 38. Summary ● Enhanced Qemu – New chipset emulator(mch/ich9) – PCI enhancement – PCI express ● MMCONFIG ● Native hot plug ● Error injection ● SeaBIOS enhancement ● VGABIOS modification