1. 01 10月, 2006 2 次提交
    • R
      [PATCH] allow /proc/config.gz to be built as a module · f2443ab6
      Ross Biro 提交于
      The driver for /proc/config.gz consumes rather a lot of memory and it is in
      fact possible to build it as a module.
      
      In some ways this is a bit risky, because the .config which is used for
      compiling kernel/configs.c isn't necessarily the same as the .config which was
      used to build vmlinux.
      
      But OTOH the potential memory savings are decent, and it'd be fairly dumb to
      build your configs.o with a different .config.
      Signed-off-by: NAndrew Morton <akpm@google.com>
      Cc: "Randy.Dunlap" <rdunlap@xenotime.net>
      Cc: Sam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      f2443ab6
    • D
      [PATCH] BLOCK: Make it possible to disable the block layer [try #6] · 9361401e
      David Howells 提交于
      Make it possible to disable the block layer.  Not all embedded devices require
      it, some can make do with just JFFS2, NFS, ramfs, etc - none of which require
      the block layer to be present.
      
      This patch does the following:
      
       (*) Introduces CONFIG_BLOCK to disable the block layer, buffering and blockdev
           support.
      
       (*) Adds dependencies on CONFIG_BLOCK to any configuration item that controls
           an item that uses the block layer.  This includes:
      
           (*) Block I/O tracing.
      
           (*) Disk partition code.
      
           (*) All filesystems that are block based, eg: Ext3, ReiserFS, ISOFS.
      
           (*) The SCSI layer.  As far as I can tell, even SCSI chardevs use the
           	 block layer to do scheduling.  Some drivers that use SCSI facilities -
           	 such as USB storage - end up disabled indirectly from this.
      
           (*) Various block-based device drivers, such as IDE and the old CDROM
           	 drivers.
      
           (*) MTD blockdev handling and FTL.
      
           (*) JFFS - which uses set_bdev_super(), something it could avoid doing by
           	 taking a leaf out of JFFS2's book.
      
       (*) Makes most of the contents of linux/blkdev.h, linux/buffer_head.h and
           linux/elevator.h contingent on CONFIG_BLOCK being set.  sector_div() is,
           however, still used in places, and so is still available.
      
       (*) Also made contingent are the contents of linux/mpage.h, linux/genhd.h and
           parts of linux/fs.h.
      
       (*) Makes a number of files in fs/ contingent on CONFIG_BLOCK.
      
       (*) Makes mm/bounce.c (bounce buffering) contingent on CONFIG_BLOCK.
      
       (*) set_page_dirty() doesn't call __set_page_dirty_buffers() if CONFIG_BLOCK
           is not enabled.
      
       (*) fs/no-block.c is created to hold out-of-line stubs and things that are
           required when CONFIG_BLOCK is not set:
      
           (*) Default blockdev file operations (to give error ENODEV on opening).
      
       (*) Makes some /proc changes:
      
           (*) /proc/devices does not list any blockdevs.
      
           (*) /proc/diskstats and /proc/partitions are contingent on CONFIG_BLOCK.
      
       (*) Makes some compat ioctl handling contingent on CONFIG_BLOCK.
      
       (*) If CONFIG_BLOCK is not defined, makes sys_quotactl() return -ENODEV if
           given command other than Q_SYNC or if a special device is specified.
      
       (*) In init/do_mounts.c, no reference is made to the blockdev routines if
           CONFIG_BLOCK is not defined.  This does not prohibit NFS roots or JFFS2.
      
       (*) The bdflush, ioprio_set and ioprio_get syscalls can now be absent (return
           error ENOSYS by way of cond_syscall if so).
      
       (*) The seclvl_bd_claim() and seclvl_bd_release() security calls do nothing if
           CONFIG_BLOCK is not set, since they can't then happen.
      Signed-Off-By: NDavid Howells <dhowells@redhat.com>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      9361401e
  2. 27 9月, 2006 1 次提交
  3. 17 9月, 2006 1 次提交
  4. 15 7月, 2006 3 次提交
  5. 01 7月, 2006 2 次提交
  6. 28 6月, 2006 1 次提交
  7. 27 6月, 2006 1 次提交
  8. 26 6月, 2006 1 次提交
  9. 20 6月, 2006 1 次提交
    • A
      [PATCH] audit: path-based rules · f368c07d
      Amy Griffis 提交于
      In this implementation, audit registers inotify watches on the parent
      directories of paths specified in audit rules.  When audit's inotify
      event handler is called, it updates any affected rules based on the
      filesystem event.  If the parent directory is renamed, removed, or its
      filesystem is unmounted, audit removes all rules referencing that
      inotify watch.
      
      To keep things simple, this implementation limits location-based
      auditing to the directory entries in an existing directory.  Given
      a path-based rule for /foo/bar/passwd, the following table applies:
      
          passwd modified -- audit event logged
          passwd replaced -- audit event logged, rules list updated
          bar renamed     -- rule removed
          foo renamed     -- untracked, meaning that the rule now applies to
      		       the new location
      
      Audit users typically want to have many rules referencing filesystem
      objects, which can significantly impact filtering performance.  This
      patch also adds an inode-number-based rule hash to mitigate this
      situation.
      
      The patch is relative to the audit git tree:
      http://kernel.org/git/?p=linux/kernel/git/viro/audit-current.git;a=summary
      and uses the inotify kernel API:
      http://lkml.org/lkml/2006/6/1/145Signed-off-by: NAmy Griffis <amy.griffis@hp.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      f368c07d
  10. 09 6月, 2006 1 次提交
  11. 09 5月, 2006 1 次提交
  12. 19 4月, 2006 1 次提交
  13. 11 4月, 2006 1 次提交
  14. 26 3月, 2006 1 次提交
  15. 24 3月, 2006 1 次提交
  16. 13 3月, 2006 1 次提交
    • A
      Kconfig: remove the CONFIG_CC_ALIGN_* options · 8cab77a2
      Adrian Bunk 提交于
      I don't see any use case for the CONFIG_CC_ALIGN_* options:
      - they are only available if EMBEDDED
      - people using EMBEDDED will most likely also enable
        CC_OPTIMIZE_FOR_SIZE
      - the default for -Os is to disable alignment
      
      In case someone is doing performance comparisons and discovers that the
      default settings gcc chooses aren't good, the only sane thing is to discuss
      whether it makes sense to change this, not through offering options to change
      this locally.
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      8cab77a2
  17. 08 2月, 2006 1 次提交
  18. 04 2月, 2006 1 次提交
  19. 17 1月, 2006 1 次提交
  20. 15 1月, 2006 1 次提交
  21. 12 1月, 2006 1 次提交
  22. 11 1月, 2006 1 次提交
    • A
      [PATCH] "tiny-make-id16-support-optional" fixes · 2308acca
      Adrian Bunk 提交于
      It seems the "make UID16 support optional" patch was checked when it
      edited the -tiny tree some time ago, but it wasn't checked whether it
      still matches the current situation when it was submitted for inclusion
      in -mm. This patch fixes the following bugs:
      - ARCH_S390X does no longer exist, nowadays this has to be expressed
        through (S390 && 64BIT)
      - in five architecture specific Kconfig files the UID16 options
        weren't removed
      
      Additionally, it changes the fragile negative dependencies of UID16 to
      positive dependencies (new architectures are more likely to not require
      UID16 support).
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      Acked-by: NMatt Mackall <mpm@selenic.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      2308acca
  23. 09 1月, 2006 5 次提交
    • M
      [PATCH] Make vm86 support optional · 64ca9004
      Matt Mackall 提交于
      This adds an option to remove vm86 support under CONFIG_EMBEDDED.  Saves
      about 5k.
      
      This version eliminates most of the #ifdefs of the previous version and
      instead uses function stubs in vm86.h.  Also, release_vm86_irqs is moved
      from asm-i386/irq.h to a more appropriate home in vm86.h so that the stubs
      can live together.
      
      $ size vmlinux-baseline vmlinux-novm86
         text    data     bss     dec     hex filename
      2920821  523232  190652 3634705  377611 vmlinux-baseline
      2916268  523100  190492 3629860  376324 vmlinux-novm86
      Signed-off-by: NMatt Mackall <mpm@selenic.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      64ca9004
    • M
      [PATCH] tiny: Configure ELF core dump support · 708e9a79
      Matt Mackall 提交于
      configurable support for ELF core dumps
      
         text    data     bss     dec     hex filename
      3330172  529036  190556 4049764  3dcb64 vmlinux-baseline
      3325552  528912  190556 4045020  3db8dc vmlinux-no-elf
      
      add/remove: 0/8 grow/shrink: 0/0 up/down: 0/-4424 (-4424)
      function                                     old     new   delta
      fill_note                                     32       -     -32
      maydump                                       58       -     -58
      dump_seek                                     67       -     -67
      writenote                                    180       -    -180
      elf_dump_thread_status                       274       -    -274
      fill_psinfo                                  308       -    -308
      fill_prstatus                                466       -    -466
      elf_core_dump                               3039       -   -3039
      Signed-off-by: NMatt Mackall <mpm@selenic.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      708e9a79
    • M
      [PATCH] tiny: Make *[ug]id16 support optional · e585e470
      Matt Mackall 提交于
      Configurable 16-bit UID and friends support
      
      This allows turning off the legacy 16 bit UID interfaces on embedded platforms.
      
         text    data     bss     dec     hex filename
      3330172  529036  190556 4049764  3dcb64 vmlinux-baseline
      3328268  529040  190556 4047864  3dc3f8 vmlinux
      
      From: Adrian Bunk <bunk@stusta.de>
      
          UID16 was accidentially disabled for !EMBEDDED.
      Signed-off-by: NMatt Mackall <mpm@selenic.com>
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      e585e470
    • M
      [PATCH] tiny: Make x86 doublefault handling optional · 22c4e308
      Matt Mackall 提交于
      This adds configurable support for doublefault reporting on x86
      
      add/remove: 0/3 grow/shrink: 0/1 up/down: 0/-13048 (-13048)
      function                                     old     new   delta
      cpu_init                                     846     786     -60
      doublefault_fn                               188       -    -188
      doublefault_stack                           4096       -   -4096
      doublefault_tss                             8704       -   -8704
      Signed-off-by: NMatt Mackall <mpm@selenic.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      22c4e308
    • M
      [PATCH] slob: introduce the SLOB allocator · 10cef602
      Matt Mackall 提交于
      configurable replacement for slab allocator
      
      This adds a CONFIG_SLAB option under CONFIG_EMBEDDED.  When CONFIG_SLAB is
      disabled, the kernel falls back to using the 'SLOB' allocator.
      
      SLOB is a traditional K&R/UNIX allocator with a SLAB emulation layer,
      similar to the original Linux kmalloc allocator that SLAB replaced.  It's
      signicantly smaller code and is more memory efficient.  But like all
      similar allocators, it scales poorly and suffers from fragmentation more
      than SLAB, so it's only appropriate for small systems.
      
      It's been tested extensively in the Linux-tiny tree.  I've also
      stress-tested it with make -j 8 compiles on a 3G SMP+PREEMPT box (not
      recommended).
      
      Here's a comparison for otherwise identical builds, showing SLOB saving
      nearly half a megabyte of RAM:
      
      $ size vmlinux*
         text    data     bss     dec     hex filename
      3336372  529360  190812 4056544  3de5e0 vmlinux-slab
      3323208  527948  190684 4041840  3dac70 vmlinux-slob
      
      $ size mm/{slab,slob}.o
         text    data     bss     dec     hex filename
        13221     752      48   14021    36c5 mm/slab.o
         1896      52       8    1956     7a4 mm/slob.o
      
      /proc/meminfo:
                        SLAB          SLOB      delta
      MemTotal:        27964 kB      27980 kB     +16 kB
      MemFree:         24596 kB      25092 kB    +496 kB
      Buffers:            36 kB         36 kB       0 kB
      Cached:           1188 kB       1188 kB       0 kB
      SwapCached:          0 kB          0 kB       0 kB
      Active:            608 kB        600 kB      -8 kB
      Inactive:          808 kB        812 kB      +4 kB
      HighTotal:           0 kB          0 kB       0 kB
      HighFree:            0 kB          0 kB       0 kB
      LowTotal:        27964 kB      27980 kB     +16 kB
      LowFree:         24596 kB      25092 kB    +496 kB
      SwapTotal:           0 kB          0 kB       0 kB
      SwapFree:            0 kB          0 kB       0 kB
      Dirty:               4 kB         12 kB      +8 kB
      Writeback:           0 kB          0 kB       0 kB
      Mapped:            560 kB        556 kB      -4 kB
      Slab:             1756 kB          0 kB   -1756 kB
      CommitLimit:     13980 kB      13988 kB      +8 kB
      Committed_AS:     4208 kB       4208 kB       0 kB
      PageTables:         28 kB         28 kB       0 kB
      VmallocTotal:  1007312 kB    1007312 kB       0 kB
      VmallocUsed:        48 kB         48 kB       0 kB
      VmallocChunk:  1007264 kB    1007264 kB       0 kB
      
      (this work has been sponsored in part by CELF)
      
      From: Ingo Molnar <mingo@elte.hu>
      
         Fix 32-bitness bugs in mm/slob.c.
      Signed-off-by: NMatt Mackall <mpm@selenic.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      10cef602
  24. 07 1月, 2006 2 次提交
  25. 05 1月, 2006 2 次提交
  26. 27 12月, 2005 1 次提交
  27. 21 12月, 2005 1 次提交
  28. 15 12月, 2005 1 次提交
    • L
      Move size optimization option outside of EMBEDDED menu, mark it EXPERIMENTAL · c45b4f1f
      Linus Torvalds 提交于
      Also, disable on sparc64 - a number of people report breakage.  Probably
      a compiler bug, but it's quite possible that it tickles some latent
      kernel problem too.
      
      It still defaults to 'y' everywhere else (when enabled through
      EXPERIMENTAL), and Dave Jones points out that Fedora (and RHEL4) has
      been building with size optimizations for a long time on x86, x86-64,
      ia64, s390, s390x, ppc32 and ppc64.  So it is really only moderately
      experimental, but the sparc64 breakage certainly shows that it can
      trigger "issues".
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      c45b4f1f
  29. 14 12月, 2005 2 次提交