• KOSAKI Motohiro's avatar
    Revert "Intel IOMMU: Avoid memory allocation failures in dma map api calls" · 354bb65e
    KOSAKI Motohiro authored
    commit eb3fa7cb 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: default avatarKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
    354bb65e
intel-iommu.c 92.3 KB