]> git.hungrycats.org Git - linux/log
linux
22 years ago[PATCH] flexmmap patchkit: fix for 32 bit emu for 64 bit arches
Arjan van de Ven [Tue, 24 Aug 2004 04:12:01 +0000 (21:12 -0700)]
[PATCH] flexmmap patchkit: fix for 32 bit emu for 64 bit arches

Utz Lehmann <u.lehmann@de.tecosim.com> found a problem with the flexmmap
patches on x86-64, what he is seeing is that the 32 bit personality isn't
set at the first point of setting the allocator strategy.  The solution is
simple, in binfmt_elf the personality is set so put the pick-layout
function there.  Please consider,

Signed-off-by: Arjan van de Ven <arjanv@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
22 years ago[PATCH] i386 virtual memory layout rework
Ingo Molnar [Tue, 24 Aug 2004 04:11:50 +0000 (21:11 -0700)]
[PATCH] i386 virtual memory layout rework

  Rework the i386 mm layout to allow applications to allocate more virtual
  memory, and larger contiguous chunks.

  - the patch is compatible with existing architectures that either make
    use of HAVE_ARCH_UNMAPPED_AREA or use the default mmap() allocator - there
    is no change in behavior.

  - 64-bit architectures can use the same mechanism to clean up 32-bit
    compatibility layouts: by defining HAVE_ARCH_PICK_MMAP_LAYOUT and
    providing a arch_pick_mmap_layout() function - which can then decide
    between various mmap() layout functions.

  - I also introduced a new personality bit (ADDR_COMPAT_LAYOUT) to signal
    older binaries that dont have PT_GNU_STACK.  x86 uses this to revert back
    to the stock layout.  I also changed x86 to not clear the personality bits
    upon exec(), like x86-64 already does.

  - once every architecture that uses HAVE_ARCH_UNMAPPED_AREA has defined
    its arch_pick_mmap_layout() function, we can get rid of
    HAVE_ARCH_UNMAPPED_AREA altogether, as a final cleanup.

  the new layout generation function (__get_unmapped_area()) got significant
  testing in FC1/2, so i'm pretty confident it's robust.

  Compiles & boots fine on an 'old' and on a 'new' x86 distro as well.

  The two known breakages were:

     http://www.redhatconfig.com/msg/67248.html

     [ 'cyzload' third-party utility broke. ]

     http://www.zipworld.com/au/~akpm/dde.tar.gz

     [ your editor broke :-) ]

  both were caused by application bugs that did:

int ret = malloc();

