Inspired by LWN article "Our [desktop] bloat problem" and a comment
about probability of finding unused prototype in kernel.

This is purely FYI.

   version   |   LOC   |    size   | nr_defines | nr_used | bloat |
             |  *.[ch] |   *.[ch]  |     [1]    |   [2]   |   %   |
-------------+---------+-----------+------------+---------+-------+
        0.01 |    8413 |    190551 |        698 |     398 | 42.98 | [4]
         1.0 |  165165 |   4413579 |       5791 |    4472 | 22.78 |
         1.2 |  281985 |   7599324 |      10840 |    7721 | 28.77 |
         1.3 |  310545 |   8332410 |      11637 |    8303 | 28.65 |
         2.0 |  674422 |  18866984 |      23804 |   16746 | 29.65 |
2.6.13-rc6-? | 6133558 | 180252914 |     248063 |  151492 | 38.93 | [3]

Consider the numbers as zero-order approximation because of obvious
flaws in this "research":

* Once one layer of unused defines is removed, another appears
  (real bloat >= bloat).
* Possible ## obfuscation (real bloat <= bloat).
* _Of_course_, my regexp-fu sucks (real nr_defines != nr_defines).
* Counting doesn't understand that
        include/asm-alpha/unistd.h: #define FUBAR 1
        include/asm-sparc/unistd.h: #define FUBAR 1
   means "unused" (real bloat >= bloat).
* Some numbers in *.c files can be these unused defines
  (real bloat <= bloat).

HTH to not put every single piece of hardware spec into kernel next
time.

P. S.: regk_iop_sw_cfg_rw_fifo_out1_extra_owner_default, no less.
-------------------------------------------------------------------
[1] As in

        find . -type f -name *.[ch]             | \
                xargs grep "#[\t ]*define[\t ]" | \
                sed "s/.*#[\t ]*define[\t ]*//" | \
                sed "s/[\t (].*//"              | \
                sort -u

[2] "used" means

        grep $DEFINE -w -r . | wc -l    >= 2

[3] Quite recent 2.6.13-rc6-git-something. I forgot [to cat down] exact 
version. 
[4] Not Linus's fault ;-). Remember about __NR_*.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to