tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Move kern_ctf to the dtrace module?



It was suggested to me in private Email that perhaps the file sys/kern/kern_ctf.c should be moved out of src/sys and into "the module's [source] directory."

I'd rather not move the file into src/external/..../dtrace/dev/fbt/ because kern_ctf.c and the existing file both include some headers with the same name, but expecting different files to be included! (dtrace provides its own versions of sys/kobj.h and sys/kobj_impl.h headers.)

We generally don't put actual source files into src/sys/modules/* but it might be appropriate in this case.

Either way, I'm not really happy about using file-specific CPP_FLAGS in sys/modules/dtrace/fbt/Makefile but the only other way to make this work would be to create a dtrace_fbt_ctf module, on which dtrace_fbt would depend. This introduces an additional layer of module-autoload, and would occupy a slightly larger in-memory footprint, but should not have any other impact.

So, questions to be answered:

* Where should sys/kern/kern_ctf.c reside?
* Should kern_ctf.c be a separate (sub)module?

Any thoughts?

On Tue, 13 Sep 2016, Paul Goyette wrote:

On Mon, 12 Sep 2016, Paul Goyette wrote:

Currently, if you include KDTRACE_HOOKS in your kernel, we automatically include src/sys/kern/kern_ctf.[co] in the resulting kernel.

kern_ctf defines only one global symbol, mod_ctf_get(), according to the generated netbsd.map file, and there are no references anywhere else in the kernel to this routine; the only reference is within the sub-module dtrace_fbt.kmod

I would like to suggest that kern_ctf be removed from the kernel, and added to the dtrace_fbt module. And, since kern_ctf references stuff in net/zlib.c, the dtrace_fbt module should depend on zlib module. And finally, the ktrace_hooks dependency can be removed from the zlib.c line in net/files.net

The bottom line is that zlib code won't be included in kernels that don't need it, yet will still be available when using dtrace (which is only available as a module).


If I don't see any significant objections, I'll post diffs in a day or so before making any commits.

Diffs are attached here.

I plan to commit within the next couple of days...



+------------------+--------------------------+------------------------+
| Paul Goyette     | PGP Key fingerprint:     | E-mail addresses:      |
| (Retired)        | FA29 0E3B 35AF E8AE 6651 | paul at whooppee.com   |
| Kernel Developer | 0786 F758 55DE 53BA 7731 | pgoyette at netbsd.org |
+------------------+--------------------------+------------------------+

+------------------+--------------------------+------------------------+
| Paul Goyette     | PGP Key fingerprint:     | E-mail addresses:      |
| (Retired)        | FA29 0E3B 35AF E8AE 6651 | paul at whooppee.com   |
| Kernel Developer | 0786 F758 55DE 53BA 7731 | pgoyette at netbsd.org |
+------------------+--------------------------+------------------------+


Home | Main Index | Thread Index | Old Index