aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2009-12-14microblaze: support U-BOOT image formatMichal Simek1-2/+13
Two version are generated. linux.bin.ub which is created from linux.bin file and simpleImage.<dts>.ub which is created from stripped simpleImage.<dts> file Load address and entry point is for microblaze first instruction which is CONFIG_KERNEL_BASE_ADDR variable. There is possible for simpleImage format parse _start symbol too. simpleImage.<dts> is still stripped elf file I cleared simpleImage.<dts>.unstrip file because there are so big. Signed-off-by: Michal Simek <[email protected]>
2009-12-14microblaze: Ptrace notifying from signal codeMichal Simek1-0/+4
After the signal frame is set up on the userspace stack, ptrace() should be given an opportunity to single-step into the signal handler FRV, Blackfin, mn10300 and UM. Worth to look at that patches. Signed-off-by: Michal Simek <[email protected]>
2009-12-14microblaze: Extend cpuinfo for support write-back cachesMichal Simek3-2/+8
There is missing checking agains PVR but this is not important for now. There are some missing checking too. Signed-off-by: Michal Simek <[email protected]>
2009-12-14microblaze: Fix cache_line_lenghtMichal Simek4-20/+20
We used cache_line as cache_line_lenght. For this reason we did cache flushing 4 times longer than was necessary. Signed-off-by: Michal Simek <[email protected]>
2009-12-14microblaze: Detect new 7.20.d versionMichal Simek1-0/+1
Signed-off-by: Michal Simek <[email protected]>
2009-12-14microblaze: Support both levels for resetMichal Simek1-4/+6
Till this patch reset always perform writen to 1. Now we can use negative logic and perform reset write to 0. It is opposite level than is currently read from that pin Signed-off-by: Michal Simek <[email protected]>
2009-12-14microblaze: Fix announce message for reset gpioMichal Simek1-1/+1
I had to change message for gpio-reset because I always not to see it. Prefix RESET is big and visible. Signed-off-by: Michal Simek <[email protected]>
2009-12-14microblaze: Remove saving and restoring before calling signal codeMichal Simek1-4/+0
Saving is done in SAVE_STATE macros that's why another save discard previous saved value. This change has no effect to normal programs because they ends in any exception and they are killed. On the other side has effect on debugging. Signed-off-by: Michal Simek <[email protected]>
2009-12-14microblaze: Fix pfn_valid() for noMMU[email protected]1-1/+2
Configuring DEBUG_SLAB causes a noMMU kernel to die during initialization with an invalid virtual address panic in kfree_debugcheck(). The panic is due to an improper definition of pfn_valid(). Signed-off-by: Steven J. Magnani <[email protected]> Signed-off-by: Michal Simek <[email protected]>
2009-12-14microblaze: ftrace: Add dynamic function graph tracerMichal Simek2-0/+34
This patch add support for dynamic function graph tracer. There is one my expactation that I can do flush_icache after all code modification. On microblaze is this safer than do flush for every entry. For icache is used name flush but correct should be invalidation - this will be fix in upcomming new cache implementaion and WB support. Signed-off-by: Michal Simek <[email protected]>
2009-12-14microblaze: ftrace: add function graph supportMichal Simek3-0/+100
For more information look at Documentation/trace folder. Signed-off-by: Michal Simek <[email protected]>
2009-12-14microblaze: ftrace: Add dynamic trace supportMichal Simek6-1/+181
With dynamic function tracer, by default, _mcount is defined as an "empty" function, it returns directly without any more action. When enabling it in user-space, it will jump to a real tracing function(ftrace_caller), and do the real job for us. Differ from the static function tracer, dynamic function tracer provides two functions ftrace_make_call()/ftrace_make_nop() to enable/disable the tracing of some indicated kernel functions(set_ftrace_filter). In the kernel version, there is only one "_mcount" string for every kernel function, so, we just need to match this one in mcount_regex of scripts/recordmcount.pl. For more information please look at code and Documentation/trace folder. Steven ACK that scripts/recordmcount.pl part. Acked-by: Steven Rostedt <[email protected]> Signed-off-by: Michal Simek <[email protected]>
2009-12-14microblaze: ftrace: enable HAVE_FUNCTION_TRACE_MCOUNT_TESTMichal Simek2-0/+6
Implement MCOUNT_TEST in asm code - it is faster than use generic code Signed-off-by: Michal Simek <[email protected]>
2009-12-14microblaze: ftrace: add static function tracerMichal Simek6-0/+140
If -pg of gcc is enabled with CONFIG_FUNCTION_TRACER=y. a calling to _mcount will be inserted into each kernel function. so, there is a possibility to trace the kernel functions in _mcount. This patch add the specific _mcount support for static function tracing. by default, ftrace_trace_function is initialized as ftrace_stub(an empty function), so, the default _mcount will introduce very little overhead. after enabling ftrace in user-space, it will jump to a real tracing function and do static function tracing for us. Commit message from Wu Zhangjin <[email protected]> Signed-off-by: Michal Simek <[email protected]>
2009-12-14microblaze: Add TRACE_IRQFLAGS_SUPPORTMichal Simek3-63/+54
There are just two major changes Renamed local_irq functions to raw_local_irq in irq.c. Added TRACE_IRQFLAGS_SUPPORT to Kconfig.debug. Look at Documentation/irqflags-tracing.txt Signed-off-by: Michal Simek <[email protected]>
2009-12-14microblaze: preliminary enabling for LATENCYTOP support in KconfigMichal Simek1-0/+3
Signed-off-by: Michal Simek <[email protected]>
2009-12-14microblaze: Lockdep supportMichal Simek3-0/+7
Microblaze needs to do lock_init very soon because MMU init calls lock functions. Here is the explanation from Peter Zijlstra why we have to enable __ARCH_WANTS_INTERRUPTS_ON_CTSW. "So we schedule while holding rq->lock (for obvious reasons), but since lockdep tracks held locks per tasks, we need to transfer the held state from the prev to the next task. We do this by explicity calling spin_release(&rq->lock) in context_switch() right before switch_to(), and calling spin_acquire(&rq->lock) in finish_task_switch()->finish_lock_switch(). Now, for some reason lockdep thinks that interrupts got enabled over the context switch (git grep __ARCH_WANTS_INTERRUPTS_ON_CTSW arch/microblaze doesn't seem to turn up anything). Clearly trying to acquire the rq->lock with interrupts enabled is a bad idea and lockdep warns you about this." Signed-off-by: Michal Simek <[email protected]>
2009-12-14microblaze: Register timecounter/cyclecounterMichal Simek1-0/+28
It is the same counter as we use as free running one. I would like to use it for ftrace. Signed-off-by: Michal Simek <[email protected]>
2009-12-14microblaze: Stack trace supportMichal Simek3-0/+69
This is working implemetation but the problem is that Microblaze misses frame pointer that's why is there big loop which trace and show all addresses which are in text. It shows addresses which are in registers, etc. This is problem and this is the reason why all Microblaze traces are wrong. There is an option to do hacks and trace the kernel code but this is too complicated. Signed-off-by: Michal Simek <[email protected]>
2009-12-14microblaze: Add IRQENTRY_TEXT to ldsMichal Simek1-2/+3
It is important for ftrace irqsoff support Signed-off-by: Michal Simek <[email protected]>
2009-12-14microblaze: __init_begin symbol must be alignedMichal Simek1-0/+1
The problem was that free_initmem pass to free_initrd_mem got bad aligned __init_begin symbol and free_initrd_mem don't care about __init_end but take PAGE_SIZE instead. Here is behavior in kernel bootlog. ramdisk_execute_command from (init/main.c) was rewrite Freeing unused kernel memory: 6224k freed Failed to execute ��������������{��� Failed to execute ��������������{����. Attempting defaults... Mounting proc: Mounting var: Signed-off-by: Michal Simek <[email protected]>
2009-12-14microblaze: GPIO reset supportMichal Simek6-30/+171
Signed-off-by: Michal Simek <[email protected]>
2009-12-14md: add 'recovery_start' per-device sysfs attributeDan Williams2-5/+63
Enable external metadata arrays to manage rebuild checkpointing via a md/dev-XXX/recovery_start attribute which reflects rdev->recovery_offset Also update resync_start_store to allow 'none' to be written, for consistency. Signed-off-by: Dan Williams <[email protected]> Signed-off-by: NeilBrown <[email protected]>
2009-12-14md: rcu_read_lock() walk of mddev->disks in md_do_sync()Dan Williams1-2/+6
Other walks of this list are either under rcu_read_lock() or the list mutation lock (mddev_lock()). This protects against the improbable case of a disk being removed from the array at the start of md_do_sync(). Signed-off-by: Dan Williams <[email protected]>
2009-12-14md: integrate spares into array at earliest opportunity.NeilBrown1-7/+6
As v1.x metadata can record that a member of the array is not completely recovered, it make sense to record that a spare has become a regular member of the array at the earliest opportunity. So remove the tests on "recovery_offset > 0" in super_1_sync as they really aren't needed, and schedule a metadata update immediately after adding spares to a degraded array. This means that if a crash happens immediately after a recovery starts, the new device will be included in the array and recovery will continue from wherever it was up to. Previously this didn't happen unless recovery was at least 1/16 of the way through. Signed-off-by: NeilBrown <[email protected]>
2009-12-14md: move compat_ioctl handling into md.cArnd Bergmann2-18/+23
The RAID ioctls are only implemented in md.c, so the handling for them should also be moved there from fs/compat_ioctl.c. Signed-off-by: Arnd Bergmann <[email protected]> Cc: Neil Brown <[email protected]> Cc: Andre Noll <[email protected]> Cc: [email protected] Signed-off-by: NeilBrown <[email protected]>
2009-12-14md: revise Kconfig help for MD_MULTIPATHNeilBrown1-5/+4
Make it clear in the config message that MD_MULTIPATH is not under active development. Cc: Oren Held <[email protected]> Signed-off-by: NeilBrown <[email protected]>
2009-12-14md: add MODULE_DESCRIPTION for all md related modules.NeilBrown9-0/+9
Suggested by Oren Held <[email protected]> Signed-off-by: NeilBrown <[email protected]>
2009-12-14raid: improve MD/raid10 handling of correctable read errors.Robert Becker3-0/+112
We've noticed severe lasting performance degradation of our raid arrays when we have drives that yield large amounts of media errors. The raid10 module will queue each failed read for retry, and also will attempt call fix_read_error() to perform the read recovery. Read recovery is performed while the array is frozen, so repeated recovery attempts can degrade the performance of the array for extended periods of time. With this patch I propose adding a per md device max number of corrected read attempts. Each rdev will maintain a count of read correction attempts in the rdev->read_errors field (not used currently for raid10). When we enter fix_read_error() we'll check to see when the last read error occurred, and divide the read error count by 2 for every hour since the last read error. If at that point our read error count exceeds the read error threshold, we'll fail the raid device. In addition in this patch I add sysfs nodes (get/set) for the per md max_read_errors attribute, the rdev->read_errors attribute, and added some printk's to indicate when fix_read_error fails to repair an rdev. For testing I used debugfs->fail_make_request to inject IO errors to the rdev while doing IO to the raid array. Signed-off-by: Robert Becker <[email protected]> Signed-off-by: NeilBrown <[email protected]>
2009-12-14md/raid10: print more useful messages on device failure.Robert Becker1-3/+29
When we get a read error on a device in a RAID10, and attempting to repair the error fails, print more useful messages about why it failed. Signed-off-by: Robert Becker <[email protected]> Signed-off-by: NeilBrown <[email protected]>
2009-12-14md/bitmap: update dirty flag when bitmap bits are explicitly set.NeilBrown1-0/+6
There is a sysfs file which allows bits in the write-intent bitmap to be explicit set - indicating that the block is thought to be 'dirty'. When this happens we should really set recovery_cp backwards to include the block to reflect this dirtiness. In particular, a 'resync' process will refuse to start if recovery_cp is beyond the end of the array, so this is needed to allow a resync to be triggered. Signed-off-by: NeilBrown <[email protected]>
2009-12-14md: Support write-intent bitmaps with externally managed metadata.NeilBrown4-33/+137
In this case, the metadata needs to not be in the same sector as the bitmap. md will not read/write any bitmap metadata. Config must be done via sysfs and when a recovery makes the array non-degraded again, writing 'true' to 'bitmap/can_clear' will allow bits in the bitmap to be cleared again. Signed-off-by: NeilBrown <[email protected]>
2009-12-14md/bitmap: move setting of daemon_lastrun out of bitmap_read_sbNeilBrown1-1/+1
Setting daemon_lastrun really has nothing to do with reading the bitmap superblock, it just happens to be needed at the same time. bitmap_read_sb is about to become options, so move that code out to after the call to bitmap_read_sb. Signed-off-by: NeilBrown <[email protected]>
2009-12-14md: support updating bitmap parameters via sysfs.NeilBrown4-2/+240
A new attribute directory 'bitmap' in 'md' is created which contains files for configuring the bitmap. 'location' identifies where the bitmap is, either 'none', or 'file' or 'sector offset from metadata'. Writing 'location' can create or remove a bitmap. Adding a 'file' bitmap this way is not yet supported. 'chunksize' and 'time_base' must be set before 'location' can be set. 'chunksize' can be set before creating a bitmap, but is currently always over-ridden by the bitmap superblock. 'time_base' and 'backlog' can be updated at any time. Signed-off-by: NeilBrown <[email protected]> Reviewed-by: Andre Noll <[email protected]>
2009-12-14md: factor out parsing of fixed-point numbersNeilBrown2-23/+44
safe_delay_store can parse fixed point numbers (for fractions of a second). We will want to do that for another sysfs file soon, so factor out the code. Signed-off-by: NeilBrown <[email protected]>
2009-12-14md: support bitmap offset appropriate for external-metadata arrays.NeilBrown2-5/+15
For md arrays were metadata is managed externally, the kernel does not know about a superblock so the superblock offset is 0. If we want to have a write-intent-bitmap near the end of the devices of such an array, we should support sector_t sized offset. We need offset be possibly negative for when the bitmap is before the metadata, so use loff_t instead. Also add sanity check that bitmap does not overlap with data. Signed-off-by: NeilBrown <[email protected]>
2009-12-14md: remove needless setting of thread->timeout in raid10_quiesceNeilBrown2-7/+1
As bitmap_create and bitmap_destroy already set thread->timeout as appropriate, there is no need to do it in raid10_quiesce. There is a possible need to wake the thread after the timeout has been set low, but it is better to do that where the timeout is actually set low, in bitmap_create. Signed-off-by: NeilBrown <[email protected]>
2009-12-14md: change daemon_sleep to be in 'jiffies' rather than 'seconds'.NeilBrown2-8/+8
This removes a lot of multiplications by HZ. Signed-off-by: NeilBrown <[email protected]>
2009-12-14md: move offset, daemon_sleep and chunksize out of bitmap structureNeilBrown6-32/+40
... and into bitmap_info. These are all configuration parameters that need to be set before the bitmap is created. Signed-off-by: NeilBrown <[email protected]>
2009-12-14md: collect bitmap-specific fields into one structure.NeilBrown3-56/+63
In preparation for making bitmap fields configurable via sysfs, start tidying up by making a single structure to contain the configuration fields. Signed-off-by: NeilBrown <[email protected]>
2009-12-14md/raid1: add takeover support for raid5->raid1NeilBrown2-76/+120
A 2-device raid5 array can now be converted to raid1. Signed-off-by: NeilBrown <[email protected]>
2009-12-14md: add honouring of suspend_{lo,hi} to raid1.NeilBrown1-0/+22
This will allow us to stop writeout to portions of the array while they are resynced by someone else - e.g. another node in a cluster. Signed-off-by: NeilBrown <[email protected]>
2009-12-14md/raid5: don't complete make_request on barrier until writes are scheduledNeilBrown1-12/+39
The post-barrier-flush is sent by md as soon as make_request on the barrier write completes. For raid5, the data might not be in the per-device queues yet. So for barrier requests, wait for any pre-reading to be done so that the request will be in the per-device queues. We use the 'preread_active' count to check that nothing is still in the preread phase, and delay the decrement of this count until after write requests have been submitted to the underlying devices. Signed-off-by: NeilBrown <[email protected]>
2009-12-14md: support barrier requests on all personalities.NeilBrown7-7/+126
Previously barriers were only supported on RAID1. This is because other levels requires synchronisation across all devices and so needed a different approach. Here is that approach. When a barrier arrives, we send a zero-length barrier to every active device. When that completes - and if the original request was not empty - we submit the barrier request itself (with the barrier flag cleared) and then submit a fresh load of zero length barriers. The barrier request itself is asynchronous, but any subsequent request will block until the barrier completes. The reason for clearing the barrier flag is that a barrier request is allowed to fail. If we pass a non-empty barrier through a striping raid level it is conceivable that part of it could succeed and part could fail. That would be way too hard to deal with. So if the first run of zero length barriers succeed, we assume all is sufficiently well that we send the request and ignore errors in the second run of barriers. RAID5 needs extra care as write requests may not have been submitted to the underlying devices yet. So we flush the stripe cache before proceeding with the barrier. Note that the second set of zero-length barriers are submitted immediately after the original request is submitted. Thus when a personality finds mddev->barrier to be set during make_request, it should not return from make_request until the corresponding per-device request(s) have been queued. That will be done in later patches. Signed-off-by: NeilBrown <[email protected]> Reviewed-by: Andre Noll <[email protected]>
2009-12-14md: don't reset curr_resync_completed after an interrupted resyncNeilBrown1-1/+3
If a resync/recovery/check/repair is interrupted for some reason, it can be useful to know exactly where it got up to. So in that case, do not clear curr_resync_completed. Initialise it when starting a resync/recovery/... instead. Signed-off-by: NeilBrown <[email protected]>
2009-12-14md: adjust resync_min usefully when resync aborts.NeilBrown1-3/+7
When a 'check' or 'repair' finished we should clear resync_min so that a future check/repair will cover the whole array (by default). However if it is interrupted, we should update resync_min to where we got up to, so that when the check/repair continues it just does the remainder of the array. Signed-off-by: NeilBrown <[email protected]>
2009-12-14md: remove sparse warning:symbol XXX was not declared.NeilBrown2-19/+19
Signed-off-by: NeilBrown <[email protected]>
2009-12-14md/raid5: remove some sparse warnings.NeilBrown1-2/+1
qd_idx is previously declared and given exactly the same value! Signed-off-by: NeilBrown <[email protected]>
2009-12-14md/bitmap: protect against bitmap removal while being updated.NeilBrown4-8/+22
A write intent bitmap can be removed from an array while the array is active. When this happens, all IO is suspended and flushed before the bitmap is removed. However it is possible that bitmap_daemon_work is still running to clear old bits from the bitmap. If it is, it can dereference the bitmap after it has been freed. So introduce a new mutex to protect bitmap_daemon_work and get it before destroying a bitmap. This is suitable for any current -stable kernel. Signed-off-by: NeilBrown <[email protected]> Cc: [email protected]
2009-12-14mfd: Add twl6030 regulator subdevicesRajendra Nayak2-7/+60
This patch adds initial support for creating twl6030 PMIC specific voltage regulators in the twl mfd driver. Board specific regulator configurations will have to be passed from respective board files. Signed-off-by: Rajendra Nayak <[email protected]> Signed-off-by: Balaji T K <[email protected]> Acked-by: Mark Brown <[email protected]> Reviewed-by: Tony Lindgren <[email protected]> Signed-off-by: Samuel Ortiz <[email protected]>