• C
    spapr/xive: use the VCPU id as a NVT identifier · 0cddee8d
    Cédric Le Goater 提交于
    The IVPE scans the O/S CAM line of the XIVE thread interrupt contexts
    to find a matching Notification Virtual Target (NVT) among the NVTs
    dispatched on the HW processor threads.
    
    On a real system, the thread interrupt contexts are updated by the
    hypervisor when a Virtual Processor is scheduled to run on a HW
    thread. Under QEMU, the model will emulate the same behavior by
    hardwiring the NVT identifier in the thread context registers at
    reset.
    
    The NVT identifier used by the sPAPRXive model is the VCPU id. The END
    identifier is also derived from the VCPU id. A set of helpers doing
    the conversion between identifiers are provided for the hcalls
    configuring the sources and the ENDs.
    
    The model does not need a NVT table but the XiveRouter NVT operations
    are provided to perform some extra checks in the routing algorithm.
    Signed-off-by: NCédric Le Goater <clg@kaod.org>
    Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
    0cddee8d
spapr_xive.c 12.2 KB