1. 20 9月, 2016 1 次提交
  2. 13 7月, 2016 1 次提交
  3. 09 7月, 2016 2 次提交
  4. 18 12月, 2015 3 次提交
  5. 07 11月, 2015 1 次提交
    • M
      mm, page_alloc: distinguish between being unable to sleep, unwilling to sleep... · d0164adc
      Mel Gorman 提交于
      mm, page_alloc: distinguish between being unable to sleep, unwilling to sleep and avoiding waking kswapd
      
      __GFP_WAIT has been used to identify atomic context in callers that hold
      spinlocks or are in interrupts.  They are expected to be high priority and
      have access one of two watermarks lower than "min" which can be referred
      to as the "atomic reserve".  __GFP_HIGH users get access to the first
      lower watermark and can be called the "high priority reserve".
      
      Over time, callers had a requirement to not block when fallback options
      were available.  Some have abused __GFP_WAIT leading to a situation where
      an optimisitic allocation with a fallback option can access atomic
      reserves.
      
      This patch uses __GFP_ATOMIC to identify callers that are truely atomic,
      cannot sleep and have no alternative.  High priority users continue to use
      __GFP_HIGH.  __GFP_DIRECT_RECLAIM identifies callers that can sleep and
      are willing to enter direct reclaim.  __GFP_KSWAPD_RECLAIM to identify
      callers that want to wake kswapd for background reclaim.  __GFP_WAIT is
      redefined as a caller that is willing to enter direct reclaim and wake
      kswapd for background reclaim.
      
      This patch then converts a number of sites
      
      o __GFP_ATOMIC is used by callers that are high priority and have memory
        pools for those requests. GFP_ATOMIC uses this flag.
      
      o Callers that have a limited mempool to guarantee forward progress clear
        __GFP_DIRECT_RECLAIM but keep __GFP_KSWAPD_RECLAIM. bio allocations fall
        into this category where kswapd will still be woken but atomic reserves
        are not used as there is a one-entry mempool to guarantee progress.
      
      o Callers that are checking if they are non-blocking should use the
        helper gfpflags_allow_blocking() where possible. This is because
        checking for __GFP_WAIT as was done historically now can trigger false
        positives. Some exceptions like dm-crypt.c exist where the code intent
        is clearer if __GFP_DIRECT_RECLAIM is used instead of the helper due to
        flag manipulations.
      
      o Callers that built their own GFP flags instead of starting with GFP_KERNEL
        and friends now also need to specify __GFP_KSWAPD_RECLAIM.
      
      The first key hazard to watch out for is callers that removed __GFP_WAIT
      and was depending on access to atomic reserves for inconspicuous reasons.
      In some cases it may be appropriate for them to use __GFP_HIGH.
      
      The second key hazard is callers that assembled their own combination of
      GFP flags instead of starting with something like GFP_KERNEL.  They may
      now wish to specify __GFP_KSWAPD_RECLAIM.  It's almost certainly harmless
      if it's missed in most cases as other activity will wake kswapd.
      Signed-off-by: NMel Gorman <mgorman@techsingularity.net>
      Acked-by: NVlastimil Babka <vbabka@suse.cz>
      Acked-by: NMichal Hocko <mhocko@suse.com>
      Acked-by: NJohannes Weiner <hannes@cmpxchg.org>
      Cc: Christoph Lameter <cl@linux.com>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Vitaly Wool <vitalywool@gmail.com>
      Cc: Rik van Riel <riel@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d0164adc
  6. 21 10月, 2015 1 次提交
  7. 01 10月, 2015 1 次提交
  8. 27 1月, 2015 1 次提交
  9. 23 12月, 2014 1 次提交
  10. 25 11月, 2014 2 次提交
  11. 11 11月, 2014 4 次提交
    • A
      [media] solo6x10: don't turn off/on encoder interrupt in processing loop · 6db47fa1
      Andrey Utkin 提交于
      It makes no sense to block the SOLO_IRQ_ENCODER interrupt from being sent while
      processing an earlier interrupt. New interrupts will just kick the thread
      again once it is done processing.
      Signed-off-by: NAndrey Utkin <andrey.krieger.utkin@gmail.com>
      [hans.verkuil@cisco.com: fix commit description]
      Signed-off-by: NHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@osg.samsung.com>
      6db47fa1
    • A
      [media] solo6x10: bind start & stop of encoded frames processing thread to device (de)init · 670390c2
      Andrey Utkin 提交于
      Before, it was called from individual encoder (de)init procedures, which
      lead to spare threads running (which were actually lost, leaked).
      The current fix uses trivial approach, and the downside is that the
      processing thread is working always, even when there's no consumer.
      Signed-off-by: NAndrey Utkin <andrey.krieger.utkin@gmail.com>
      Signed-off-by: NHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@osg.samsung.com>
      670390c2
    • A
      [media] solo6x10: free DMA allocation when releasing encoder · 0cb2df38
      Andrey Utkin 提交于
      Fixes this warning:
      
      [  956.730136] ------------[ cut here ]------------
      [  956.730143] WARNING: CPU: 1 PID: 10134 at lib/dma-debug.c:963 dma_debug_device_change+0x191/0x1f0()
      [  956.730146] pci 0000:07:05.0: DMA-API: device driver has pending DMA allocations while released from device [count=8]
      One of leaked entries details: [device address=0x00000000d3d57000] [size=512 bytes] [mapped with DMA_BIDIRECTIONAL] [mapped as coherent]
      [  956.730147] Modules linked in: solo6x10(-) videobuf2_dma_contig videobuf2_dma_sg videobuf2_memops videobuf2_core ipt_MASQUERADE nf_nat_masquerade_ipv4 iptable_nat nf_nat_ipv4 nf_nat videobuf_vmalloc videobuf_core v4l2_common videodev rt2800usb rt2800lib rt2x00usb rt2x00lib mac80211 cfg80211 crc_ccitt usbkbd hid_a4tech hid_generic usbhid snd_hda_codec_hdmi snd_hda_codec_via snd_hda_codec_generic snd_hda_intel snd_hda_controller snd_hda_codec snd_hwdep snd_pcm x86_pkg_temp_thermal snd_timer snd soundcore
      [  956.730172] CPU: 1 PID: 10134 Comm: rmmod Not tainted 3.18.0-rc1-next-20141023-zver-dirty #24
      [  956.730173] Hardware name: System manufacturer System Product Name/P8H77-V, BIOS 0501 02/28/2012
      [  956.730175]  0000000000000009 ffff8801df9e3c58 ffffffff817ffe6b 0000000000000001
      [  956.730177]  ffff8801df9e3ca8 ffff8801df9e3c98 ffffffff81091ec7 0000000000000046
      [  956.730180]  ffff880215457e90 0000000000000008 ffffffff81cbb10f ffff880215570098
      [  956.730183] Call Trace:
      [  956.730188]  [<ffffffff817ffe6b>] dump_stack+0x4f/0x7c
      [  956.730192]  [<ffffffff81091ec7>] warn_slowpath_common+0x87/0xb0
      [  956.730194]  [<ffffffff81091f91>] warn_slowpath_fmt+0x41/0x50
      [  956.730197]  [<ffffffff81412558>] ? dma_debug_device_change+0xb8/0x1f0
      [  956.730199]  [<ffffffff81412631>] dma_debug_device_change+0x191/0x1f0
      [  956.730203]  [<ffffffff810b14ad>] notifier_call_chain+0x4d/0x70
      [  956.730205]  [<ffffffff810b15f9>] __blocking_notifier_call_chain+0x59/0x80
      [  956.730207]  [<ffffffff810b1631>] blocking_notifier_call_chain+0x11/0x20
      [  956.730211]  [<ffffffff815873af>] __device_release_driver+0xcf/0xf0
      [  956.730213]  [<ffffffff81587ee8>] driver_detach+0xc8/0xd0
      [  956.730215]  [<ffffffff81587147>] bus_remove_driver+0x57/0xd0
      [  956.730218]  [<ffffffff815887e9>] driver_unregister+0x29/0x60
      [  956.730221]  [<ffffffff81420131>] pci_unregister_driver+0x21/0x90
      [  956.730225]  [<ffffffffa03219d7>] solo_pci_driver_exit+0x10/0x12 [solo6x10]
      [  956.730228]  [<ffffffff81112ee0>] SyS_delete_module+0x170/0x1f0
      [  956.730232]  [<ffffffff813eb76e>] ? trace_hardirqs_on_thunk+0x3a/0x3f
      [  956.730234]  [<ffffffff8180abd2>] system_call_fastpath+0x12/0x17
      [  956.730235] ---[ end trace e730af02713a6c53 ]---
      [  956.730237] Mapped at:
      [  956.730238]  [<ffffffff8141186c>] debug_dma_alloc_coherent+0x3c/0xb0
      [  956.730240]  [<ffffffffa03203f6>] solo_enc_v4l2_init+0x706/0xba0 [solo6x10]
      [  956.730243]  [<ffffffffa03165b3>] solo_pci_probe+0x503/0x700 [solo6x10]
      [  956.730245]  [<ffffffff81420459>] local_pci_probe+0x49/0xa0
      [  956.730248]  [<ffffffff814207a1>] pci_device_probe+0xd1/0x120
      Signed-off-by: NAndrey Utkin <andrey.krieger.utkin@gmail.com>
      Signed-off-by: NHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@osg.samsung.com>
      0cb2df38
    • A
      [media] solo6x10: clean up properly in stop_streaming · 9ccd1809
      Andrey Utkin 提交于
      This fixes warning from drivers/media/v4l2-core/videobuf2-core.c,
      WARN_ON(atomic_read(&q->owned_by_drv_count)).
      Signed-off-by: NAndrey Utkin <andrey.krieger.utkin@gmail.com>
      Signed-off-by: NHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@osg.samsung.com>
      9ccd1809
  12. 28 7月, 2014 1 次提交
  13. 22 7月, 2014 2 次提交
  14. 18 7月, 2014 2 次提交
  15. 17 7月, 2014 4 次提交
  16. 05 7月, 2014 1 次提交
  17. 23 4月, 2014 1 次提交
  18. 17 3月, 2014 2 次提交
  19. 06 3月, 2014 1 次提交
  20. 13 1月, 2014 1 次提交
  21. 17 10月, 2013 1 次提交
  22. 14 10月, 2013 2 次提交
  23. 26 9月, 2013 1 次提交
  24. 21 5月, 2013 1 次提交
  25. 22 4月, 2013 2 次提交