1. 08 7月, 2008 1 次提交
  2. 27 6月, 2008 1 次提交
  3. 10 6月, 2008 1 次提交
    • M
      x86, pci-dma.c: don't always add __GFP_NORETRY to gfp · b7f09ae5
      Miquel van Smoorenburg 提交于
      Currently arch/x86/kernel/pci-dma.c always adds __GFP_NORETRY
      to the allocation flags, because it wants to be reasonably
      sure not to deadlock when calling alloc_pages().
      
      But really that should only be done in two cases:
      - when allocating memory in the lower 16 MB DMA zone.
        If there's no free memory there, waiting or OOM killing is of no use
      - when optimistically trying an allocation in the DMA32 zone
        when dma_mask < DMA_32BIT_MASK hoping that the allocation
        happens to fall within the limits of the dma_mask
      
      Also blindly adding __GFP_NORETRY to the the gfp variable might
      not be a good idea since we then also use it when calling
      dma_ops->alloc_coherent(). Clearing it might also not be a
      good idea, dma_alloc_coherent()'s caller might have set it
      on purpose. The gfp variable should not be clobbered.
      
      [ mingo@elte.hu: converted to delta patch ontop of previous version. ]
      Signed-off-by: NMiquel van Smoorenburg <miquels@cistron.nl>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      b7f09ae5
  4. 02 6月, 2008 1 次提交
    • M
      x86: pci-dma.c: use __GFP_NO_OOM instead of __GFP_NORETRY · db9f600b
      Miquel van Smoorenburg 提交于
      On Wed, 2008-05-28 at 04:47 +0200, Andi Kleen wrote:
      > > So...  why not just remove the setting of __GFP_NORETRY?  Why is it
      > > wrong to oom-kill things in this case?
      >
      > When the 16MB zone overflows (which can be common in some workloads)
      > calling the OOM killer is pretty useless because it has barely any
      > real user data [only exception would be the "only 16MB" case Alan
      > mentioned]. Killing random processes in this case is bad.
      >
      > I think for 16MB __GFP_NORETRY is ok because there should be
      > nothing freeable in there so looping is useless. Only exception would be the
      > "only 16MB total" case again but I'm not sure 2.6 supports that at all
      > on x86.
      >
      > On the other hand d_a_c() does more allocations than just 16MB, especially
      > on 64bit and the other zones need different strategies.
      
      Okay, so how about this then ?
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      db9f600b
  5. 25 5月, 2008 1 次提交
  6. 14 5月, 2008 1 次提交
  7. 13 5月, 2008 3 次提交
  8. 01 5月, 2008 1 次提交
  9. 20 4月, 2008 11 次提交