Skip to content
Snippets Groups Projects
  • Emilio G. Cota's avatar
    068a5ea0
    qom: convert the CPU list to RCU · 068a5ea0
    Emilio G. Cota authored
    
    Iterating over the list without using atomics is undefined behaviour,
    since the list can be modified concurrently by other threads (e.g.
    every time a new thread is created in user-mode).
    
    Fix it by implementing the CPU list as an RCU QTAILQ. This requires
    a little bit of extra work to traverse list in reverse order (see
    previous patch), but other than that the conversion is trivial.
    
    Signed-off-by: default avatarEmilio G. Cota <cota@braap.org>
    Message-Id: <20180819091335.22863-12-cota@braap.org>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    068a5ea0
    History
    qom: convert the CPU list to RCU
    Emilio G. Cota authored
    
    Iterating over the list without using atomics is undefined behaviour,
    since the list can be modified concurrently by other threads (e.g.
    every time a new thread is created in user-mode).
    
    Fix it by implementing the CPU list as an RCU QTAILQ. This requires
    a little bit of extra work to traverse list in reverse order (see
    previous patch), but other than that the conversion is trivial.
    
    Signed-off-by: default avatarEmilio G. Cota <cota@braap.org>
    Message-Id: <20180819091335.22863-12-cota@braap.org>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>