Revert "Intel IOMMU: Avoid memory allocation failures in dma map api calls"
authorKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Tue, 17 Nov 2009 07:21:09 +0000 (16:21 +0900)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Tue, 8 Dec 2009 10:12:04 +0000 (10:12 +0000)
commit354bb65e6e0df0aaae0e5b1ea33948d8e0b61418
treeafcb7dca4c8362442ec50ce799290ae1211bde19
parent1672af1164d3d50ba8908014fd34cc0b58afdc1e
Revert "Intel IOMMU: Avoid memory allocation failures in dma map api calls"

commit eb3fa7cb51 said Intel IOMMU

    Intel IOMMU driver needs memory during DMA map calls to setup its
    internal page tables and for other data structures.  As we all know
    that these DMA map calls are mostly called in the interrupt context
    or with the spinlock held by the upper level drivers(network/storage
    drivers), so in order to avoid any memory allocation failure due to
    low memory issues, this patch makes memory allocation by temporarily
    setting PF_MEMALLOC flags for the current task before making memory
    allocation calls.

    We evaluated mempools as a backup when kmem_cache_alloc() fails
    and found that mempools are really not useful here because
     1) We don't know for sure how much to reserve in advance
     2) And mempools are not useful for GFP_ATOMIC case (as we call
        memory alloc functions with GFP_ATOMIC)

    (akpm: point 2 is wrong...)

The above description doesn't justify to waste system emergency memory
at all. Non MM subsystem must not use PF_MEMALLOC. Memory reclaim need
few memory, anyone must not prevent it. Otherwise the system cause
mysterious hang-up and/or OOM Killer invokation.

Plus, akpm already pointed out what we should do.

Then, this patch revert it.

Cc: Keshavamurthy Anil S <anil.s.keshavamurthy@intel.com>
Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
drivers/pci/intel-iommu.c