1. 18 12月, 2012 4 次提交
  2. 16 12月, 2012 1 次提交
  3. 15 12月, 2012 3 次提交
    • S
      block: discard granularity might not be power of 2 · 8dd2cb7e
      Shaohua Li 提交于
      In MD raid case, discard granularity might not be power of 2, for example, a
      4-disk raid5 has 3*chunk_size discard granularity. Correct the calculation for
      such cases.
      Reported-by: NNeil Brown <neilb@suse.de>
      Signed-off-by: NShaohua Li <shli@fusionio.com>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      8dd2cb7e
    • E
      drm/exynos: add fimc ipp driver · 16102edb
      Eunchul Kim 提交于
      FIMC is stand for Fully Interfactive Mobile Camera and
      supports image scaler/rotator/crop/flip/csc and input/output DMA operations
      and also supports writeback and display output operations.
      
      This driver is registered to IPP subsystem framework to be used by user side
      and user can control the FIMC hardware through some interfaces of IPP subsystem
      framework.
      
      Changelog v6:
      - fix build warning.
      
      Changelog v1 ~ v5:
      - add comments, code fixups and cleanups.
      Signed-off-by: NEunchul Kim <chulspro.kim@samsung.com>
      Signed-off-by: NJinyoung Jeon <jy0.jeon@samsung.com>
      Signed-off-by: NInki Dae <inki.dae@samsung.com>
      Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com>
      16102edb
    • E
      drm/exynos: add ipp subsystem · cb471f14
      Eunchul Kim 提交于
      This patch adds Image Post Processing(IPP) support for exynos drm driver.
      
      IPP supports image scaler/rotator and input/output DMA operations
      using IPP subsystem framework to control FIMC, Rotator and GSC hardware
      and supports some user interfaces for user side.
      
      And each IPP-based drivers support Memory to Memory operations
      with various converting. And in case of FIMC hardware, it also supports
      Writeback and Display output operations through local path.
      
      Features:
      - Memory to Memory operation support.
      - Various pixel formats support.
      - Image scaling support.
      - Color Space Conversion support.
      - Image crop operation support.
      - Rotate operation support to 90, 180 or 270 degree.
      - Flip operation support to vertical, horizontal or both.
      - Writeback operation support to display blended image of FIMD fifo on screen
      
      A summary to IPP Subsystem operations:
      First of all, user should get property capabilities from IPP subsystem
      and set these properties to hardware registers for desired operations.
      The properties could be pixel format, position, rotation degree and
      flip operation.
      
      And next, user should set source and destination buffer data using
      DRM_EXYNOS_IPP_QUEUE_BUF ioctl command with gem handles to source and
      destinition buffers.
      
      And next, user can control user-desired hardware with desired operations
      such as play, stop, pause and resume controls.
      
      And finally, user can aware of dma operation completion and also get
      destination buffer that it contains user-desried result through dequeue
      command.
      
      IOCTL commands:
      - DRM_EXYNOS_IPP_GET_PROPERTY
        . get ipp driver capabilitis and id.
      - DRM_EXYNOS_IPP_SET_PROPERTY
        . set format, position, rotation, flip to source and destination buffers
      - DRM_EXYNOS_IPP_QUEUE_BUF
        . enqueue/dequeue buffer and make event list.
      - DRM_EXYNOS_IPP_CMD_CTRL
        . play/stop/pause/resume control.
      
      Event:
      - DRM_EXYNOS_IPP_EVENT
        . a event to notify dma operation completion to user side.
      
      Basic control flow:
      Open -> Get properties -> User choose desired IPP sub driver(FIMC, Rotator
      or GSCALER) -> Set Property -> Create gem handle -> Enqueue to source and
      destination buffers -> Command control(Play) -> Event is notified to User
      -> User gets destinition buffer complated -> (Enqueue to source and
      destination buffers -> Event is notified to User) * N -> Queue/Dequeue to
      source and destination buffers -> Command control(Stop) -> Free gem handle
      -> Close
      
      Changelog v1 ~ v5:
      - added comments, code fixups and cleanups.
      Signed-off-by: NEunchul Kim <chulspro.kim@samsung.com>
      Signed-off-by: NJinyoung Jeon <jy0.jeon@samsung.com>
      Signed-off-by: NInki Dae <inki.dae@samsung.com>
      Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com>
      cb471f14
  4. 14 12月, 2012 4 次提交
  5. 13 12月, 2012 19 次提交
  6. 12 12月, 2012 9 次提交
    • A
      HID: sensors: autodetect USB HID sensor hubs · 83499b52
      Alexander Holler 提交于
      It should not be necessary to add IDs for HID sensor hubs to lists in
      hid-core.c and hid-sensor-hub.c. So instead of a whitelist, autodetect such USB
      HID sensor hubs, based on a collection of type physical inside a useage page of
      type sensor. If some sensor hubs stil must be usable as raw devices, a
      blacklist might be created.
      Signed-off-by: NAlexander Holler <holler@ahsoftware.de>
      Acked-by: N"Pandruvada, Srinivas" <srinivas.pandruvada@intel.com>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      83499b52
    • Z
      Thermal: Fix DEFAULT_THERMAL_GOVERNOR · 1f53ef17
      Zhang Rui 提交于
      Fix DEFAULT_THERMAL_GOVERNOR to be consistant with the
      default governor selected in kernel config file.
      Signed-off-by: NZhang Rui <rui.zhang@intel.com>
      1f53ef17
    • E
      pkt_sched: avoid requeues if possible · 1abbe139
      Eric Dumazet 提交于
      With BQL being deployed, we can more likely have following behavior :
      
      We dequeue a packet from qdisc in dequeue_skb(), then we realize target
      tx queue is in XOFF state in sch_direct_xmit(), and we have to hold the
      skb into gso_skb for later.
      
      This shows in stats (tc -s qdisc dev eth0) as requeues.
      
      Problem of these requeues is that high priority packets can not be
      dequeued as long as this (possibly low prio and big TSO packet) is not
      removed from gso_skb.
      
      At 1Gbps speed, a full size TSO packet is 500 us of extra latency.
      
      In some cases, we know that all packets dequeued from a qdisc are
      for a particular and known txq :
      
      - If device is non multi queue
      - For all MQ/MQPRIO slave qdiscs
      
      This patch introduces a new qdisc flag, TCQ_F_ONETXQUEUE to mark
      this capability, so that dequeue_skb() is allowed to dequeue a packet
      only if the associated txq is not stopped.
      
      This indeed reduce latencies for high prio packets (or improve fairness
      with sfq/fq_codel), and almost remove qdisc 'requeues'.
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Cc: Jamal Hadi Salim <jhs@mojatatu.com>
      Cc: John Fastabend <john.r.fastabend@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1abbe139
    • L
      mm, memory-hotplug: dynamic configure movable memory and portion memory · 511c2aba
      Lai Jiangshan 提交于
      Add online_movable and online_kernel for logic memory hotplug.  This is
      the dynamic version of "movablecore" & "kernelcore".
      
      We have the same reason to introduce it as to introduce "movablecore" &
      "kernelcore".  It has the same motive as "movablecore" & "kernelcore", but
      it is dynamic/running-time:
      
      o We can configure memory as kernelcore or movablecore after boot.
      
        Userspace workload is increased, we need more hugepage, we can't use
        "online_movable" to add memory and allow the system use more
        THP(transparent-huge-page), vice-verse when kernel workload is increase.
      
        Also help for virtualization to dynamic configure host/guest's memory,
        to save/(reduce waste) memory.
      
        Memory capacity on Demand
      
      o When a new node is physically online after boot, we need to use
        "online_movable" or "online_kernel" to configure/portion it as we
        expected when we logic-online it.
      
        This configuration also helps for physically-memory-migrate.
      
      o all benefit as the same as existed "movablecore" & "kernelcore".
      
      o Preparing for movable-node, which is very important for power-saving,
        hardware partitioning and high-available-system(hardware fault
        management).
      
      (Note, we don't introduce movable-node here.)
      
      Action behavior:
      When a memoryblock/memorysection is onlined by "online_movable", the kernel
      will not have directly reference to the page of the memoryblock,
      thus we can remove that memory any time when needed.
      
      When it is online by "online_kernel", the kernel can use it.
      When it is online by "online", the zone type doesn't changed.
      
      Current constraints:
      Only the memoryblock which is adjacent to the ZONE_MOVABLE
      can be online from ZONE_NORMAL to ZONE_MOVABLE.
      
      [akpm@linux-foundation.org: use min_t, cleanups]
      Signed-off-by: NLai Jiangshan <laijs@cn.fujitsu.com>
      Signed-off-by: NWen Congyang <wency@cn.fujitsu.com>
      Cc: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
      Cc: Lai Jiangshan <laijs@cn.fujitsu.com>
      Cc: Jiang Liu <jiang.liu@huawei.com>
      Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Cc: Minchan Kim <minchan.kim@gmail.com>
      Cc: Mel Gorman <mgorman@suse.de>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Greg KH <greg@kroah.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      511c2aba
    • J
      bootmem: fix wrong call parameter for free_bootmem() · 81df9bff
      Joonsoo Kim 提交于
      It is strange that alloc_bootmem() returns a virtual address and
      free_bootmem() requires a physical address.  Anyway, free_bootmem()'s
      first parameter should be physical address.
      
      There are some call sites for free_bootmem() with virtual address.  So fix
      them.
      
      [akpm@linux-foundation.org: improve free_bootmem() and free_bootmem_pate() documentation]
      Signed-off-by: NJoonsoo Kim <js1304@gmail.com>
      Cc: Haavard Skinnemoen <hskinnemoen@gmail.com>
      Cc: Hans-Christian Egtvedt <egtvedt@samfundet.no>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      81df9bff
    • M
      mm: cma: remove watermark hacks · bc357f43
      Marek Szyprowski 提交于
      Commits 2139cbe6 ("cma: fix counting of isolated pages") and
      d95ea5d1 ("cma: fix watermark checking") introduced a reliable
      method of free page accounting when memory is being allocated from CMA
      regions, so the workaround introduced earlier by commit 49f223a9
      ("mm: trigger page reclaim in alloc_contig_range() to stabilise
      watermarks") can be finally removed.
      Signed-off-by: NMarek Szyprowski <m.szyprowski@samsung.com>
      Cc: Kyungmin Park <kyungmin.park@samsung.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Mel Gorman <mel@csn.ul.ie>
      Acked-by: NMichal Nazarewicz <mina86@mina86.com>
      Cc: Minchan Kim <minchan@kernel.org>
      Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      bc357f43
    • D
      mm, oom: fix race when specifying a thread as the oom origin · e1e12d2f
      David Rientjes 提交于
      test_set_oom_score_adj() and compare_swap_oom_score_adj() are used to
      specify that current should be killed first if an oom condition occurs in
      between the two calls.
      
      The usage is
      
      	short oom_score_adj = test_set_oom_score_adj(OOM_SCORE_ADJ_MAX);
      	...
      	compare_swap_oom_score_adj(OOM_SCORE_ADJ_MAX, oom_score_adj);
      
      to store the thread's oom_score_adj, temporarily change it to the maximum
      score possible, and then restore the old value if it is still the same.
      
      This happens to still be racy, however, if the user writes
      OOM_SCORE_ADJ_MAX to /proc/pid/oom_score_adj in between the two calls.
      The compare_swap_oom_score_adj() will then incorrectly reset the old value
      prior to the write of OOM_SCORE_ADJ_MAX.
      
      To fix this, introduce a new oom_flags_t member in struct signal_struct
      that will be used for per-thread oom killer flags.  KSM and swapoff can
      now use a bit in this member to specify that threads should be killed
      first in oom conditions without playing around with oom_score_adj.
      
      This also allows the correct oom_score_adj to always be shown when reading
      /proc/pid/oom_score.
      Signed-off-by: NDavid Rientjes <rientjes@google.com>
      Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Reviewed-by: NMichal Hocko <mhocko@suse.cz>
      Cc: Anton Vorontsov <anton.vorontsov@linaro.org>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      e1e12d2f
    • D
      mm, oom: change type of oom_score_adj to short · a9c58b90
      David Rientjes 提交于
      The maximum oom_score_adj is 1000 and the minimum oom_score_adj is -1000,
      so this range can be represented by the signed short type with no
      functional change.  The extra space this frees up in struct signal_struct
      will be used for per-thread oom kill flags in the next patch.
      Signed-off-by: NDavid Rientjes <rientjes@google.com>
      Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Reviewed-by: NMichal Hocko <mhocko@suse.cz>
      Cc: Anton Vorontsov <anton.vorontsov@linaro.org>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      a9c58b90
    • Y
      mm: cleanup register_node() · fa264375
      Yasuaki Ishimatsu 提交于
      register_node() is defined as extern in include/linux/node.h.  But the
      function is only called from register_one_node() in driver/base/node.c.
      
      So the patch defines register_node() as static.
      Signed-off-by: NYasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
      Acked-by: NDavid Rientjes <rientjes@google.com>
      Acked-by: NKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      fa264375