1. 25 May, 2004 14 commits
    • Andrew Morton's avatar
      [PATCH] Fix race condition with current->group_info · 8e56790b
      Andrew Morton authored
      From: Olaf Kirch <okir@suse.de>
      
      I have been chasing a corruption of current->group_info on PPC during NFS
      stress tests.  The problem seems to be that nfsd is messing with its
      group_info quite a bit, while some monitoring processes look at
      /proc/<pid>/status and do a get_group_info/put_group_info without any locking.
      
      This problem can be reproduced on ppc platforms within a few seconds if you
      generate some NFS load and do a "cat /proc/XXX/status" of an nfsd thread in a
      tight loop.
      
      I therefore think changes to current->group_info, and querying it from a
      different process, needs to be protected using the task_lock.
      
      (akpm: task->group_info here is safe against exit() because the task holds a
      ref on group_info which is released in __put_task_struct, and the /proc file
      has a ref on the task_struct).
      8e56790b
    • Andrew Morton's avatar
      [PATCH] ep_send_events() stack reduction · af57e8ae
      Andrew Morton authored
      ep_send_events() uses ~350 bytes of stack for a local buffer of events to send
      to userspace.  The patch fixes that by removing the double-buffering
      altogether.  A pipe-based microbenchmark from Davide Libenzi
      <davidel@xmailserver.org> was sped up by 1-2%.
      af57e8ae
    • Andrew Morton's avatar
      [PATCH] Fix the mangled-oops-output-on-SMP problem · c570d667
      Andrew Morton authored
      From: Ingo Molnar <mingo@elte.hu>
      
      printk currently does
      
      	if (oops_in_progres)
      		bust_printk_locks();
      
      which means that once we oops, the printk locking is 100% ineffective and
      multiple CPUs make an unreadable mess on a serial console.  It's a significant
      development hassle.
      
      Fix that up by only popping locks once per ten seconds.
      
      akpm@osdl.org did:
      
        - Bump the timeout to 30 seconds - 9600 baud is slow.
      
        - Handle jiffy wraps: change the logic so that we only skip the lockbust
          if the current time is within 30 seconds of the previous lockbusting
          attempt.
      c570d667
    • Andrew Morton's avatar
      [PATCH] Prevent scary warnings from knfsd · ed8d9961
      Andrew Morton authored
      From: "J. Bruce Fields" <bfields@fieldses.org>
      
      The kernel currently prints:
      
       nfsd: nobody listening for auth.unix.ip upcall; has some daemon not been started?
      
      on every bootup, during initscripts.
      
      Neil Brown <neilb@cse.unsw.edu.au> says:
      
        It was part of the recent set of idmapper patches.  Bruce wanted the admin
        to get a warning when the idmapper daemon wasn't running.  I thought the
        same warning should apply to any daemon that responded to upcalls.
      
        In the case of auth.unix.ip it isn't strictly necessary for a daemon to be
        running (for comparability with 2.4).
      
        You can get rid of the warning by doing:
      
          mount -t nfsd nfsd /proc/fs/nfs
      
        before mountd is started (init scripts should start doing this I hope, but
        distributions don't tend to use the init script from nfs-utils, so it is
        hard to push it).  This will trigger mountd to listen on auth.unix.ip and
        others.
      
      
      That's a hassle, so Bruce's patch limits the warning purely to the new
      idmapper cache.  It provides a callback in the cache_detail that individual
      caches can use to log messages when upcalls fail because a userspace daemon
      not running.  Implement this method for the idmapping caches.
      ed8d9961
    • Andrew Morton's avatar
      [PATCH] Fix userspace include of linux/fs.h · 7190b86d
      Andrew Morton authored
      From: Mans Rullgard <mru@kth.se>
      
      There are a few include which should have been under __KERNEL__.
      7190b86d
    • Andrew Morton's avatar
      [PATCH] use SLAB_PANIC in ll_rw_blk.c · 4f527e6a
      Andrew Morton authored
      4f527e6a
    • Andrew Morton's avatar
      [PATCH] ppc64: avoid bogus real IRQ numbers · a5d436c4
      Andrew Morton authored
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      
      Early in the boot process on pSeries machines, we look in the Open Firmware
      device tree for information about the interrupt assignments, and assign
      virtual IRQ numbers for each physical IRQ.  There is currently a couple of
      bugs in this code which result in us assigning virtual IRQs for nonexistent
      physical IRQs.  This causes problems when we call the firmware to enable or
      disable those nonexistent physical IRQs.  Some versions at least of the
      firmware will hit an assertion failure and crash the machine when this
      happens.
      
      This patch fixes the bugs and ensures that we don't try and use nonexistent
      physical IRQ numbers.  One bug was that we were mapping ISA interrupts,
      which is unnecessary since virtual IRQ numbers 0 - 15 are reserved for
      them.  The other was that when we had a PCI interrupt (which is always in
      the range 1 to 4, corresponding to INTA to INTD) which didn't have a
      mapping in the PCI host bridge above it, we were just using the original
      number (usually 1) rather than ignoring it.
      a5d436c4
    • Andrew Morton's avatar
      [PATCH] ppc64: bump IOMMU_MAX_ORDER · 1c748104
      Andrew Morton authored
      Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
      
      We have cards that want over 2MB of PCI consistent memory.  The
      IOMAP_MAX_ORDER limit is just to catch bad drivers early, so we can bump
      this a bit.
      
      We want some room to grow but our maximum get_free_pages allocation on
      ppc64 is currently 16MB, so it doesnt make sense to go above that.
      1c748104
    • Andrew Morton's avatar
      [PATCH] ppc64: small enter_rtas fix · 18f883b6
      Andrew Morton authored
      From: Anton Blanchard <anton@samba.org>
      
      enter_rtas now takes an unsigned long.
      18f883b6
    • Andrew Morton's avatar
      [PATCH] dynamic addition of virtual disks on PPC64 iSeries · b086c8a3
      Andrew Morton authored
      From: Stephen Rothwell <sfr@canb.auug.org.au>
      
      This patch allows us to dynamically add virtual disks to an iSeries partition.
       It works like this: after you have created the virtual disk file on OS/400
      and attached it to the Linux partition, you need to write to
      /sys/bus/vio/drivers/viodasd/probe (it doesn't matter what you write).  This
      will do the probe.  It calls add_disk() for each new disk, so we get hotplug
      events as a side effect.
      
      This was the nicest way I could think of doing this as the interface to the
      hypervisor is polled ...
      b086c8a3
    • Andrew Morton's avatar
      [PATCH] ppc64: fix to viopath.c · bb0d0927
      Andrew Morton authored
      From: Anton Blanchard <anton@samba.org>
      
      From: Olaf Hering and Nathan Lynch:
      
      Fix a couple of nasty lurking bugs in viopath.c and add information
      required to know if the iseries_veth module should be loaded on legacy
      iSeries systems.
      bb0d0927
    • Andrew Morton's avatar
      [PATCH] ppc64: NUMA fixes · 55d130a5
      Andrew Morton authored
      From: Anton Blanchard <anton@samba.org>
      
      From: Anton Blanchard, Dave Hansen and Olof Johansson:
      
      Fix multiple bugs in the ppc64 NUMA topology probe code.
      
      - We were using HW cpu numbers instead of logical ones.  615, 630, 650,
        some 670 and some 690 SMP will all fail to boot without this patch.
      
      - The old code would BUG() when it got confused (more NUMA zones than the
        kernel is configured for etc).
      
      - The common depth calculation was incorrect.  Dave found an OF property
        that gives us exactly what we want.
      
      - Things were broken on SMT machines.
      
      The new code should work on those broken systems and should no longer BUG()
      but fall back to a flat topology when it gets confused.
      55d130a5
    • Andrew Morton's avatar
      [PATCH] ppc64: fix inline spinlocks · 2c725188
      Andrew Morton authored
      From: Anton Blanchard <anton@samba.org>
      
      In _raw_spin_lock_flags we were branching to the wrong spot and would
      restore random stuff to the MSR.
      2c725188
    • Dave Jones's avatar
      [PATCH] Make early_cpu_detect() set x86_cache_alignment on pre-cpuid CPU's too · 4b796a9f
      Dave Jones authored
      From: Zdenek Pavlas <pavlas@nextra.cz>
      
      On any x86 without cpuid, early_cpu_detect() left x86_cache_alignment as
      zero, so kmem_cache_init() calls cache_estimate() with align == 0, and
      it loops forever. I've tried this trivial fix, and it works for me.
      
      Andi Kleen looked over this, and ok'd it.
      4b796a9f
  2. 24 May, 2004 2 commits
    • Paul Mackerras's avatar
      [PATCH] ppc64: better stack traces · 14bc28ad
      Paul Mackerras authored
      This improves the stack traces we get on PPC64 by putting a marker in
      those stack frames that are created as a result of an interrupt or
      exception.  The marker is "regshere" (0x7265677368657265).
      
      With this, stack traces show where exceptions have occurred, which can
      be very useful.  This also improves the accuracy of the trace because
      the relevant return address can be in the link register at the time of
      the exception rather than on the stack.  We now print the PC and
      exception type for each exception frame, and then the link register if
      appropriate as the next item in the trace.
      14bc28ad
    • Linus Torvalds's avatar
      Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk · e1ff5fe0
      Linus Torvalds authored
      into ppc970.osdl.org:/home/torvalds/v2.6/linux
      e1ff5fe0
  3. 25 May, 2004 1 commit
  4. 24 May, 2004 15 commits
  5. 23 May, 2004 8 commits