Backport "soreuseport: UDP/IPv4 implementation"

The commit ba418fa357a7b3c9d477f4706c6c7c96ddbd1360 on net-next.git
Backport "soreuseport: TCP/IPv6 implementation"

The commit 5ba24953e9707387cce87b07f0d5fbdd03c5c11b on net-next.git
Backport "soreuseport: UDP/IPv6 implementation"

The commit 72289b96c943757220ccc681fe2e22b46e21aced on net-next.git
Merge pull request #55 from Rover-Yu/master

backport the remaining part of SO_REUSEPORT features
config: add missing CONFIG_EXT4_FS_SUBTREE in kernel config file

After applied ext4 subtree id patch, we need to update kernel config
file to enable it.  But currently there is not CONFIG_EXT4_FS_SUBTREE
entry in kernel config file.  So fix it.

Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
mm: compaction: fix special case -1 order checks

Prevent division-by-zero panic when compaction was explicitely
requested through the procfs knob: /proc/sys/vm/compact_memory.

Backport from updtream commits 82478fb7 and 3957c776.

Signed-off-by: Sha Zhengju <handai.szj@taobao.com>
Merge pull request #56 from gnehzuil/enable-ext4-subtree

config: add missing CONFIG_EXT4_FS_SUBTREE in kernel config file
mm: compaction: add compaction sysctl

Add a new sysctl to enable/disable memory compaction and
the default is enabled.

Signed-off-by: Sha Zhengju <handai.szj@taobao.com>
Merge pull request #58 from shazj99/compaction

Memory compaction enhancement
Backport "mm: export generic_pipe_buf_*() to modules".

This patch prepfares for LTTng kmods support, the information
of origial patch are:

   commit f0d902f497ee2fb747086322a31925c7fb351d7a
   Author: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
   Date:   Sat Sep 1 17:47:36 2012 -0700

      mm: export generic_pipe_buf_*() to modules

      Backport for 2.6.32.x to 2.6.34.x of commits:

      commit 51921cb746f56983db5a373ca68deb2b0d3ddf01
      Author: Miklos Szeredi <mszeredi@suse.cz>
      Date:   Wed May 26 08:44:22 2010 +0200

         mm: export generic_pipe_buf_*() to modules

         This is needed by fuse device code which wants to create pipe
         buffers.

    Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
    Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>

Backport-by: Ren Zhen Yu <zhenyu.ren@aliyun-inc.com>
Backport "tracing: Let tracepoints have data passed to  tracepoint callbacks"

This prepare for LTTng kmods support. Totally, this patch backports v2.6.35
tracepoint ABI/API to taobao kernel, which is the reason of odd names like
kabi_2635_tracepoint_*().

The information of original commit is:

    commit 2c2a566b64b4254c530fb0c2222b30e8a739bac9
    Author: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
    Date:   Sat Sep 1 17:45:09 2012 -0700

        Backport of commit 38516ab59fbc5b3bb278cf5e1fe2867c70cff32e for
2.6.32.x and 2.6.33.x. Keeping kABI compatibility.

        Signed-off-by: Mathieu Desnoyers
<mathieu.desnoyers@efficios.com>

Backport-by: Ren Zhen Yu <zhenyu.ren@aliyun-inc.com>
acrida: fix memory leak

We use find_get_page() to replace my_get_page() when backing acridafs from
kuafu into ali_kernel, but forget to put_page() after get it.

Signed-off-by: Robin Dong <sanbai@taobao.com>
Merge pull request #59 from RobinDong/dev

acrida: fix memory leak
Merge pull request #60 from Rover-Yu/master

backport v2.6.35 new tracepoint API with ABI compatiblity
Unregister ipmi_pnp_driver if we can't find ipmi_si.

Unregister ipmi_pnp_driver if we can't find ipmi_si.

Signed-off-by: Tao Ma <boyu.mt@taobao.com>
Merge pull request #61 from taoma-tm/ipmi_fix

Unregister ipmi_pnp_driver if we can't find ipmi_si.
fadvise: only initiate writeback for specified range with FADV_DONTNEED

Previously POSIX_FADV_DONTNEED would start writeback for the entire file
when the bdi was not write congested.  This negatively impacts performance
if the file contains dirty pages outside of the requested range.  This
change uses __filemap_fdatawrite_range() to only initiate writeback for
the requested range.

[Note from Zheng Liu]
We backport this patch because we met a hang in RDS.  In MySQL 5.5 it
calls fadvise64 with _DONTNEED flag to evict the page cache against an
inode in order to simulate an effect like direct IO.  But in 2.6.32
kernel we will call filemap_flush() to flush all dirty pages.  So it
cause that the kernel needs to write out a huge number of dirty pages.
Meanwhile due to using blk-throttle the write iops is limited to a
very low level (e.g. 600 iops).  That means that the kernel needs to
take a lot of time to write out this data.  Thus, it is easy to cause
the system hang.

Reference: ad8a1b558e6c76fb53901956d3c8f29b82a4ccfa
Patch-in-mainline: v3.2-4893-gad8a1b558e6c
Signed-off-by: Shawn Bohrer <sbohrer@rgmadvisors.com>
Acked-by: Johannes Weiner <jweiner@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
Merge pull request #62 from gnehzuil/fadvise-for-specified-range

fadvise: only initiate writeback for specified range with FADV_DONTNEED