]> git.hungrycats.org Git - linux/log
linux
22 years ago[PCMCIA] socket user operations should take pcmcia_socket
Russell King [Sun, 14 Mar 2004 20:37:39 +0000 (20:37 +0000)]
[PCMCIA] socket user operations should take pcmcia_socket

Patch from Dominik Brodowski, updated by Russell King.

The pcmcia_{suspend,resume,eject,insert}_card calls are only issued
by the userspace cardctl tool via ds.c. There's no need to verify the
caller (ds) has a valid "handle", as long as it knows the proper
struct pcmcia_socket.

22 years ago[PCMCIA] move pcmcia_report_error and cs_error
Russell King [Sun, 14 Mar 2004 20:32:22 +0000 (20:32 +0000)]
[PCMCIA] move pcmcia_report_error and cs_error

Patch from Dominik Brodowski, updated by Russell King.

cs_error and pcmcia_report_error are only used by 16-bit PCMCIA
devices, so move them to ds.c.

22 years ago[PCMCIA] move_pcmcia_bind_mtd
Russell King [Sun, 14 Mar 2004 20:27:59 +0000 (20:27 +0000)]
[PCMCIA] move_pcmcia_bind_mtd

Patch from Dominik Brodowski, updated by Russell King.

pcmcia_bind_mtd was only used by ds.c, and it is only used for 16-bit
PCMCIA devices. So, move it to ds.c.

22 years ago[PCMCIA] move_pcmcia_bind_device
Russell King [Sun, 14 Mar 2004 20:24:19 +0000 (20:24 +0000)]
[PCMCIA] move_pcmcia_bind_device

Patch from Dominik Brodowski, updated by Russell King.

pcmcia_bind_device was only used by ds.c, and it is only used for
16-bit PCMCIA devices. So, move it to ds.c.

22 years ago[PCMCIA] Rename driver services constants.
Russell King [Sun, 14 Mar 2004 20:20:33 +0000 (20:20 +0000)]
[PCMCIA] Rename driver services constants.

Driver services constants clash with similar constants defined
by Card services.  Prefix them all with DS_.

This patch started out as Dominik Brodowski's 2.6.0-test9
ds_includes_cs_internal patch, which only changed one constant
and attempted to fix PCMCIA debugging.

22 years ago[PCMCIA] Clean up socket state handling around shutdown
Russell King [Sun, 14 Mar 2004 20:17:11 +0000 (20:17 +0000)]
[PCMCIA] Clean up socket state handling around shutdown

There is no need for shutdown_socket() to touch s->state
directly - this can be all done in skt_shutdown().

22 years ago[PCMCIA] Add, fix, update PCMCIA debugging.
Russell King [Sun, 14 Mar 2004 20:12:21 +0000 (20:12 +0000)]
[PCMCIA] Add, fix, update PCMCIA debugging.

The PCMCIA core debugging assumes that "pc_debug" is a global.  If
pc_debug were to be a global, it would pollute the kernel's global
name space, potentially clashing with PCMCIA drivers and even ds.c.

We also get rid of PCMCIA using the "DEBUG" macro, which is the
standard macro to enable debugging in the kernel.  Instead, we
introduce cs_dbg() for core PCMCIA debugging, ds_dbg() for driver
services debugging, and similar macros in the socket drivers.

22 years ago[PATCH] Work around an AMD768MPX erratum
Andrew Morton [Sat, 13 Mar 2004 11:26:39 +0000 (03:26 -0800)]
[PATCH] Work around an AMD768MPX erratum

From: Andi Kleen <ak@suse.de>

This patch has been in the SuSE 2.4 kernel forever, but for some reason
never made it mainline.

It works around the infamous "only works stable when a mouse is plugged in"
problem some AMD 768MPX Dual Athlon chipsets have.  The problem happens
because the chipset can hang when PCI prefetch strides from a RAM page into
the VGA text buffer.  When a PS2 mouse is plugged in the BIOS reserves a
page before the VGA text buffer, which stops the prefetch early.

This patch always reserves this page when the chipset could be AMD768MPX.
This can be only done early in bootmem setup.  Because it's difficult to
scan the PCI bus that early it just always reserves this page when the CPU
is an Athlon.  Normally it should not make a difference because the BIOS
will have reserved that page anyways when a PS/2 mouse is plugged in.

22 years ago[PATCH] md: allow assembling of partitioned arrays at boot time.
Andrew Morton [Sat, 13 Mar 2004 11:26:28 +0000 (03:26 -0800)]
[PATCH] md: allow assembling of partitioned arrays at boot time.

From: NeilBrown <neilb@cse.unsw.edu.au>

kernel parameters:

   raid=partitionable
     will make all auto-detected md arrays partitionable

   md=d....
     will assemble an array as a partitionable array.

22 years ago[PATCH] md: use "shedule_timeout()" instead of yield()
Andrew Morton [Sat, 13 Mar 2004 11:26:18 +0000 (03:26 -0800)]
[PATCH] md: use "shedule_timeout()" instead of yield()

From: NeilBrown <neilb@cse.unsw.edu.au>

Use "shedule_timeout()" instead of yield() as it seems to wait for less
time.

22 years ago[PATCH] use wait_task_inactive() in kthread_bind()
Andrew Morton [Sat, 13 Mar 2004 11:26:09 +0000 (03:26 -0800)]
[PATCH] use wait_task_inactive() in kthread_bind()

From: Rusty Russell <rusty@rustcorp.com.au>

Make it clear that the reason we do wait_task_inactive is because
kthread_bind frobs with k->thread_info->cpu, which is only legal because
the task is definitely not running.

We can't use the normal migration thread code here, because it doesn't let
us bind to cpus which are offline yet, and also because we use this to
start the migration threads themselves.

22 years ago[PATCH] further __KERNEL_SYSCALLS__ removal
Andrew Morton [Sat, 13 Mar 2004 11:25:58 +0000 (03:25 -0800)]
[PATCH] further __KERNEL_SYSCALLS__ removal

From: Arnd Bergmann <arnd@arndb.de>

