• A
    Revert some patches from recent [PATCH v6] "Fixing record/replay and adding reverse debugging" · 05ff8dc3
    Artem Pisarenko 提交于
    That patch series introduced new virtual clock type for use in external
    subsystems. It breaks desired behavior in non-record/replay usage
    scenarios due to a small change to existing behavior.  Processing of
    virtual timers belonging to new clock type is kicked off to the main
    loop, which makes these timers asynchronous with vCPU thread and,
    in icount mode, with whole guest execution. This breaks expected
    determinism in non-record/replay icount mode of emulation where these
    "external subsystems" are isolated from the host (i.e. they are
    external only to guest core, not to the entire emulation environment).
    
    Example for slirp ("user" backend for network device):
    User runs qemu in icount mode with rtc clock=vm without any external
    communication interfaces but with "-netdev user,restrict=on". It expects
    deterministic execution, because network services are emulated inside
    qemu and isolated from host. There are no reasons to get reply from DHCP
    server with different delay or something like that.
    
    The next patches revert reimplements the same changes in a better way.
    This reverts commit 87f4fe76.
    This reverts commit 775a412b.
    This reverts commit 98880914.
    Signed-off-by: NArtem Pisarenko <artem.k.pisarenko@gmail.com>
    Message-Id: <18b1e7c8f155fe26976f91be06bde98eef6f8751.1539764043.git.artem.k.pisarenko@gmail.com>
    Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
    05ff8dc3
qemu-timer.c 17.7 KB