mm, page_alloc: distinguish between being unable to sleep, unwilling to sleep...
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 backgrou...
Showing
- Documentation/vm/balance 8 additions, 6 deletionsDocumentation/vm/balance
- arch/arm/mm/dma-mapping.c 3 additions, 3 deletionsarch/arm/mm/dma-mapping.c
- arch/arm/xen/mm.c 1 addition, 1 deletionarch/arm/xen/mm.c
- arch/arm64/mm/dma-mapping.c 2 additions, 2 deletionsarch/arm64/mm/dma-mapping.c
- arch/x86/kernel/pci-dma.c 1 addition, 1 deletionarch/x86/kernel/pci-dma.c
- block/bio.c 13 additions, 13 deletionsblock/bio.c
- block/blk-core.c 8 additions, 8 deletionsblock/blk-core.c
- block/blk-ioc.c 1 addition, 1 deletionblock/blk-ioc.c
- block/blk-mq-tag.c 1 addition, 1 deletionblock/blk-mq-tag.c
- block/blk-mq.c 3 additions, 3 deletionsblock/blk-mq.c
- drivers/block/drbd/drbd_receiver.c 2 additions, 1 deletiondrivers/block/drbd/drbd_receiver.c
- drivers/block/osdblk.c 1 addition, 1 deletiondrivers/block/osdblk.c
- drivers/connector/connector.c 2 additions, 1 deletiondrivers/connector/connector.c
- drivers/firewire/core-cdev.c 1 addition, 1 deletiondrivers/firewire/core-cdev.c
- drivers/gpu/drm/i915/i915_gem.c 1 addition, 1 deletiondrivers/gpu/drm/i915/i915_gem.c
- drivers/infiniband/core/sa_query.c 1 addition, 1 deletiondrivers/infiniband/core/sa_query.c
- drivers/iommu/amd_iommu.c 1 addition, 1 deletiondrivers/iommu/amd_iommu.c
- drivers/iommu/intel-iommu.c 1 addition, 1 deletiondrivers/iommu/intel-iommu.c
- drivers/md/dm-crypt.c 3 additions, 3 deletionsdrivers/md/dm-crypt.c
- drivers/md/dm-kcopyd.c 1 addition, 1 deletiondrivers/md/dm-kcopyd.c
Please register or sign in to comment