Subject: Re: ksyms patches.
To: None <ragge@ludd.luth.se>
From: Jason Thorpe <thorpej@wasabisystems.com>
List: tech-kern
Date: 04/21/2003 08:57:54
On Monday, April 21, 2003, at 08:32  AM, <ragge@ludd.luth.se> wrote:

> Yep, so I thought it would be cleaner solution if it could be loaded
> after the kernel starts, by for example "cat /netbsd > /dev/ksyms" to
> get the master table.  That would replace SYMTAB_SPACE.

That's not always possible, nor desirable.

Consider the following scenarios:

	1. Debugging the kernel.  Userland isn't working.  I'd like to
	   be able to use DDB in order to figure out why.

	2. Embedded system.  Kernel starts directly out of flash, has
	   a ramdisk without an extra copy of the kernel in it.  Kernel
	   in flash is a flat binary image, possibly compressed and wrapped
	   in something else that decompresses it into RAM.

For both of these cases (which I happen to encounter frequently :-), 
SYMTAB_SPACE is extremely valuable.  For this reason, I'd like to keep 
it around.

> The problem is that for modules then the symbol table and the string
> table would need to be on (at least) two extra pages for each module,
> which would require a large amount of extra memory if there are say,
> 50 modules.  Maybe it's not a big problem on newer machines, but older
> would loose much of their memory.

Fair enough -- that's why I asked :-)

> That would be doable, yes.  Another way is to make nlist use the
> ioctl's that are currently disabled that do the lookup in-kernel.
> That would be as fast.

Yah, I was going to suggest that, but then wondered if adding the 
ioctls was a good idea, but then I noticed you'd added them already :-)

         -- Jason R. Thorpe <thorpej@wasabisystems.com>