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

Reply via email to