• Johannes Berg's avatar
    um: virtio_uml: Fix time-travel external time propagation · 85e73968
    Johannes Berg authored
    When creating an external event, the current time needs to
    be propagated to other participants of a simulation. This
    is done in the places here where we kick a virtq etc.
    
    However, it must be done for _all_ external events, and
    that includes making the initial socket connection and
    later closing it. Call time_travel_propagate_time() to do
    this before making or closing the socket connection.
    
    Apparently, at least for the initial connection creation,
    due to the remote side in my use cases using microseconds
    (rather than nanoseconds), this wasn't a problem yet; only
    started failing between 5.14-rc1 and 5.15-rc1 (didn't test
    others much), or possibly depending on the configuration,
    where more delays happen before the virtio devices are
    initialized.
    
    Fixes: 88ce6424 ("um: Implement time-travel=ext")
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
    85e73968
virtio_uml.c 34.1 KB