1. 20 Apr, 2009 1 commit
  2. 13 Feb, 2009 1 commit
  3. 22 Jul, 2008 1 commit
  4. 13 Jul, 2009 2 commits
    • Artem Bityutskiy's avatar
      This patch adds new operation to struct super_operations - sync_inodes, · 700f8105
      Artem Bityutskiy authored
      generic implementaion and changes fs-writeback.c:sync_sb_inodes() to call
      filesystem's sync_inodes if it is defined or generic implementaion otherwise.
      This new operation allows filesystem to decide itself what to flush.
      
      Reiser4 flushes dirty pages on basic of atoms, not of inodes.  sync_sb_inodes
      used to call address space flushing method (writepages) for every dirty inode.
       For reiser4 it caused having to commit atoms unnecessarily often.  This
      turned into substantial slowdown.  Having this method helped to fix that
      problem.
      Signed-off-by: default avatarArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
      Cc: Edward Shishkin <edward.shishkin@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      700f8105
    • Edward Shishkin's avatar
      In accordance with reiser4 transactional model every dirty page should be · 79465f4f
      Edward Shishkin authored
      "captured" by some atom.  However, outside reiser4 context dirty page can
      not be captured in some cases, as it is accompanied with specific work
      (jnode creation, etc).  Reiser4 recognizes such "anonymous" pages (i.e. 
      pages that were dirtied outside of reiser4) by the tag
      PAGECACHE_TAG_DIRTY.  Pages dirtied inside reiser4 context are not tagged
      at all: we don't need this.  Indeed, once page is dirtied and captured, it
      is attached to a jnode (a special header to keep a track of transactions).
      
      reiser4_set_page_dirty_internal() was the internal reiser4 function that
      set dirty bit without tagging the page.  Having such internal function led
      to real problems (incorrect task io accounting, etc.  because of not
      updating this internal "friend").
      
      Solution:
      
      The following patch adds a core library function that sets a dirty bit
      without tagging the page.
      
      Signed-off-by: Edward Shishkin<edward.shishkin@gmail.com>
      Cc: Nick Piggin <nickpiggin@yahoo.com.au>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      79465f4f
  5. 04 Jun, 2009 3 commits
  6. 20 Aug, 2009 1 commit
  7. 04 Aug, 2009 1 commit
  8. 11 Aug, 2009 1 commit
  9. 04 Aug, 2009 3 commits
    • Albin Tonnerre's avatar
      This is the second part of patch. This part includes: · 171ca857
      Albin Tonnerre authored
       - changes to ach/arch/boot/Makefile to make it easier to add new
         compression types
       - new piggy.lzo.S necessary for lzo compression
       - changes in arch/arm/boot/compressed/misc.c to allow the use of lzo or
         gzip, depending on the config
       - Kconfig support
      Signed-off-by: default avatarAlbin Tonnerre <albin.tonnerre@free-electrons.com>
      Cc: Sam Ravnborg <sam@ravnborg.org>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Phillip Lougher <phillip@lougher.demon.co.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      171ca857
    • Albin Tonnerre's avatar
      This is the first part of the lzo patch The lzo compressor is worse than · 605dd428
      Albin Tonnerre authored
      gzip at compression, but faster at extraction.  Here are some figures for
      an ARM board I'm working on:
      
      Uncompressed size: 3.24Mo
      gzip  1.61Mo 0.72s
      lzo   1.75Mo 0.48s
      
      So for a compression ratio that is still relatively close to gzip, it's
      much faster to extract, at least in that case.
      
      This version applies to kernel 2.6.31-rc3
      
      This part contains:
       - Makefile routine to support lzo compression
       - Fixes to the existing lzo compressor so that it can be used in
         compressed kernels
       - wrapper around the existing lzo1x_decompress, as it only extracts one
         block at a time, while we need to extract a whole file here
       - config dialog for kernel compression
      Signed-off-by: default avatarAlbin Tonnerre <albin.tonnerre@free-electrons.com>
      Cc: Sam Ravnborg <sam@ravnborg.org>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Phillip Lougher <phillip@lougher.demon.co.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      605dd428
    • Albin Tonnerre's avatar
      When unaligned accesses are required for uncompressing a kernel (such as · cb340f3a
      Albin Tonnerre authored
      for LZO decompression on ARM in a patch that follows), including
      <linux/kernel.h> causes issues as it brings in a lot of things that are
      not available in the decompression environment.
      
      However, those files apparently use nothing from <linux/kernel.h>, all
      they need is the declaration of types such as u32 or u64, so
      <linux/types.h> should be enough
      Signed-off-by: default avatarAlbin Tonnerre <albin.tonnerre@free-electrons.com>
      Cc: Sam Ravnborg <sam@ravnborg.org>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Phillip Lougher <phillip@lougher.demon.co.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      cb340f3a
  10. 25 Jun, 2009 1 commit
  11. 20 Jul, 2009 1 commit
  12. 03 Aug, 2009 1 commit
  13. 13 Jul, 2009 1 commit
  14. 25 Jun, 2009 1 commit
  15. 11 Aug, 2009 2 commits
  16. 15 Jul, 2009 3 commits
  17. 23 Jul, 2009 1 commit
  18. 30 Jul, 2009 2 commits
  19. 11 Aug, 2009 1 commit
  20. 17 Aug, 2009 1 commit
  21. 12 Aug, 2009 1 commit
    • Nils Carlson's avatar
      The periodic interrupt from drivers/char/hpet.c does not work correctly, · 749c5af1
      Nils Carlson authored
      both when using the periodic capability of the hardware and while
      emulating the periodic interrupt (when hardware does not support periodic
      mode).
      
      With timers capable of periodic interrupts, the comparator field is first
      set with the period value followed by set of hidden accumulator, which has
      the side effect of overwriting the comparator value.  This results in
      wrong periodicity for the interrupts.  For, periodic interrupts to work,
      following steps are necessary, in that order.
      
      * Set config with Tn_VAL_SET_CNF bit
      
      * Write to hidden accumulator, the value written is the time when the
        first interrupt should be generated
      
      * Write compartor with period interval for subsequent interrupts
        (http://www.intel.com/hardwaredesign/hpetspec_1.pdf )
      
      When emulating periodic timer with timers not capable of periodic
      interrupt, driver is adding the period to counter value instead of
      comparator value, which causes slow drift when using this emulation.
      
      Also, driver seems to add hpetp->hp_delta both while setting up periodic
      interrupt and while emulating periodic interrupts with timers not capable
      of doing periodic interrupts.  This hp_delta will result in slower than
      expected interrupt rate and should not be used while setting the interval.
      Signed-off-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: default avatarNils Carlson <nils.carlson@ericsson.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      749c5af1
  22. 04 Aug, 2009 1 commit
  23. 30 Jul, 2009 1 commit
  24. 10 Aug, 2009 1 commit
  25. 18 Aug, 2009 1 commit
    • Renzo Davoli's avatar
      There are two useless lines in fs/char_dev.c. · 0061edb0
      Renzo Davoli authored
      In register_chrdev there is a loop to change all '/' into '!' in the
      kernel object name.
      This code is useless as the same substitution is in kobject_set_name_vargs in
      lib/kobject.c:
      228         /* ewww... some of these buggers have '/' in the name ... */
      229         while ((s = strchr(kobj->name, '/')))
      230                 s[0] = '!';
      
      kobject_set_name_vargs is called by kobject_set_name.
      kobject_set_name is called just above the useless loop.
      Signed-off-by: default avatarRenzo Davoli <renzo@cs.unibo.it>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      0061edb0
  26. 21 Jul, 2009 1 commit
  27. 02 Jul, 2009 1 commit
  28. 20 Jul, 2009 1 commit
  29. 01 Jul, 2009 2 commits
  30. 23 Jul, 2009 1 commit
    • Lai Jiangshan's avatar
      _cpu_down() changes the current task's affinity and then recovers it at · ce8acbd2
      Lai Jiangshan authored
      the end.
      
      It has two problems:
      
      1) The recovery of the current tasks's cpus_allowed will fail under
         some conditions.
      
         # grep Cpus_allowed_list /proc/$$/status
         Cpus_allowed_list:      0-3
      
         # taskset -pc 2 $$
         pid 29075's current affinity list: 0-3
         pid 29075's new affinity list: 2
      
         # grep Cpus_allowed_list /proc/$$/status
         Cpus_allowed_list:      2
      
         # echo 0 > /sys/devices/system/cpu/cpu2/online
      
         # grep Cpus_allowed_list /proc/$$/status
         Cpus_allowed_list:      0
      
         Here, the Cpus_allowed_list was originally "2" and has become
         "0-1,3" after cpu #2 is offlined.
      
         This "Cpus_allowed_list:      0" is incorrect.
      
      2) If the current task is a userspace task, the user may change its
         cpu-affinity during the CPU hot-unplugging.  This change can be
         overwritten when _cpu_down() changes the current task's affinity.
      
      
      Fix all this by not changing the current tasks's affinity.  Instead we
      create a kernel thread to do the work.
      Signed-off-by: default avatarLai Jiangshan <laijs@cn.fujitsu.com>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Ingo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      ce8acbd2