Dave Jones already removed some of the useless __KERNEL_SYSCALLS__ defines
in various files, this gets rid of almost all the others.  Replacing
execve() is nontrivial, so I left those in for now.

For all the other system calls that are currently used from inside the
kernel, calling the sys_* function directly should always have an identical
effect.

22 years ago[PATCH] Manfred's patch to distribute boot allocations across nodes
Andrew Morton [Sat, 13 Mar 2004 11:25:48 +0000 (03:25 -0800)]
[PATCH] Manfred's patch to distribute boot allocations across nodes

From: Anton Blanchard <anton@samba.org>

Distribute boot time memory allocations across all nodes, from Manfred
Spraul.

We want to spread memory across nodes to avoid all allocations ending
up on node 0.

Spreading boot time allocations around also helps us to avoid node 0
becoming the hot node.

I took it for a spin:

buddyinfo before:
Node 7, 0    2    1    1    0    2    1    2    1    2    1    2    741
Node 6, 0    0    0    2    0    2    1    1    2    2    2    2   1002
Node 5, 0    0    0    2    0    2    1    2    1    2    2    2   2006
Node 4, 0    0    0    2    0    2    1    2    1    2    2    2   2006
Node 3, 0    0    0    2    0    2    1    2    1    2    2    2   2006
Node 2, 0    0    0    2    0    2    1    2    1    2    2    2   2006
Node 1, 0    0    0    2    0    2    1    1    2    2    2    2   1002
Node 0, 0    0   38    7    0    1    1    1    0    0    0    0   1998

buddyinfo after:
Node 7, 0    1    0    1    1    1    1    0    0    0    1    2    738
Node 6, 0    1    0    1    1    1    0    1    0    0    2    2   1002
Node 5, 0    0    0    1    1    1    1    0    0    0    2    2   2006
Node 4, 0    1    0    1    0    1    1    0    0    0    2    2   2006
Node 3, 0    0    0    1    0    1    1    0    0    0    2    2   2005
Node 2, 0    1    0    0    0    0    0    1    0    0    2    2   2006
Node 1, 0    2    1    1    0    1    1    1    0    0    2    2   1002
Node 0, 0   20   45    8    3    0    1    1    1    1    0    1   2004

Change in free memory due to patch:

Node 7 -54.08 MB
Node 6  -6.33 MB
Node 5  -6.09 MB
Node 4  -6.14 MB
Node 3 -22.15 MB
Node 2  -6.05 MB
Node 1  -6.12 MB
Node 0 107.35 MB

As you can see we gained over 100MB on node 0.

22 years ago[PATCH] Use 64-bit counters for scheduler stats
Andrew Morton [Sat, 13 Mar 2004 11:25:38 +0000 (03:25 -0800)]
[PATCH] Use 64-bit counters for scheduler stats

From: Kingsley Cheung <kingsley@aurema.com>

A number of scheduler counters wrap around after 47 days.  The context-switch
counter can wrap around after considerably less time.

Convert them to 64-bit values.

22 years ago[PATCH] ppc64: fix NUMA compile with large cpumasks
Andrew Morton [Sat, 13 Mar 2004 11:25:29 +0000 (03:25 -0800)]
[PATCH] ppc64: fix NUMA compile with large cpumasks

From: Anton Blanchard <anton@samba.org>

The recent NUMA changes fail to compile with large cpumasks, we need to use
a temporary to get around the type checking.

22 years ago[WATCHDOG] v2.6.4 notifier_block-patches
Wim Van Sebroeck [Sun, 14 Mar 2004 00:49:53 +0000 (01:49 +0100)]
[WATCHDOG] v2.6.4 notifier_block-patches

Remove unnecessary initialization in notifier_block

22 years agoWATCHDOG] v2.6.4 wdt977-v0.03-patch
Wim Van Sebroeck [Sun, 14 Mar 2004 00:38:29 +0000 (01:38 +0100)]
WATCHDOG] v2.6.4 wdt977-v0.03-patch

Version 0.03 of wdt977.c - Changes that were made are:
* Extract the stop code in a seperate function (wdt977_stop)
* Extract the start code in a seperate function (wdt977_start)
* Rename kick_wdog to wdt977_keepalive for consistency
* Extract the watchdog's status code to a seperate function (wdt977_get_status)
* Change the way we deal with the watchdog timeout:
   Up till now we used timeoutM (in minutes) as the correct value and then
   calculated timeout as being timeoutM*60 or *timeoutM*120 (depending on
   wether or not we have the netwinder hardware bug).

   From now on timeout is the correct value and we calculate timeoutM out
   of it. Because of this we start with checking wether or not we have a
   correct timeout value (if not we reset it to the default value) and we
   automatically calculate timeoutM. Each time we change timeout with a
   correct timeout value, we recalculate timeoutM.
* Extended ioctl code with WDIOC_SETOPTIONS and updated the watchdog_info structure
* Added notifier support

Code has been tested by Woody

22 years ago[WATCHDOG] v2.6.4 pcwd_pci-v1.00_20040313-patch
Wim Van Sebroeck [Sun, 14 Mar 2004 00:31:12 +0000 (01:31 +0100)]
[WATCHDOG] v2.6.4 pcwd_pci-v1.00_20040313-patch

Two small fixes:
* Make cards_found a global variable so that if we remove the
  pci device we can count down.
* If we can't find a correct I/O address for the card, then we
should disable the card again.

22 years agoMerge bk://gkernel.bkbits.net/net-drivers-2.5
Linus Torvalds [Sat, 13 Mar 2004 00:21:58 +0000 (16:21 -0800)]
Merge bk://gkernel.bkbits.net/net-drivers-2.5
into ppc970.osdl.org:/home/torvalds/v2.5/linux

22 years agoMerge redhat.com:/spare/repo/linux-2.5
Jeff Garzik [Sat, 13 Mar 2004 04:11:14 +0000 (23:11 -0500)]
Merge redhat.com:/spare/repo/linux-2.5
into redhat.com:/spare/repo/net-drivers-2.5

