| From b3831cb55d383e8eb55d3b56c715fb48459b87c9 Mon Sep 17 00:00:00 2001 |
| From: Ian Campbell <ian.campbell@citrix.com> |
| Date: Tue, 25 May 2010 10:45:35 +0100 |
| Subject: xen: avoid allocation causing potential swap activity on the resume path |
| |
| From: Ian Campbell <ian.campbell@citrix.com> |
| |
| commit b3831cb55d383e8eb55d3b56c715fb48459b87c9 upstream. |
| |
| Since the device we are resuming could be the device containing the |
| swap device we should ensure that the allocation cannot cause |
| IO. |
| |
| On resume, this path is triggered when the running system tries to |
| continue using its devices. If it cannot then the resume will fail; |
| to try to avoid this we let it dip into the emergency pools. |
| |
| The majority of these changes were made when linux-2.6.18-xen.hg |
| changeset e8b49cfbdac0 was ported upstream in |
| a144ff09bc52ef3f3684ed23eadc9c7c0e57b3aa but somehow this hunk was |
| dropped. |
| |
| Signed-off-by: Ian Campbell <ian.campbell@citrix.com> |
| Acked-by: Jeremy Fitzhardinge <jeremy@goop.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/xen/xenbus/xenbus_xs.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/xen/xenbus/xenbus_xs.c |
| +++ b/drivers/xen/xenbus/xenbus_xs.c |
| @@ -499,7 +499,7 @@ int xenbus_printf(struct xenbus_transact |
| #define PRINTF_BUFFER_SIZE 4096 |
| char *printf_buffer; |
| |
| - printf_buffer = kmalloc(PRINTF_BUFFER_SIZE, GFP_KERNEL); |
| + printf_buffer = kmalloc(PRINTF_BUFFER_SIZE, GFP_NOIO | __GFP_HIGH); |
| if (printf_buffer == NULL) |
| return -ENOMEM; |
| |