Hi Daniel, On 2022-11-09, Daniel Thompson <daniel.thomp...@linaro.org> wrote: >> + /* >> + * The console_srcu_read_lock() only provides safe console list >> + * traversal. The use of the ->write() callback relies on all other >> + * CPUs being stopped at the moment and console drivers being able to >> + * handle reentrance when @oops_in_progress is set. (Note that there >> + * is no guarantee for either criteria.) >> + */ > > The debugger entry protocol does ensure that other CPUs are either > stopped or unresponsive. In the case where the other CPU is unresponsive > (e.g. timed out after being asked to stop) then there is a "real" printk() > issued prior to any of the above interference with the console system to > the developer driving the debugger gets as much clue as we can offer them > about what is going on (typically this is emitted from regular interrupt > context). > > Given this comment is part of the debugger code then for the > oops_in_progress hack it might be more helpful to describe what > the developer in front the debugger needs to do to have the most > reliable debug session possible. > > There is no guarantee that every console drivers can handle reentrance > in this way; the developer deploying the debugger is responsible for > ensuring that the console drivers they have selected handle reentrance > appropriately.
Thanks for the explanation. I will change the comment to: /* * The console_srcu_read_lock() only provides safe console list * traversal. The use of the ->write() callback relies on all other * CPUs being stopped at the moment and console drivers being able to * handle reentrance when @oops_in_progress is set. * * There is no guarantee that every console driver can handle * reentrance in this way; the developer deploying the debugger * is responsible for ensuring that the console drivers they * have selected handle reentrance appropriately. */ John _______________________________________________ Kgdb-bugreport mailing list Kgdb-bugreport@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kgdb-bugreport