22 years ago[blk carmel] fix bug, minor cleanups
Jeff Garzik [Fri, 12 Mar 2004 20:16:33 +0000 (15:16 -0500)]
[blk carmel] fix bug, minor cleanups

* the scan-channels message seemed to always give invalid output.
  Look at the constant, and discover we are sending another
  message entirely.  Fix the constant (CARM_MSG_IOCTL).

* s/MISC_SYNC_TIME/MISC_SET_TIME/

* list some additional messages

* bump version number

22 years ago[netdrvr e100] fix stray skb pointer
Scott Feldman [Fri, 12 Mar 2004 16:40:45 +0000 (11:40 -0500)]
[netdrvr e100] fix stray skb pointer

* Not setting cb->skb = NULL after releasing skb to OS or during
  initialization of cbs.  Reported by Deepak Saxena
  [dsaxena@plexity.net].

22 years agoMerge kernel.bkbits.net:net-drivers-2.5
Jeff Garzik [Fri, 12 Mar 2004 09:21:45 +0000 (04:21 -0500)]
Merge kernel.bkbits.net:net-drivers-2.5
into redhat.com:/spare/repo/net-drivers-2.5

22 years ago[PATCH] 8139too assertions
Rene Herman [Fri, 12 Mar 2004 08:39:03 +0000 (03:39 -0500)]
[PATCH] 8139too assertions

22 years ago[PATCH] use netdev_priv() in drivers/net/ (others)
Randy Dunlap [Fri, 12 Mar 2004 08:35:25 +0000 (03:35 -0500)]
[PATCH] use netdev_priv() in drivers/net/ (others)

22 years ago[PATCH] use netdev_priv() in net/wan drivers
Randy Dunlap [Fri, 12 Mar 2004 08:35:17 +0000 (03:35 -0500)]
[PATCH] use netdev_priv() in net/wan drivers

22 years ago[PATCH] use netdev_priv() in fusion/mptlan
Randy Dunlap [Fri, 12 Mar 2004 08:35:10 +0000 (03:35 -0500)]
[PATCH] use netdev_priv() in fusion/mptlan

22 years ago[PATCH] use netdev_priv() in tap/tun/plip/loop/skel
Randy Dunlap [Fri, 12 Mar 2004 08:35:03 +0000 (03:35 -0500)]
[PATCH] use netdev_priv() in tap/tun/plip/loop/skel

22 years ago[PATCH] use netdev_priv() in net/wireless/ drivers
Randy Dunlap [Fri, 12 Mar 2004 08:34:55 +0000 (03:34 -0500)]
[PATCH] use netdev_priv() in net/wireless/ drivers

22 years ago[PATCH] use netdev_priv() in net/tokenring/ drivers
Randy Dunlap [Fri, 12 Mar 2004 08:34:48 +0000 (03:34 -0500)]
[PATCH] use netdev_priv() in net/tokenring/ drivers

22 years ago[PATCH] use netdev_priv() in net/tulip drivers
Randy Dunlap [Fri, 12 Mar 2004 08:34:40 +0000 (03:34 -0500)]
[PATCH] use netdev_priv() in net/tulip drivers

22 years ago[PATCH] use netdev_priv() in net/pcmcia/ drivers
Randy Dunlap [Fri, 12 Mar 2004 08:34:33 +0000 (03:34 -0500)]
[PATCH] use netdev_priv() in net/pcmcia/ drivers

22 years ago[PATCH] use netdev_priv() in net/ intel drivers
Randy Dunlap [Fri, 12 Mar 2004 08:34:25 +0000 (03:34 -0500)]
[PATCH] use netdev_priv() in net/ intel drivers

22 years ago[PATCH] use netdev_priv() in net/arm drivers
Randy Dunlap [Fri, 12 Mar 2004 08:34:18 +0000 (03:34 -0500)]
[PATCH] use netdev_priv() in net/arm drivers

22 years ago[PATCH] use netdev_priv() in net/ lance drivers
Randy Dunlap [Fri, 12 Mar 2004 08:34:11 +0000 (03:34 -0500)]
[PATCH] use netdev_priv() in net/ lance drivers

22 years ago[PATCH] use netdev_priv() in 3com net drivers
Randy Dunlap [Fri, 12 Mar 2004 08:34:03 +0000 (03:34 -0500)]
[PATCH] use netdev_priv() in 3com net drivers

22 years ago[PATCH] use netdev_priv() in /hamradio/
Randy Dunlap [Fri, 12 Mar 2004 08:33:56 +0000 (03:33 -0500)]
[PATCH] use netdev_priv() in /hamradio/

22 years ago[PATCH] use netdev_priv() in appletalk & fc
Randy Dunlap [Fri, 12 Mar 2004 08:33:49 +0000 (03:33 -0500)]
[PATCH] use netdev_priv() in appletalk & fc

22 years ago[PATCH] xirc2ps ethtool fix
Arjan van de Ven [Fri, 12 Mar 2004 08:24:00 +0000 (03:24 -0500)]
[PATCH] xirc2ps ethtool fix

patch below adds bus_info for xirc2ps_cs; anaconda depends on this info to
be there.

22 years ago[PATCH] netdevice.h add netif_msg_init helper
Don Fry [Fri, 12 Mar 2004 08:23:52 +0000 (03:23 -0500)]
[PATCH] netdevice.h add netif_msg_init helper

This patch adds a helper function to initialize the debug bit mask
for use with netif_msg_*.  When the debug_value is out of range
it returns the default_msg_enable_bits.  Tested IA32.

22 years ago[PATCH] pcnet32 correct names for changes
Don Fry [Fri, 12 Mar 2004 08:23:45 +0000 (03:23 -0500)]
[PATCH] pcnet32 correct names for changes

This patch corrects the names of contributors of changes to the pcnet32
driver.

22 years ago[PATCH] smctr: fix init section usage
Randy Dunlap [Fri, 12 Mar 2004 08:23:38 +0000 (03:23 -0500)]
[PATCH] smctr: fix init section usage

smctr_chk_mca() can be __init.

