1. 07 Sep, 2005 33 commits
    • Mark Bellon's avatar
      [PATCH] disk quotas fail when /etc/mtab is symlinked to /proc/mounts · 8fc2751b
      Mark Bellon authored
      If /etc/mtab is a regular file all of the mount options (of a file system)
      are written to /etc/mtab by the mount command.  The quota tools look there
      for the quota strings for their operation.  If, however, /etc/mtab is a
      symlink to /proc/mounts (a "good thing" in some environments) the tools
      don't write anything - they assume the kernel will take care of things.
      
      While the quota options are sent down to the kernel via the mount system
      call and the file system codes handle them properly unfortunately there is
      no code to echo the quota strings into /proc/mounts and the quota tools
      fail in the symlink case.
      
      The attached patchs modify the EXT[2|3] and JFS codes to add the necessary
      hooks.  The show_options function of each file system in these patches
      currently deal with only those things that seemed related to quotas;
      especially in the EXT3 case more can be done (later?).
      
      Jan Kara also noted the difficulty in moving these changes above the FS
      codes responding similarly to myself to Andrew's comment about possible
      VFS migration. Issue summary:
      
       - FS codes have to process the entire string of options anyway.
      
       - Only FS codes that use quotas must have a show_options function (for
         quotas to work properly) however quotas are only used in a small number
         of FS.
      
       - Since most of the quota using FS support other options these FS codes
         should have the a show_options function to show those options - and the
         quota echoing becomes virtually negligible.
      
      Based on feedback I have modified my patches from the original:
      
         JFS a missing patch has been restored to the posting
         EXT[2|3] and JFS always use the show_options function
             - Each FS has at least one FS specific option displayed
             - QUOTA output is under a CONFIG_QUOTA ifdef
             - a follow-on patch will add a multitude of options for each FS
         EXT[2|3] and JFS "quota" is treated as "usrquota"
         EXT3 journalled data check for journalled quota removed
         EXT[2|3] mount when quota specified but not compiled in
      
       - no changes from my original patch.  I tested the patch and the codes
         warn but
      
       - still mount.  With all due respection I believe the comments
         otherwise were a
      
       - misread of the patch.  Please reread/test and comment.  XFS patch
         removed - the XFS team already made the necessary changes EXT3 mixing
         old and new quotas are handled differently (not purely exclusive)
      
       - if old and new quotas for the same type are used together the old
         type is silently depricated for compatability (e.g.  usrquota and
         usrjquota)
      
       - mixing of old and new quotas is an error (e.g.  usrjquota and
         grpquota)
      Signed-off-by: default avatarMark Bellon <mbellon@mvista.com>
      Acked-by: default avatarDave Kleikamp <shaggy@austin.ibm.com>
      Cc: Jan Kara <jack@ucw.cz>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      8fc2751b
    • Russell King's avatar
      [PATCH] Fix sound/arm/Makefile for locality of reference · c9237156
      Russell King authored
      Ensure that sound/arm/Makefile is sanely organised so that additions to it
      don't break all other patches out there.  This means I only have to adjust
      the line numbers in my patch queue rather than having to re-generate by
      hand those which touch this file.
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      c9237156
    • Bjorn Helgaas's avatar
      [PATCH] pnp: consolidate kmalloc wrappers · a2822e7f
      Bjorn Helgaas authored
      ISAPNP, PNPBIOS, and PNPACPI all had their own kmalloc wrappers that
      reimplemented kcalloc().  Remove the wrappers and just use kcalloc()
      directly.
      
      Note that this also removes the PNPBIOS error message when the kmalloc
      fails.
      Signed-off-by: default avatarBjorn Helgaas <bjorn.helgaas@hp.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      a2822e7f
    • Daniel Ritz's avatar
      [PATCH] yenta: make ToPIC95 bridges work with 16bit cards · ea2f1590
      Daniel Ritz authored
      ToPIC95 brides (and maybe some other too) require to use the ExCA registers
      to power up the socket if a 16bit card is pluged.  allow socket drivers to
      set a flag so that yenta does just that.  also clean up yenta_get_status()
      a bit to use the new yenta_get_power() function.
      
      Side note: ToPIC97 bridges (at least in Rev.5 i have) don't require this.
      
      Ryan Underwood <nemesis-lists@icequake.net> said:
      
       According to the mail that David Hinds received from a Toshiba engineer,
       ToPIC95 and 97 do require this, and ToPIC100 does not.  Maybe you have a
       later revision.
      
       For all chips, 16-bit cards can be enabled through ExCA.  So doesn't it
       make sense just to make this the default behavior for all Toshiba chips,
       to avoid corner cases showing up later?
      
      Daniel responded:
      
       I disagree with ryan to change anything for topic97 bridges.  they work.
       and I couldn't find (read google) any report of a topic97 breaking on
       applying power with the CB registers.
      
       I'm having several toshba notebooks at work (and home) with topic95,97,100
       bridges.  Only the ones with a topic95 didn't work.
      Signed-off-by: default avatarDaniel Ritz <daniel.ritz@gmx.ch>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      ea2f1590
    • H. J. Lu's avatar
      [PATCH] auxiliary vector cleanups · 36d57ac4
      H. J. Lu authored
      The size of auxiliary vector is fixed at 42 in linux/sched.h.  But it isn't
      very obvious when looking at linux/elf.h.  This patch adds AT_VECTOR_SIZE
      so that we can change it if necessary when a new vector is added.
      
      Because of include file ordering problems, doing this necessitated the
      extraction of the AT_* symbols into a standalone header file.
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      36d57ac4
    • Marcelo Tosatti's avatar
      [PATCH] radix_tag_get(): differentiate between no present node and tag unset cases · 32605a18
      Marcelo Tosatti authored
      Simple patch to radix_tree_tag_get() to return different values for non
      present node and tag unset.
      
      The function is not used by any in-kernel callers (yet), but this
      information is definitely useful.
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      32605a18
    • Christoph Lameter's avatar
      [PATCH] radix-tree: Remove unnecessary indirections and clean up code · 201b6264
      Christoph Lameter authored
      - There is frequent use of indirections in the radix code. This patch
        removes those indirections, makes the code more readable and allows
        the compilers to generate better code.
      
      - Removing indirections allows the removal of several casts.
      
      - Removing indirections allows the reduction of the radix_tree_path
        size from 3 to 2 words.
      
      - Use pathp-> consistently.
      
      - Remove unnecessary tmp variable in radix_tree_insert
      
      - Separate the upper layer processing from the lowest layer in __lookup()
        in order to make it easier to understand what is going on and allow
        compilers to generate better code for the loop.
      Signed-off-by: default avatarChristoph Lameter <clameter@sgi.com>
      Cc: Nick Piggin <nickpiggin@yahoo.com.au>
      Cc: James Bottomley <James.Bottomley@steeleye.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      201b6264
    • Pavel Machek's avatar
      [PATCH] Support powering sharp zaurus sl-5500 LCD up and down · 987132bb
      Pavel Machek authored
      This adds support for powering Zaurus's video up and down.  PDA without
      screen is kind of useless, so it is quite important...  I'll have to figure
      out how to really control the frontlight, because LCD without that is quite
      hard to read.
      Signed-off-by: default avatarPavel Machek <pavel@suse.cz>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      987132bb
    • Alan Cox's avatar
      [PATCH] Clean up the old digi support and rescue it · f2cf8e25
      Alan Cox authored
      Signed-off-by: default avatarAlan Cox <alan@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      f2cf8e25
    • Adrian Bunk's avatar
      [PATCH] remove register_ioctl32_conversion and unregister_ioctl32_conversion · 5dd42c26
      Adrian Bunk authored
      All users have been converted.
      Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      5dd42c26
    • Peter Osterlund's avatar
      [PATCH] kill bio->bi_set · 3676347a
      Peter Osterlund authored
      Jens:
      
      ->bi_set is totally unnecessary bloat of struct bio.  Just define a proper
      destructor for the bio and it already knows what bio_set it belongs too.
      
      Peter:
      
      Fixed the bugs.
      Signed-off-by: default avatarJens Axboe <axboe@suse.de>
      Signed-off-by: default avatarPeter Osterlund <petero2@telia.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      3676347a
    • Ralf Baechle's avatar
      [PATCH] Strip local symbols from kallsyms · 6f00df24
      Ralf Baechle authored
      Local symbols generated by gcc start with a `$'; no point in including them
      in the kernel.
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      6f00df24
    • Adrian Bunk's avatar
      [PATCH] fs/jbd/: cleanups · 022a4a7b
      Adrian Bunk authored
      This patch contains the following cleanups:
      - make needlessly global functions static
      - journal.c: remove the unused global function __journal_internal_check
                   and move the check to journal_init
      - remove the following write-only global variable:
        - journal.c: current_journal
      - remove the following unneeded EXPORT_SYMBOL:
        - journal.c: journal_recover
      Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
      Acked-by: default avatarAndreas Dilger <adilger@clusterfs.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      022a4a7b
    • Stephen Rothwell's avatar
      [PATCH] compat: be more consistent about [ug]id_t · 202e5979
      Stephen Rothwell authored
      When I first wrote the compat layer patches, I was somewhat cavalier about
      the definition of compat_uid_t and compat_gid_t (or maybe I just
      misunderstood :-)).  This patch makes the compat types much more consistent
      with the types we are being compatible with and hopefully will fix a few
      bugs along the way.
      
      	compat type		type in compat arch
      	__compat_[ug]id_t	__kernel_[ug]id_t
      	__compat_[ug]id32_t	__kernel_[ug]id32_t
      	compat_[ug]id_t		[ug]id_t
      
      The difference is that compat_uid_t is always 32 bits (for the archs we
      care about) but __compat_uid_t may be 16 bits on some.
      Signed-off-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      202e5979
    • Bodo Eggert's avatar
      [PATCH] use select in sound/isa/Kconfig · 8dbfc5cf
      Bodo Eggert authored
      In sound/isa/Kconfig, select ISAPNP and depend on ISAPNP are intermixed,
      resulting in funny behaviour.  (Soundcarts get selectable if other
      soundcards are selected).
      
      This patch changes the "depend on ISAPNP"s to select.
      Signed-Off-By: default avatarBodo Eggert <7eggert@gmx.de>
      Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      8dbfc5cf
    • John McCutchan's avatar
      [PATCH] inotify speedup · 820249ba
      John McCutchan authored
      Bypass an inotify-related fastpath spinlock and several function calls on
      systems which have no inotify watches registered.
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      820249ba
    • Paul E. McKenney's avatar
      [PATCH] NMI: Update NMI users of RCU to use new API · 19306059
      Paul E. McKenney authored
      Uses of RCU for dynamically changeable NMI handlers need to use the new
      rcu_dereference() and rcu_assign_pointer() facilities.  This change makes
      it clear that these uses are safe from a memory-barrier viewpoint, but the
      main purpose is to document exactly what operations are being protected by
      RCU.  This has been tested on x86 and x86-64, which are the only
      architectures affected by this change.
      
      Signed-off-by: <paulmck@us.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      19306059
    • David Howells's avatar
      [PATCH] Provide better printk() support for SMP machines · fe21773d
      David Howells authored
      The attached patch prevents oopses interleaving with characters from
      other printks on other CPUs by only breaking the lock if the oops is
      happening on the machine holding the lock.
      
      It might be better if the oops generator got the lock and then called an
      inner vprintk routine that assumed the caller holds the lock, thus
      making oops reports "atomic".
      Signed-Off-By: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      fe21773d
    • Christoph Lameter's avatar
      [PATCH] More __read_mostly variables · c3d8c141
      Christoph Lameter authored
      Move some more frequently read variables that showed up during some of our
      performance tests as sometimes ending up in hot cachelines to the
      read_mostly section.
      
      Fix: Move the __read_mostly from before hpet_usec_quotient to follow the
      variable like the other uses of __read_mostly.
      Signed-off-by: default avatarAlok N Kataria <alokk@calsoftinc.com>
      Signed-off-by: default avatarChristoph Lameter <christoph@scalex86.org>
      Signed-off-by: default avatarShai Fultheim <shai@scalex86.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      c3d8c141
    • Paulo Marques's avatar
      [PATCH] kallsyms: change compression algorithm · b3dbb4ec
      Paulo Marques authored
      This patch changes the way the compression algorithm works.  The base
      algorithm is similiar to the previous but we force the compressed token
      size to 2.
      
      Having a fixed size compressed token allows for a lot of optimizations, and
      that in turn allows this code to run over *all* the symbols faster than it
      did before over just a subset.
      
      Having it work over all the symbols will make it behave better when symbols
      change positions between passes, and the "inconsistent kallsyms" messages
      should become less frequent.
      
      In my tests the compression ratio was degraded by about 0.5%, but the
      results will depend greatly on the number of symbols to compress.
      Signed-off-by: default avatarPaulo Marques <pmarques@grupopie.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      b3dbb4ec
    • Tom Zanussi's avatar
      [PATCH] relayfs · e82894f8
      Tom Zanussi authored
      Here's the latest version of relayfs, against linux-2.6.11-mm2.  I'm hoping
      you'll consider putting this version back into your tree - the previous
      rounds of comment seem to have shaken out all the API issues and the number
      of comments on the code itself have also steadily dwindled.
      
      This patch is essentially the same as the relayfs redux part 5 patch, with
      some minor changes based on reviewer comments.  Thanks again to Pekka
      Enberg for those.  The patch size without documentation is now a little
      smaller at just over 40k.  Here's a detailed list of the changes:
      
      - removed the attribute_flags in relay open and changed it to a
        boolean specifying either overwrite or no-overwrite mode, and removed
        everything referencing the attribute flags.
      - added a check for NULL names in relayfs_create_entry()
      - got rid of the unnecessary multiple labels in relay_create_buf()
      - some minor simplification of relay_alloc_buf() which got rid of a
        couple params
      - updated the Documentation
      
      In addition, this version (through code contained in the relay-apps tarball
      linked to below, not as part of the relayfs patch) tries to make it as easy
      as possible to create the cooperating kernel/user pieces of a typical and
      common type of logging application, one where kernel logging is kicked off
      when a user space data collection app starts and stops when the collection
      app exits, with the data being automatically logged to disk in between.  To
      create this type of application, you basically just include a header file
      (relay-app.h, included in the relay-apps tarball) in your kernel module,
      define a couple of callbacks and call an initialization function, and on
      the user side call a single function that sets up and continuously monitors
      the buffers, and writes data to files as it becomes available.  Channels
      are created when the collection app is started and destroyed when it exits,
      not when the kernel module is inserted, so different channel buffer sizes
      can be specified for each separate run via command-line options.  See the
      README in the relay-apps tarball for details.
      
      Also included in the relay-apps tarball are a couple examples
      demonstrating how you can use this to create quick and dirty kernel
      logging/debugging applications.  They are:
      
      - tprintk, short for 'tee printk', which temporarily puts a kprobe on
        printk() and writes a duplicate stream of printk output to a relayfs
        channel.  This could be used anywhere there's printk() debugging code
        in the kernel which you'd like to exercise, but would rather not have
        your system logs cluttered with debugging junk.  You'd probably want
        to kill klogd while you do this, otherwise there wouldn't be much
        point (since putting a kprobe on printk() doesn't change the output
        of printk()).  I've used this method to temporarily divert the packet
        logging output of the iptables LOG target from the system logs to
        relayfs files instead, for instance.
      
      - klog, which just provides a printk-like formatted logging function
        on top of relayfs.  Again, you can use this to keep stuff out of your
        system logs if used in place of printk.
      
      The example applications can be found here:
      
      http://prdownloads.sourceforge.net/dprobes/relay-apps.tar.gz?download
      
      From: Christoph Hellwig <hch@lst.de>
      
        avoid lookup_hash usage in relayfs
      Signed-off-by: default avatarTom Zanussi <zanussi@us.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      e82894f8
    • Ingo Molnar's avatar
      [PATCH] detect soft lockups · 8446f1d3
      Ingo Molnar authored
      This patch adds a new kernel debug feature: CONFIG_DETECT_SOFTLOCKUP.
      
      When enabled then per-CPU watchdog threads are started, which try to run
      once per second.  If they get delayed for more than 10 seconds then a
      callback from the timer interrupt detects this condition and prints out a
      warning message and a stack dump (once per lockup incident).  The feature
      is otherwise non-intrusive, it doesnt try to unlock the box in any way, it
      only gets the debug info out, automatically, and on all CPUs affected by
      the lockup.
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarNishanth Aravamudan <nacc@us.ibm.com>
      Signed-Off-By: default avatarMatthias Urlichs <smurf@smurf.noris.de>
      Signed-off-by: default avatarRichard Purdie <rpurdie@rpsys.net>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      8446f1d3
    • Jakub Jelinek's avatar
      [PATCH] FUTEX_WAKE_OP: pthread_cond_signal() speedup · 4732efbe
      Jakub Jelinek authored
      ATM pthread_cond_signal is unnecessarily slow, because it wakes one waiter
      (which at least on UP usually means an immediate context switch to one of
      the waiter threads).  This waiter wakes up and after a few instructions it
      attempts to acquire the cv internal lock, but that lock is still held by
      the thread calling pthread_cond_signal.  So it goes to sleep and eventually
      the signalling thread is scheduled in, unlocks the internal lock and wakes
      the waiter again.
      
      Now, before 2003-09-21 NPTL was using FUTEX_REQUEUE in pthread_cond_signal
      to avoid this performance issue, but it was removed when locks were
      redesigned to the 3 state scheme (unlocked, locked uncontended, locked
      contended).
      
      Following scenario shows why simply using FUTEX_REQUEUE in
      pthread_cond_signal together with using lll_mutex_unlock_force in place of
      lll_mutex_unlock is not enough and probably why it has been disabled at
      that time:
      
      The number is value in cv->__data.__lock.
              thr1            thr2            thr3
      0       pthread_cond_wait
      1       lll_mutex_lock (cv->__data.__lock)
      0       lll_mutex_unlock (cv->__data.__lock)
      0       lll_futex_wait (&cv->__data.__futex, futexval)
      0                       pthread_cond_signal
      1                       lll_mutex_lock (cv->__data.__lock)
      1                                       pthread_cond_signal
      2                                       lll_mutex_lock (cv->__data.__lock)
      2                                         lll_futex_wait (&cv->__data.__lock, 2)
      2                       lll_futex_requeue (&cv->__data.__futex, 0, 1, &cv->__data.__lock)
                                # FUTEX_REQUEUE, not FUTEX_CMP_REQUEUE
      2                       lll_mutex_unlock_force (cv->__data.__lock)
      0                         cv->__data.__lock = 0
      0                         lll_futex_wake (&cv->__data.__lock, 1)
      1       lll_mutex_lock (cv->__data.__lock)
      0       lll_mutex_unlock (cv->__data.__lock)
                # Here, lll_mutex_unlock doesn't know there are threads waiting
                # on the internal cv's lock
      
      Now, I believe it is possible to use FUTEX_REQUEUE in pthread_cond_signal,
      but it will cost us not one, but 2 extra syscalls and, what's worse, one of
      these extra syscalls will be done for every single waiting loop in
      pthread_cond_*wait.
      
      We would need to use lll_mutex_unlock_force in pthread_cond_signal after
      requeue and lll_mutex_cond_lock in pthread_cond_*wait after lll_futex_wait.
      
      Another alternative is to do the unlocking pthread_cond_signal needs to do
      (the lock can't be unlocked before lll_futex_wake, as that is racy) in the
      kernel.
      
      I have implemented both variants, futex-requeue-glibc.patch is the first
      one and futex-wake_op{,-glibc}.patch is the unlocking inside of the kernel.
       The kernel interface allows userland to specify how exactly an unlocking
      operation should look like (some atomic arithmetic operation with optional
      constant argument and comparison of the previous futex value with another
      constant).
      
      It has been implemented just for ppc*, x86_64 and i?86, for other
      architectures I'm including just a stub header which can be used as a
      starting point by maintainers to write support for their arches and ATM
      will just return -ENOSYS for FUTEX_WAKE_OP.  The requeue patch has been
      (lightly) tested just on x86_64, the wake_op patch on ppc64 kernel running
      32-bit and 64-bit NPTL and x86_64 kernel running 32-bit and 64-bit NPTL.
      
      With the following benchmark on UP x86-64 I get:
      
      for i in nptl-orig nptl-requeue nptl-wake_op; do echo time elf/ld.so --library-path .:$i /tmp/bench; \
      for j in 1 2; do echo ( time elf/ld.so --library-path .:$i /tmp/bench ) 2>&1; done; done
      time elf/ld.so --library-path .:nptl-orig /tmp/bench
      real 0m0.655s user 0m0.253s sys 0m0.403s
      real 0m0.657s user 0m0.269s sys 0m0.388s
      time elf/ld.so --library-path .:nptl-requeue /tmp/bench
      real 0m0.496s user 0m0.225s sys 0m0.271s
      real 0m0.531s user 0m0.242s sys 0m0.288s
      time elf/ld.so --library-path .:nptl-wake_op /tmp/bench
      real 0m0.380s user 0m0.176s sys 0m0.204s
      real 0m0.382s user 0m0.175s sys 0m0.207s
      
      The benchmark is at:
      http://sourceware.org/ml/libc-alpha/2005-03/txt00001.txt
      Older futex-requeue-glibc.patch version is at:
      http://sourceware.org/ml/libc-alpha/2005-03/txt00002.txt
      Older futex-wake_op-glibc.patch version is at:
      http://sourceware.org/ml/libc-alpha/2005-03/txt00003.txt
      Will post a new version (just x86-64 fixes so that the patch
      applies against pthread_cond_signal.S) to libc-hacker ml soon.
      
      Attached is the kernel FUTEX_WAKE_OP patch as well as a simple-minded
      testcase that will not test the atomicity of the operation, but at least
      check if the threads that should have been woken up are woken up and
      whether the arithmetic operation in the kernel gave the expected results.
      Acked-by: default avatarIngo Molnar <mingo@redhat.com>
      Cc: Ulrich Drepper <drepper@redhat.com>
      Cc: Jamie Lokier <jamie@shareable.org>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: default avatarYoichi Yuasa <yuasa@hh.iij4u.or.jp>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      4732efbe
    • Rafael J. Wysocki's avatar
      [PATCH] 3c59x PM fixes · 5b039e68
      Rafael J. Wysocki authored
      This patch adds some missing pci-related calls to the suspend and resume
      routines of the 3c59x driver.  It also makes the driver free/request IRQ on
      suspend/resume, in accordance with the proposal at:
      http://lists.osdl.org/pipermail/linux-pm/2005-May/000955.htmlSigned-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      5b039e68
    • Pavel Machek's avatar
      [PATCH] swsusp: update documentation · d7ae79c7
      Pavel Machek authored
      This updates documentation a bit (mostly removing obsolete stuff), and
      marks swsusp as no longer experimental in config.
      Signed-off-by: default avatarPavel Machek <pavel@suse.cz>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      d7ae79c7
    • Eric W. Biederman's avatar
      [PATCH] x86_64: Fix off by one in e820_mapped · 48c8b113
      Eric W. Biederman authored
      This allows a valid iommu placed immediately after memory to work, to be
      recognized as after the last byte of memory and not overlapping it.
      Signed-off-by: default avatarEric W. Biederman <ebiederm@xmission.com>
      Acked-by: default avatarAndi Kleen <ak@suse.de>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      48c8b113
    • Ashok Raj's avatar
      [PATCH] x86_64: create sysfs entries for cpu only for present cpus · a888cebe
      Ashok Raj authored
      Need to create sysfs only for cpus that are present.  Without which we see
      NR_CPUS entries created when we have CONFIG_HOTPLUG and CONFIG_HOTPLUG_CPU
      enabled.
      Signed-off-by: default avatarAshok Raj <ashok.raj@intel.com>
      Acked-by: default avatarAndi Kleen <ak@muc.de>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      a888cebe
    • Ashok Raj's avatar
      [PATCH] x86_64: Fix cluster mode send_IPI_allbutself to use get_cpu()/put_cpu() · 0c2b9d5c
      Ashok Raj authored
      Need to ensure we dont get prempted when we clear ourself from mask when using
      clustered mode genapic code.
      Signed-off-by: default avatarAshok Raj <ashok.raj@intel.com>
      Acked-by: default avatarAndi Kleen <ak@muc.de>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      0c2b9d5c
    • Eric Dumazet's avatar
      [PATCH] x86_64: prefetchw() can fall back to prefetch() if !3DNOW · 19aaabb5
      Eric Dumazet authored
      This is a multi-part message in MIME format.  If the cpu lacks 3DNOW
      feature, we can use a normal prefetcht0 instruction instead of NOP5.
      "prefetchw (%rxx)" and "prefetcht0 (%rxx)" have the same length, ranging
      from 3 to 5 bytes depending on the register.  So this patch even helps
      AMD64, shortening the length of the code.
      Signed-off-by: default avatarEric Dumazet <dada1@cosmosbay.com>
      Acked-by: default avatarAndi Kleen <ak@muc.de>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      19aaabb5
    • Zwane Mwaikambo's avatar
      [PATCH] x86_64: print processor number in show_regs · c078d326
      Zwane Mwaikambo authored
      Up to date I've been using the GS value to determine the processor number
      in dumps from show_regs, however this can be cumbersome to do if you don't
      have the vmlinux to verify with the address of cpu_pda, how about the
      following?  I considered using hard_smp_processor_id for robustness but we
      already dereference current so we're already relying on MSR_GS_BASE being
      sane.
      Signed-off-by: default avatarZwane Mwaikambo <zwane@arm.linux.org.uk>
      Acked-by: default avatarAndi Kleen <ak@muc.de>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      c078d326
    • Ashok Raj's avatar
      [PATCH] x86/x86_64: deferred handling of writes to /proc/irqxx/smp_affinity · 54d5d424
      Ashok Raj authored
      When handling writes to /proc/irq, current code is re-programming rte
      entries directly. This is not recommended and could potentially cause
      chipset's to lockup, or cause missing interrupts.
      
      CONFIG_IRQ_BALANCE does this correctly, where it re-programs only when the
      interrupt is pending. The same needs to be done for /proc/irq handling as well.
      Otherwise user space irq balancers are really not doing the right thing.
      
      - Changed pending_irq_balance_cpumask to pending_irq_migrate_cpumask for
        lack of a generic name.
      - added move_irq out of IRQ_BALANCE, and added this same to X86_64
      - Added new proc handler for write, so we can do deferred write at irq
        handling time.
      - Display of /proc/irq/XX/smp_affinity used to display CPU_MASKALL, instead
        it now shows only active cpu masks, or exactly what was set.
      - Provided a common move_irq implementation, instead of duplicating
        when using generic irq framework.
      
      Tested on i386/x86_64 and ia64 with CONFIG_PCI_MSI turned on and off.
      Tested UP builds as well.
      
      MSI testing: tbd: I have cards, need to look for a x-over cable, although I
      did test an earlier version of this patch.  Will test in a couple days.
      Signed-off-by: default avatarAshok Raj <ashok.raj@intel.com>
      Acked-by: default avatarZwane Mwaikambo <zwane@holomorphy.com>
      Grudgingly-acked-by: default avatarAndi Kleen <ak@muc.de>
      Signed-off-by: default avatarCoywolf Qi Hunt <coywolf@lovecn.org>
      Signed-off-by: default avatarAshok Raj <ashok.raj@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      54d5d424
    • Eugene Surovegin's avatar
      [PATCH] ppc32: add missing sysfs node for ocp_func_emac_data.phy_feat_exc · f63ed39c
      Eugene Surovegin authored
      Add sysfs node for ocp_func_emac_data.phy_feat_exc field.
      Signed-off-by: default avatarEugene Surovegin <ebs@ebshome.net>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      f63ed39c
    • Eugene Surovegin's avatar
      [PATCH] ppc32: fix ocp_device_suspend to use pm_message_t instead of u32 · 842363ff
      Eugene Surovegin authored
      Recent "u32 -> pm_message_t" change triggered hidden bug in
      ocp_device_suspend.  Fix it to correctly use pm_message_t instead of u32.
      Signed-off-by: default avatarEugene Surovegin <ebs@ebshome.net>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      842363ff
  2. 06 Sep, 2005 7 commits