Skip to content
  • Alex Bennée's avatar
    c3b9a07a
    cputlb: introduce tlb_flush_*_all_cpus[_synced] · c3b9a07a
    Alex Bennée authored
    
    
    This introduces support to the cputlb API for flushing all CPUs TLBs
    with one call. This avoids the need for target helpers to iterate
    through the vCPUs themselves.
    
    An additional variant of the API (_synced) will cause the source vCPUs
    work to be scheduled as "safe work". The result will be all the flush
    operations will be complete by the time the originating vCPU executes
    its safe work. The calling implementation can either end the TB
    straight away (which will then pick up the cpu->exit_request on
    entering the next block) or defer the exit until the architectural
    sync point (usually a barrier instruction).
    
    Signed-off-by: default avatarAlex Bennée <alex.bennee@linaro.org>
    Reviewed-by: default avatarRichard Henderson <rth@twiddle.net>
    c3b9a07a
    cputlb: introduce tlb_flush_*_all_cpus[_synced]
    Alex Bennée authored
    
    
    This introduces support to the cputlb API for flushing all CPUs TLBs
    with one call. This avoids the need for target helpers to iterate
    through the vCPUs themselves.
    
    An additional variant of the API (_synced) will cause the source vCPUs
    work to be scheduled as "safe work". The result will be all the flush
    operations will be complete by the time the originating vCPU executes
    its safe work. The calling implementation can either end the TB
    straight away (which will then pick up the cpu->exit_request on
    entering the next block) or defer the exit until the architectural
    sync point (usually a barrier instruction).
    
    Signed-off-by: default avatarAlex Bennée <alex.bennee@linaro.org>
    Reviewed-by: default avatarRichard Henderson <rth@twiddle.net>
Loading