22 years ago[PATCH] eepro init section usage
Randy Dunlap [Fri, 12 Mar 2004 08:23:30 +0000 (03:23 -0500)]
[PATCH] eepro init section usage

eepro_print_info() can be __init.

22 years ago[PATCH] forcedeth update
Manfred Spraul [Fri, 12 Mar 2004 08:23:23 +0000 (03:23 -0500)]
[PATCH] forcedeth update

Andrew de Quincey added wol support to forcedeth.
The patch also renames additional function, to help analyzing backtraces.

22 years ago[PATCH] drivers_net_wireless_airo.c '< 0' comparison make sense
Rusty Russell [Fri, 12 Mar 2004 08:23:16 +0000 (03:23 -0500)]
[PATCH] drivers_net_wireless_airo.c '< 0' comparison make sense

 From:  <adobriyan@mail.ru>

The sense of the comparison was signed, but the code was testing
an unsigned variable for less-than-zero.

22 years agoMerge bk://gkernel.bkbits.net/libata-2.5
Linus Torvalds [Fri, 12 Mar 2004 04:53:05 +0000 (20:53 -0800)]
Merge bk://gkernel.bkbits.net/libata-2.5
into ppc970.osdl.org:/home/torvalds/v2.5/linux

22 years agoMerge redhat.com:/spare/repo/linux-2.5
Jeff Garzik [Fri, 12 Mar 2004 08:54:32 +0000 (03:54 -0500)]
Merge redhat.com:/spare/repo/linux-2.5
into redhat.com:/spare/repo/libata-2.5

22 years agoMerge bk://kernel.bkbits.net/jgarzik/netconsole-2.5
Linus Torvalds [Fri, 12 Mar 2004 04:51:47 +0000 (20:51 -0800)]
Merge bk://kernel.bkbits.net/jgarzik/netconsole-2.5
into ppc970.osdl.org:/home/torvalds/v2.5/linux

22 years agoMerge redhat.com:/spare/repo/netdev-2.6/netpoll
Jeff Garzik [Fri, 12 Mar 2004 09:05:14 +0000 (04:05 -0500)]
Merge redhat.com:/spare/repo/netdev-2.6/netpoll
into redhat.com:/spare/repo/netconsole-2.5

22 years agoAdd Promise SX8 (carmel) block driver.
Jeff Garzik [Fri, 12 Mar 2004 08:52:04 +0000 (03:52 -0500)]
Add Promise SX8 (carmel) block driver.

22 years agoMerge bk://gkernel.bkbits.net/prism54-2.5
Linus Torvalds [Fri, 12 Mar 2004 02:26:29 +0000 (18:26 -0800)]
Merge bk://gkernel.bkbits.net/prism54-2.5
into ppc970.osdl.org:/home/torvalds/v2.5/linux

22 years ago[wireless prism54] remove WIRELESS_EXT ifdefs
Jeff Garzik [Fri, 12 Mar 2004 08:02:56 +0000 (03:02 -0500)]
[wireless prism54] remove WIRELESS_EXT ifdefs

22 years ago[wireless] Add new Prism54 wireless driver.
Jeff Garzik [Fri, 12 Mar 2004 07:55:33 +0000 (02:55 -0500)]
[wireless] Add new Prism54 wireless driver.

22 years agoMerge bk://linux-scsi.bkbits.net/scsi-for-linus-2.6
Linus Torvalds [Fri, 12 Mar 2004 01:30:40 +0000 (17:30 -0800)]
Merge bk://linux-scsi.bkbits.net/scsi-for-linus-2.6
into ppc970.osdl.org:/home/torvalds/v2.5/linux

22 years agoMerge http://lia64.bkbits.net/to-linus-2.5
Linus Torvalds [Fri, 12 Mar 2004 01:28:55 +0000 (17:28 -0800)]
Merge http://lia64.bkbits.net/to-linus-2.5
into ppc970.osdl.org:/home/torvalds/v2.5/linux

22 years agoRevert attribute_used changes in module.h. They were wrong.
Linus Torvalds [Fri, 12 Mar 2004 01:08:58 +0000 (17:08 -0800)]
Revert attribute_used changes in module.h. They were wrong.

Cset exclude: akpm@osdl.org|ChangeSet|20040312161945|47751

22 years ago[PATCH] slab: avoid higher-order allocations
Andrew Morton [Fri, 12 Mar 2004 00:25:56 +0000 (16:25 -0800)]
[PATCH] slab: avoid higher-order allocations

From: Manfred Spraul <manfred@colorfullife.com>

At present slab is using 2-order allocations for the size-2048 cache.  Of
course, this can affect networking quite seriously.

The patch ensures that slab will never use more than a 1-order allocation
for objects which have a size of less than 2*PAGE_SIZE.

22 years ago[PATCH] vmscan: add lru_to_page() helper
Andrew Morton [Fri, 12 Mar 2004 00:25:47 +0000 (16:25 -0800)]
[PATCH] vmscan: add lru_to_page() helper

From: Nick Piggin <piggin@cyberone.com.au>

Add a little helper macro for a common list extraction operation in vmscan.c

22 years ago[PATCH] vm: balance inactive zone refill rates
Andrew Morton [Fri, 12 Mar 2004 00:25:36 +0000 (16:25 -0800)]
[PATCH] vm: balance inactive zone refill rates

The current refill logic in refill_inactive_zone() takes an arbitrarily large
number of pages and chops it down to SWAP_CLUSTER_MAX*4, regardless of the
size of the zone.

This has the effect of reducing the amount of refilling of large zones
proportionately much more than of small zones.

We made this change in may 2003 and I'm damned if I remember why.  let's put
it back so we don't truncate the refill count and see what happens.

22 years ago[PATCH] fix vm-batch-inactive-scanning.patch
Andrew Morton [Fri, 12 Mar 2004 00:25:24 +0000 (16:25 -0800)]
[PATCH] fix vm-batch-inactive-scanning.patch

- prevent nr_scan_inactive from going negative

- compare `count' with SWAP_CLUSTER_MAX, not `max_scan'

