[PATCH] hugetlb: Abort a hugepage pool resize if a signal ispending

From: Mel Gorman
Date: Wed Dec 02 2009 - 09:16:11 EST


If a user asks for a hugepage pool resize but specified a large number, the
machine can begin trashing. In response, they might hit ctrl-c but signals
are ignored and the pool resize continues until it fails an allocation. This
can take a considerable amount of time so this patch aborts a pool resize
if a signal is pending.

[dave@xxxxxxxxxxxxxxxxxx: His idea]
Signed-off-by: Mel Gorman <mel@xxxxxxxxx>
---
mm/hugetlb.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/mm/hugetlb.c b/mm/hugetlb.c
index af02ee8..a952cb8 100644
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -1238,6 +1238,9 @@ static unsigned long set_max_huge_pages(struct hstate *h, unsigned long count)
if (!ret)
goto out;

+ /* Bail for signals. Probably ctrl-c from user */
+ if (signal_pending(current))
+ goto out;
}

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