arch: arm: lib: optimize memcpy for cortex-A15

The LDRD/STRD instruction is faster than LDM/STM on Cortex-A15.
Also optimized preload cache size for Cortex-A15.

Added USE_LDRDSTRD_OVER_LDMSTM to turn on LDRD/STRD optimization.
Added ARM_PLD_SIZE, default 32. Should set to 64 for Cortex-A15.

Bug 1185248

Signed-off-by: Chandler Zhang <chazhang@nvidia.com>
Reviewed-by: Krishna Reddy <vdumpa@nvidia.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
kernel/smp.c: use '|=' for csd_lock

csd_lock() uses assignment to data->flags rather than |=.  That is not
buggy at present because only one bit (CSD_FLAG_LOCK) is defined in
call_single_data.flags.

But it will become buggy if we later add another flag, so fix it now.

Signed-off-by: liguang <lig.fnst@cn.fujitsu.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
kernel/smp.c: cleanups

We sometimes use "struct call_single_data *data" and sometimes "struct
call_single_data *csd".  Use "csd" consistently.

We sometimes use "struct call_function_data *data" and sometimes "struct
call_function_data *cfd".  Use "cfd" consistently.

Also, avoid some 80-col layout tricks.

Cc: Ingo Molnar <mingo@elte.hu>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Shaohua Li <shli@fusionio.com>
Cc: Shaohua Li <shli@kernel.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
sched: defining relaxed version of idle_cpu (squashed
 commit!)

Defining relaxed version of idle_cpu, which uses
macro cpu_relaxed_read_long, that will be used to
enhance power efficiency.

 smp: enhance power efficiency

Here we are trying to reduce power usage through the
use of macros cpu_relaxed_read_short and cpu_relaxed_read.
https://github.com/neobuddy89/hammerhead_kernel_caf/commit/516dadb6544d7f11fd47b9a899786b521e95200c

 arm: atomic.h: defined relaxed atomic_read

Defining relaxed version of atomic read as cpu_relaxed_read_atomic.
https://github.com/neobuddy89/hammerhead_kernel_caf/commit/7aa0038ff5628e60004df7a4c03a855903cfde9b

 arm: asm: relaxed.h: defined relaxed.h

Defined a new header file relaxed.h, which uses generic
definitions of some macros used by arm64 for improving
power efficiency.
https://github.com/neobuddy89/hammerhead_kernel_caf/commit/66abb73bc4294e13c47465f99aed849c02d5e646

 cpu: enhance power efficiency

Here we are trying to reduce power usage through the
use of macros cpu_relaxed_read and relaxed version of
idle_cpu().
https://github.com/neobuddy89/hammerhead_kernel_caf/commit/c45d193c8c8437933f42cf8c518a38e95f217bbe

 asm-generic: relaxed.h: defined relaxed.h

Defined a new header file relaxed.h, which contains basic
macros which will be used for improving power efficiency for
arm64.
https://github.com/neobuddy89/hammerhead_kernel_caf/commit/a25855c38048a35d62f889ee73ef38428243cccd

 llist: defining relaxed version of llist_empty

Defining relaxed version of llist_empty as llist_empty_relaxed,
which will be used for power-optimization.
https://github.com/neobuddy89/hammerhead_kernel_caf/commit/baba912832f3d06497bdb99ec767639615ddf743

 seqlock: enhance power efficiency

Trying to improve the power efficiency in linux/seqlock.h,
using macros cpu_relaxed_read and cpu_read_relax.
https://github.com/neobuddy89/hammerhead_kernel_caf/commit/4968bde65374b1f36be21216ea7b472db589865f

 hrtimer: enhance power efficiency

Defining relaxed version of hrtimer_callback_running(),
which will be used to improve power efficiency through
the use of macro cpu_relaxed_read_long.
https://github.com/neobuddy89/hammerhead_kernel_caf/commit/f0f0e9f68bb7fbb17644859cd8e5e90f3fc91fdb

asm-generic: processor.h: adding new header file

Defining a new header file and adding architecture
independent macros. Using these macros we are optimizing
power usage on ARM64.
https://android.googlesource.com/kernel/tegra.git/+/14ad62abbcc1b2a331ff08a2fb874e5eb3c17a01%5E!/include/asm-generic/processor.h

asm-generic: processor.h: remove redundant macros

Removing cpu_relaxed_read and cpu_relaxed_read_long macros from
processor.h, as these macros are defined in asm-generic/relaxed.h.
https://android.googlesource.com/kernel/tegra.git/+/9a2cf3cfffabaa6088c36ec635e2ecfb7aa168b8%5E!/include/asm-generic/processor.h

arm: including asm-generic/processor.h

Here we are including asm-generic/processor.h
because it has defined some generic macros which
can be used by any architecture for optimaztion
of power usage.
https://android.googlesource.com/kernel/tegra.git/+/05aba0419844a7261e5ed06f49dc99216ea70744%5E!/arch/arm/include/asm/processor.h

mutex: save power with better cpu_relax

Use cpu_relaxed_read and cpu_read_relax to allow more architectures to be able
to "relax" instead of busy spinning.
https://android.googlesource.com/kernel/tegra.git/+/1937ef6f9ce114ad8a9cac6a06e3dce8a1affae2%5E!/kernel/mutex.c

sched: Trying to reduce power usage

Using macros cpu_relaxed_read, cpu_relaxed_read_long and
cpu_read_relax in core.c to improve power efficiency.
https://android.googlesource.com/kernel/tegra.git/+/6e4ee00333a93fdf949c283cce0f0e948cbae08f%5E!/kernel/sched/core.c

bug 1440421

Signed-off-by: Sumit Singh <sumsingh@nvidia.com>
Reviewed-by: Sri Krishna Chowdary <schowdary@nvidia.com>
Reviewed-by: Alexander Van Brunt <avanbrunt@nvidia.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Config update.