- Use ">= SWAP_CLUSTER_MAX", not "> SWAP_CLUSTER_MAX".

22 years ago[PATCH] vmscan: batch up inactive list scanning work
Andrew Morton [Fri, 12 Mar 2004 00:25:12 +0000 (16:25 -0800)]
[PATCH] vmscan: batch up inactive list scanning work

From: Nick Piggin <piggin@cyberone.com.au>

Use a "refill_counter" for inactive list scanning, similar to the one used
for active list scanning.  This batches up scanning now that we precisely
balance ratios, and don't round up the amount to be done.

No observed benefits, but I imagine it would lower the acquisition
frequency of the lru locks in some cases, and make codepaths more efficient
in general due to cache niceness.

22 years ago[PATCH] vmscan: less throttling of page allocators and kswapd
Andrew Morton [Fri, 12 Mar 2004 00:25:03 +0000 (16:25 -0800)]
[PATCH] vmscan: less throttling of page allocators and kswapd

This is just a random unsubstantiated tuning tweak: don't immediately
throttle page allocators and kwapd when the going is getting heavier: scan a
bit more of the LRU before throttling.

22 years ago[PATCH] fix the kswapd zone scanning algorithm
Andrew Morton [Fri, 12 Mar 2004 00:24:52 +0000 (16:24 -0800)]
[PATCH] fix the kswapd zone scanning algorithm

This removes a vestige of the old algorithm.  We don't want to skip zones if
all_zones_ok is true: we've already precalculated which zones need scanning
and this just stops us from ever performing kswapd reclaim from the DMA zone.

22 years ago[PATCH] kswapd: fix lumpy page reclaim
Andrew Morton [Fri, 12 Mar 2004 00:24:40 +0000 (16:24 -0800)]
[PATCH] kswapd: fix lumpy page reclaim

As kswapd is now scanning zones in the highmem->normal->dma direction it can
get into competition with the page allocator: kswapd keep on trying to free
pages from highmem, then kswapd moves onto lowmem.  By the time kswapd has
done proportional scanning in lowmem, someone has come in and allocated a few
pages from highmem.  So kswapd goes back and frees some highmem, then some
lowmem again.  But nobody has allocated any lowmem yet.  So we keep on and on
scanning lowmem in response to highmem page allocations.

With a simple `dd' on a 1G box we get:

 r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy wa id
 0  3      0  59340   4628 922348    0    0     4 28188 1072   808  0 10 46 44
 0  3      0  29932   4660 951760    0    0     0 30752 1078   441  1  6 30 64
 0  3      0  57568   4556 924052    0    0     0 30748 1075   478  0  8 43 49
 0  3      0  29664   4584 952176    0    0     0 30752 1075   472  0  6 34 60
 0  3      0   5304   4620 976280    0    0     4 40484 1073   456  1  7 52 41
 0  3      0 104856   4508 877112    0    0     0 18452 1074    97  0  7 67 26
 0  3      0  70768   4540 911488    0    0     0 35876 1078   746  0  7 34 59
 1  2      0  42544   4568 939680    0    0     0 21524 1073   556  0  5 43 51
 0  3      0   5520   4608 976428    0    0     4 37924 1076   836  0  7 41 51
 0  2      0   4848   4632 976812    0    0    32 12308 1092    94  0  1 33 66

Simple fix: go back to scanning the zones in the dma->normal->highmem
direction so we meet the page allocator in the middle somewhere.

 r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy wa id
 1  3      0   5152   3468 976548    0    0     4 37924 1071   650  0  8 64 28
 1  2      0   4888   3496 976588    0    0     0 23576 1075   726  0  6 66 27
 0  3      0   5336   3532 976348    0    0     0 31264 1072   708  0  8 60 32
 0  3      0   6168   3560 975504    0    0     0 40992 1072   683  0  6 63 31
 0  3      0   4560   3580 976844    0    0     0 18448 1073   233  0  4 59 37
 0  3      0   5840   3624 975712    0    0     4 26660 1072   800  1  8 46 45
 0  3      0   4816   3648 976640    0    0     0 40992 1073   526  0  6 47 47
 0  3      0   5456   3672 976072    0    0     0 19984 1070   320  0  5 60 35

22 years ago[PATCH] kswapd: avoid unnecessary reclaiming from higher zones
Andrew Morton [Fri, 12 Mar 2004 00:24:29 +0000 (16:24 -0800)]
[PATCH] kswapd: avoid unnecessary reclaiming from higher zones

Currently kswapd walks across all zones in dma->normal->highmem order,
performing proportional scanning until all zones are OK.  This means that
pressure against ZONE_NORMAL causes unnecessary reclaim of ZONE_HIGHMEM.

To fix that up we change kswapd so that it walks the zones in the
high->normal->dma direction, skipping zones which are OK.  Once it encounters
a zone which needs some reclaim kswapd will perform proportional scanning
against that zone as well as all the succeeding lower zones.

We scan the lower zones even if they have sufficient free pages.  This is
because

a) the lower zone may be above pages_high, but because of the incremental
   min, the lower zone may still not be eligible for allocations.  That's bad
   because cache in that lower zone will then not be scanned at the correct
   rate.

b) pages in this lower zone are usable for allocations against the higher
   zone.  So we do want to san all the relevant zones at an equal rate.

22 years ago[PATCH] vmscan: avoid bogus throttling
Andrew Morton [Fri, 12 Mar 2004 00:24:20 +0000 (16:24 -0800)]
[PATCH] vmscan: avoid bogus throttling

- If max_scan evaluates to zero due to a very small inactive list and high
  `priority' numbers, we don't want to thrlttle yet.

- In balance_pgdat(), we may end up not scanning any pages because all
  zones happened to be above pages_high.  Avoid throttling in this case too.

22 years ago[PATCH] Balance inter-zone scan rates
Andrew Morton [Fri, 12 Mar 2004 00:24:10 +0000 (16:24 -0800)]
[PATCH] Balance inter-zone scan rates

When page reclaim is working out how many pages to san in a zone (max-scan)
it presently rounds that number up if it looks too small - for work batching.

