From: wdebruij@dds.nl
To: linux-kernel@vger.kernel.org
Cc: Andrew Morton <akpm@osdl.org>
Subject: [ANNOUNCE] various linux kernel devtools : device handling/memory mapping/profiling/etc.
Date: Mon, 5 Apr 2004 19:33:22 +0200 [thread overview]
Message-ID: <1081186402.407198620a28b@webmail.dds.nl> (raw)
Hi all,
During development of a linux kernel network monitoring package (FFPF) I
created a few kernelspace and cross-userspace/kernelspace tools that I hope
others can benefit from too.
I haven't packages everything I wrote, just those elements that reduce
kernelsize and development time when multiple people use it. In its current
state everything is functionally OK, but the code cannot as yet be merged
into the kernel directly as I developed it outside of the main tree. Instead,
I hope you will take a look at it and tell me what could be direct kernel
material, and what should be changed or removed. After that I will supply
individual patches against the latest version.
very briefly, the toolbox contains the following:
KERNEL specific:
- a generic device file interface, which abstracts away kernelversion
differences, devfs/mknod/udev differences and memory addressing differences.
The device API implements most of the standard device file handling code,
including various memory mapping syscall handlers. With this interface driver
developers will only have to override small pieces of code, instead of
building everything from the ground up. I'm using it in 3 different modules,
already. This is the 'jewel' of the package, and grepping the kernel sources
I think many drivers could benefit from it (reduced size/complexity).
Especially for beginner kernel hackers this could reduce the learning curve
(and for those of you who've been going at it for a long time and forgot:
it's quite steep :).
- a generic pci initialization interface. Could perhaps be merged with the
existing PCI subsytem. I needed it for implementing a PCI driver (more below)
- a module API that abstracts away kernel version differences.
CROSS kernel/userspace (ie, works in both) :
- verbosity level-based debugging, with optional timing/clockcycle and
location information
- clockcycle profiling: the profiler outputs aggregated stats, such as the
median to /proc and optionally through the debugging interface above.
- a multi-policy circular buffer. A buffer where the handling code responds to
policy decisions, such as whether writers should be aware of readers and if
so, how they should respond. I use it for network packet queueing to
userspace.
- some simpler stuff: hashes, stacks (should probably go).
also included in the distribution are demonstrator modules and userspace
programs. The pci module, for example, implements a mmapped interface to any
PCI device's resources. Just supply a vendor id/device id pair on insmod.
Could in itself perhaps be useful for userspace drivers. I've been using it
to initialize a network processor board over the PCI bus.
since most of my software has to be able to run both in kernel- and in
userspace I cannot simply supply a patch at the moment, I'm sorry. Instead,
I've packaged the sourcecode (all GPL'ed, naturally) and uploaded it to our
project's site at sourceforge:
URL: http://osdn.dl.sourceforge.net/sourceforge/ffpf/lkct-1.0.tgz
it's about 35kB.
Please have a look and send me your remarks. I would find it a shame if I end
up being the only one using this stuff. I would rather put some extra effort
into changing it to get it accepted.
cheers,
Willem
--
Willem de Bruijn
+31 6 2695 2446
+31 71 517 7174
wdebruij_at_dds.nl
http://www.wdebruij.dds.nl/
current project :
Fairly Fast Packet Filter (FFPF)
http://ffpf.sourceforge.net/
next reply other threads:[~2004-04-05 17:33 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-04-05 17:33 wdebruij [this message]
2004-04-05 18:23 ` [ANNOUNCE] various linux kernel devtools : device handling/memory mapping/profiling/etc Greg KH
-- strict thread matches above, loose matches on Subject: below --
2004-04-05 19:00 wdebruij
2004-04-05 19:30 ` Greg KH
2004-04-06 11:55 ` Willem de Bruijn
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1081186402.407198620a28b@webmail.dds.nl \
--to=wdebruij@dds.nl \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox