Andrew Morton [Mon, 19 Jan 2004 02:37:37 +0000 (18:37 -0800)]
[PATCH] selinux: add netif controls
From: James Morris <jmorris@redhat.com>
This patch adds netif access controls for SELinux, which allows network
traffic to be controlled on the basis of associated network interface.
Similar functionality was present in earlier SELinux implementations; this
is a rework within the constraints of the LSM hooks present in the mainline
kernel.
Andrew Morton [Mon, 19 Jan 2004 02:37:28 +0000 (18:37 -0800)]
[PATCH] selinux: Add resource limit control
From: James Morris <jmorris@redhat.com>
This patch adds controls to the SELinux module over the setting and
inheritance of resource limits. With these controls, the ability to set
hard limits can be limited to specific processes such as login, and when an
untrusted process invokes a more trusted program, soft limits can be reset,
thereby avoiding failures in the trusted program due to malicious setting
of the soft limit by the untrusted process. Roland McGrath provided input
and feedback on the patch, which was implemented by Stephen Smalley
<sds@epoch.ncsc.mil>.
Andrew Morton [Mon, 19 Jan 2004 02:37:18 +0000 (18:37 -0800)]
[PATCH] trident: use pr_debug instead of home-brewed TRDBG
From: Muli Ben-Yehuda <mulix@mulix.org>
Yet another sound/oss/trident cleanup patch. This one replace the TRDBG
debugging macro with the standard pr_debug. Patch is from Eugene Teo
<eugene.teo@eugeneteo.net>, slightly modified by me to apply against
2.6.0-rc1-mm1 with the other cleanup patches applied.
Andrew Morton [Mon, 19 Jan 2004 02:37:05 +0000 (18:37 -0800)]
[PATCH] trident OSS sound driver fixes
From: Muli Ben-Yehuda <mulix@mulix.org>
- switch lock_set_fmt() and unlock_set_fmt() from macros to inline
functions. Macros that call return() are EVIL.
- simplify lock_set_fmt() and implement it via test_and_set_bit() rather
than a spinlock protecting an int.
- fix a bug wherein we would do an up() on a semaphore that hasn't been
down()ed if a signal happened after timeout in trident_write().
- fix a bug where we would not release the open_sem on OOM.
- make the arguments for prog_dmabuf clearer (int -> enum), and add two
wrapper functions around it, one for record and one for playback.
- fix a bug where we would call VALIDATE_STATE after lock_kernel(). Since
VALIDATE_STATE does 'return' if validation fails, bad things can happen.
Thanks to Dawson Engler <engler@stanford.edu> and the Stanford checker for
spotting.
- remove the calls to lock_kernel() from trident_release() and
trident_mmap(). trident_release() appears to be covered by the open_sem,
and trident_mmap() is covered by state->sem.
Andrew Morton [Mon, 19 Jan 2004 02:31:13 +0000 (18:31 -0800)]
[PATCH] Missing end tags in kernel-locking kerneldoc
From: Rusty Russell <rusty@rustcorp.com.au>
From: Adam Kropelin <akropel1@rochester.rr.com>
The new-and-improved kernel-locking kerneldoc seems to be missing some end
tags which causes 'make foodocs' to die. I'm not sure if it's because of
my not-bleeding-edge docbook utils or if it's a genuine error. Since most
ending tags are present I tend to think it's an error.
Andrew Morton [Mon, 19 Jan 2004 02:31:04 +0000 (18:31 -0800)]
[PATCH] Change cryptic description and help for CONFIG_PDC202XX_FORCE
From: Stephan Maciej <stephanm@muc.de>
The description and the help text for this option has bothered me long
enough... I hope the new strings are more self-explanatory than the ones
before.
Andrew Morton [Mon, 19 Jan 2004 02:30:55 +0000 (18:30 -0800)]
[PATCH] Use for_each_cpu() Where It's Meant To Be
From: Rusty Russell <rusty@rustcorp.com.au>
Some places use cpu_online() where they should be using cpu_possible, most
commonly for tallying statistics. This makes no difference without hotplug
CPU.
Use the for_each_cpu() macro in those places, providing good examples (and
making the external hotplug CPU patch smaller).
Some places use cpu_online() where they should be using cpu_possible, most
commonly for tallying statistics. This makes no difference without hotplug
CPU.
Use the for_each_cpu() macro in those places, providing good examples (and
making the external hotplug CPU patch smaller).
Andrew Morton [Mon, 19 Jan 2004 02:30:46 +0000 (18:30 -0800)]
[PATCH] Make for_each_cpu() Iterator More Friendly
From: Rusty Russell <rusty@rustcorp.com.au>
Anton: breaks PPC64, as it needs cpu_possible_mask, but fix is already
in Ameslab tree.
The for_each_cpu() and for_each_online_cpu() iterators take a mask, and
noone uses them that way (except for arch/i386/mach-voyager, which uses
for_each_cpu(cpu_online_mask). Make them more usable iterators, by
dropping the "mask" arg.
This requires that archs provide a cpu_possible_mask: most do, but PPC64
doesn't, so it is broken by this patch. The other archs use a #define to
define it in asm/smp.h.
Most places doing loops over cpus testing for cpu_online() should use
for_each_cpu: it is synonymous at the moment, but with the CPU hotplug
patch the difference becomes important.
Andrew Morton [Mon, 19 Jan 2004 02:30:03 +0000 (18:30 -0800)]
[PATCH] O21 for interactivity 2.6.0
From: Con Kolivas <kernel@kolivas.org>
A non-critical corner case has come up for interactivity that I believe needs
to be addressed. It is only extensive testing and examination that revealed
this, as this interactivity work is in maintenance mode.
Description:
It is possible for a highly interactive task (like X) to cause large
latencies in tasks that are less 'niced' (eg negative nice number
compared to X which should normally run at nice 0) if they are fully
cpu bound. This occurs due to expiration of the cpu bound tasks.
This patch addresses this by not reinserting interactive tasks into
the active array if there is a better static priority task running but
has been placed on the expired array. This causes a substantial
reduction in the maximum scheduling latency a task with a less nice
value can have.
This also has the positive side effect of maintaining better cpu%
proportions for tasks of different nice levels.
Testers will only be able to discern a difference with highly cpu bound tasks
of normal scheduling policy at different nice levels. Test cases are doing
something cpu intensive relatively -niced in the presence of an interactive
load (eg capturing and encoding video at nice -10 while using X nice 0, or
something nice 0 vs nice +10) and so on. Because of the crossover of 10
'nice' levels of dynamic priorities between interactive and cpu bound tasks
this patch will have a more noticable effect as the nice difference is
greater, especially 11 or more.
Andrew Morton [Mon, 19 Jan 2004 02:29:54 +0000 (18:29 -0800)]
[PATCH] kill_fasync speedup
From: Manfred Spraul <manfred@colorfullife.com>
fasync_helper and kill_fasync are helpers for managing F_SETFL fcntl
calls that change FASYNC and sending the necessary signals. The locking
uses one global rwlock that's acquired for read in all kill_fasync
calls, and that causes cache line trashing. This is not necessary: if
the fasync list is empty, then there is no need to acquire the rwlock.
Tests with reaim on a 4-way pIII on STP showed an 80% reduction of the
time within kill_fasync.
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.