Re: [PATCH 08/12] mm, page_alloc: Rename __GFP_WAIT to __GFP_RECLAIM

2015-08-26 Thread Vlastimil Babka

On 08/24/2015 02:09 PM, Mel Gorman wrote:

__GFP_WAIT was used to signal that the caller was in atomic context and
could not sleep.  Now it is possible to distinguish between true atomic
context and callers that are not willing to sleep. The latter should clear
__GFP_DIRECT_RECLAIM so kswapd will still wake. As clearing __GFP_WAIT
behaves differently, there is a risk that people will clear the wrong
flags. This patch renames __GFP_WAIT to __GFP_RECLAIM to clearly indicate
what it does -- setting it allows all reclaim activity, clearing them
prevents it.

Signed-off-by: Mel Gorman 
Acked-by: Michal Hocko 


Acked-by: Vlastimil Babka 

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 08/12] mm, page_alloc: Rename __GFP_WAIT to __GFP_RECLAIM

2015-08-26 Thread Vlastimil Babka

On 08/24/2015 02:09 PM, Mel Gorman wrote:

__GFP_WAIT was used to signal that the caller was in atomic context and
could not sleep.  Now it is possible to distinguish between true atomic
context and callers that are not willing to sleep. The latter should clear
__GFP_DIRECT_RECLAIM so kswapd will still wake. As clearing __GFP_WAIT
behaves differently, there is a risk that people will clear the wrong
flags. This patch renames __GFP_WAIT to __GFP_RECLAIM to clearly indicate
what it does -- setting it allows all reclaim activity, clearing them
prevents it.

Signed-off-by: Mel Gorman mgor...@techsingularity.net
Acked-by: Michal Hocko mho...@suse.com


Acked-by: Vlastimil Babka vba...@suse.cz

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 08/12] mm, page_alloc: Rename __GFP_WAIT to __GFP_RECLAIM

2015-08-24 Thread Mel Gorman
__GFP_WAIT was used to signal that the caller was in atomic context and
could not sleep.  Now it is possible to distinguish between true atomic
context and callers that are not willing to sleep. The latter should clear
__GFP_DIRECT_RECLAIM so kswapd will still wake. As clearing __GFP_WAIT
behaves differently, there is a risk that people will clear the wrong
flags. This patch renames __GFP_WAIT to __GFP_RECLAIM to clearly indicate
what it does -- setting it allows all reclaim activity, clearing them
prevents it.

Signed-off-by: Mel Gorman 
Acked-by: Michal Hocko 
---
 block/blk-mq.c   |  2 +-
 block/scsi_ioctl.c   |  6 +++---
 drivers/block/drbd/drbd_bitmap.c |  2 +-
 drivers/block/mtip32xx/mtip32xx.c|  2 +-
 drivers/block/nvme-core.c|  4 ++--
 drivers/block/paride/pd.c|  2 +-
 drivers/block/pktcdvd.c  |  4 ++--
 drivers/gpu/drm/i915/i915_gem.c  |  2 +-
 drivers/ide/ide-atapi.c  |  2 +-
 drivers/ide/ide-cd.c |  2 +-
 drivers/ide/ide-cd_ioctl.c   |  2 +-
 drivers/ide/ide-devsets.c|  2 +-
 drivers/ide/ide-disk.c   |  2 +-
 drivers/ide/ide-ioctls.c |  4 ++--
 drivers/ide/ide-park.c   |  2 +-
 drivers/ide/ide-pm.c |  4 ++--
 drivers/ide/ide-tape.c   |  4 ++--
 drivers/ide/ide-taskfile.c   |  4 ++--
 drivers/infiniband/hw/ipath/ipath_file_ops.c |  2 +-
 drivers/infiniband/hw/qib/qib_init.c |  2 +-
 drivers/misc/vmw_balloon.c   |  2 +-
 drivers/scsi/scsi_error.c|  2 +-
 drivers/scsi/scsi_lib.c  |  4 ++--
 fs/cachefiles/internal.h |  2 +-
 fs/direct-io.c   |  2 +-
 fs/nilfs2/mdt.h  |  2 +-
 include/linux/gfp.h  | 16 
 kernel/power/swap.c  | 14 +++---
 lib/percpu_ida.c |  2 +-
 mm/failslab.c|  8 
 mm/filemap.c |  2 +-
 mm/huge_memory.c |  2 +-
 mm/migrate.c |  2 +-
 mm/page_alloc.c  | 10 +-
 security/integrity/ima/ima_crypto.c  |  2 +-
 35 files changed, 64 insertions(+), 64 deletions(-)

