Andrew Morton [Mon, 19 Jan 2004 02:29:37 +0000 (18:29 -0800)]
[PATCH] fix for tridentfb.c usage on CRTs.
From: Bram Stolk <bram@sara.nl>
All modes that exceed the native resolution of a flatpanel are discarded.
However, a CRT has native resolution set to 0, and therefore, tridentfb.c
cannot be used with a CRT.
Andrew Morton [Mon, 19 Jan 2004 02:29:28 +0000 (18:29 -0800)]
[PATCH] final CardServices() removal patches
From: Andres Salomon <dilinger@voxel.net>
Remove calls to CardServices(); final.
This removes the CardServices() calls the rest of the tree, as well as
CardServices itself from cs.c and cs.h. My previous patches, along w/
Arjan's patch for ide-cs.c and Russell's patch for serial_cs.c should
remove all traces of it. I've attached a gzipped tarball to hopefully
make things easier.
Andrew Morton [Mon, 19 Jan 2004 02:28:35 +0000 (18:28 -0800)]
[PATCH] CardServices() removal from pcmcia net drivers
From: Andres Salomon <dilinger@voxel.net>
Replace the various CardServices() calls w/ their pcmcia_* function. The
pcmcia functions fit better with kernel conventions, and don't have the
nasty var args stuff. These patches also fix a few places where the args
supplied to CardServices were either not supplied, or dealt with in
non-obvious ways.
Andrew Morton [Mon, 19 Jan 2004 02:28:26 +0000 (18:28 -0800)]
[PATCH] make try_to_free_pages walk zonelist
From: Rik van Riel <riel@surriel.com>
In 2.6.0 both __alloc_pages() and the corresponding wakeup_kswapd()s walk
all zones in the zone list, possibly spanning multiple nodes in a low numa
factor system like AMD64.
Also, if lower_zone_protection is set in /proc, then it may be possible
that kswapd never cleans out data in zones further down the zonelist and
try_to_free_pages needs to do that.
However, in 2.6.0 try_to_free_pages() only frees pages in the pgdat the
first zone in the zonelist belongs to.
This is probably the wrong behaviour, since both the page allocator and the
kswapd wakeup free things from all zones on the zonelist. The following
patch makes try_to_free_pages() consistent with the allocator, by passing
the zonelist as an argument and freeing pages from all zones in the list.
I do not have any numa systems myself, so I have only tested it on my own
little smp box. Testing on NUMA systems may be useful, though the patch
really only should have an impact in those rare cases where kswapd can't
keep up with allocations...
As a side effect, the patch shrinks the kernel by 2 lines and replaces some
subtle magic by a simpler array walk.
Andrew Morton [Mon, 19 Jan 2004 02:28:17 +0000 (18:28 -0800)]
[PATCH] Make ppp_async callable from hard interrupt
From: Paul Mackerras <paulus@samba.org>
Since there are serial drivers (particularly the USB serial driver) that
call the line discipline receive_buf and write_wakeup routines at hard
interrupt level, I have changed the ppp_async code to cope with that. It
now uses a tasklet so that it calls the generic PPP code at soft interrupt
level even if its receive_buf and write_wakeup entries are called at hard
interrupt level.
This patch has been lightly tested here with a keyspan USB serial adaptor
and also with the built-in modem on my tibook, which uses the pmac_zilog
driver (which hooks into the drivers/serial infrastructure).
Andrew Morton [Mon, 19 Jan 2004 02:27:51 +0000 (18:27 -0800)]
[PATCH] ATAPI MO drive support
From: Pascal Schmidt <der.eremit@email.de>
The below patch is needed to support ATAPI MO drives in 2.6. ide-scsi
doesn't work any more for this, so ide-cd has to take over the job of
running the MO drive. Without this, there is no way to write to an
ATAPI MO drive.
This patch has been discussed with Linus and Jens already around test9
time and it was agreed this is the right way to go about it. I have
rediffed it against 2.6.0. Compiles, runs, works just fine for me.
Andrew Morton [Mon, 19 Jan 2004 02:27:43 +0000 (18:27 -0800)]
[PATCH] Fix oops when modifying /sys/block/dm-0/queue/nr_requests
From: Mike Christie <michaelc@cs.wisc.edu>
DM, MD, rd and loop use blk_alloc_queue and blk_queue_make_request to
initialize their queue, because they only use the make_request_fn. The
attached patch prevents the queue from being registered if only
blk_alloc_queue was called.
Andrew Morton [Mon, 19 Jan 2004 02:27:25 +0000 (18:27 -0800)]
[PATCH] PPC32: Minor cleanups to IBM4xx and MPC82xx headers.
From: Tom Rini <trini@kernel.crashing.org>
PPC32: Minor cleanups to IBM4xx and MPC82xx headers.
- Make sure that if <asm/ibm4xx.h> is included on !40x && !440, there is no real effect.
- Delete arch/ppc/platforms/mpc82xx.h
- Make sure that if CONFIG_8260 isn't set, there is no effect in <asm/mpc8260.h>.
- Add a __ASSEMBLY__ test around the extern for __res in <asm/mpc8260.h>.
Andrew Morton [Mon, 19 Jan 2004 02:26:51 +0000 (18:26 -0800)]
[PATCH] AS tuning
From: Nick Piggin <piggin@cyberone.com.au>
The big regression from deadline is tiobench random reads with TCQ disks,
however it is present in -linus as well, and would have been since day 1 of
AS, but nobody has complained too loudly.
This problem is probably a distilation of what causes lower database
throughput, because I have only ever seen it with TCQ drives, and pgbench
and OraSim are actually getting higher throughput here with a non TCQ
drive.
That is not to say that TCQ is useless, it obviously can provide a very
real and significant boost. What I might do in the (near) future is get AS
to detect TCQ and turn itself off indefinitely unless/until the a sysfs
flag is set, and default that flag to off.
This patch changes the AS tunables a bit to be more on par with deadline. It
lowers the threshold for random reading processes to be considered unsuitable
for anticipation, and it slightly rearranges and comments the "cooperative
seek distance" logic.
With this patch, AS is now very competitive with deadline on the single IDE
and SCSI (non TCQ) disks here. In fact, I don't have any regressions
anywhere. Even when TCQ is on, although throughput can be lower, AS still
has benefits because of its much better read vs write latency and general
tendancy to keep number of outstanding tags smaller.
Andrew Morton [Mon, 19 Jan 2004 02:26:43 +0000 (18:26 -0800)]
[PATCH] AS: thinktime improvement
From: Nick Piggin <piggin@cyberone.com.au>
Sometimes a processes thinktime shouldn't be measured on how soon it
submits its next request, but how soon any close request is submitted.
Some processes, such as those in make -j, find | xargs blah, etc. Should be
waited upon even if they never submit another request, because they work with
cooperating or child processes. This helps to take that into account.
Andrew Morton [Mon, 19 Jan 2004 02:26:34 +0000 (18:26 -0800)]
[PATCH] AS: new process estimation
From: Nick Piggin <piggin@cyberone.com.au>
This one gathers better statistics about the new process problem. It
improves estimation for initial process IO. That is, better calculations
for whether it will be worth waiting after a process submits its first
read.
This is done with a per queue average thinktime and seek time for a second
read submitted from a process.
When combined with 3/3, numbers are around the same as mm1 for most long
lived tasks, but much better for things like the top 4 benchmarks.
Probably wants rwhron and the OSDL database guys to give it some testing.
test 2.6.0-test9-mm1 2.6.0-test9-mm1-np
Cat kernel source during seq read 0:26.89 0:24.75
Cat kernel source during seq write 9:17.80 0:23.48
ls -lr kernel source during seq read 0:11.03 0:14.68
ls -lr kernel source during seq write 0:49.95 0:08.06
Andrew Morton [Mon, 19 Jan 2004 02:26:27 +0000 (18:26 -0800)]
[PATCH] AS fixes
From: Nick Piggin <piggin@cyberone.com.au>
This fixes all known bugs with as in mm2. That constitutes small fixes for
2 WARNs getting triggered. It looks like Prakash's lost interrupt problem
was due to as spewing bazillions of warnings, and he must have had his
kernel.printk configured not to show them or something. I have to just get
final confirmation from him that this final cut of the patch fixes his
problem too.
Andrew Morton [Mon, 19 Jan 2004 02:26:10 +0000 (18:26 -0800)]
[PATCH] AS: request poisoning
From: Nick Piggin <piggin@cyberone.com.au>
I have tested this on my disks and cdroms, but they don't represent
what all drivers might do. I have asked Jarkko Lehti with his dvd writing
problem to try it...
Andrew Morton [Mon, 19 Jan 2004 02:26:01 +0000 (18:26 -0800)]
[PATCH] Fix IO scheduler regression
From: Nick Piggin <piggin@cyberone.com.au>
Randy has just reported that this fixes up his regression. Its now as good
as test5 in his tests with this patch. He is also seeing quite large
increases (above test5) when IO scheduler barriers are disabled (this patch
doesn't do that). Perhaps something is using them too liberally.
Anyway, this reverts AS back to defaulting to not anticipate IO for a
program that submits its first request (this really hurts find | xargs grep
sort of things). I am working on something to fix this up properly. That
can go in after 2.6.0 anyway.
Andrew Morton [Mon, 19 Jan 2004 02:25:35 +0000 (18:25 -0800)]
[PATCH] ppc64: early BSS clear, from Ben Herrenschmidt
From: Anton Blanchard <anton@samba.org>
Gone are the days of initialising stuff we touch in prom_init just
to keep it out of the BSS. There are a few things the hypervisor
writes to in the iseries case, hard code them into the data segment
and add a comment.
Remove the -fno-zero-initialized-in-bss hack, it was required when
gcc got smart and put zero initialised stuff into the BSS
Andrew Morton [Mon, 19 Jan 2004 02:25:09 +0000 (18:25 -0800)]
[PATCH] ppc64: cp_compat_stat should copy nanosecond fields
From: Anton Blanchard <anton@samba.org>
Looks like glibc is using stat in some places, so we should modify
it to copy the nanosecond fields. Also speed up stat by only checking
the region once instead of each put_user call.
Andrew Morton [Mon, 19 Jan 2004 02:24:52 +0000 (18:24 -0800)]
[PATCH] ppc64: setup_cpu must be called on boot cpu
From: Anton Blanchard <anton@samba.org>
setup_cpu was being called for the boot cpu after all other cpus had been
spun up. The init thread can sleep during secondary cpu spinup (eg migration
thread init) and sometimes the init thread would switch to another cpu at
this time. The end result was setup_cpu was called twice on one cpu and
never on the boot cpu.
The original fix called setup_cpu on the boot cpu before all others but that
wont work for G5, so we now use cpu affinity calls to enforce it.
Andrew Morton [Mon, 19 Jan 2004 02:24:43 +0000 (18:24 -0800)]
[PATCH] ppc64: vmlinux.lds fixes, from Alan Modra
From: Anton Blanchard <anton@samba.org>
- Remove a bunch of unnecessary sections
- Always declare section labels inside the section (bug found on ppc32)
- Rearrange sections to waste less space
Andrew Morton [Mon, 19 Jan 2004 02:24:35 +0000 (18:24 -0800)]
[PATCH] ppc64: Makefile fixes
From: Anton Blanchard <anton@samba.org>
- remove old checks target, no longer used
- add -mtraceback=none, we dont use traceback tables any more
- add check for -mcpu=power4, older toolchains dont support this option
Andrew Morton [Mon, 19 Jan 2004 02:23:35 +0000 (18:23 -0800)]
[PATCH] ppc64: __hash_page rewrite, from Ben Herrenschmidt
From: Anton Blanchard <anton@samba.org>
Rewrite __hash_page function in assembly in such a way we don't need
the page table lock any more. We now rely on a BUSY bit in the linux
PTE on which we spin on when doing an update of the PTE
Andrew Morton [Mon, 19 Jan 2004 02:22:27 +0000 (18:22 -0800)]
[PATCH] ppc64: fix POWER3 boot
From: Anton Blanchard <anton@samba.org>
Binutils uses the recent mtcrf optimisation when compiling for a POWER4
target. Unfortunately this causes a program check on POWER3. We required
compiling for POWER4 so the tlbiel instruction would be recognised.
For the moment we hardwire the tlbiel instruction, longer term we can use the
binutils -many flag.
Andrew Morton [Mon, 19 Jan 2004 02:19:35 +0000 (18:19 -0800)]
[PATCH] ppc64: preliminary iseries support, from Paul Mackerras
From: Anton Blanchard <anton@samba.org>
Preliminary iSeries support. Still a bit hackish in parts but it does
compile. The viodasd driver is almost completely untested so don't trust it
with your data.
Andrew Morton [Mon, 19 Jan 2004 02:19:16 +0000 (18:19 -0800)]
[PATCH] ppc64: NVRAM error logging/buffering patch, from Jake Moilanen
From: Anton Blanchard <anton@samba.org>
This is a port of the nvram buffering/error logging code from 2.4 to 2.6. It
includes moving /proc/rtas to /proc/ppc64/rtas and making /proc/rtas a
symlink to /proc/ppc64/rtas. It also splits up the /dev/nvram device
read/write functions from the basic nvram access functions, and adds ppc_md
fields for the nvram access functions.
Andrew Morton [Mon, 19 Jan 2004 02:17:48 +0000 (18:17 -0800)]
[PATCH] ppc64: shared processor support, from Dave Engebretsen
From: Anton Blanchard <anton@samba.org>
Initial round of code to add shared processor support into 2.6. This adds
h_call interfaces, paca/VPA fields, and vpa register. Add adds new idle loop
code.
Andrew Morton [Mon, 19 Jan 2004 02:17:03 +0000 (18:17 -0800)]
[PATCH] ppc64: fix sched_clock, from Paul Mackerras:
From: Anton Blanchard <anton@samba.org>
Currently the sched_clock implementation for PPC64 is bogus. It just reads
the timebase register, which counts at some fixed rate, typically around
100MHz. This patch adds code to calculate a suitable multiplier from the
timebase frequency, and use that in sched_clock().
Andrew Morton [Mon, 19 Jan 2004 02:13:20 +0000 (18:13 -0800)]
[PATCH] ppc64: Open Firmware device tree manipulation support, from Nathan Lynch
From: Anton Blanchard <anton@samba.org>
Implementation of /proc/ppc64/ofdt, for manipulation of Open Firmware
device tree (/proc/device-tree). Supports addition and removal of
OF device nodes.
Andrew Morton [Mon, 19 Jan 2004 02:11:09 +0000 (18:11 -0800)]
[PATCH] ppc64: Change to new OF device tree API, from Nathan Lynch
From: Anton Blanchard <anton@samba.org>
Attached is a patch which replaces all the uses of the old device tree API in
arch/ppc64. Patch is against 2.6.0-test5 (cset 1.1328) from ameslab bk, plus
the patch from my previous message. I've tested this on a pSeries LPAR.
Andrew Morton [Mon, 19 Jan 2004 02:10:48 +0000 (18:10 -0800)]
[PATCH] ppc64: New Open Firmware device tree API, from Nathan Lynch
From: Anton Blanchard <anton@samba.org>
This is an adaptation of the new Open Firmware device tree traversal API from
ppc32, originally written by Benjamin Herrenschmidt. This patch is against
2.6.0-test3, but should apply ok to the latest 2.5 ameslab tree.
These functions are meant to be SMP-safe alternatives to the current set of
query/traversal routines (find_devices, find_type_devices, et al).
Andrew Morton [Mon, 19 Jan 2004 02:10:29 +0000 (18:10 -0800)]
[PATCH] ppc64: support for ibm,phandle OF property, from Dave Engebretsen:
From: Anton Blanchard <anton@samba.org>
Upcoming partition firmware requires the use of the ibm,phandle property for
matching device nodes. Add a new field in device_node to contain this data.