Master Commit

- AD defconfig
- Increase VM_MAX_READAHEAD
- Tweaks for Responsiveness
- Make partitions mount by default as noatime
- Change compiler strings
- Arc Fusion 5.5 Patch

Change-Id: If4f46b1974b96658b2b83a1a0e7160e90f74d360
Tweaks

Change-Id: I10db45e2a894f8886587a227ff084b23b74b0f98
backport lowmemorykiller from CAF msm-3.4

this improves low memory behaviour greatly due to accounting for
lowmem_reserve as well as shmem pages.

Change-Id: I05aa3851572e98ae74d5f5d9d09f5af64986352b
msm: kgsl: Optimize page_alloc allocations

User memory needs to be zeroed out before it is sent to the user.
To do this, the kernel maps the page, memsets it to zero and then
unmaps it.  By virtue of mapping it, this forces us to flush the
dcache to ensure cache coherency between kernel and user mappings.
Originally, the page_alloc loop was using GFP_ZERO (which does a
map, memset, and unmap for each individual page) and then we were
additionally calling flush_dcache_page() for each page killing us
on performance.  It is far more efficient, especially for large
allocations (> 1MB), to allocate the pages without GFP_ZERO and
then to vmap the entire allocation, memset it to zero, flush the
cache and then unmap. This process is slightly slower for very
small allocations, but only by a few microseconds, and is well
within the margin of acceptability. In all, the new scheme is
faster than the default for all sizes greater than 16k, and is
almost 4X faster for 2MB and 4MB allocations which are common for
textures and very large buffer objects.

The downside is that if there isn't enough vmalloc room for the
allocation that we are forced to fallback to a slow page by
page memset/flush, but this should happen rarely (if at all) and
is only included for completeness.

Change-Id: If89051eb8a1413e87b3f4995336b3218e342f589
Disable CONFIG_CC_OPTIMIZE_FOR_SIZE

Change-Id: I23dd1b1572693603f9dda8c93e9f551d3b24d94e
GCC 4.8/4.9

Change-Id: I13f9dd39340676d1b204c144d5a83adeba1fb46b