summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* async_tx: fix asynchronous raid6 recovery for ddf layoutsDan Williams2009-10-191-30/+56
| | | | | | | | | | | | | | | | | | | The raid6 recovery code currently requires special handling of the 4-disk and 5-disk recovery scenarios for the native layout. Quoting from commit 0a82a623: In these situations the default N-disk algorithm will present 0-source or 1-source operations to dma devices. To cover for dma devices where the minimum source count is 2 we implement 4-disk and 5-disk handling in the recovery code. The ddf layout presents disks=6 and disks=7 to the recovery code in these situations. Instead of looking at the number of disks count the number of non-zero sources in the list and call the special case code when the number of non-failed sources is 0 or 1. [neilb@suse.de: replace 'ddf' flag with counting good sources] Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* async_pq: rename scribble pageDan Williams2009-10-191-7/+8
| | | | | | | | | | | | The global scribble page is used as a temporary destination buffer when disabling the P or Q result is requested. The local scribble buffer contains memory for performing address conversions. Rename the global variable to avoid confusion. Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* async_pq: kill a stray dma_map() call and other cleanupsDan Williams2009-10-191-7/+8
| | | | | | | | - update the kernel doc for async_syndrome to indicate what NULL in the source list means - whitespace fixups Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* md/raid6: kill a gcc-4.0.1 'uninitialized variable' warningDan Williams2009-10-191-3/+3
| | | | Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* raid6/async_tx: handle holes in block list in async_syndrome_valNeilBrown2009-10-162-14/+35
| | | | | | | | | | | | | async_syndrome_val check the P and Q blocks used for RAID6 calculations. With DDF raid6, some of the data blocks might be NULL, so this needs to be handled in the same way that async_gen_syndrome handles it. As async_syndrome_val calls async_xor, also enhance async_xor to detect and skip NULL blocks in the list. Signed-off-by: NeilBrown <neilb@suse.de>
* md/async: don't pass a memory pointer as a page pointer.NeilBrown2009-10-163-18/+17
| | | | | | | | | | | | | | | | | | | | | md/raid6 passes a list of 'struct page *' to the async_tx routines, which then either DMA map them for offload, or take the page_address for CPU based calculations. For RAID6 we sometime leave 'blanks' in the list of pages. For CPU based calcs, we want to treat theses as a page of zeros. For offloaded calculations, we simply don't pass a page to the hardware. Currently the 'blanks' are encoded as a pointer to raid6_empty_zero_page. This is a 4096 byte memory region, not a 'struct page'. This is mostly handled correctly but is rather ugly. So change the code to pass and expect a NULL pointer for the blanks. When taking page_address of a page, we need to check for a NULL and in that case use raid6_empty_zero_page. Signed-off-by: NeilBrown <neilb@suse.de>
* md: Fix handling of raid5 array which is being reshaped to fewer devices.NeilBrown2009-10-162-20/+19
| | | | | | | | | | | | | | | | | When a raid5 (or raid6) array is being reshaped to have fewer devices, conf->raid_disks is the latter and hence smaller number of devices. However sometimes we want to use a number which is the total number of currently required devices - the larger of the 'old' and 'new' sizes. Before we implemented reducing the number of devices, this was always 'new' i.e. ->raid_disks. Now we need max(raid_disks, previous_raid_disks) in those places. This particularly affects assembling an array that was shutdown while in the middle of a reshape to fewer devices. md.c needs a similar fix when interpreting the md metadata. Signed-off-by: NeilBrown <neilb@suse.de>
* md: fix problems with RAID6 calculations for DDF.NeilBrown2009-10-162-8/+14
| | | | Signed-off-by: NeilBrown <neilb@suse.de>
* md/raid456: downlevel multicore operations to raid_run_opsDan Williams2009-10-162-36/+51
| | | | | | | | | | | | | | | | | | | | | | | | | The percpu conversion allowed a straightforward handoff of stripe processing to the async subsytem that initially showed some modest gains (+4%). However, this model is too simplistic and leads to stripes bouncing between raid5d and the async thread pool for every invocation of handle_stripe(). As reported by Holger this can fall into a pathological situation severely impacting throughput (6x performance loss). By downleveling the parallelism to raid_run_ops the pathological stripe_head bouncing is eliminated. This version still exhibits an average 11% throughput loss for: mdadm --create /dev/md0 /dev/sd[b-q] -n 16 -l 6 echo 1024 > /sys/block/md0/md/stripe_cache_size dd if=/dev/zero of=/dev/md0 bs=1024k count=2048 ...but the results are at least stable and can be used as a base for further multicore experimentation. Reported-by: Holger Kiehl <Holger.Kiehl@dwd.de> Signed-off-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: NeilBrown <neilb@suse.de>
* md: drivers/md/unroll.pl replaced with awk analogVladimir Dronnikov2009-10-166-58/+54
| | | | | | | | drivers/md/unroll.pl replaced by awk script to drop build-time dependency on perl Signed-off-by: Vladimir Dronnikov <dronnikov@gmail.com> Signed-off-by: NeilBrown <neilb@suse.de>
* md: remove clumsy usage of do_sync_mapping_range from bitmap codeNeilBrown2009-10-161-4/+5
| | | | | | | | and replace with vfs_fsync which is much neater (but wasn't exported, or even in existence at the time the code was written). Cc: Christoph Hellwig <hch@lst.de> Signed-off-by: NeilBrown <neilb@suse.de>
* md: raid1/raid10: handle allocation errors during array setup.NeilBrown2009-10-162-4/+5
| | | | | | | | | | | | | | Both raid1 and raid10 create a mempool during startup. If the 'alloc' function for this mempool fails, unplug_slaves is called. If that happens when the pool is being initialised, unplug_slaves will try to use the 'conf' structure that isn't filled in yet, and badness will happen. So ensure that unplug_slaves doesn't get called unless we know that the conf structure if fully initialised. Signed-off-by: NeilBrown <neilb@suse.de>
* md/raid5: initialize conf->device_lock earlierDan Williams2009-10-161-13/+12
| | | | | | | | | Deallocating a raid5_conf_t structure requires taking 'device_lock'. Ensure it is initialized before it is used, i.e. initialize the lock before attempting any further initializations that might fail. Signed-off-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: NeilBrown <neilb@suse.de>
* md/raid1/raid10: add a cond_reschedNeilBrown2009-10-162-0/+2
| | | | | | | | | | During 'check' of a raid1 or raid10 it is possible for the management thread to spend a lot of time running 'memcmp' on blocks from different devices, so make sure the thread has a chance to schedule. raid5d already has a cond_resched (in process_stripe). Reported-By: Lee Howard <faxguy@howardsilvan.com> Signed-off-by: NeilBrown <neilb@suse.de>
* Revert "md: do not progress the resync process if the stripe was blocked"NeilBrown2009-10-161-13/+6
| | | | | | | | | | This reverts commit df10cfbc4d7ab93260d997df754219d390d62a9d. This patch was based on a misunderstanding and risks introducing a busy-wait loop. So revert it. Acked-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: NeilBrown <neilb@suse.de>
* Merge branch 'cputime' of git://git390.marist.edu/pub/scm/linux-2.6Linus Torvalds2009-09-241-1/+6
|\ | | | | | | | | * 'cputime' of git://git390.marist.edu/pub/scm/linux-2.6: [PATCH] Fix idle time field in /proc/uptime
| * [PATCH] Fix idle time field in /proc/uptimeMichael Abbott2009-09-241-1/+6
| | | | | | | | | | | | | | | | | | Git commit 79741dd changes idle cputime accounting, but unfortunately the /proc/uptime file hasn't caught up. Here the idle time calculation from /proc/stat is copied over. Signed-off-by: Michael Abbott <michael.abbott@diamond.ac.uk> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
* | Merge branch 'for-linus' of git://git.monstr.eu/linux-2.6-microblazeLinus Torvalds2009-09-2427-117/+439
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'for-linus' of git://git.monstr.eu/linux-2.6-microblaze: (24 commits) microblaze: Disable heartbeat/enable emaclite in defconfigs microblaze: Support simpleImage.dts make target microblaze: Fix _start symbol to physical address microblaze: Use LOAD_OFFSET macro to get correct LMA for all sections microblaze: Create the LOAD_OFFSET macro used to compute VMA vs LMA offsets microblaze: Copy ppc asm-compat.h for clean handling of constants in asm and C microblaze: Actually show KiB rather than pages in "Freeing initrd memory:" microblaze: Support ptrace syscall tracing. microblaze: Updated CPU version and FPGA family codes in PVR microblaze: Generate correct signal and siginfo for integer div-by-zero microblaze: Don't be noisy when userspace causes hardware exceptions microblaze: Remove ipc.h file which points to non-existing asm-generic file microblaze: Clear sticky FSR register after generating exception signals microblaze: Ensure CPU usermode is set on new userspace processes microblaze: Use correct kbuild variable KBUILD_CFLAGS microblaze: Save and restore msr in hw exception microblaze: Add architectural support for USB EHCI host controllers microblaze: Implement include/asm/syscall.h. microblaze: Improve checking mechanism for MSR instruction microblaze: Add checking mechanism for MSR instruction ...
| * | microblaze: Disable heartbeat/enable emaclite in defconfigsMichal Simek2009-09-242-28/+37
| | | | | | | | | | | | | | | | | | | | | I need to disable heartbeat function because this features breaks testing in Qemu. Signed-off-by: Michal Simek <monstr@monstr.eu>
| * | microblaze: Support simpleImage.dts make targetMichal Simek2009-09-244-6/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of remembering to specify DTB= on the make commandline, this commit allows the much friendlier make simpleImage.<dts> where <dts>.dts is expected to be found in arch/microblaze/boot/dts/ The resulting vmlinux, with the compiled DTS linked in, will be copied to boot/simpleImage.<dts> This mirrors the same functionality as on PowerPC, albeit achieving it in a slightly different way. + strip simpleImage file The size of output file is very similar to linux.bin. vmlinux - full elf without fdt blob simpleImage.<dtb name>.unstrip - full elf with fdt blob simpleImage.<dtb name> - stripped elf with fdt blob Add symlink to generic system.dts in platform folder Signed-off-by: John Williams <john.williams@petalogix.com> Signed-off-by: Michal Simek <monstr@monstr.eu>
| * | microblaze: Fix _start symbol to physical addressMichal Simek2009-09-221-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | _start is setup to physical kernel start address. This caused that when you load vmlinux (with MMU kernel) via XMD program counter (pc) is setup correctly and then you can write con and start kernel. Signed-off-by: Michal Simek <monstr@monstr.eu>
| * | microblaze: Use LOAD_OFFSET macro to get correct LMA for all sectionsMichal Simek2009-09-221-15/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, vmlinux has LMA==VMA for all sections, which is wrong for MMU kernels. Previous patches in this series defined the LOAD_OFFSET constant, now we make use of it in our link script. Other minor changes in this patch: * brace/indenting cleanup of some sections * put __fdt_* symbols in their own section, and apply LOAD_OFFSET fixup Signed-off-by: John Williams <john.williams@petalogix.com> Signed-off-by: Michal Simek <monstr@monstr.eu>
| * | microblaze: Create the LOAD_OFFSET macro used to compute VMA vs LMA offsetsJohn Williams2009-09-221-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | LOAD_OFFSET is the offset between the physical load address and the kernel's virtual address. It will be used in the upcoming commit to vmlinux.ld.S to make sure that the LMAs of sections in vmlinux are correct. Signed-off-by: John Williams <john.williams@petalogix.com>
| * | microblaze: Copy ppc asm-compat.h for clean handling of constants in asm and CJohn Williams2009-09-221-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | Provides the ASM_CONST macro for creating asm-safe constants. No users yet, we'll be using it in upcoming page.h commit, for generating the LOAD_OFFSET macro Signed-off-by: John Williams <john.williams@petalogix.com>
| * | microblaze: Actually show KiB rather than pages in "Freeing initrd memory:"Lennart Sorensen2009-09-221-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | Fix "Freeing initrd memory:" message on microblaze to show kilobytes as claimed rather than number of pages. Signed-off-by: Lennart Sorensen <lsorense@csclub.uwaterloo.ca> Signed-off-by: Michal Simek <monstr@monstr.eu>
| * | microblaze: Support ptrace syscall tracing.Michal Simek2009-09-222-12/+122
| | | | | | | | | | | | | | | Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com> Signed-off-by: Michal Simek <monstr@monstr.eu>
| * | microblaze: Updated CPU version and FPGA family codes in PVRJohn Williams2009-09-221-0/+3
| | | | | | | | | | | | | | | Signed-off-by: John Williams <john.williams@petalogix.com> Signed-off-by: Michal Simek <monstr@monstr.eu>
| * | microblaze: Generate correct signal and siginfo for integer div-by-zeroMichal Simek2009-09-221-1/+1
| | | | | | | | | | | | Signed-off-by: John Williams <john.williams@petalogix.com>
| * | microblaze: Don't be noisy when userspace causes hardware exceptionsMichal Simek2009-09-221-11/+20
| | | | | | | | | | | | Signed-off-by: Michal Simek <monstr@monstr.eu>
| * | microblaze: Remove ipc.h file which points to non-existing asm-generic fileMichal Simek2009-09-221-1/+0
| | | | | | | | | | | | Signed-off-by: Michal Simek <monstr@monstr.eu>
| * | microblaze: Clear sticky FSR register after generating exception signalsJohn Williams2009-09-221-0/+2
| | | | | | | | | | | | | | | | | | | | | FSR is sticky, so after the userspace exception/signal generation, clear it ready for next time. Signed-off-by: John Williams <john.williams@petalogix.com>
| * | microblaze: Ensure CPU usermode is set on new userspace processesJohn Williams2009-09-221-0/+1
| | | | | | | | | | | | Signed-off-by: John Williams <john.williams@petalogix.com>
| * | microblaze: Use correct kbuild variable KBUILD_CFLAGSJohn Williams2009-09-221-2/+2
| | | | | | | | | | | | | | | | | | Fixes the bug introduced in 9552158573f847aa429334bb97995bb290bb4b0d Signed-off-by: John Williams <john.williams@petalogix.com>
| * | microblaze: Save and restore msr in hw exceptionMichal Simek2009-09-221-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I thought that this part of code could be removed because just save and restore MSR but any code can't change it. But seems to that any part of code works with this information. This patch solved problem with allocation. Signed-off-by: Michal Simek <monstr@monstr.eu>
| * | microblaze: Add architectural support for USB EHCI host controllersJulie Zhu2009-09-223-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add architectural support for USB EHCI host controllers. It has been tested using the USB EHCI host controller from Xilinx Inc., using both High Speed devices and Full Speed devices. Signed-off-by: Julie Zhu <julie.zhu@xilinx.com> Signed-off-by: Michal Simek <monstr@monstr.eu>
| * | microblaze: Implement include/asm/syscall.h.Michal Simek2009-09-211-0/+99
| | | | | | | | | | | | | | | Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com> Signed-off-by: Michal Simek <monstr@monstr.eu>
| * | microblaze: Improve checking mechanism for MSR instructionMichal Simek2009-09-211-8/+5
| | | | | | | | | | | | | | | | | | | | | It is more safe to use clear instead of msrset. We save some instructions too. Signed-off-by: Michal Simek <monstr@monstr.eu>
| * | microblaze: Add checking mechanism for MSR instructionMichal Simek2009-09-213-4/+27
| | | | | | | | | | | | | | | | | | | | | It was necessary to use fourth parameter(r8) in early_printk to show messages on console. Signed-off-by: Michal Simek <monstr@monstr.eu>
| * | microblaze: Cleanup linker script using new linker script macros.Tim Abbott2009-09-211-31/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I wasn't able to further clean up the linker script using the INIT_DATA_SECTION macro because of the FIXME comment for the .init.ramfs section; when that is resolved we should convert microblaze to use INIT_DATA_SECTION. Signed-off-by: Tim Abbott <tabbott@ksplice.com> Cc: Michal Simek <monstr@monstr.eu> Cc: microblaze-uclinux@itee.uq.edu.au Cc: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Michal Simek <monstr@monstr.eu>
| * | microblaze: Enable GCOV_PROFILE_ALLMichal Simek2009-09-211-1/+1
| | | | | | | | | | | | Signed-off-by: Michal Simek <monstr@monstr.eu>
| * | gcov: Fix DEBUG_FS symbolMichal Simek2009-09-211-1/+1
| | | | | | | | | | | | Signed-off-by: Michal Simek <monstr@monstr.eu>
| * | mtd: Enable Open Firmware initialisation of MTD devices and maps for MicroBlazeJohn Williams2009-09-212-2/+2
| | | | | | | | | | | | Signed-off-by: Michal Simek <monstr@monstr.eu>
* | | Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linusLinus Torvalds2009-09-243-18/+165
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus: module: don't call percpu_modfree on NULL pointer. module: fix memory leak when load fails after srcversion/version allocated module: preferred way to use MODULE_AUTHOR param: allow whitespace as kernel parameter separator module: reduce string table for loaded modules (v2) module: reduce symbol table for loaded modules (v2)
| * | | module: don't call percpu_modfree on NULL pointer.Rusty Russell2009-09-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The general one handles NULL, the static obsolescent (CONFIG_HAVE_LEGACY_PER_CPU_AREA) one in module.c doesn't; Eric's commit 720eba31 assumed it did, and various frobbings since then kept that assumption. All other callers in module.c all protect it with an if; this effectively does the same as free_init is only goto if we fail percpu_modalloc(). Reported-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Cc: Eric Dumazet <dada1@cosmosbay.com> Cc: Masami Hiramatsu <mhiramat@redhat.com> Cc: Américo Wang <xiyou.wangcong@gmail.com> Tested-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>
| * | | module: fix memory leak when load fails after srcversion/version allocatedRusty Russell2009-09-251-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Normally the twisty paths of sysfs will free the attributes, but not if we fail before we hook it into sysfs (which is the last thing we do in load_module). (This sysfs code is a turd, no doubt there are other issues lurking too). Reported-by: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Cc: Catalin Marinas <catalin.marinas@arm.com> Tested-by: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
| * | | module: preferred way to use MODULE_AUTHORJohannes Berg2009-09-251-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For the longest time now we've been using multiple MODULE_AUTHOR() statements when a module has more than one author, but the comment here disagrees. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Cc: Jiri Kosina <jkosina@suse.cz> Cc: Luciano Coelho <luciano.coelho@nokia.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
| * | | param: allow whitespace as kernel parameter separatorPeter Oberparleiter2009-09-251-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some boot mechanisms require that kernel parameters are stored in a separate file which is loaded to memory without further processing (e.g. the "Load from FTP" method on s390). When such a file contains newline characters, the kernel parameter preceding the newline might not be correctly parsed (due to the newline being stuck to the end of the actual parameter value) which can lead to boot failures. This patch improves kernel command line usability in such a situation by allowing generic whitespace characters as separators between kernel parameters. Signed-off-by: Peter Oberparleiter <oberpar@linux.vnet.ibm.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
| * | | module: reduce string table for loaded modules (v2)Jan Beulich2009-09-252-13/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also remove all parts of the string table (referenced by the symbol table) that are not needed for kallsyms use (i.e. which were only referenced by symbols discarded by the previous patch, or not referenced at all for whatever reason). Signed-off-by: Jan Beulich <jbeulich@novell.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
| * | | module: reduce symbol table for loaded modules (v2)Jan Beulich2009-09-252-7/+94
| | |/ | |/| | | | | | | | | | | | | | | | | | | Discard all symbols not interesting for kallsyms use: absolute, section, and in the common case (!KALLSYMS_ALL) data ones. Signed-off-by: Jan Beulich <jbeulich@novell.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* | | Merge branch 'for-linus' of ↵Linus Torvalds2009-09-2431-1981/+2740
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable: (42 commits) Btrfs: hash the btree inode during fill_super Btrfs: relocate file extents in clusters Btrfs: don't rename file into dummy directory Btrfs: check size of inode backref before adding hardlink Btrfs: fix releasepage to avoid unlocking extents we haven't locked Btrfs: Fix test_range_bit for whole file extents Btrfs: fix errors handling cached state in set/clear_extent_bit Btrfs: fix early enospc during balancing Btrfs: deal with NULL space info Btrfs: account for space used by the super mirrors Btrfs: fix extent entry threshold calculation Btrfs: remove dead code Btrfs: fix bitmap size tracking Btrfs: don't keep retrying a block group if we fail to allocate a cluster Btrfs: make balance code choose more wisely when relocating Btrfs: fix arithmetic error in clone ioctl Btrfs: add snapshot/subvolume destroy ioctl Btrfs: change how subvolumes are organized Btrfs: do not reuse objectid of deleted snapshot/subvol Btrfs: speed up snapshot dropping ...
OpenPOWER on IntegriCloud