diff --git a/block/blk-mq.c b/block/blk-mq.c
index 7d80379d7a38..16feffc93489 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -1221,7 +1221,7 @@ static struct request *blk_mq_map_request(struct 
request_queue *q,
ctx = blk_mq_get_ctx(q);
hctx = q->mq_ops->map_queue(q, ctx->cpu);
blk_mq_set_alloc_data(_data, q,
-   __GFP_WAIT|__GFP_HIGH, false, ctx, hctx);
+   __GFP_RECLAIM|__GFP_HIGH, false, ctx, hctx);
rq = __blk_mq_alloc_request(_data, rw);
ctx = alloc_data.ctx;
hctx = alloc_data.hctx;
diff --git a/block/scsi_ioctl.c b/block/scsi_ioctl.c
index dda653ce7b24..0774799942e0 100644
--- a/block/scsi_ioctl.c
+++ b/block/scsi_ioctl.c
@@ -444,7 +444,7 @@ int sg_scsi_ioctl(struct request_queue *q, struct gendisk 
*disk, fmode_t mode,
 
}
 
-   rq = blk_get_request(q, in_len ? WRITE : READ, __GFP_WAIT);
+   rq = blk_get_request(q, in_len ? WRITE : READ, __GFP_RECLAIM);
if (IS_ERR(rq)) {
err = PTR_ERR(rq);
goto error_free_buffer;
@@ -495,7 +495,7 @@ int sg_scsi_ioctl(struct request_queue *q, struct gendisk 
*disk, fmode_t mode,
break;
}
 
-   if (bytes && blk_rq_map_kern(q, rq, buffer, bytes, __GFP_WAIT)) {
+   if (bytes && blk_rq_map_kern(q, rq, buffer, bytes, __GFP_RECLAIM)) {
err = DRIVER_ERROR << 24;
goto error;
}
@@ -536,7 +536,7 @@ static int __blk_send_generic(struct request_queue *q, 
struct gendisk *bd_disk,
struct request *rq;
int err;
 
-   rq = blk_get_request(q, WRITE, __GFP_WAIT);
+   rq = blk_get_request(q, WRITE, __GFP_RECLAIM);
if (IS_ERR(rq))
return PTR_ERR(rq);
blk_rq_set_block_pc(rq);
diff --git a/drivers/block/drbd/drbd_bitmap.c b/drivers/block/drbd/drbd_bitmap.c
index 434c77dcc99e..2940da0011e0 100644
--- a/drivers/block/drbd/drbd_bitmap.c
+++ b/drivers/block/drbd/drbd_bitmap.c
@@ -1016,7 +1016,7 @@ static void bm_page_io_async(struct drbd_bm_aio_ctx *ctx, 
int page_nr) __must_ho
bm_set_page_unchanged(b->bm_pages[page_nr]);
 
if (ctx->flags & BM_AIO_COPY_PAGES) {
-   page = mempool_alloc(drbd_md_io_page_pool, 
__GFP_HIGHMEM|__GFP_WAIT);
+   page = mempool_alloc(drbd_md_io_page_pool, 

[PATCH 08/12] mm, page_alloc: Rename __GFP_WAIT to __GFP_RECLAIM

2015-08-24 Thread Mel Gorman
__GFP_WAIT was used to signal that the caller was in atomic context and
could not sleep.  Now it is possible to distinguish between true atomic
context and callers that are not willing to sleep. The latter should clear
__GFP_DIRECT_RECLAIM so kswapd will still wake. As clearing __GFP_WAIT
behaves differently, there is a risk that people will clear the wrong
flags. This patch renames __GFP_WAIT to __GFP_RECLAIM to clearly indicate
what it does -- setting it allows all reclaim activity, clearing them
prevents it.

Signed-off-by: Mel Gorman mgor...@techsingularity.net
Acked-by: Michal Hocko mho...@suse.com
---
 block/blk-mq.c   |  2 +-
 block/scsi_ioctl.c   |  6 +++---
 drivers/block/drbd/drbd_bitmap.c |  2 +-
 drivers/block/mtip32xx/mtip32xx.c|  2 +-
 drivers/block/nvme-core.c|  4 ++--
 drivers/block/paride/pd.c|  2 +-
 drivers/block/pktcdvd.c  |  4 ++--
 drivers/gpu/drm/i915/i915_gem.c  |  2 +-
 drivers/ide/ide-atapi.c  |  2 +-
 drivers/ide/ide-cd.c |  2 +-
 drivers/ide/ide-cd_ioctl.c   |  2 +-
 drivers/ide/ide-devsets.c|  2 +-
 drivers/ide/ide-disk.c   |  2 +-
 drivers/ide/ide-ioctls.c |  4 ++--
 drivers/ide/ide-park.c   |  2 +-
 drivers/ide/ide-pm.c |  4 ++--
 drivers/ide/ide-tape.c   |  4 ++--
 drivers/ide/ide-taskfile.c   |  4 ++--
 drivers/infiniband/hw/ipath/ipath_file_ops.c |  2 +-
 drivers/infiniband/hw/qib/qib_init.c |  2 +-
 drivers/misc/vmw_balloon.c   |  2 +-
 drivers/scsi/scsi_error.c|  2 +-
 drivers/scsi/scsi_lib.c  |  4 ++--
 fs/cachefiles/internal.h |  2 +-
 fs/direct-io.c   |  2 +-
 fs/nilfs2/mdt.h  |  2 +-
 include/linux/gfp.h  | 16 
 kernel/power/swap.c  | 14 +++---
 lib/percpu_ida.c |  2 +-
 mm/failslab.c|  8 
 mm/filemap.c |  2 +-
 mm/huge_memory.c |  2 +-
 mm/migrate.c |  2 +-
 mm/page_alloc.c  | 10 +-
 security/integrity/ima/ima_crypto.c  |  2 +-
 35 files changed, 64 insertions(+), 64 deletions(-)

diff --git a/block/blk-mq.c b/block/blk-mq.c
index 7d80379d7a38..16feffc93489 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -1221,7 +1221,7 @@ static struct request *blk_mq_map_request(struct 
request_queue *q,
ctx = blk_mq_get_ctx(q);
hctx = q-mq_ops-map_queue(q, ctx-cpu);
blk_mq_set_alloc_data(alloc_data, q,
-   __GFP_WAIT|__GFP_HIGH, false, ctx, hctx);
+   __GFP_RECLAIM|__GFP_HIGH, false, ctx, hctx);
rq = __blk_mq_alloc_request(alloc_data, rw);
ctx = alloc_data.ctx;
hctx = alloc_data.hctx;
diff --git a/block/scsi_ioctl.c b/block/scsi_ioctl.c
index dda653ce7b24..0774799942e0 100644
--- a/block/scsi_ioctl.c
+++ b/block/scsi_ioctl.c
@@ -444,7 +444,7 @@ int sg_scsi_ioctl(struct request_queue *q, struct gendisk 
*disk, fmode_t mode,
 
}
 
-   rq = blk_get_request(q, in_len ? WRITE : READ, __GFP_WAIT);
+   rq = blk_get_request(q, in_len ? WRITE : READ, __GFP_RECLAIM);
if (IS_ERR(rq)) {
err = PTR_ERR(rq);
goto error_free_buffer;
@@ -495,7 +495,7 @@ int sg_scsi_ioctl(struct request_queue *q, struct gendisk 
*disk, fmode_t mode,
break;
}
 
-   if (bytes  blk_rq_map_kern(q, rq, buffer, bytes, __GFP_WAIT)) {
+   if (bytes  blk_rq_map_kern(q, rq, buffer, bytes, __GFP_RECLAIM)) {
err = DRIVER_ERROR  24;
goto error;
}
@@ -536,7 +536,7 @@ static int __blk_send_generic(struct request_queue *q, 
struct gendisk *bd_disk,
struct request *rq;
int err;
 
-   rq = blk_get_request(q, WRITE, __GFP_WAIT);
+   rq = blk_get_request(q, WRITE, __GFP_RECLAIM);
if (IS_ERR(rq))
return PTR_ERR(rq);
blk_rq_set_block_pc(rq);
diff --git a/drivers/block/drbd/drbd_bitmap.c b/drivers/block/drbd/drbd_bitmap.c
index 434c77dcc99e..2940da0011e0 100644
--- a/drivers/block/drbd/drbd_bitmap.c
+++ b/drivers/block/drbd/drbd_bitmap.c
@@ -1016,7 +1016,7 @@ static void bm_page_io_async(struct drbd_bm_aio_ctx *ctx, 
int page_nr) __must_ho
bm_set_page_unchanged(b-bm_pages[page_nr]);
 
if (ctx-flags  BM_AIO_COPY_PAGES) {
-   page = mempool_alloc(drbd_md_io_page_pool, 
__GFP_HIGHMEM|__GFP_WAIT);
+   page =