mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Chris Li" <lkml@chrisli.org>
To: "Takashi Iwai" <tiwai@suse.de>
Cc: "Giacomo A. Catenazzi" <cate@cateee.net>,
	"Mauro Carvalho Chehab" <mchehab@infradead.org>,
	"Steven Rostedt" <rostedt@goodmis.org>,
	linux-kernel@vger.kernel.org
Subject: Re: diet-kconfig: a script to trim unneeded kconfigs
Date: Fri, 19 Sep 2008 16:55:51 -0700	[thread overview]
Message-ID: <70318cbf0809191655m89e4b4fo68c3693487afed98@mail.gmail.com> (raw)
In-Reply-To: <s5hy71oyviu.wl%tiwai@suse.de>

On Fri, Sep 19, 2008 at 9:01 AM, Takashi Iwai <tiwai@suse.de> wrote:
> Yes.  Your stuff would be actually helpful for people who want
> a really slim kernel config.

Incidentally, I wrote such a script as well. In 64 lines of python code.
I attach the script in question in the mail. I use a approach very
similar to yours. But I work around some of the nasty part.

It needs to start with kernel config has most of the modules enabled.
Most of the kernel config from the linux distribution is like that.
Then it try to parse the Kbuild looking for what kernel config produce
what module. It is not a 1 to 1 mapping.

Once  we have the mapping. It open /proc/modules to go over every
module. Remove the config which can produce those module from the
mapping.

Now we have a blacklist of config produce modules but not the one we want.

Then  the last stage is just open a config file and filter out the config
option on the blacklist. Write the result to a new config file.

I avoid arch/ and firmware/ because it is nasty. I figure module in
arch/ is small enough I don't mind building it. And the firmware directory,
if I don't build the module loads it. Those firmware will automatically skipped
any way.

The little tricky part is some thing like this:
========================
ifeq ($(CONFIG_BLK_DEV_CMD640), m)
        obj-m += cmd640.o
endif
========================
Internally it get convert it into:
"obj-$(CONFIG_BLK_DEV_CMD640) += cmd640.o"

For easier parsing.
It is pretty fast as well. Less then a second if the file cache is
hot.

$ time minmod.py .config
reading Kbuild Makefile 593 files
acpi_cpufreq : Uknown module, may be firmware?
dcdbas : Uknown module, may be firmware?
1560 module option disabled
Writing new config to: .config.min

real	0m0.470s
user	0m0.303s
sys	0m0.075s
$

Chris

  reply	other threads:[~2008-09-19 23:56 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-16 23:55 Takashi Iwai
2008-09-18 14:01 ` Giacomo A. Catenazzi
2008-09-18 20:09   ` Takashi Iwai
2008-09-18 15:25 ` Mauro Carvalho Chehab
2008-09-18 15:43   ` Giacomo A. Catenazzi
2008-09-18 16:27     ` Mauro Carvalho Chehab
2008-09-19  9:12       ` Giacomo A. Catenazzi
2008-09-19 16:01         ` Takashi Iwai
2008-09-19 23:55           ` Chris Li [this message]
2008-09-19 23:57             ` Chris Li
2008-09-22 10:01             ` Takashi Iwai
2008-09-22 13:39               ` Giacomo A. Catenazzi
2008-09-22 15:41                 ` Steven Rostedt
2008-09-22 15:50                   ` Takashi Iwai
2008-09-22 19:25               ` Chris Li
2008-09-23 11:31                 ` Takashi Iwai
2008-09-23 18:15                   ` Chris Li
2008-09-23 18:50                     ` Takashi Iwai
2008-09-23 19:40                       ` Chris Li
2008-09-18 20:20     ` Takashi Iwai
2008-09-18 20:17   ` Takashi Iwai
2008-09-18 21:09     ` Valdis.Kletnieks
2008-09-18 22:14       ` Takashi Iwai

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=70318cbf0809191655m89e4b4fo68c3693487afed98@mail.gmail.com \
    --to=lkml@chrisli.org \
    --cc=cate@cateee.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mchehab@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=tiwai@suse.de \
    /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

all inboxes | Powered by JetHome®