On 12/22/22 17:49, Daniel Thompson wrote:
On Mon, Dec 19, 2022 at 11:11:07PM +0100, Helge Deller wrote:
On my 32-bit machine, with BREAK_INSTR_SIZE=4 the kgdb_break[] structure
allocates 16000 bytes of static kernel memory, which is - by default -
to be able to handle up to 1000 concurrent kgdb breakpoints.  I might be
wrong, but I doubt that in real life someone really needs that many
breakpoints, so I suggest to reduce the number of possible kgdb
breakpoints and thus reduce the memory footprint of kgdb_break[].

I am somewhat dubious about this change. 1000 is large but if we place
a breakpoint on an inline function this can result in many breakpoints
being set (they appear as a single b.p. in the gdb UI but kgdb will see
all the inlined sites).

As such I'm not clear why 40 (which risks breaking some use cases) is a
better default than 1000 (which "only" costs us 16 to 24k).

If somebody really wants to debug a system where the memory costs cause
serious trouble then I guess we could entertain a config option
(defaulting to 1000) to allow for such tiny systems. However it does
need to start from "we really need this memory because..." rather than
just because "16k is a waste".

Saving memory is good, and choosing a sane and realistic high-enough default
value which keeps debugging possible should be the goal. I haven't debugged
much with kgdb yet, so I don't know what the best amount is.
40 was just a guess from me.

Helge


_______________________________________________
Kgdb-bugreport mailing list
Kgdb-bugreport@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kgdb-bugreport

Reply via email to