- 05 9月, 2005 17 次提交
-
-
由 Hugh Dickins 提交于
get_swap_page has often shown up on latency traces, doing lengthy scans while holding two spinlocks. swap_list_lock is already dropped, now scan_swap_map drop swap_device_lock before scanning the swap_map. While scanning for an empty cluster, don't worry that racing tasks may allocate what was free and free what was allocated; but when allocating an entry, check it's still free after retaking the lock. Avoid dropping the lock in the expected common path. No barriers beyond the locks, just let the cookie crumble; highest_bit limit is volatile, but benign. Guard against swapoff: must check SWP_WRITEOK before allocating, must raise SWP_SCANNING reference count while in scan_swap_map, swapoff wait for that to fall - just use schedule_timeout, we don't want to burden scan_swap_map itself, and it's very unlikely that anyone can really still be in scan_swap_map once swapoff gets this far. Signed-off-by: NHugh Dickins <hugh@veritas.com> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Hugh Dickins 提交于
Rewrite scan_swap_map to allocate in just the same way as before (taking the next free entry SWAPFILE_CLUSTER-1 times, then restarting at the lowest wholly empty cluster, falling back to lowest entry if none), but with a view towards dropping the lock in the next patch. Signed-off-by: NHugh Dickins <hugh@veritas.com> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Hugh Dickins 提交于
Rewrite get_swap_page to allocate in just the same sequence as before, but without holding swap_list_lock across its scan_swap_map. Decrement nr_swap_pages and update swap_list.next in advance, while still holding swap_list_lock. Skip full devices by testing highest_bit. Swapoff hold swap_device_lock as well as swap_list_lock to clear SWP_WRITEOK. Reduces lock contention when there are parallel swap devices of the same priority. Signed-off-by: NHugh Dickins <hugh@veritas.com> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Hugh Dickins 提交于
This makes negligible difference in practice: but swap_list.next should not be updated to a higher prio in the general helper swap_info_get, but rather in swap_entry_free; and then only in the case when entry is actually freed. Signed-off-by: NHugh Dickins <hugh@veritas.com> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Hugh Dickins 提交于
The swap header's unsigned int last_page determines the range of swap pages, but swap_info has been using int or unsigned long in some cases: use unsigned int throughout (except, in several places a local unsigned long is useful to avoid overflows when adding). Signed-off-by: NHugh Dickins <hugh@veritas.com> Signed-off-by: NJens Axboe <axboe@suse.de> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Hugh Dickins 提交于
The "Adding %dk swap" message shows the number of swap extents, as a guide to how fragmented the swapfile may be. But a useful further guide is what total extent they span across (sometimes scarily large). And there's no need to keep nr_extents in swap_info: it's unused after the initial message, so save a little space by keeping it on stack. Signed-off-by: NHugh Dickins <hugh@veritas.com> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Hugh Dickins 提交于
There are several comments that swap's extent_list.prev points to the lowest extent: that's not so, it's extent_list.next which points to it, as you'd expect. And a couple of loops in add_swap_extent which go all the way through the list, when they should just add to the other end. Fix those up, and let map_swap_page search the list forwards: profiles shows it to be twice as quick that way - because prefetch works better on how the structs are typically kmalloc'ed? or because usually more is written to than read from swap, and swap is allocated ascendingly? Signed-off-by: NHugh Dickins <hugh@veritas.com> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Hugh Dickins 提交于
sys_swapon's call to destroy_swap_extents on failure is made after the final swap_list_unlock, which is faintly unsafe: another sys_swapon might already be setting up that swap_info_struct. Calling it earlier, before taking swap_list_lock, is safe. sys_swapoff's call to destroy_swap_extents was safe, but likewise move it earlier, before taking the locks (once try_to_unuse has completed, nothing can be needing the swap extents). Signed-off-by: NHugh Dickins <hugh@veritas.com> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Hugh Dickins 提交于
If a regular swapfile lies on a filesystem whose blocksize is less than PAGE_SIZE, then setup_swap_extents may have to cut the number of usable swap pages; but sys_swapon's nr_good_pages was not expecting that. Also, setup_swap_extents takes no account of badpages listed in the swap header: not worth doing so, but ensure nr_badpages is 0 for a regular swapfile. Signed-off-by: NHugh Dickins <hugh@veritas.com> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Hugh Dickins 提交于
Update swap extents comment: nowadays we guard with S_SWAPFILE not i_sem. Signed-off-by: NHugh Dickins <hugh@veritas.com> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Stephen Rothwell 提交于
Someone mentioned that almost all the architectures used basically the same implementation of get_order. This patch consolidates them into asm-generic/page.h and includes that in the appropriate places. The exceptions are ia64 and ppc which have their own (presumably optimised) versions. Signed-off-by: NStephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Dave Hansen 提交于
This splits up sparse_index_alloc() into two pieces. This is needed because we'll allocate the memory for the second level in a different place from where we actually consume it to keep the allocation from happening underneath a lock Signed-off-by: NDave Hansen <haveblue@us.ibm.com> Signed-off-by: NBob Picco <bob.picco@hp.com> Cc: Andy Whitcroft <apw@shadowen.org> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Bob Picco 提交于
With cleanups from Dave Hansen <haveblue@us.ibm.com> SPARSEMEM_EXTREME makes mem_section a one dimensional array of pointers to mem_sections. This two level layout scheme is able to achieve smaller memory requirements for SPARSEMEM with the tradeoff of an additional shift and load when fetching the memory section. The current SPARSEMEM implementation is a one dimensional array of mem_sections which is the default SPARSEMEM configuration. The patch attempts isolates the implementation details of the physical layout of the sparsemem section array. SPARSEMEM_EXTREME requires bootmem to be functioning at the time of memory_present() calls. This is not always feasible, so architectures which do not need it may allocate everything statically by using SPARSEMEM_STATIC. Signed-off-by: NAndy Whitcroft <apw@shadowen.org> Signed-off-by: NBob Picco <bob.picco@hp.com> Signed-off-by: NDave Hansen <haveblue@us.ibm.com> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Bob Picco 提交于
A new option for SPARSEMEM is ARCH_SPARSEMEM_EXTREME. Architecture platforms with a very sparse physical address space would likely want to select this option. For those architecture platforms that don't select the option, the code generated is equivalent to SPARSEMEM currently in -mm. I'll be posting a patch on ia64 ml which uses this new SPARSEMEM feature. ARCH_SPARSEMEM_EXTREME makes mem_section a one dimensional array of pointers to mem_sections. This two level layout scheme is able to achieve smaller memory requirements for SPARSEMEM with the tradeoff of an additional shift and load when fetching the memory section. The current SPARSEMEM -mm implementation is a one dimensional array of mem_sections which is the default SPARSEMEM configuration. The patch attempts isolates the implementation details of the physical layout of the sparsemem section array. ARCH_SPARSEMEM_EXTREME depends on 64BIT and is by default boolean false. I've boot tested under aim load ia64 configured for ARCH_SPARSEMEM_EXTREME. I've also boot tested a 4 way Opteron machine with !ARCH_SPARSEMEM_EXTREME and tested with aim. Signed-off-by: NAndy Whitcroft <apw@shadowen.org> Signed-off-by: NBob Picco <bob.picco@hp.com> Signed-off-by: NDave Hansen <haveblue@us.ibm.com> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Matt Mackall 提交于
Running 'make clean' was quietly deleting files in Mercurial kernel repositories matching '.*.d', which was corrupting the tags portions of the repository. Spotted and fixed by several people. Signed-off-by: NMatt Mackall <mpm@selenic.com> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Marcel Selhorst 提交于
This patch corrects the PNP-handling inside the tpm-driver and some minor coding style bugs. Note: the pci-device and pnp-device mixture is currently necessary, since the used "tpm"-interface requires a pci-dev in order to register the driver. This will be fixed within the next iterations. Signed-off-by: NMarcel Selhorst <selhorst@crypto.rub.de> Cc: Kylene Hall <kjhall@us.ibm.com> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Michael Krufky 提交于
Please apply this to 2.6.14, and also to 2.6.13.1 -stable. Without this patch, users will have to EXPLICITLY select tda1004x in Kconfig. This SHOULD be done automatically when saa7134-dvb is selected. This patch corrects this problem. Signed-off-by: NMichael Krufky <mkrufky@m1k.net> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
- 02 9月, 2005 23 次提交
-
-
由 Linus Torvalds 提交于
Merge refs/heads/ieee80211-wifi from master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6
-
由 Jeff Garzik 提交于
-
由 Rolf Eike Beer 提交于
This patch is against 2.6.10, but still applies cleanly. It's just s/driverfs/sysfs/ in this file. Signed-off-by: NRolf Eike Beer <eike-kernel@sf-tec.de> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Rolf Eike Beer 提交于
This patch is against 2.6.10, but still applies cleanly. It's just s/driverfs/sysfs/ in these two files. Signed-off-by: NRolf Eike Beer <eike-kernel@sf-tec.de> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Miles Bader 提交于
Signed-off-by: NMiles Bader <miles@gnu.org> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Miles Bader 提交于
Signed-off-by: NMiles Bader <miles@gnu.org> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Miles Bader 提交于
Signed-off-by: NMiles Bader <miles@gnu.org> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Greg Ungerer 提交于
Use MAP_PRIVATE when calling mmap to get memory for the code region. The flat loader was using MAP_SHARED, but underlying changes to the MMUless mmap means this is now wrong. Signed-off-by: NGreg Ungerer <gerg@uclinux.com> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Greg Ungerer 提交于
Updated defconfig for m68knommu arch. Patch originaly submitted by Jan Dittmer <jdittmer@ppp0.net> Signed-off-by: NGreg Ungerer <gerg@uclinux.com> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Greg Ungerer 提交于
. add support for the M5235EVB board . add support for the SOM5282 board . add support for the MOD5272 board . fix end of memory define for eLITE board Signed-off-by: NGreg Ungerer <gerg@uclinux.com> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Greg Ungerer 提交于
Need pfn_valid macro, even on MMUless platforms. Enclose the macro args of __pa and __va in parentheses. Signed-off-by: NGreg Ungerer <gerg@uclinux.com> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Greg Ungerer 提交于
Use the THREAD_SIZE define when manipulating the stack instead of hard coded values (for the 68328 and 68360 sub-architectures). Signed-off-by: NGreg Ungerer <gerg@uclinux.com> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Greg Ungerer 提交于
New architecture and board configuration support for m68knommu. . add 523x ColdFire support . add support for SOM5282 and MOD5272 boards . break up the 527x to be separate 5271 and 5275. There is some subtle differences that (like RAM config) that need to be dealt with . add option to support selecting 4k kernel stack Signed-off-by: NGreg Ungerer <gerg@uclinux.com> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Greg Ungerer 提交于
Add support for the 523x ColdFire family of processors Signed-off-by: NGreg Ungerer <gerg@uclinux.com> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Greg Ungerer 提交于
Make show_stack() consistent with other architectures. Put the vector string names in the .rodata section. Patch originally submitted by Philippe De Muyter <phdm@macqel.be>. Signed-off-by: NGreg Ungerer <gerg@uclinux.com> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Greg Ungerer 提交于
Modify maintainers for uClinux (MMUless). Neither Dave nor Jeff manitain the 2.6 code in mainline, so no point emailing them about problems. Signed-off-by: NGreg Ungerer <gerg@uclinux.com> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Greg Ungerer 提交于
Correctly determine the end of ram for ram setups that do not start at base address of 0. Add support for the MOD5272 board, which doesn not have a ram base of 0. Signed-off-by: NGreg Ungerer <gerg@uclinux.com> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Greg Ungerer 提交于
. setup for the new 523x ColdFire family . break up of 527x to be 5271 and 5275 . some white space cleanup Signed-off-by: NGreg Ungerer <gerg@uclinux.com> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Greg Ungerer 提交于
Low level initialization code for the 523x ColdFire processor family. Signed-off-by: NGreg Ungerer <gerg@uclinux.com> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Linus Torvalds 提交于
-
由 Linus Torvalds 提交于
-
由 Linus Torvalds 提交于
Merge refs/heads/ieee80211-wifi from master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6
-
由 Linus Torvalds 提交于
-