jbd2: optimize jbd2_journal_force_commit

Current implementation of jbd2_journal_force_commit() is suboptimal because
result in empty and useless commits. But callers just want to force and wait
any unfinished commits. We already have jbd2_journal_force_commit_nested()
which does exactly what we want, except we are guaranteed that we do not hold
journal transaction open.

Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
timer: optimize apply_slack()

__fls(mask) is equivalent to find_last_bit(&mask, BITS_PER_LONG), but cheaper.
find_last_bit was showing up high on the list when I was profiling for stalls
on icache misses on a system with very small cache size (MIPS).

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
ARM: add support for bit sliced AES using NEON instructions

Bit sliced AES gives around 45% speedup on Cortex-A15 for encryption
and around 25% for decryption. This implementation of the AES algorithm
does not rely on any lookup tables so it is believed to be invulnerable
to cache timing attacks.

This algorithm processes up to 8 blocks in parallel in constant time.
This
means that it is not usable by chaining modes that are strictly
sequential
in nature, such as CBC encryption. CBC decryption, however, can benefit
from
this implementation and runs about 25% faster. The other chaining modes
implemented in this module, XTS and CTR, can execute fully in parallel
in
both directions.

The core code has been adopted from the OpenSSL project (in
collaboration
with the original author, on cc). For ease of maintenance, this version
is
identical to the upstream OpenSSL code, i.e., all modifications that
were
required to make it suitable for inclusion into the kernel have been
made
upstream. The original can be found here:

http://git.openssl.org/gitweb/?p=openssl.git;a=commit;h=6f6a6130

Signed-off-by: xperiafan13 <mundorap2010@gmail.com>

ShockGensMOD Kenrnel