19 Oct, 2007

40 commits

  • Add necessary protocol changes for supplying a file handle with the getattr
    operation. Step the API version to 7.9.

    This patch doesn't actually supply the file handle, because that needs some
    kind of VFS support, which we haven't yet been able to agree upon.

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Miklos Szeredi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Miklos Szeredi
     
  • Getattr and lookup operations can be running in parallel to attribute changing
    operations, such as write and setattr.

    This means, that if for example getattr was slower than a write, the cached
    size attribute could be set to a stale value.

    To prevent this race, introduce a per-filesystem attribute version counter.
    This counter is incremented whenever cached attributes are modified, and the
    incremented value stored in the inode.

    Before storing new attributes in the cache, getattr and lookup check, using
    the version number, whether the attributes have been modified during the
    request's lifetime. If so, the returned attributes are not cached, because
    they might be stale.

    Thanks to Jakub Bogusz for the bug report and test program.

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Miklos Szeredi
    Cc: Jakub Bogusz
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Miklos Szeredi
     
  • The following operation didn't check if sending the request was allowed:

    setattr
    listxattr
    statfs

    Some other operations don't explicitly do the check, but VFS calls
    ->permission() which checks this.

    Signed-off-by: Miklos Szeredi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Miklos Szeredi
     
  • setup_new_group_blocks() manipulates the group descriptor block bh under
    the block_bitmap bh's lock. It shouldn't matter since nobody but resize
    should be touching these blocks, but it's worth fixing up.

    Signed-off-by: Eric Sandeen
    C:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric Sandeen
     
  • This patch set supports large block size(>4k,
    Signed-off-by: Mingming Cao
    Cc:
    Acked-by: Christoph Lameter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Takashi Sato
     
  • Remove the hardcoded value 256 in fs/cramfs/inode.c and replaces it with
    CRAMFS_MAXPATHLEN.

    Tested on an i386 box.
    Signed-off-by: Andi Drebes
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andi Drebes
     
  • Remove a variable that is never read.

    Signed-off-by: Andi Drebes
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andi Drebes
     
  • Convert bit_spin_lock to new locking bitops. Slub can use the non-atomic
    store version to clear (Christoph?)

    Signed-off-by: Nick Piggin
    Cc: Christoph Lameter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nick Piggin
     
  • Add non-trivial lock bitops implementation for powerpc.

    Signed-off-by: Nick Piggin
    Acked-by: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nick Piggin
     
  • mips can avoid one mb when acquiring a lock with test_and_set_bit_lock.

    Signed-off-by: Nick Piggin
    Cc: Ralf Baechle
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nick Piggin
     
  • Documentation/atomic_ops.txt defines these primitives must contain a memory
    barrier both before and after their memory operation. This is consistent with
    the atomic ops implementation on mips.

    Signed-off-by: Nick Piggin
    Cc: Ralf Baechle
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nick Piggin
     
  • Convert ia64 to new bitops.

    Signed-off-by: Nick Piggin
    Cc: "Luck, Tony"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nick Piggin
     
  • Alpha can avoid one mb when acquiring a lock with test_and_set_bit_lock.

    [bunk@kernel.org: alpha bitops.h must #include ]
    Signed-off-by: Nick Piggin
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nick Piggin
     
  • Documentation/atomic_ops.txt defines these primitives must contain a memory
    barrier both before and after their memory operation. This is consistent with
    the atomic ops implementation on alpha.

    Signed-off-by: Nick Piggin
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nick Piggin
     
  • Introduce test_and_set_bit_lock / clear_bit_unlock bitops with lock semantics.
    Convert all architectures to use the generic implementation.

    Signed-off-by: Nick Piggin
    Acked-By: David Howells
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Cc: Russell King
    Cc: Haavard Skinnemoen
    Cc: Bryan Wu
    Cc: Mikael Starvik
    Cc: David Howells
    Cc: Yoshinori Sato
    Cc: "Luck, Tony"
    Cc: Hirokazu Takata
    Cc: Geert Uytterhoeven
    Cc: Roman Zippel
    Cc: Greg Ungerer
    Cc: Ralf Baechle
    Cc: Kyle McMartin
    Cc: Matthew Wilcox
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Cc: Heiko Carstens
    Cc: Martin Schwidefsky
    Cc: Paul Mundt
    Cc: Kazumoto Kojima
    Cc: Richard Curnow
    Cc: William Lee Irwin III
    Cc: "David S. Miller"
    Cc: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Cc: Miles Bader
    Cc: Andi Kleen
    Cc: Chris Zankel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nick Piggin
     
  • msr_class_cpu_callback() can be marked __cpuinit, being the notifier callback
    for a __cpuinitdata notifier_block. So can be marked msr_device_create() too,
    called only from the newly-__cpuinit msr_class_cpu_callback() or from
    __init-marked msr_init().

    Signed-off-by: Satyam Sharma
    Cc: Andi Kleen
    Acked-by: H. Peter Anvin
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Satyam Sharma
     
  • The return of the present "do {} while" based stub definition of
    register_hotcpu_notifier() cannot be checked. This makes the stub
    asymmetric w.r.t. the real HOTPLUG_CPU=y implementation that is
    int-returning. So let us redefine this to be consistent with the full
    version. Also do the same for unregister_hotcpu_notifier().

    We cannot define these as static inline functions due to an existing GCC
    bug (#33172). So define as macros that return appropriately instead (int
    '0' for the register_hotcpu_notifier case and void for
    unregister_hotcpu_notifier).

    Signed-off-by: Satyam Sharma
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Satyam Sharma
     
  • This adds POWERPC specific hooks for scaled time accounting.

    POWER6 includes a SPURR register. The SPURR is based off the PURR register
    but is scaled based on CPU frequency and issue rates. This gives a more
    accurate account of the instructions used per task. The PURR and timebase
    will be constant relative to the wall clock, irrespective of the CPU
    frequency.

    This implementation reads the SPURR register in account_system_vtime which
    is only call called on context witch and hard and soft irq entry and exit.
    The percentage of user and system time is then estimated using the ratio of
    these accounted by the PURR. If the SPURR is not present, the PURR read.

    An earlier implementation of this patch read the SPURR whenever the PURR
    was read, which included the system call entry and exit path.
    Unfortunately this showed a performance regression on lmbench runs, so was
    re-implemented.

    I've included the lmbench results here when run bare metal on POWER6. 1st
    column is the unpatch results. 2nd column is the results using the below
    patch and the 3rd is the % diff of these results from the base. 4th and
    5th columns are the results and % differnce from the base using the older
    patch (SPURR read in syscall entry/exit path).

    Base Scaled-Acct SPURR-in-syscall
    Result Result % diff Result % diff
    Simple syscall: 0.3086 0.3086 0.0000 0.3452 11.8600
    Simple read: 0.4591 0.4671 1.7425 0.5044 9.86713
    Simple write: 0.4364 0.4366 0.0458 0.4731 8.40971
    Simple stat: 2.0055 2.0295 1.1967 2.0669 3.06158
    Simple fstat: 0.5962 0.5876 -1.442 0.6368 6.80979
    Simple open/close: 3.1283 3.1009 -0.875 3.2088 2.57328
    Select on 10 fd's: 0.8554 0.8457 -1.133 0.8667 1.32101
    Select on 100 fd's: 3.5292 3.6329 2.9383 3.6664 3.88756
    Select on 250 fd's: 7.9097 8.1881 3.5197 8.2242 3.97613
    Select on 500 fd's: 15.2659 15.836 3.7357 15.873 3.97814
    Select on 10 tcp fd's: 0.9576 0.9416 -1.670 0.9752 1.83792
    Select on 100 tcp fd's: 7.248 7.2254 -0.311 7.2685 0.28283
    Select on 250 tcp fd's: 17.7742 17.707 -0.375 17.749 -0.1406
    Select on 500 tcp fd's: 35.4258 35.25 -0.496 35.286 -0.3929
    Signal handler installation: 0.6131 0.6075 -0.913 0.647 5.52927
    Signal handler overhead: 2.0919 2.1078 0.7600 2.1831 4.35967
    Protection fault: 0.7345 0.7478 1.8107 0.8031 9.33968
    Pipe latency: 33.006 16.398 -50.31 33.475 1.42368
    AF_UNIX sock stream latency: 14.5093 30.910 113.03 30.715 111.692
    Process fork+exit: 219.8 222.8 1.3648 229.37 4.35623
    Process fork+execve: 876.14 873.28 -0.32 868.66 -0.8533
    Process fork+/bin/sh -c: 2830 2876.5 1.6431 2958 4.52296
    File /var/tmp/XXX write bw: 1193497 1195536 0.1708 118657 -0.5799
    Pagefaults on /var/tmp/XXX: 3.1272 3.2117 2.7020 3.2521 3.99398

    Also, kernel compile times show no difference with this patch applied.

    [pbadari@us.ibm.com: Avoid unnecessary PURR reading]
    Signed-off-by: Michael Neuling
    Cc: Balbir Singh
    Cc: Jay Lan
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Signed-off-by: Badari Pulavarty
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michael Neuling
     
  • This moves the new items to the end of the taskstats struct as
    requested by Balbir and yourself.

    Cc: Balbir Singh
    Cc: Jay Lan
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michael Neuling
     
  • This adds items to the taststats struct to account for user and system
    time based on scaling the CPU frequency and instruction issue rates.

    Adds account_(user|system)_time_scaled callbacks which architectures
    can use to account for time using this mechanism.

    Signed-off-by: Michael Neuling
    Cc: Balbir Singh
    Cc: Jay Lan
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michael Neuling
     
  • Found these while looking at printk uses.

    Add missing newlines to dev_ uses
    Add missing KERN_ prefixes to multiline dev_s
    Fixed a wierd->weird spelling typo
    Added a newline to a printk

    Signed-off-by: Joe Perches
    Cc: "Luck, Tony"
    Cc: Jens Axboe
    Cc: Mark M. Hoffman
    Cc: Roland Dreier
    Cc: Tilman Schmidt
    Cc: David Woodhouse
    Cc: Jeff Garzik
    Cc: Stephen Hemminger
    Cc: Greg KH
    Cc: Jeremy Fitzhardinge
    Cc: Geert Uytterhoeven
    Cc: Alessandro Zummo
    Cc: David Brownell
    Cc: James Smart
    Cc: Andrew Vasquez
    Cc: "Antonino A. Daplas"
    Cc: Evgeniy Polyakov
    Cc: Russell King
    Cc: Jaroslav Kysela
    Cc: Takashi Iwai
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Signed-off-by: Jiri Slaby
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiri Slaby
     
  • if (controller && !request_region) then we leaked a tty driver struct, fix it
    by adding function deinit tail with goto-ing into it (and from other fail
    paths too)

    Signed-off-by: Jiri Slaby
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiri Slaby
     
  • We may use pdev->revision instead of reading pci config space directly, so
    remove pci_read_config_dword invoking.

    Signed-off-by: Jiri Slaby
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiri Slaby
     
  • Signed-off-by: Jiri Slaby
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiri Slaby
     
  • - register_device unconditionally (non-pci dependent) to have also isa
    devices in /dev
    - unregister devices on module removal
    - don't set TTY_DRIVER_DYNAMIC_DEV twice (removed the one dependent on some
    macro)

    Signed-off-by: Jiri Slaby
    Cc: Ferenc Wagner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiri Slaby
     
  • rocket, switch sleep_on to completion

    - sleep_on is deprecated and racy, use completion instead
    - also check retval of interruptible function and return ERESTARTSYS
    eventually

    Signed-off-by: Jiri Slaby
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiri Slaby
     
  • interruptible_sleep_on is deprecated, use completion instead

    Signed-off-by: Jiri Slaby
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiri Slaby
     
  • prepend moxa_ to all moxa functions which laxes this

    Signed-off-by: Jiri Slaby
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiri Slaby
     
  • - use dev_* where pdev is available (probe function)
    - add some printks on fail paths
    - add KERN_ macros otherwise
    - remove useless verbose variable
    - wrap lines to 80 cols at most

    Signed-off-by: Jiri Slaby
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiri Slaby
     
  • CC drivers/char/cyclades.o
    drivers/char/cyclades.c: In function 'cy_init':
    drivers/char/cyclades.c:5488: warning: label 'err_unr' defined but not used

    Signed-off-by: Jesper Juhl
    Acked-by: Jiri Slaby
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jesper Juhl
     
  • Most of them are signedness, the rest unused function parameters.

    Signed-off-by: Jiri Slaby
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiri Slaby
     
  • Lock whole processing in isr, avoid error-prone locking/unlocking in rx/tx
    esp. On fail paths (there was a bug in the past yet).

    Signed-off-by: Jiri Slaby
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiri Slaby
     
  • Due to large indent the code was wrapped and unreadable. Create 3 function
    instead of one and reorder the code, so it is readable now.

    Signed-off-by: Jiri Slaby
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiri Slaby
     
  • The work done in bottom half doesn't cost much cpu time (e.g. tty_hangup
    itself schedules its own bottom half), it's possible to do the work in isr
    directly and save hence some .text.

    Signed-off-by: Jiri Slaby
    Cc: Alan Cox
    Cc: Paul Fulghum
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiri Slaby
     
  • moxa, fix and optimise empty timer

    don't wait and delete empty timer in empty timer function. Also fire next
    empty timer at rounded jiffies to save power.

    Signed-off-by: Jiri Slaby
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiri Slaby
     
  • This patch contains the next round of scheduled OSS code removal.

    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • Signed-off-by: Daniel Walker
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Walker
     
  • Signed-off-by: Daniel Walker
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Walker
     
  • Signed-off-by: Daniel Walker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Walker