• Miroslav Benes's avatar
    x86/xen: Make the secondary CPU idle tasks reliable · c3881eb5
    Miroslav Benes authored
    The unwinder reports the secondary CPU idle tasks' stack on XEN PV as
    unreliable, which affects at least live patching.
    cpu_initialize_context() sets up the context of the CPU through
    VCPUOP_initialise hypercall. After it is woken up, the idle task starts
    in cpu_bringup_and_idle() function and its stack starts at the offset
    right below pt_regs. The unwinder correctly detects the end of stack
    there but it is confused by NULL return address in the last frame.
    
    Introduce a wrapper in assembly, which just calls
    cpu_bringup_and_idle(). The return address is thus pushed on the stack
    and the wrapper contains the annotation hint for the unwinder regarding
    the stack state.
    Signed-off-by: default avatarMiroslav Benes <mbenes@suse.cz>
    Reviewed-by: default avatarJuergen Gross <jgross@suse.com>
    Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
    c3881eb5
xen-head.S 3.2 KB