Skip to content
Snippets Groups Projects
  • Glauber Costa's avatar
    587063a8
    xen: use bsrq instead of bsrl for event channels · 587063a8
    Glauber Costa authored
    
    This patch fixes the Amazon crash many CPUs. Funny enough, it is not
    actually related to the number of CPUs. In that situation, the port
    numbers allocated for the event channels are quite high. I don't
    really know the reason for that, maybe the Hypervisor reserves the
    small bits for CPU related things...
    
    As we have more and more CPUs and the bits shift more and more rightwards,
    they eventually reach the second long word of the event channel quadword.
    
    But we have been operating this with brsl, which will only reach a long word.
    If bit 32, for instance, is 1, it  will be interpreted as bit 0 == 1. Bit 0
    having no registered handler, that will turn into a nullptr access.
    
    Cheers for Dima for doing most of the debugging and heavy lifting here.
    The hang issues are still present.
    
    Fixes #109.
    
    Signed-off-by: default avatarGlauber Costa <glommer@cloudius-systems.com>
    Signed-off-by: default avatarDmitry Fleytman <dmitry@daynix.com>
    Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>
    587063a8
    History
    xen: use bsrq instead of bsrl for event channels
    Glauber Costa authored
    
    This patch fixes the Amazon crash many CPUs. Funny enough, it is not
    actually related to the number of CPUs. In that situation, the port
    numbers allocated for the event channels are quite high. I don't
    really know the reason for that, maybe the Hypervisor reserves the
    small bits for CPU related things...
    
    As we have more and more CPUs and the bits shift more and more rightwards,
    they eventually reach the second long word of the event channel quadword.
    
    But we have been operating this with brsl, which will only reach a long word.
    If bit 32, for instance, is 1, it  will be interpreted as bit 0 == 1. Bit 0
    having no registered handler, that will turn into a nullptr access.
    
    Cheers for Dima for doing most of the debugging and heavy lifting here.
    The hang issues are still present.
    
    Fixes #109.
    
    Signed-off-by: default avatarGlauber Costa <glommer@cloudius-systems.com>
    Signed-off-by: default avatarDmitry Fleytman <dmitry@daynix.com>
    Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>