On Thu, Sep 23, 2021 at 12:31:14PM +0200, Roger Pau Monné wrote: > On Tue, Sep 21, 2021 at 09:20:00AM +0200, Jan Beulich wrote: > > - /* Prevent interleaving of output. */ > > - flags = console_lock_recursive_irqsave(); > > + /* > > + * Prevent interleaving of output if possible. For HVM we can't do so, > > as > > + * the necessary P2M lookups involve locking, which has to occur with > > IRQs > > + * enabled. > > + */ > > + if ( !is_hvm_vcpu(v) ) > > + flags = console_lock_recursive_irqsave(); > > > > vcpu_show_registers(v); > > - if ( guest_kernel_mode(v, &v->arch.user_regs) ) > > + if ( is_hvm_vcpu(v) ) > > + show_hvm_stack(v, &v->arch.user_regs); > > Would it make sense to unlock in show_hvm_stack, and thus keep the > printing of vcpu_show_registers locked even when in HVM context?
To clarify, the unlock should be limited around the call to show_hvm_stack, not to be performed inside of the function itself (since we would have to pass flags around then). Thanks, Roger.
