1. 10 Aug, 2007 8 commits
  2. 09 Aug, 2007 32 commits
    • Jesper Juhl's avatar
      SLUB: Fix format specifier in Documentation/vm/slabinfo.c · ac078602
      Jesper Juhl authored
      
      
      There's a little problem in Documentation/vm/slabinfo.c
      The code is using "%d" in a printf() call to print an 'unsigned long'.
      This patch corrects it to use "%lu" instead.
      Signed-off-by: default avatarJesper Juhl <jesper.juhl@gmail.com>
      Signed-off-by: default avatarChristoph Lameter <clameter@sgi.com>
      ac078602
    • Christoph Lameter's avatar
      SLUB: Fix dynamic dma kmalloc cache creation · 1ceef402
      Christoph Lameter authored
      
      
      The dynamic dma kmalloc creation can run into trouble if a
      GFP_ATOMIC allocation is the first one performed for a certain size
      of dma kmalloc slab.
      
      - Move the adding of the slab to sysfs into a workqueue
        (sysfs does GFP_KERNEL allocations)
      - Do not call kmem_cache_destroy() (uses slub_lock)
      - Only acquire the slub_lock once and--if we cannot wait--do a trylock.
      
        This introduces a slight risk of the first kmalloc(x, GFP_DMA|GFP_ATOMIC)
        for a range of sizes failing due to another process holding the slub_lock.
        However, we only need to acquire the spinlock once in order to establish
        each power of two DMA kmalloc cache. The possible conflict is with the
        slub_lock taken during slab management actions (create / remove slab cache).
      
        It is rather typical that a driver will first fill its buffers using
        GFP_KERNEL allocations which will wait until the slub_lock can be acquired.
        Drivers will also create its slab caches first outside of an atomic
        context before starting to use atomic kmalloc from an interrupt context.
      
        If there are any failures then they will occur early after boot or when
        loading of multiple drivers concurrently. Drivers can already accomodate
        failures of GFP_ATOMIC for other reasons. Retries will then create the slab.
      Signed-off-by: default avatarChristoph Lameter <clameter@sgi.com>
      1ceef402
    • Christoph Lameter's avatar
      SLUB: Remove checks for MAX_PARTIAL from kmem_cache_shrink · fcda3d89
      Christoph Lameter authored
      
      
      The MAX_PARTIAL checks were supposed to be an optimization. However, slab
      shrinking is a manually triggered process either through running slabinfo
      or by the kernel calling kmem_cache_shrink.
      
      If one really wants to shrink a slab then all operations should be done
      regardless of the size of the partial list. This also fixes an issue that
      could surface if the number of partial slabs was initially above MAX_PARTIAL
      in kmem_cache_shrink and later drops below MAX_PARTIAL through the
      elimination of empty slabs on the partial list (rare). In that case a few
      slabs may be left off the partial list (and only be put back when they
      are empty).
      Signed-off-by: default avatarChristoph Lameter <clameter@sgi.com>
      fcda3d89
    • Alan Cox's avatar
      remove dubious legal statment from uio-howto · 6adb31c9
      Alan Cox authored
      
      
      UIO currently contains a rather dubious statement which wants removing.
      
      The actual questions around whether user space code that depends tightly
      on kernel GPL code designed to co-work with it are derivative works of
      the kernel is extremely complex, and since we don't have space for either
      a masters length essay on legal issues or need to start flamewars lets
      simply remove the comment and leave law to lawyers
      Signed-off-by: default avatarAlan Cox <alan@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <tovalds@linux-foundation.org>
      6adb31c9
    • Richard Henderson's avatar
      Fix Alpha O_CLOEXEC definition · 620b5e68
      Richard Henderson authored
      
      
      The default definition in asm-generic conflicts with Alpha's O_DIRECT,
      so, like several other arches, it needs to be redefined.
      Signed-off-by: default avatarRichard Hendersion  <rth@twiddle.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      620b5e68
    • Linus Torvalds's avatar
      Merge git://git.linux-nfs.org/pub/linux/nfs-2.6 · 8b80fc02
      Linus Torvalds authored
      * git://git.linux-nfs.org/pub/linux/nfs-2.6:
        SUNRPC: Replace flush_workqueue() with cancel_work_sync() and friends
        NFS: Replace flush_scheduled_work with cancel_work_sync() and friends
        SUNRPC: Don't call gss_delete_sec_context() from an rcu context
        NFSv4: Don't call put_rpccred() from an rcu callback
        NFS: Fix NFSv4 open stateid regressions
        NFSv4: Fix a locking regression in nfs4_set_mode_locked()
        NFS: Fix put_nfs_open_context
        SUNRPC: Fix a race in rpciod_down()
      8b80fc02
    • Artem Bityutskiy's avatar
      hexdump: use const notation · 6a0ed91e
      Artem Bityutskiy authored
      
      
      Trivial fix: mark the buffer to hexdump as const so callers could avoid
      casting their const buffers when calling print_hex_dump().
      
      The patch is really trivial and I suggest to consider it as a fix
      (it fixes GCC warnings) and push it to current tree.
      Signed-off-by: default avatarArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6a0ed91e
    • Linus Torvalds's avatar
      Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 · 660ca531
      Linus Torvalds authored
      * 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
        [TCP]: H-TCP maxRTT estimation at startup
        [NETFILTER]: nf_nat: add symbolic dependency on IPv4 conntrack
        [NETFILTER]: ctnetlink: return EEXIST instead of EINVAL for existing nat'ed conntracks
        [NETFILTER]: ipt_recent: avoid a possible NULL pointer deref in recent_seq_open()
        [NET] net/core/utils: fix sparse warning
        [NetLabel]: add missing rcu_dereference() calls in the LSM domain mapping hash table
        [PATCH] mac80211: don't allow scanning in monitor mode
        [PATCH] mac80211: Fix sparse error for sta_last_seq_ctrl_read
        [PATCH] mac80211: use do { } while (0) for multi-line macros
        [PATCH] mac80211: missing dev_put in ieee80211_master_start_xmit
      660ca531
    • Linus Torvalds's avatar
      Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 · e7bc15a9
      Linus Torvalds authored
      * 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:
        [SPARC64]: Fix memory leak when cpu hotplugging.
        [SPARC64]: Do not assume sun4v chips have load-twin/store-init support.
        [SPARC64]: Fix hard-coding of cpu type output in /proc/cpuinfo on sun4v.
        [SPARC]: Centralize find_in_proplist() instead of duplicating N times.
      e7bc15a9
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc · 5a0276b7
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc:
        mmc: at91_mci: remove whitespace at the end of lines
        mmc: reorganize bounce buffer init
        wbsd: fix section mismatch warnings
      5a0276b7
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched · be12014d
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched: (61 commits)
        sched: refine negative nice level granularity
        sched: fix update_stats_enqueue() reniced codepath
        sched: round a bit better
        sched: make the multiplication table more accurate
        sched: optimize update_rq_clock() calls in the load-balancer
        sched: optimize activate_task()
        sched: clean up set_curr_task_fair()
        sched: remove __update_rq_clock() call from entity_tick()
        sched: move the __update_rq_clock() call to scheduler_tick()
        sched debug: remove the 'u64 now' parameter from print_task()/_rq()
        sched: remove the 'u64 now' local variables
        sched: remove the 'u64 now' parameter from deactivate_task()
        sched: remove the 'u64 now' parameter from dequeue_task()
        sched: remove the 'u64 now' parameter from enqueue_task()
        sched: remove the 'u64 now' parameter from dec_nr_running()
        sched: remove the 'u64 now' parameter from inc_nr_running()
        sched: remove the 'u64 now' parameter from dec_load()
        sched: remove the 'u64 now' parameter from inc_load()
        sched: remove the 'u64 now' parameter from update_curr_load()
        sched: remove the 'u64 now' parameter from ->task_new()
        ...
      be12014d
    • Ronald G. Minnich's avatar
      lguest: avoid shared libraries mapped over guest memory · e3bcf5e2
      Ronald G. Minnich authored
      
      
      Some versions of ld.so mmap the shared libraries right in over guest
      memory, so compile lguest statically by default.
      
      [ FC7 maps shared libraries very low, where the launcher maps guest's
        physical memory.  Quick fix is to link Launcher static, real fix is
        for 2.6.24. ]
      
      -static is a simple fix. I expect this problem will be more common than we
      like, as different distro's make different "improvements" to ld.so
      Signed-off-by: default avatarRonald G. Minnich <rminnich@gmail.com>
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e3bcf5e2
    • Rusty Russell's avatar
      lguest: Fix Malicious Guest GDT Host Crash · 0d027c01
      Rusty Russell authored
      
      
      If a Guest makes hypercall which sets a GDT entry to not present, we
      currently set any segment registers using that GDT entry to 0.
      Unfortunately, this is not sufficient: there are other ways of
      altering GDT entries which will cause a fault.
      
      The correct solution to do what Linux does: let them set any GDT value
      they want and handle the #GP when popping causes a fault.  This has
      the added benefit of making our Switcher slightly more robust in the
      case of any other bugs which cause it to fault.
      
      We kill the Guest if it causes a fault in the Switcher: it's the
      Guest's responsibility to make sure it's not using segments when it
      changes them.
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0d027c01
    • Rusty Russell's avatar
      Fix non-TSC guest clocksource lockup · 37250097
      Rusty Russell authored
      
      
      lguest uses a host-supplied wallclock-based clocksource when the TSC
      is not reliable.  As this is already in nanoseconds, I naively used a
      multiplier of 1 and a shift of 0.
      
      But update_wall_time() in its infinite wisdom decides to adjust the
      clock a little (where does it think it's getting a more accurate time
      from?)
      
      It will happily tweak the multiplier... to 0, then -1.
      
      So the "fix" is to use a shift of 22 like everyone else, and a
      multiplier of 1 << 22.
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      37250097
    • Linus Torvalds's avatar
      Revert "genirq: temporary fix for level-triggered IRQ resend" · 88ffc350
      Linus Torvalds authored
      This reverts commit 0fc4969b
      
      .  It was
      always meant to be temporary, but it's generating more useless noise
      than anything else, and we probably should never have done it in the
      generic kernel (only had the people involved test it on their own).
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      88ffc350
    • Nicolas Ferre's avatar
      mmc: at91_mci: remove whitespace at the end of lines · 37b758e8
      Nicolas Ferre authored
      
      
      Some cleanup with whitespace/tab at the end of lines.
      Signed-off-by: default avatarNicolas Ferre <nicolas.ferre@rfo.atmel.com>
      Signed-off-by: default avatarPierre Ossman <drzeus@drzeus.cx>
      37b758e8
    • Pierre Ossman's avatar
      mmc: reorganize bounce buffer init · aafabfab
      Pierre Ossman authored
      
      
      Reorganize the code that initializes mmc_block's bounce buffer in
      order to avoid warnings when MMC_BLOCK_BOUNCE isn't used.
      Signed-off-by: default avatarPierre Ossman <drzeus@drzeus.cx>
      aafabfab
    • Gabriel C's avatar
      wbsd: fix section mismatch warnings · b3627bb1
      Gabriel C authored
      
      
      This patch fixes the following section mismatch warnings
      
      ...
      
      WARNING: vmlinux.o(.init.text+0x29d40): Section mismatch: reference to .exit.text:wbsd_release_resources (between 'wbsd_init' and 'wbsd_probe')
      WARNING: vmlinux.o(.init.text+0x29d49): Section mismatch: reference to .exit.text:wbsd_free_mmc (between 'wbsd_init' and 'wbsd_probe')
      WARNING: vmlinux.o(.init.text+0x29f28): Section mismatch: reference to .exit.text:wbsd_free_mmc (between 'wbsd_init' and 'wbsd_probe')
      
      ...
      Signed-off-by: default avatarGabriel Craciunescu <nix.or.die@googlemail.com>
      Acked-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarPierre Ossman <drzeus@drzeus.cx>
      b3627bb1
    • Ingo Molnar's avatar
      sched: refine negative nice level granularity · 7cff8cf6
      Ingo Molnar authored
      
      
      refine the granularity of negative nice level tasks: let them
      reschedule more often to offset the effect of them consuming
      their wait_runtime proportionately slower. (This makes nice-0
      task scheduling smoother in the presence of negatively
      reniced tasks.)
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      7cff8cf6
    • Ingo Molnar's avatar
      sched: fix update_stats_enqueue() reniced codepath · a69edb55
      Ingo Molnar authored
      
      
      the key has to be rescaled to /weight even if it has a positive value.
      
      (this change only affects the scheduling of reniced tasks)
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      a69edb55
    • Ingo Molnar's avatar
      sched: round a bit better · 194081eb
      Ingo Molnar authored
      
      
      round a tiny bit better in high-frequency rescheduling scenarios,
      by rounding around zero instead of rounding down.
      
      (this is pretty theoretical though)
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      194081eb
    • Ingo Molnar's avatar
      sched: make the multiplication table more accurate · 254753dc
      Ingo Molnar authored
      
      
      do small deltas in the weight and multiplication constant table so
      that the worst-case numeric error is better than 1:100000000. (8 digits)
      
      the current error table is:
      
           nice       mult *   inv_mult   error
           ------------------------------------------
           -20:      88761 *      48388  -0.0000000065
           -19:      71755 *      59856  -0.0000000037
           -18:      56483 *      76040   0.0000000056
           -17:      46273 *      92818   0.0000000042
           -16:      36291 *     118348  -0.0000000065
           -15:      29154 *     147320  -0.0000000037
           -14:      23254 *     184698  -0.0000000009
           -13:      18705 *     229616  -0.0000000037
           -12:      14949 *     287308  -0.0000000009
           -11:      11916 *     360437  -0.0000000009
           -10:       9548 *     449829  -0.0000000009
            -9:       7620 *     563644  -0.0000000037
            -8:       6100 *     704093   0.0000000009
            -7:       4904 *     875809   0.0000000093
            -6:       3906 *    1099582  -0.0000000009
            -5:       3121 *    1376151  -0.0000000058
            -4:       2501 *    1717300   0.0000000009
            -3:       1991 *    2157191  -0.0000000035
            -2:       1586 *    2708050   0.0000000009
            -1:       1277 *    3363326   0.0000000014
             0:       1024 *    4194304   0.0000000000
             1:        820 *    5237765   0.0000000009
             2:        655 *    6557202   0.0000000033
             3:        526 *    8165337  -0.0000000079
             4:        423 *   10153587   0.0000000012
             5:        335 *   12820798   0.0000000079
             6:        272 *   15790321   0.0000000037
             7:        215 *   19976592  -0.0000000037
             8:        172 *   24970740  -0.0000000037
             9:        137 *   31350126  -0.0000000079
            10:        110 *   39045157  -0.0000000061
            11:         87 *   49367440  -0.0000000037
            12:         70 *   61356676   0.0000000056
            13:         56 *   76695844  -0.0000000075
            14:         45 *   95443717  -0.0000000072
            15:         36 *  119304647  -0.0000000009
            16:         29 *  148102320  -0.0000000037
            17:         23 *  186737708  -0.0000000028
            18:         18 *  238609294  -0.0000000009
            19:         15 *  286331153  -0.0000000002
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      254753dc
    • Ingo Molnar's avatar
      sched: optimize update_rq_clock() calls in the load-balancer · 6e82a3be
      Ingo Molnar authored
      
      
      optimize update_rq_clock() calls in the load-balancer: update them
      right after locking the runqueue(s) so that the pull functions do
      not have to call it.
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      6e82a3be
    • Ingo Molnar's avatar
      sched: optimize activate_task() · 2daa3577
      Ingo Molnar authored
      
      
      optimize activate_task() by removing update_rq_clock() from it.
      (and add update_rq_clock() to all callsites of activate_task() that
      did not have it before.)
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      2daa3577
    • Ingo Molnar's avatar
      sched: clean up set_curr_task_fair() · c3b64f1e
      Ingo Molnar authored
      
      
      clean up set_curr_task_fair().
      
      ( identity transformation that causes no change in functionality. )
      
         text    data     bss     dec     hex filename
        39170    3750      36   42956    a7cc sched.o.before
        39170    3750      36   42956    a7cc sched.o.after
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      c3b64f1e
    • Ingo Molnar's avatar
      sched: remove __update_rq_clock() call from entity_tick() · d9e0e6aa
      Ingo Molnar authored
      
      
      remove __update_rq_clock() call from entity_tick().
      
      no change in functionality because scheduler_tick() already calls
      __update_rq_clock().
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      d9e0e6aa
    • Ingo Molnar's avatar
      sched: move the __update_rq_clock() call to scheduler_tick() · 546fe3c9
      Ingo Molnar authored
      
      
      move the __update_rq_clock() call from update_cpu_load() to
      scheduler_tick().
      
      ( identity transformation that causes no change in functionality. )
      
      this allows the direct use of rq->clock in ->task_tick() functions.
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      546fe3c9
    • Ingo Molnar's avatar
      sched debug: remove the 'u64 now' parameter from print_task()/_rq() · a48da48b
      Ingo Molnar authored
      
      
      remove the 'u64 now' parameter from sched_debug.c:print_task()/_rq().
      
      ( identity transformation that causes no change in functionality. )
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      a48da48b
    • Ingo Molnar's avatar
      sched: remove the 'u64 now' local variables · bdd4dfa8
      Ingo Molnar authored
      
      
      final step: remove all (now superfluous) 'u64 now' variables.
      
      ( identity transformation that causes no change in functionality. )
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      bdd4dfa8
    • Ingo Molnar's avatar
      sched: remove the 'u64 now' parameter from deactivate_task() · 2e1cb74a
      Ingo Molnar authored
      
      
      remove the 'u64 now' parameter from deactivate_task().
      
      ( identity transformation that causes no change in functionality. )
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      2e1cb74a
    • Ingo Molnar's avatar
      sched: remove the 'u64 now' parameter from dequeue_task() · 69be72c1
      Ingo Molnar authored
      
      
      remove the 'u64 now' parameter from dequeue_task().
      
      ( identity transformation that causes no change in functionality. )
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      69be72c1
    • Ingo Molnar's avatar
      sched: remove the 'u64 now' parameter from enqueue_task() · 8159f87e
      Ingo Molnar authored
      
      
      remove the 'u64 now' parameter from enqueue_task().
      
      ( identity transformation that causes no change in functionality. )
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      8159f87e