Problem is, this can result in excessive scanning against small zones which
have few inactive pages.  So remove it.

Not that it is possible for max_scan to be zero.  That's OK - it'll become
non-zero as the priority increases.

22 years ago[PATCH] vmscan: drive everything via nr_to_scan
Andrew Morton [Fri, 12 Mar 2004 00:24:01 +0000 (16:24 -0800)]
[PATCH] vmscan: drive everything via nr_to_scan

Page reclaim is currently a bit schitzo: sometimes we say "go and scan this
many pages and tell me how many pages were freed" and at other times we say
"go and scan this many pages, but stop if you freed this many".

It makes the logic harder to control and to understand.  This patch coverts
everything into the "go and scan this many pages and tell me how many pages
were freed" model.

It doesn't seem to affect performance much either way.

22 years ago[PATCH] vmscan: zone balancing fix
Andrew Morton [Fri, 12 Mar 2004 00:23:50 +0000 (16:23 -0800)]
[PATCH] vmscan: zone balancing fix

We currently have a problem with the balancing of reclaim between zones: much
more reclaim happens against highmem than against lowmem.

This patch partially fixes this by changing the direct reclaim path so it
does not bale out of the zone walk after having reclaimed sufficient pages
from highmem: go on to reclaim from lowmem regardless of how many pages we
reclaimed from lowmem.

22 years ago[PATCH] vm: scan slab in response to highmem scanning
Andrew Morton [Fri, 12 Mar 2004 00:23:38 +0000 (16:23 -0800)]
[PATCH] vm: scan slab in response to highmem scanning

The patch which went in six months or so back which said "only reclaim slab
if we're scanning lowmem pagecache" was wrong.  I must have been asleep at
the time.

We do need to scan slab in response to highmem page reclaim as well.  Because
all the math is based around the total amount of memory in the machine, and
we know that if we're performing highmem page reclaim then the lower zones
have no free memory.

22 years ago[PATCH] vmscan: fix calculation of number of pages scanned
Andrew Morton [Fri, 12 Mar 2004 00:23:28 +0000 (16:23 -0800)]
[PATCH] vmscan: fix calculation of number of pages scanned

From: Nick Piggin <piggin@cyberone.com.au>

The logic which calculates the numberof pages which were scanned is mucked
up.  Fix.

22 years ago[PATCH] vm: shrink slab evenly in try_to_free_pages()
Andrew Morton [Fri, 12 Mar 2004 00:23:19 +0000 (16:23 -0800)]
[PATCH] vm: shrink slab evenly in try_to_free_pages()

From: Nick Piggin <piggin@cyberone.com.au>

In try_to_free_pages(), put even pressure on the slab even if we have
reclaimed enough pages from the LRU.

22 years ago[PATCH] shrink_slab: math precision fix
Andrew Morton [Fri, 12 Mar 2004 00:23:10 +0000 (16:23 -0800)]
[PATCH] shrink_slab: math precision fix

From: Nick Piggin <piggin@cyberone.com.au>

In shrink_slab(), do the multiply before the divide to avoid losing
precision.

22 years ago[PATCH] vmscan: preserve page referenced info in refill_inactive()
Andrew Morton [Fri, 12 Mar 2004 00:23:01 +0000 (16:23 -0800)]
[PATCH] vmscan: preserve page referenced info in refill_inactive()

From: Nick Piggin <piggin@cyberone.com.au>

If refill_inactive_zone() is running in its dont-reclaim-mapped-memory mode
we are tossing away the referenced infomation on active mapped pages.

So put that info back if we're not going to deactivate the page.

22 years ago[PATCH] kswapd throttling fixes
Andrew Morton [Fri, 12 Mar 2004 00:22:50 +0000 (16:22 -0800)]
[PATCH] kswapd throttling fixes

The logic in balance_pgdat() is all bollixed up.

- the incoming arg `nr_pages' should be used to determine if we're being
  asked to free a specific number of pages, not `to_free'.

- local variable `to_free' is not appropriate for the determination of
  whether we failed to bring all zones to appropriate free pages levels.

  Fix this by correctly calculating `all_zones_ok' and then use
  all_zones_ok to determine whether we need to throttle kswapd.

So the logic now is:

