Skip to content
  • Paolo Bonzini's avatar
    7911747b
    rcu: add rcu library · 7911747b
    Paolo Bonzini authored
    
    
    This includes a (mangled) copy of the liburcu code.  The main changes
    are: 1) removing dependencies on many other header files in liburcu; 2)
    removing for simplicity the tentative busy waiting in synchronize_rcu,
    which has limited performance effects; 3) replacing futexes in
    synchronize_rcu with QemuEvents for Win32 portability.  The API is
    the same as liburcu, so it should be possible in the future to require
    liburcu on POSIX systems for example and use our copy only on Windows.
    
    Among the various versions available I chose urcu-mb, which is the
    least invasive implementation even though it does not have the
    fastest rcu_read_{lock,unlock} implementation.  The urcu flavor can
    be changed later, after benchmarking.
    
    Reviewed-by: default avatarFam Zheng <famz@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    7911747b
    rcu: add rcu library
    Paolo Bonzini authored
    
    
    This includes a (mangled) copy of the liburcu code.  The main changes
    are: 1) removing dependencies on many other header files in liburcu; 2)
    removing for simplicity the tentative busy waiting in synchronize_rcu,
    which has limited performance effects; 3) replacing futexes in
    synchronize_rcu with QemuEvents for Win32 portability.  The API is
    the same as liburcu, so it should be possible in the future to require
    liburcu on POSIX systems for example and use our copy only on Windows.
    
    Among the various versions available I chose urcu-mb, which is the
    least invasive implementation even though it does not have the
    fastest rcu_read_{lock,unlock} implementation.  The urcu flavor can
    be changed later, after benchmarking.
    
    Reviewed-by: default avatarFam Zheng <famz@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
Loading