if (ret <= 0)
failure;

  such bugs are easy to spot if they happen, and if it happens it's possible
  to work it around immediately without having to change the binary, via the
  setarch patch.

  No other application has been found to be affected, and this particular
  change got pretty wide coverage already over RHEL3 and exec-shield, it's in
  use for more than a year.

  The setarch utility can be used to trigger the compatibility layout on
  x86, the following version has been patched to take the `-L' option:

  http://people.redhat.com/mingo/flexible-mmap/setarch-1.4-2.tar.gz

  "setarch -L i386 <command>" will run the command with the old layout.

From: Hugh Dickins <hugh@veritas.com>

  The problem is in the flexible mmap patch: arch_get_unmapped_area_topdown
  is liable to give your mmap vm_start above TASK_SIZE with vm_end wrapped;
  which is confusing, and ends up as that BUG_ON(mm->map_count).

  The patch below stops that behaviour, but it's not the full solution:
  wilson_mmap_test -s 1000 then simply cannot allocate memory for the large
  mmap, whereas it works fine non-top-down.

  I think it's wrong to interpret a large or rlim_infinite stack rlimit as
  an inviolable request to reserve that much for the stack: it makes much less
  VM available than bottom up, not what was intended.  Perhaps top down should
  go bottom up (instead of belly up) when it fails - but I'd probably better
  leave that to Ingo.

  Or perhaps the default should place stack below text (as WLI suggested and
  ELF intended, with its text defaulting to 0x08048000, small progs sharing
  page table between stack and text and data); with a further personality for
  those needing bigger stack.

From: Ingo Molnar <mingo@elte.hu>

  - fall back to the bottom-up layout if the stack can grow unlimited (if
  the stack ulimit has been set to RLIM_INFINITY)

  - try the bottom-up allocator if the top-down allocator fails - this can
  utilize the hole between the true bottom of the stack and its ulimit, as a
  last-resort effort.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
22 years ago[PATCH] sched: smt fixes
Ingo Molnar [Tue, 24 Aug 2004 04:11:37 +0000 (21:11 -0700)]
[PATCH] sched: smt fixes

while looking at HT scheduler bugreports and boot failures i discovered a
bad assumption in most of the HT scheduling code: that resched_task() can
be called without holding the task's runqueue.

This is most definitely not valid - doing it without locking can lead to
the task on that CPU exiting, and this CPU corrupting the (ex-) task_info
struct.  It can also lead to HT-wakeup races with task switching on that
other CPU.  (this_CPU marking the wrong task on that_CPU as need_resched -
resulting in e.g.  idle wakeups not working.)

The attached patch against fixes it all up. Changes:

- resched_task() needs to touch the task so the runqueue lock of that CPU
  must be held: resched_task() now enforces this rule.

- wake_priority_sleeper() was called without holding the runqueue lock.

- wake_sleeping_dependent() needs to hold the runqueue locks of all
  siblings (2 typically).  Effects of this ripples back to schedule() as
  well - in the non-SMT case it gets compiled out so it's fine.

- dependent_sleeper() needs the runqueue locks too - and it's slightly
  harder because it wants to know the 'next task' info which might change
  during the lock-drop/reacquire.  Ripple effect on schedule() => compiled
  out on non-SMT so fine.

- resched_task() was disabling preemption for no good reason - all paths
  that called this function had either a spinlock held or irqs disabled.

Compiled & booted on x86 SMP and UP, with and without SMT. Booted the
SMT kernel on a real SMP+HT box as well. (Unpatched kernel wouldn't even
boot with the resched_task() assert in place.)

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
22 years ago[PATCH] sched: self-reaping atomicity fix
Ingo Molnar [Tue, 24 Aug 2004 04:11:26 +0000 (21:11 -0700)]
[PATCH] sched: self-reaping atomicity fix

disable preemption in the self-reap codepath, as such tasks may not be on
the tasklist anymore and CPU-hotplug relies on the tasklist to migrate
tasks.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
22 years ago[PATCH] permit sleeping in release_task()
Ingo Molnar [Tue, 24 Aug 2004 04:11:14 +0000 (21:11 -0700)]
[PATCH] permit sleeping in release_task()

release_task() calls proc_pid_flush() call dput(), which can sleep.  But
that's a late-in-exit no-preempt path with CONFIG_PREEMPT.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
22 years ago[PATCH] sched: new task fix
Ingo Molnar [Tue, 24 Aug 2004 04:11:02 +0000 (21:11 -0700)]
[PATCH] sched: new task fix

Rusty noticed that we update the parent ->avg_sleep without holding the
runqueue lock. Also the code needed cleanups.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
22 years ago[PATCH] sched: nonlinear timeslices
Ingo Molnar [Tue, 24 Aug 2004 04:10:51 +0000 (21:10 -0700)]
[PATCH] sched: nonlinear timeslices

* Nick Piggin <nickpiggin@yahoo.com.au> wrote:

> Increasing priority (negative nice) doesn't have much impact. -20 CPU
> hog only gets about double the CPU of a 0 priority CPU hog and only
> about 120% the CPU time of a nice -10 hog.

this is a property of the base scheduler as well.

We can do a nonlinear timeslice distribution trivially - the attached
patch implements the following timeslice distribution ontop of
2.6.8-rc3-mm1:

   [ -20 ... 0 ... 19 ] => [800ms ... 100ms ... 5ms]

the nice-20/nice+19 ratio is now 1:160 - sufficient for all aspects.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
22 years ago[PATCH] sched: whitespace cleanups
Ingo Molnar [Tue, 24 Aug 2004 04:10:39 +0000 (21:10 -0700)]
[PATCH] sched: whitespace cleanups

- whitespace and style cleanups

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
22 years ago[PATCH] schedstat: UP fix
Andrew Morton [Tue, 24 Aug 2004 04:10:27 +0000 (21:10 -0700)]
[PATCH] schedstat: UP fix

SMP fix --
    for_each_domain() is not defined if not CONFIG_SMP, so show_schedstat
    needed a couple of extra ifdefs.

Signed-off-by: Rick Lindsley <ricklind@us.ibm.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
22 years ago[PATCH] sched: sparc32 fixes
William Lee Irwin III [Tue, 24 Aug 2004 04:10:16 +0000 (21:10 -0700)]
[PATCH] sched: sparc32 fixes

Fix up sparc32 properly.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
22 years ago[PATCH] sched: consolidate init_idle() and fork_by_hand()
William Lee Irwin III [Tue, 24 Aug 2004 04:10:03 +0000 (21:10 -0700)]
[PATCH] sched: consolidate init_idle() and fork_by_hand()

It appears that init_idle() and fork_by_hand() could be combined into a
single method that calls init_idle() on behalf of the caller.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
22 years ago[PATCH] move CONFIG_SCHEDSTATS to arch/ppc64/Kconfig.debug
Nathan Lynch [Tue, 24 Aug 2004 04:09:52 +0000 (21:09 -0700)]
[PATCH] move CONFIG_SCHEDSTATS to arch/ppc64/Kconfig.debug

Otherwise it shows up under "iSeries device drivers", which doesn't seem
right.

Signed-off-by: Nathan Lynch <nathanl@austin.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
22 years ago[PATCH] scheduler statistics
Rick Lindsley [Tue, 24 Aug 2004 04:09:41 +0000 (21:09 -0700)]
[PATCH] scheduler statistics

It adds lots of CPU scheduler stats in /proc/pid/stat.  They are described in
the new Documentation//sched-stats.txt

We were carrying this patch offline for some time, but as there's still
considerable ongoing work in this area, and as the new stats are a
configuration option, I think it's best that this capability be in the base
kernel.

Nick removed a fair amount of statistics that he wasn't using.  The full patch
gathers more information.  In particular, his patch doesn't include the code
to measure the latency between the time a process is made runnable and the
time it hits a processor which will be key to measuring interactivity changes.

He passed his changes back to me and I got finished merging his changes with
the current statistics patches just before OLS.  I believe this is largely a
superset of the patch you grabbed and should port relatively easily too.

Versions also exist for

    2.6.8-rc2
    2.6.8-rc2-mm1
    2.6.8-rc2-mm2

at
    http://eaglet.rain.com/rick/linux/schedstat/patches/

and within 24 hours at

    http://oss.software.ibm.com/linux/patches/?patch_id=730&show=all

The version below is for 2.6.8-rc2-mm2 without the staircase code and has
been compiled cleanly but not yet run.

From: Ingo Molnar <mingo@elte.hu>

this code needs a couple of cleanups before it can go into mainline:

fs/proc/array.c, fs/proc/base.c, fs/proc/proc_misc.c:

 - moved the new /proc/<PID>/stat fields to /proc/<PID>/schedstat,
   because the new fields break older procps. It's cleaner this way
   anyway. This moving of fields necessiated a bump to version 10.

Documentation/sched-stats.txt:

 - updated sched-stats.txt for version 10

 - wake_up_forked_thread() => wake_up_new_task()

 - updated the per-process field description

Kconfig:

 - removed the default y and made the option dependent on DEBUG_KERNEL.
   This is really for scheduler analysis, normal users dont need the
   overhead.

include/linux/sched.h:

 - moved the definitions into kernel/sched.c - this fixes UP compilation
   and is cleaner.

 - also moved the sched-domain definitions to sched.c - now that the
   sched-domains internals are not exposed to architectures this is
   doable. It's also necessary due to the previous change.

kernel/fork.c:

 - moved the ->sched_info init to sched_fork() where it belongs.

kernel/sched.c:

 - wake_up_forked_thread() -> wake_up_new_task(), wuft_cnt -> wunt_cnt,
   wuft_moved -> wunt_moved.

 - wunt_cnt and wunt_moved were defined by never updated - added the
   missing code to wake_up_new_task().

 - whitespace/style police

 - removed whitespace changes done to code not related to schedstats -
   i'll send a separate patch for these (and more).

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
22 years ago[PATCH] sched: adjust p4 per-cpu gain
Con Kolivas [Tue, 24 Aug 2004 04:09:28 +0000 (21:09 -0700)]
[PATCH] sched: adjust p4 per-cpu gain

The smt-nice handling is a little too aggressive by not estimating the per cpu
gain as high enough for pentium4 hyperthread.  This patch changes the per
sibling cpu gain from 15% to 25%.  The true per cpu gain is entirely dependant
on the workload but overall the 2 species of Pentium4 that support
hyperthreading have about 20-30% gain.

P.S: Anton - For the power processors that are now using this SMT nice
infrastructure it would be worth setting this value separately at 40%.

Signed-off-by: Con Kolivas <kernel@kolivas.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
22 years ago[PATCH] Create cpu_sibling_map for PPC64
Matthew Dobson [Tue, 24 Aug 2004 04:09:16 +0000 (21:09 -0700)]
[PATCH] Create cpu_sibling_map for PPC64

In light of some proposed changes in the sched_domains code, I coded up
this little ditty that simply creates and populates a cpu_sibling_map for
PPC64 machines.  The patch just checks the CPU flags to determine if the
CPU supports SMT (aka Hyper-Threading aka Multi-Threading aka ...) and
fills in a mask of the siblings for each CPU in the system.  This should
allow us to build sched_domains for PPC64 with generic code in
kernel/sched.c for the SMT systems.  SMT is becoming more popular and is
turning up in more and more architectures.  I don't think it will be too
long until this feature is supported by most arches...

Signed-off-by: Matthew Dobson <colpatch@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
22 years ago[PATCH] sched: isolated sched domains
Dimitri Sivanich [Tue, 24 Aug 2004 04:09:04 +0000 (21:09 -0700)]
[PATCH] sched: isolated sched domains

Here's a version of the isolated scheduler domain code that I mentioned in
an RFC on 7/22.  This patch applies on top of 2.6.8-rc2-mm1 (to include all
of the new arch_init_sched_domain code).  This patch also contains the 2
line fix to remove the check of first_cpu(sd->groups->cpumask)) that Jesse
sent in earlier.

Note that this has not been tested with CONFIG_SCHED_SMT.  I hope that my
handling of those instances is OK.

Signed-off-by: Dimitri Sivanich <sivanich@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
22 years ago[PATCH] sched: limit cpuspan of node scheduler domains
Jesse Barnes [Tue, 24 Aug 2004 04:08:53 +0000 (21:08 -0700)]
[PATCH] sched: limit cpuspan of node scheduler domains

  This patch limits the cpu span of each node's scheduler domain to prevent
  balancing across too many cpus.  The cpus included in a node's domain are
  determined by the SD_NODES_PER_DOMAIN define and the arch specific
  sched_domain_node_span routine if ARCH_HAS_SCHED_DOMAIN is defined.  If
  ARCH_HAS_SCHED_DOMAIN is not defined, behavior is unchanged--all possible
  cpus will be included in each node's scheduling domain.  Currently, only
  ia64 provides an arch specific sched_domain_node_span routine.

From: Jesse Barnes <jbarnes@engr.sgi.com>

  This patch adds some more NUMA specific logic to the creation of scheduler
  domains.  Domains spanning all CPUs in a large system are too large to
  schedule across efficiently, leading to livelocks and inordinate amounts of
  time being spent in scheduler routines.  With this patch applied, the node
  scheduling domains for NUMA platforms will only contain a specified number
  of nearby CPUs, based on the value of SD_NODES_PER_DOMAIN.  It also allows
  arches to override SD_NODE_INIT, which sets the domain scheduling parameters
  for each node's domain.  This is necessary especially for large systems.

  Possible future directions:

  o multilevel node hierarchy (e.g.  node domains could contain 4 nodes
    worth of CPUs, supernode domains could contain 32 nodes worth, etc.  each
    with their own SD_NODE_INIT values)

  o more tweaking of SD_NODE_INIT values for good load balancing vs.
    overhead tradeoffs

From: mita akinobu <amgta@yacht.ocn.ne.jp>

  Compile fix

Signed-off-by: Jesse Barnes <jbarnes@sgi.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
22 years ago[PATCH] sched: consolidate sched domains
Nick Piggin [Tue, 24 Aug 2004 04:08:41 +0000 (21:08 -0700)]
[PATCH] sched: consolidate sched domains

  Teach the generic domains builder about SMT, and consolidate all
  architecture specific domain code into that.  Also, the SD_*_INIT macros can
  now be redefined by arch code without duplicating the entire setup code.
  This can be done by defining ARCH_HASH_SCHED_TUNE.

  The generic builder has been simplified with the addition of a helper
  macro which will probably prove to be useful to arch specific code as well
  and should be exported if that is the case.

Signed-off-by: Nick Piggin <nickpiggin@yahoo.com.au>
From: Matthew Dobson <colpatch@us.ibm.com>

  The attached patch is against 2.6.8-rc2-mm2, and removes Nick's
  conditional definition & population of cpu_sibling_map[] in favor of my
  unconditional ones.  This does not affect how cpu_sibling_map is used, just
  gives it broader scope.

From: Nick Piggin <nickpiggin@yahoo.com.au>

  Small fix to sched-consolidate-domains.patch picked up by

From: Suresh <suresh.b.siddha@intel.com>

  another sched consolidate domains fix

From: Nick Piggin <nickpiggin@yahoo.com.au>

  Don't use cpu_sibling_map if !CONFIG_SCHED_SMT

  This one spotted by Dimitri Sivanich <sivanich@sgi.com>

Signed-off-by: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
22 years ago[PATCH] sched: fork hotplug hanling cleanup
Ingo Molnar [Tue, 24 Aug 2004 04:08:29 +0000 (21:08 -0700)]
[PATCH] sched: fork hotplug hanling cleanup

- remove the hotplug lock from around much of fork(), and re-copy the
  cpus_allowed mask to solve the hotplug race cleanly.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Srivatsa Vaddagiri <vatsa@in.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
22 years ago[PATCH] sched: remove balance on clone
Nick Piggin [Tue, 24 Aug 2004 04:08:17 +0000 (21:08 -0700)]
[PATCH] sched: remove balance on clone

This removes balance on clone capability altogether.  I told Andi we wouldn't
remove it yet, but provided it is in a single small patch, he mightn't get too
upset.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
22 years ago[PATCH] sched: disable balance on clone
Nick Piggin [Tue, 24 Aug 2004 04:08:06 +0000 (21:08 -0700)]
[PATCH] sched: disable balance on clone

Don't balance on clone by default.

Balance on clone has a number of trivial performance failure cases, but it was
needed to get decent OpenMP performance on NUMA (Opteron) systems.  Not doing
child-runs-first for new threads also solves this problem in a nicer way
(implemented in a previous patch).

Signed-off-by: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
22 years ago[PATCH] sched: sched misc changes
Nick Piggin [Tue, 24 Aug 2004 04:07:54 +0000 (21:07 -0700)]
[PATCH] sched: sched misc changes

Add some likely/unliklies, a for_each_cpu => for_each_cpu_online, and close
the sched_exit race.

From: Ingo Molnar <mingo@elte.hu>

  fix a typo in a previous patch breaking RT scheduling & interactivity.

Signed-off-by: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
22 years ago[PATCH] sched: make rt_task unlikely
Nick Piggin [Tue, 24 Aug 2004 04:07:42 +0000 (21:07 -0700)]
[PATCH] sched: make rt_task unlikely

From: Ingo Molnar <mingo@elte.hu>

RT tasks are unlikely, move this into rt_task() instead of open-coding it.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
22 years ago[PATCH] sched: misc cleanups #2
Ingo Molnar [Tue, 24 Aug 2004 04:07:30 +0000 (21:07 -0700)]
[PATCH] sched: misc cleanups #2

 - fix two stale comments
 - cleanup

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
22 years ago[PATCH] kernel thread idle fix
Nick Piggin [Tue, 24 Aug 2004 04:07:19 +0000 (21:07 -0700)]
[PATCH] kernel thread idle fix

Now that init_idle does not remove tasks from the runqueue, those
architectures that use kernel_thread instead of copy_process for the idle
task will break.  To fix, ensure that CLONE_IDLETASK tasks are not put on
the runqueue in the first place.

Signed-off-by: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
22 years ago[PATCH] sched: cleanup, improve sched <=> fork APIs
Nick Piggin [Tue, 24 Aug 2004 04:07:08 +0000 (21:07 -0700)]
[PATCH] sched: cleanup, improve sched <=> fork APIs

Move balancing and child-runs-first logic from fork.c into sched.c where
it belongs.

* Consolidate wake_up_forked_process and wake_up_forked_thread into
  wake_up_new_process, and pass in clone_flags as suggested by Linus.  This
  removes a lot of code duplication and allows all logic to be handled in that
  function.

* Don't do balance-on-clone balancing for vfork'ed threads.

* Don't do set_task_cpu or balance one clone in wake_up_new_process.
  Instead do it in sched_fork to fix set_cpus_allowed races.

* Don't do child-runs-first for CLONE_VM processes, as there is obviously no
  COW benifit to be had.  This is a big one, it enables Andi's workload to run
  well without clone balancing, because the OpenMP child threads can get
  balanced off to other nodes *before* they start running and allocating
  memory.

* Rename sched_balance_exec to sched_exec: hide the policy from the API.

From: Ingo Molnar <mingo@elte.hu>

  rename wake_up_new_process -> wake_up_new_task.

  in sched.c we are gradually moving away from the overloaded 'process' or
  'thread' notion to the traditional task (or context) naming.

Signed-off-by: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
22 years ago[PATCH] sched: cleanup init_idle()
Nick Piggin [Tue, 24 Aug 2004 04:06:56 +0000 (21:06 -0700)]
[PATCH] sched: cleanup init_idle()

Clean up init_idle to not use wake_up_forked_process, then undo all the stuff
that call does.  Instead, do everything in init_idle.

Make double_rq_lock depend on CONFIG_SMP because it is no longer used on UP.

Signed-off-by: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
22 years ago[PATCH] sched: fix timeslice calculations for HZ=1000.
Ingo Molnar [Tue, 24 Aug 2004 04:06:43 +0000 (21:06 -0700)]
[PATCH] sched: fix timeslice calculations for HZ=1000.

The main benefit is that with the default HZ=1000 nice +19 tasks now get 5
msecs of timeslices, so the ratio of CPU use is linear.  (nice 0 task gets
20 times more CPU time than a nice 19 task.  Prior this change the ratio
was 1:10)

another effect is that nice 0 tasks now get a round 100 msecs of timeslices
(as intended), instead of 102 msecs.

here's a table of old/new timeslice values, for HZ=1000 and 100:

                      HZ=1000         (   HZ=100   )
                    old    new        ( old    new )

        nice -20:   200    200        ( 200    200 )
        nice -19:   195    195        ( 190    190 )
        ...
        nice 0:     102    100        ( 100    100 )
        nice 1:      97     95        (  90     90 )
        nice 2:      92     90        (  90     90 )
        ...
        nice 17:     19     15        (  10     10 )
        nice 18:     14     10        (  10     10 )
        nice 19:     10      5        (  10     10 )

i've tested the patch on x86.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
22 years agoLinux 2.6.9-rc1 v2.6.9-rc1
Linus Torvalds [Mon, 23 Aug 2004 16:59:58 +0000 (09:59 -0700)]
Linux 2.6.9-rc1

22 years ago[PATCH] ppc64: use struct list_head for hose_list
Paul Mackerras [Mon, 23 Aug 2004 16:39:00 +0000 (09:39 -0700)]
[PATCH] ppc64: use struct list_head for hose_list

This patch changes hose_list from a simple linked list to a
"list.h"-style list.  This is in preparation for the runtime
addition/removal of PCI Host Bridges.

Signed-off-by: John Rose <johnrose@austin.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
22 years ago[PATCH] ppc64: fix enable_surveillance() for power5
Nathan Fontenot [Mon, 23 Aug 2004 16:38:48 +0000 (09:38 -0700)]
[PATCH] ppc64: fix enable_surveillance() for power5

On some platforms (notably power5) you can't enable surveillance
(firmware/service processor watchdog) from the kernel - you have to do
it in the firmware.

This patch changes enable_surveillance() to make the message that is
printed in this situation more informative.  Additionaly, the rtas_call
was changed to rtas_set_indicator so as to avoid having to handle
RTAS_BUSY returns.

Signed-off-by: Nathan Fontenot <nfont@austin.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
22 years agoMerge bk://ppc.bkbits.net/for-linus-ppc64
Linus Torvalds [Mon, 23 Aug 2004 14:24:32 +0000 (07:24 -0700)]
Merge bk://ppc.bkbits.net/for-linus-ppc64
into ppc970.osdl.org:/home/torvalds/v2.6/linux

22 years agoUse F_SETLK instead of F_SETLK64 in nfs locking code.
Linus Torvalds [Mon, 23 Aug 2004 14:13:03 +0000 (07:13 -0700)]
Use F_SETLK instead of F_SETLK64 in nfs locking code.

The code doesn't actually _care_ about 32/64-bit issues,
only about F_SETLK vs F_SETLKW, and the F_SETLK64 doesn't
exist except as a compatibility thing on 64-bit architectures
(since the regular one already _is_ 64-bit, of course).

22 years agoMerge http://nfsclient.bkbits.net/linux-2.6
Trond Myklebust [Mon, 23 Aug 2004 17:41:30 +0000 (13:41 -0400)]
Merge http://nfsclient.bkbits.net/linux-2.6
into fys.uio.no:/home/linux/bitkeeper/nfsclient-2.6

22 years agoRPC,NFSv4: NFSv4 operations that create or destroy state on the
Trond Myklebust [Mon, 23 Aug 2004 16:02:36 +0000 (12:02 -0400)]
RPC,NFSv4: NFSv4 operations that create or destroy state on the
   server are not allowed to be interrupted as that may result in the
   client and server disagreeing.

22 years agoNFSv4: Enable delegations by actually telling the server about our
Trond Myklebust [Mon, 23 Aug 2004 16:01:42 +0000 (12:01 -0400)]
NFSv4: Enable delegations by actually telling the server about our
   recall ability.

Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoNFSv4: return all delegations we hold if the server issues a
Trond Myklebust [Mon, 23 Aug 2004 16:00:57 +0000 (12:00 -0400)]
NFSv4: return all delegations we hold if the server issues a
   NFS4ERR_CB_PATH_DOWN error.

22 years agoNFSv4: More aggressive caching if we have a delegation.
Trond Myklebust [Mon, 23 Aug 2004 16:00:15 +0000 (12:00 -0400)]
NFSv4: More aggressive caching if we have a delegation.

Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoNFSv4: Delegated open.
Trond Myklebust [Mon, 23 Aug 2004 15:59:17 +0000 (11:59 -0400)]
NFSv4: Delegated open.

Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoNFSv4: Recover delegations on server reboot.
Trond Myklebust [Mon, 23 Aug 2004 15:58:37 +0000 (11:58 -0400)]
NFSv4: Recover delegations on server reboot.

Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoNFSv4: More delegation recall code
Trond Myklebust [Mon, 23 Aug 2004 15:57:44 +0000 (11:57 -0400)]
NFSv4: More delegation recall code

Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoNFSv4: Service delegation recall requests from the server.
Trond Myklebust [Mon, 23 Aug 2004 15:56:58 +0000 (11:56 -0400)]
NFSv4: Service delegation recall requests from the server.

Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoNFSv4: Further XDR cleanups in preparation for delegations.
Trond Myklebust [Mon, 23 Aug 2004 15:56:12 +0000 (11:56 -0400)]
NFSv4: Further XDR cleanups in preparation for delegations.

Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoNFSv4: XDR cleanups in preparation for delegations.
Trond Myklebust [Mon, 23 Aug 2004 15:55:27 +0000 (11:55 -0400)]
NFSv4: XDR cleanups in preparation for delegations.

Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoNFSv4: Add support for a delegation callback server.
Trond Myklebust [Mon, 23 Aug 2004 15:54:38 +0000 (11:54 -0400)]
NFSv4: Add support for a delegation callback server.

Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoNFSv4: Basic code for managing delegation state.
Trond Myklebust [Mon, 23 Aug 2004 15:53:27 +0000 (11:53 -0400)]
NFSv4: Basic code for managing delegation state.

Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoMerge fys.uio.no:/home/linux/bitkeeper/nfsclient-2.6
Trond Myklebust [Mon, 23 Aug 2004 15:30:42 +0000 (11:30 -0400)]
Merge fys.uio.no:/home/linux/bitkeeper/nfsclient-2.6
into fys.uio.no:/home/linux/bitkeeper/work/nfsclient-2.6

22 years agoMerge http://nfsclient.bkbits.net/linux-2.6
Trond Myklebust [Mon, 23 Aug 2004 15:24:13 +0000 (11:24 -0400)]
Merge http://nfsclient.bkbits.net/linux-2.6
into fys.uio.no:/home/linux/bitkeeper/nfsclient-2.6

22 years agoNFSv2/v3/v4: Make the rpc_ops->getattr method take a filehandle
Trond Myklebust [Mon, 23 Aug 2004 15:21:20 +0000 (11:21 -0400)]
NFSv2/v3/v4: Make the rpc_ops->getattr method take a filehandle
   rather than an inode argument. Fix up nfs_instantiate() and
   _nfs4_do_open to use this since doing a new lookup might be racy.

22 years agoNFSv4: don't retry CREATE operations if the server returns
Trond Myklebust [Mon, 23 Aug 2004 15:20:15 +0000 (11:20 -0400)]
NFSv4: don't retry CREATE operations if the server returns
   NFS4ERR_DELAY on the GETATTR call.

22 years agoNFSv4: More cleanups of the NFSv4 state.
Trond Myklebust [Mon, 23 Aug 2004 15:19:39 +0000 (11:19 -0400)]
NFSv4: More cleanups of the NFSv4 state.

Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoNFSv2/v3/v4: Place NFS nfs_page shared data into a single structure
Trond Myklebust [Mon, 23 Aug 2004 15:19:03 +0000 (11:19 -0400)]
NFSv2/v3/v4: Place NFS nfs_page shared data into a single structure
   that hangs off filp->private_data. As a side effect, this also
   cleans up the NFSv4 private file state info.

Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoNFSv4: Prime SETCLIENTID call for the delegation callback info.
Trond Myklebust [Mon, 23 Aug 2004 15:18:15 +0000 (11:18 -0400)]
NFSv4: Prime SETCLIENTID call for the delegation callback info.

Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoNFSv4: On server reboot we need to recover byte-range locks.
Trond Myklebust [Mon, 23 Aug 2004 15:17:43 +0000 (11:17 -0400)]
NFSv4: On server reboot we need to recover byte-range locks.

Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoNFSv4: Clean up the reboot recovery. Ensure that we exclude stateful
Trond Myklebust [Mon, 23 Aug 2004 15:16:50 +0000 (11:16 -0400)]
NFSv4: Clean up the reboot recovery. Ensure that we exclude stateful
   operations by using a per-server read/write semaphore.

Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoNFSv4: Fix up the exception handling. Ensure we always handle
Trond Myklebust [Mon, 23 Aug 2004 15:14:18 +0000 (11:14 -0400)]
NFSv4: Fix up the exception handling. Ensure we always handle
   NFS4ERR_DELAY properly.

Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoMerge http://nfsclient.bkbits.net/linux-2.6
Trond Myklebust [Mon, 23 Aug 2004 15:00:16 +0000 (11:00 -0400)]
Merge http://nfsclient.bkbits.net/linux-2.6
into fys.uio.no:/home/linux/bitkeeper/nfsclient-2.6

22 years agoNFSv2: In the NFSv3 RFC, the sattr3 structure passed in the SETATTR
Trond Myklebust [Mon, 23 Aug 2004 14:18:16 +0000 (10:18 -0400)]
NFSv2: In the NFSv3 RFC, the sattr3 structure passed in the SETATTR
   call allows for the client to request that the mtime and/or atime
   of an inode be set to the current server time, the given (client)
   time, or not changed.  The set-to-current-server value is used
   when you run "touch file" on the client.

The NFSv2 RFC defines no such encoding for the sattr structure.
   However Solaris and Irix machine obey a convention where passing
   the invalid value mtime.useconds=1000000 means "set both mtime and
   atime to the current server time".  The convention is documented
   in the book "NFS Illustrated" by Brent Callaghan.  The patch below
   implements this convention for the Linux client and server (hence
   multiple To:s).

Signed-off-by: Greg Banks <gnb@sgi.com>
Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoKCONFIG: In the kernel help for NFSv3 & NFSv4 client support both are
Trond Myklebust [Mon, 23 Aug 2004 14:17:20 +0000 (10:17 -0400)]
KCONFIG: In the kernel help for NFSv3 & NFSv4 client support both are
   listed as "the newer version ... of the NFS protocol". Obviously
   both can't be the newer version at the same time, so here's a
   patch to correct the text in such a way that only v4 is listed as
   the newer version. Patch is against 2.6.7-rc3 - please consider
   including it.

Signed-off-by: Jesper Juhl <juhl-lkml@dif.dk>
Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoNFS: Now that file handle comparison ignores the unused parts of the
Trond Myklebust [Mon, 23 Aug 2004 14:16:26 +0000 (10:16 -0400)]
NFS: Now that file handle comparison ignores the unused parts of the
   file handle container, there is no longer any need to clear the
   file handle container before copying in a file handle.  This
   allows us to remove a 128 byte memset() from several hot paths.

Signed-off-by: Chuck Lever <cel@netapp.com>
Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoNFS: While the storage container for NFS file handles must be able to
Trond Myklebust [Mon, 23 Aug 2004 14:15:49 +0000 (10:15 -0400)]
NFS: While the storage container for NFS file handles must be able to
   store 128 bytes, usually NFS servers don't use file handles that
   are more than 32 bytes in size.  This patch creates an efficient
   mechanism for comparing file handles that ignores the unused bytes
   in a file handle.

Signed-off-by: Chuck Lever <cel@netapp.com>
Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoNFS: In 2.4, NFS O_DIRECT used the VFS's O_DIRECT logic to provide
Trond Myklebust [Mon, 23 Aug 2004 14:15:13 +0000 (10:15 -0400)]
NFS: In 2.4, NFS O_DIRECT used the VFS's O_DIRECT logic to provide
   direct I/O support for NFS files.  The 2.4 VFS O_DIRECT logic was
   block based, thus the NFS client had to provide a minimum
   allowable blocksize for O_DIRECT reads and writes on NFS files.
   For various reasons we chose 512 bytes. In 2.6, there is no
   requirement for a minimum blocksize.  NFS O_DIRECT reads and
   writes can go to any byte at any offset in a file.  Thus we revert
   the blocksize setting for NFS file systems to the previous
   behavior, which was to advertise the "wsize" setting as the
   optimal I/O block size.  This improves the performance of
   applications like 'cp' which use this value as their transfer
   size.

This patch also exposes the server's reported disk block size in the
   f_frsize of the vfsstat structure.

Signed-off-by: Chuck Lever <cel@netapp.com>
Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoNFS: Clean up the logic that handles recovery from a failed mount
Trond Myklebust [Mon, 23 Aug 2004 14:14:06 +0000 (10:14 -0400)]
NFS: Clean up the logic that handles recovery from a failed mount
   request. Get rid of nfs_put_super.

Signed-off-by: Chuck Lever <cel@netapp.com>
Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoNFS: Break the nfs_wreq_lock into per-mount locks. This helps prevent
Trond Myklebust [Mon, 23 Aug 2004 14:13:19 +0000 (10:13 -0400)]
NFS: Break the nfs_wreq_lock into per-mount locks. This helps prevent
   a heavy read and write workload on one mount point from
   interfering with workloads on other mount points.

Note that there is still some serialization due to the big kernel
   lock.

Signed-off-by: Chuck Lever <cel@netapp.com>
Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoRPCSEC_GSS: Add the spkm3 common and client-side code.
Trond Myklebust [Mon, 23 Aug 2004 14:12:24 +0000 (10:12 -0400)]
RPCSEC_GSS: Add the spkm3 common and client-side code.

Signed-off-by: Andy Adamson <andros@citi.umich.edu>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoRPCSEC_GSS: Missing newline in dprintk.
Trond Myklebust [Mon, 23 Aug 2004 14:11:15 +0000 (10:11 -0400)]
RPCSEC_GSS: Missing newline in dprintk.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoNFSv4: OK, so it's trivial and probably superfluous, but I don't see
Trond Myklebust [Mon, 23 Aug 2004 14:10:18 +0000 (10:10 -0400)]
NFSv4: OK, so it's trivial and probably superfluous, but I don't see
   why we shouldn't be slightly stricter here, so I'm just going to
   keep sending this until I'm told to stop.... Make sure that
   unmapped errors are approximately in the range of defined NFS4
   errors.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoRPCSEC_GSS: Remove an unused parameter.
Trond Myklebust [Mon, 23 Aug 2004 14:09:18 +0000 (10:09 -0400)]
RPCSEC_GSS: Remove an unused parameter.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoRPC: Improved buffer overrun checking in call_verify
Trond Myklebust [Mon, 23 Aug 2004 14:08:34 +0000 (10:08 -0400)]
RPC: Improved buffer overrun checking in call_verify

Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoNFSv4: Fix the symlink overflow bug.
Trond Myklebust [Mon, 23 Aug 2004 14:07:46 +0000 (10:07 -0400)]
NFSv4: Fix the symlink overflow bug.

Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoNFSv4: Optimizing away the case of negative dentries in
Trond Myklebust [Mon, 23 Aug 2004 14:06:32 +0000 (10:06 -0400)]
NFSv4: Optimizing away the case of negative dentries in
   nfs_open_revalidate() avoids several atomicity problems.

Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoNFSv3/v4: be more efficient when doing ACCESS RPC calls. Always ask
Trond Myklebust [Mon, 23 Aug 2004 14:05:01 +0000 (10:05 -0400)]
NFSv3/v4: be more efficient when doing ACCESS RPC calls. Always ask
   for the full set of permissions.

Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoRPC: Add missing variable initialization in rpc_clone_client().
Trond Myklebust [Mon, 23 Aug 2004 14:03:52 +0000 (10:03 -0400)]
RPC: Add missing variable initialization in rpc_clone_client().

Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoNFSv4: ask the server to send us more readdir records per RPC call.
Trond Myklebust [Mon, 23 Aug 2004 14:03:14 +0000 (10:03 -0400)]
NFSv4: ask the server to send us more readdir records per RPC call.
   Currently we are wasting considerable amounts of space in the page
   cache.

NFSv4: fix buffer overrun bugs that were being hidden by the above.

Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoRPC: Reduce stack utilization for all synchronous NFS operations by
Trond Myklebust [Mon, 23 Aug 2004 14:01:57 +0000 (10:01 -0400)]
RPC: Reduce stack utilization for all synchronous NFS operations by
   using a dynamically allocated rpc_task structure instead of
   allocating one on the stack.  This reduces stack utilization by
   over 200 bytes for all synchronous NFS operations.

Signed-off-by: Chuck Lever <cel@netapp.com>
Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoNLM: Fix a bug which causes a newly granted lock to be
Trond Myklebust [Mon, 23 Aug 2004 14:00:36 +0000 (10:00 -0400)]
NLM: Fix a bug which causes a newly granted lock to be
   immediately unlocked on the server side if blocking
   has occurred.

Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
22 years agoMerge bk://linux-dj.bkbits.net/agpgart
Linus Torvalds [Mon, 23 Aug 2004 11:12:51 +0000 (04:12 -0700)]
Merge bk://linux-dj.bkbits.net/agpgart
into ppc970.osdl.org:/home/torvalds/v2.6/linux

22 years agoUse inline function instead of macro.
Linus Torvalds [Mon, 23 Aug 2004 11:00:53 +0000 (04:00 -0700)]
Use inline function instead of macro.

This means we won't get any warnings about unused
variables - they _are_ used in some configurations.

22 years agoRemove pointless cast-as-lvalue usage from modedb.c
Linus Torvalds [Mon, 23 Aug 2004 10:59:22 +0000 (03:59 -0700)]
Remove pointless cast-as-lvalue usage from modedb.c

It's evil, people. Don't use that particular gcc extension.
I've yet to meet anybody who could read the resulting code
and tell me what the heck it does.

22 years agoFix up 0/NULL confusion
Linus Torvalds [Mon, 23 Aug 2004 10:58:09 +0000 (03:58 -0700)]
Fix up 0/NULL confusion

22 years agosparse: don't use signed single-bit bitfields.
Linus Torvalds [Mon, 23 Aug 2004 10:57:08 +0000 (03:57 -0700)]
sparse: don't use signed single-bit bitfields.

K&R used to make bitfields unsigned. That hasn't been
true for a long long time..

22 years agoDon't use signed one-bit bitfields.
Linus Torvalds [Mon, 23 Aug 2004 10:10:29 +0000 (03:10 -0700)]
Don't use signed one-bit bitfields.

We assign 0 and 1 to it, but since it's signed, that's
actually already overflowing the poor thing. So make
it unsigned, which is what it really was supposed to be
in the first place.

22 years agoFix i2c-keywest compile
Linus Torvalds [Mon, 23 Aug 2004 10:08:37 +0000 (03:08 -0700)]
Fix i2c-keywest compile

Declare probe _before_ using it. Duh.

22 years agoMerge bk://bk.arm.linux.org.uk/linux-2.6-mmc
Linus Torvalds [Mon, 23 Aug 2004 08:41:23 +0000 (01:41 -0700)]
Merge bk://bk.arm.linux.org.uk/linux-2.6-mmc
into ppc970.osdl.org:/home/torvalds/v2.6/linux

Manual merge of arch/arm/Kconfig conflicts

22 years agoMerge bk://kernel.bkbits.net/davem/sparc-2.6
Linus Torvalds [Mon, 23 Aug 2004 08:08:25 +0000 (01:08 -0700)]
Merge bk://kernel.bkbits.net/davem/sparc-2.6
into ppc970.osdl.org:/home/torvalds/v2.6/linux

22 years agoMerge davem@nuts.davemloft.net:/disk1/BK/sparc-2.6
David S. Miller [Mon, 23 Aug 2004 14:56:17 +0000 (07:56 -0700)]
Merge davem@nuts.davemloft.net:/disk1/BK/sparc-2.6
into kernel.bkbits.net:/home/davem/sparc-2.6

22 years agoMerge davem@nuts.davemloft.net:/disk1/BK/sparc-2.6
David S. Miller [Mon, 23 Aug 2004 14:51:41 +0000 (07:51 -0700)]
Merge davem@nuts.davemloft.net:/disk1/BK/sparc-2.6
into kernel.bkbits.net:/home/davem/sparc-2.6

22 years ago[SPARC64]: Update defconfig.
David S. Miller [Mon, 23 Aug 2004 07:41:35 +0000 (00:41 -0700)]
[SPARC64]: Update defconfig.

22 years ago[SPARC64]: Durrrr, missed signal handling fix from 2.4.x
David S. Miller [Mon, 23 Aug 2004 07:37:11 +0000 (00:37 -0700)]
[SPARC64]: Durrrr, missed signal handling fix from 2.4.x

Passing sigcontext info in UREG_I2, as needed.
I only spotted this because I was diffing 2.4.x
and 2.6.x sparc64 code.

Signed-off-by: David S. Miller <davem@redhat.com>
22 years agoMerge bk://linux-ntfs.bkbits.net/ntfs-2.6
Linus Torvalds [Mon, 23 Aug 2004 07:37:07 +0000 (00:37 -0700)]
Merge bk://linux-ntfs.bkbits.net/ntfs-2.6
into ppc970.osdl.org:/home/torvalds/v2.6/linux

22 years agoMerge cantab.net:/home/src/bklinux-2.6
Anton Altaparmakov [Mon, 23 Aug 2004 11:57:35 +0000 (12:57 +0100)]
Merge cantab.net:/home/src/bklinux-2.6
into cantab.net:/home/src/ntfs-2.6

22 years ago[SPARC64]: Implement little-endian bitops using normal ones.
David S. Miller [Mon, 23 Aug 2004 07:36:20 +0000 (00:36 -0700)]
[SPARC64]: Implement little-endian bitops using normal ones.

Just like s390 and ppc64.

Signed-off-by: David S. Miller <davem@redhat.com>
22 years ago[SPARC64]: Kill bogus __strlen symbol and strncmp inline cruft.
David S. Miller [Mon, 23 Aug 2004 07:35:39 +0000 (00:35 -0700)]
[SPARC64]: Kill bogus __strlen symbol and strncmp inline cruft.

Signed-off-by: David S. Miller <davem@redhat.com>
22 years ago[SPARC64]: Fix bugs in new U1memcpy code.
David S. Miller [Mon, 23 Aug 2004 07:34:58 +0000 (00:34 -0700)]
[SPARC64]: Fix bugs in new U1memcpy code.

- U1copy_from_user needs PREAMBLE since it uses
  explicit ASI_BLK_AIUS references.
- Need to use EX_RETVAL() in U1memcpy.S
- U1memcpy.S can load one 64-bit word too
  many, passing the source buffer boundary
  and thus potentially causing exceptions.

Signed-off-by: David S. Miller <davem@redhat.com>
22 years ago[SPARC64]: Revamped memcpy infrastructure.
David S. Miller [Mon, 23 Aug 2004 07:33:47 +0000 (00:33 -0700)]
[SPARC64]: Revamped memcpy infrastructure.

- Make it easier to maintain the Ultra-I vs. Ultra-III
  memcpy implementations.  Before you had to maintain
  3 different entire copies of the routines.
- Kill %asi register writing Ultra-I single memcpy loop
  for both user and kernel.  Was not worth it.
- Simplify exception detection and handling enormously.

Signed-off-by: David S. Miller <davem@redhat.com>
22 years agoMerge bk://kernel.bkbits.net/davem/net-2.6
Linus Torvalds [Mon, 23 Aug 2004 07:29:47 +0000 (00:29 -0700)]
Merge bk://kernel.bkbits.net/davem/net-2.6
into ppc970.osdl.org:/home/torvalds/v2.6/linux

22 years ago[SPARC64]: Fix PCI IOMMU invalid iopte handling.
David S. Miller [Mon, 23 Aug 2004 07:28:39 +0000 (00:28 -0700)]
[SPARC64]: Fix PCI IOMMU invalid iopte handling.

Instead of marking them as invalid, point them
at a dummy page.  This handles buggy third-party
bridges that erroneously prefetch sometimes.

Signed-off-by: David S. Miller <davem@redhat.com>
22 years agoMerge bk://kernel.bkbits.net/gregkh/linux/usb-2.6
Linus Torvalds [Mon, 23 Aug 2004 07:24:17 +0000 (00:24 -0700)]
Merge bk://kernel.bkbits.net/gregkh/linux/usb-2.6
into ppc970.osdl.org:/home/torvalds/v2.6/linux

22 years agoMerge bk://kernel.bkbits.net/gregkh/linux/pci-2.6
Linus Torvalds [Mon, 23 Aug 2004 07:22:41 +0000 (00:22 -0700)]
Merge bk://kernel.bkbits.net/gregkh/linux/pci-2.6
into ppc970.osdl.org:/home/torvalds/v2.6/linux

Manual merge of kernel/params.c clashes.

22 years ago[PATCH] Fix posix file locking (9/9)
Trond Myklebust [Mon, 23 Aug 2004 07:14:37 +0000 (00:14 -0700)]
[PATCH] Fix posix file locking (9/9)

NFSv2/v3: Fix up a race in the case where the user presses ^C while a
   process is in the middle of setting up a posix lock. In case the
   server registered our lock, we need to make sure that it gets
   cleaned up during the resulting file close().

Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>