for (increasing priority) {

all_zones_ok = 1;

for (all zones) {
to_reclaim = number of pages to try to reclaim
     from this zone;
max_scan = number of pages to scan in this pass
   (gets larger as `priority' decreases)
/*
 * set `reclaimed' to the number of pages which were
 * actually freed up
 */
reclaimed = scan(max_scan pages);
reclaimed += shrink_slab();

to_free -= reclaimed; /* for the `nr_pages>0' case */

/*
 * If this scan failed to reclaim `to_reclaim' or more
 * pages, we're getting into trouble.  Need to scan
 * some more, and throttle kswapd.   Note that this
 * zone may now have sufficient free pages due to
 * freeing activity by some other process.   That's
 * OK - we'll pick that info up on the next pass
 * through the loop.
 */
if (reclaimed < to_reclaim)
all_zones_ok = 0;
}
if (to_free > 0)
continue; /* swsusp: need to do more work */
if (all_zones_ok)
break; /* kswapd is done */
/*
 * OK, kswapd is getting into trouble.  Take a nap, then take
 * another pass across the zones.
 */
blk_congestion_wait();
}

22 years ago[PATCH] mm/vmscan.c: remove unused priority argument.
Andrew Morton [Fri, 12 Mar 2004 00:22:39 +0000 (16:22 -0800)]
[PATCH] mm/vmscan.c: remove unused priority argument.

From: Nikita Danilov <Nikita@Namesys.COM>

Now that decision to reclaim mapped memory is taken on the basis of
zone->prev_priority, priority argument is no longer needed.

22 years ago[PATCH] Narrow blk_congestion_wait races
Andrew Morton [Fri, 12 Mar 2004 00:22:27 +0000 (16:22 -0800)]
[PATCH] Narrow blk_congestion_wait races

From: Nick Piggin <piggin@cyberone.com.au>

The addition of the smp_mb and the other change is to try to close the
window for races a bit.  Obviously they can still happen, it's a racy
interface and it doesn't matter much.

22 years ago[PATCH] return remaining jiffies from blk_congestion_wait()
Andrew Morton [Fri, 12 Mar 2004 00:22:15 +0000 (16:22 -0800)]
[PATCH] return remaining jiffies from blk_congestion_wait()

Teach blk_congestion_wait() to return the number of jiffies remaining.  This
is for debug, but it is also nicely consistent.

22 years ago[PATCH] vm: per-zone vmscan instrumentation
Andrew Morton [Fri, 12 Mar 2004 00:22:06 +0000 (16:22 -0800)]
[PATCH] vm: per-zone vmscan instrumentation

To check on zone balancing, split the /proc/vmstat:pgsteal, pgreclaim pgalloc
and pgscan stats into per-zone counters.

Additionally, split the pgscan stats into pgscan_direct and pgscan_kswapd to
see who's doing how much scanning.

And add a metric for the number of slab objects which were scanned.

22 years ago[PATCH] synclink.c update
Andrew Morton [Fri, 12 Mar 2004 00:21:56 +0000 (16:21 -0800)]
[PATCH] synclink.c update

From: Paul Fulghum <paulkf@microgate.com>

* track driver API changes
* remove cast (kernel janitor)

22 years ago[PATCH] synclink_cs.c update
Andrew Morton [Fri, 12 Mar 2004 00:21:45 +0000 (16:21 -0800)]
[PATCH] synclink_cs.c update

From: Paul Fulghum <paulkf@microgate.com>

* Track driver API changes
* Remove cast (kernel janitor)

22 years ago[PATCH] synclinkmp.c update
Andrew Morton [Fri, 12 Mar 2004 00:21:34 +0000 (16:21 -0800)]
[PATCH] synclinkmp.c update

From: Paul Fulghum <paulkf@microgate.com>

Patch for synclinkmp.c

* Track driver API changes
* Remove cast (kernel janitor)
* Replace page_free call with kfree (to match kmalloc allocation)

22 years ago[PATCH] Add barriers to avoid race in mempool_alloc/free
Andrew Morton [Fri, 12 Mar 2004 00:21:24 +0000 (16:21 -0800)]
[PATCH] Add barriers to avoid race in mempool_alloc/free

From: Chris Mason <mason@suse.com>

mempool_alloc() and mempool_free() check pool->curr_nr without any locks
held.  This can lead to skipping a wakeup when there are people waiting,
and sleeping when there are free elements in the pool.

I can't trigger this reliably, but sooner or later someone on ppc is
probably going to hit it.

22 years ago[PATCH] m68k: interrupt management cleanups
Andrew Morton [Fri, 12 Mar 2004 00:21:15 +0000 (16:21 -0800)]
[PATCH] m68k: interrupt management cleanups

From: Geert Uytterhoeven <geert@linux-m68k.org>

M68k interrupt management: rename routines to not confuse them with
syscalls

- sys_{request,free}_irq() -> cpu_{request,free}_irq()

- q40_sys_default_handler[] -> q40_default_handler

- sys_default_handler() -> default_handler()

22 years ago[PATCH] m68k: Macintosh IDE fixes
Andrew Morton [Fri, 12 Mar 2004 00:21:04 +0000 (16:21 -0800)]
[PATCH] m68k: Macintosh IDE fixes

From: Geert Uytterhoeven <geert@linux-m68k.org>

Mac IDE: Make sure the core IDE driver doesn't try to request the MMIO
ports a second time, since this will fail.

22 years ago[PATCH] Apollo fb sysfsification
Andrew Morton [Fri, 12 Mar 2004 00:20:52 +0000 (16:20 -0800)]
[PATCH] Apollo fb sysfsification

From: Geert Uytterhoeven <geert@linux-m68k.org>

Apollo fb: Add sysfs support (from James Simmons)

22 years ago[PATCH] m68k: Amiga Framemaster II fb sysfsification
Andrew Morton [Fri, 12 Mar 2004 00:20:42 +0000 (16:20 -0800)]
[PATCH] m68k: Amiga Framemaster II fb sysfsification

From: Geert Uytterhoeven <geert@linux-m68k.org>

Amiga Framemaster II fb: Add sysfs support (from James Simmons)

22 years ago[PATCH] m68k: __test_and_set_bit()
Andrew Morton [Fri, 12 Mar 2004 00:20:33 +0000 (16:20 -0800)]
[PATCH] m68k: __test_and_set_bit()

From: Geert Uytterhoeven <geert@linux-m68k.org>

Add missing implementation for non-atomic __test_and_set_bit()

22 years ago[PATCH] fbdev: monitor detection fixes
Andrew Morton [Fri, 12 Mar 2004 00:20:22 +0000 (16:20 -0800)]
[PATCH] fbdev: monitor detection fixes

From: James Simmons <jsimmons@infradead.org>,
      Kronos <kronos@kronoz.cjb.net>

Various fixes and enhancements to the monitor hardware detection code.  The
only driver that uses it is the radeon driver.

Old EDID parsing code was very verbose, half of the patch address this (ie.
print lots of stuff iff DEBUG).  The other big change is the FB_MODE_IS_*
stuff: we really need a way to know the origin of a video mode.  In this way
we can select video mode that comes from EDID instead of VESA or GTF.

Drivers other than radeonfb won't be affected because they cannot (yet) get
EDID from the monitor and don't use EDID related code.

22 years ago[PATCH] Fix NULL pointer dereference in blkmtd.c
Andrew Morton [Fri, 12 Mar 2004 00:20:08 +0000 (16:20 -0800)]
[PATCH] Fix NULL pointer dereference in blkmtd.c

From: Michel Marti <michel.marti@objectxp.com>

The blkmtd driver oopses in add_device().  The following trivial patch
fixes this.

22 years ago[PATCH] fix raid0 readahead size
Andrew Morton [Fri, 12 Mar 2004 00:19:57 +0000 (16:19 -0800)]
[PATCH] fix raid0 readahead size

From: Arjan van de Ven <arjanv@redhat.com>

Readahead of raid0 was suboptimal; it read only 1 stride ahead.  The
problem with this is that while it will keep all spindles busy, it will not
actually manage to make larger IO's, eg each disk would just do the chunk
size IO.  Doing at least 2 chunks is more than appropriate so that each
spindle will get a chance to merge IO's.

(Neil fixed raid6 and raid6 too)

22 years ago[PATCH] module.h __attribute_used__ fix
Andrew Morton [Fri, 12 Mar 2004 00:19:45 +0000 (16:19 -0800)]
[PATCH] module.h __attribute_used__ fix

From: Rusty Russell <rusty@rustcorp.com.au>

Someone added __attribute_used__ throughout module.h, but didn't remove the
", unused".  Looks like some arch/gcc combos still consider it unused, and
discard the fn.

22 years ago[PATCH] Fix CONFIG_NVRAM dependencies
Andrew Morton [Fri, 12 Mar 2004 00:19:34 +0000 (16:19 -0800)]
[PATCH] Fix CONFIG_NVRAM dependencies

From: Geert Uytterhoeven <geert@linux-m68k.org>

Make CONFIG_NVRAM depend on the prerequisites that are explicitly checked
for in drivers/char/nvram.c, or on CONFIG_GENERIC_NVRAM (for PPC).

22 years ago[PATCH] Applicom warning
Andrew Morton [Fri, 12 Mar 2004 00:19:26 +0000 (16:19 -0800)]
[PATCH] Applicom warning

From: Geert Uytterhoeven <geert@linux-m68k.org>

Add missing include (needed for struct inode)

22 years ago[PATCH] Disable Macintosh device drivers for all but PPC || MAC
Andrew Morton [Fri, 12 Mar 2004 00:19:15 +0000 (16:19 -0800)]
[PATCH] Disable Macintosh device drivers for all but PPC || MAC

From: Marc-Christian Petersen <m.c.p@wolk-project.de>

The attached patch is needed to stop showing us "Macintosh device drivers"
for all architectures via menuconfig || xconfig || gconfig.  It's only
necessary for PPC and/or MAC.

ACKed by benh.

22 years ago[PATCH] add nowarn to a few pte chain allocators
Andrew Morton [Fri, 12 Mar 2004 00:19:04 +0000 (16:19 -0800)]
[PATCH] add nowarn to a few pte chain allocators

From: Arjan van de Ven <arjanv@redhat.com>

Several of the pte_chain_alloc() allocators that use GFP_ATOMIC have a
fallback for failure that sleeps; they thus need to not warn on failure..
Seen during a big fork on a busy system.

22 years ago[PATCH] cciss: init section fix
Andrew Morton [Fri, 12 Mar 2004 00:18:53 +0000 (16:18 -0800)]
[PATCH] cciss: init section fix

From: "Randy.Dunlap" <rddunlap@osdl.org>

cciss_scsi_detect() can be called after init (for TAPE support).

22 years ago[PATCH] EDD: Get Legacy Parameters
Andrew Morton [Fri, 12 Mar 2004 00:18:43 +0000 (16:18 -0800)]
[PATCH] EDD: Get Legacy Parameters

From: Matt Domsch <Matt_Domsch@dell.com>

Patch below from Patrick J. LoPresti and myself.  Patrick describes:

Why this patch?  The problem is that the legacy BIOS interface
(INT13/AH=3D08) for querying the disk geometry returns different values
than the extended INT13 interface which the EDD code currently uses.  This
is because the legacy interface only provides a 10-bit cylinder field, so
modern BIOSes "lie" about the head/sector counts in order to make more of
the disk visible within the first 1024 cylinders.

Many non-Linux applications, including the stock Windows boot loader, DOS
fdisk, etc., rely upon the legacy interface and geometry.  So it is useful
to be able to obtain the legacy values from a running Linux kernel.

What this patch does is to add new entries under
/sys/firmware/edd/int13_devXX named "legacy_cylinders", "legacy_heads", and
"legacy_sectors".  These provide the geometry given by the legacy
INT13/AH=3D08 BIOS interface, just like the current "default_cylinders"
etc.  provide the the geometry given by the INT13/AH=3D48 interface.

Without this patch, I cannot use Linux to partition a drive and install
Windows, which happens to be my application.

 - Pat
   http://unattended.sourceforge.net/

In addition, this adds two buggy BIOS workarounds  in the EDD int13
calls as suggested by Ralf Brown's interrupt list.

I'm also interested in moving this code out of arch/i386/kernel/edd.c and
include/asm-i386/edd.h, as I believe it is applicable on x86-64 as well.
However, there's no good place under drivers/ to put edd.c when it's not
tied to a bus, but to several CPU architectures and their firmwares...
Maybe a new directory drivers/firmware?

22 years ago[PATCH] wavfront.c needs syscalls.h
Andrew Morton [Fri, 12 Mar 2004 00:18:34 +0000 (16:18 -0800)]
[PATCH] wavfront.c needs syscalls.h

sound/oss/wavfront.c: In function `wavefront_download_firmware':
sound/oss/wavfront.c:2524: warning: implicit declaration of function `sys_open'
sound/oss/wavfront.c:2533: warning: implicit declaration of function `sys_read'
sound/oss/wavfront.c:2582: warning: implicit declaration of function `sys_close

22 years ago[PATCH] Fix reading the last block on a bdev
Andrew Morton [Fri, 12 Mar 2004 00:18:23 +0000 (16:18 -0800)]
[PATCH] Fix reading the last block on a bdev

From: Chris Mason <mason@suse.com>

This patch fixes a problem we're hitting on ia64 with page sizes > 4k.

When the page size is greater than the block size, and parts of the page
fall past the end of the device, readpage will fail because
blkdev_get_block returns -EIO for blocks past i_size.

The attached patch changes blkdev_get_block to return holes when reading
past the end of the device, which allows us to read that last valid 4k
block and then fill the rest of the page with zeros.  Writes will still
fail with -EIO.