Accepting request 281071 from home:algraf:branches:Virtualization

Fix 32bit ARM build hosts running out of memory all the time.

- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.2
* Patches added:
  0037-AIO-Reduce-number-of-threads-for-32.patch

- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.2
* Patches added:
  0037-AIO-Reduce-number-of-threads-for-32.patch

- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.2
* Patches added:
  0037-AIO-Reduce-number-of-threads-for-32.patch

OBS-URL: https://build.opensuse.org/request/show/281071
OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=233
This commit is contained in:
Alexander Graf 2015-01-14 00:42:12 +00:00 committed by Git OBS Bridge
parent dfe44e2669
commit cf0e18ade0
7 changed files with 67 additions and 0 deletions

View File

@ -0,0 +1,40 @@
From c464e8e38da71cbc136ea2cf6fbf5bddfc25e7d5 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Wed, 14 Jan 2015 01:32:11 +0100
Subject: [PATCH] AIO: Reduce number of threads for 32bit hosts
On hosts with limited virtual address space (32bit pointers), we can very
easily run out of virtual memory with big thread pools.
Instead, we should limit ourselves to small pools to keep memory footprint
low on those systems.
This patch fixes random VM stalls like
(process:25114): GLib-ERROR **: gmem.c:103: failed to allocate 1048576 bytes
on 32bit ARM systems for me.
Signed-off-by: Alexander Graf <agraf@suse.de>
---
thread-pool.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/thread-pool.c b/thread-pool.c
index e2cac8e..87a3ea9 100644
--- a/thread-pool.c
+++ b/thread-pool.c
@@ -299,7 +299,12 @@ static void thread_pool_init_one(ThreadPool *pool, AioContext *ctx)
qemu_mutex_init(&pool->lock);
qemu_cond_init(&pool->worker_stopped);
qemu_sem_init(&pool->sem, 0);
- pool->max_threads = 64;
+ if (sizeof(pool) == 4) {
+ /* 32bit systems run out of virtual memory quickly */
+ pool->max_threads = 4;
+ } else {
+ pool->max_threads = 64;
+ }
pool->new_thread_bh = aio_bh_new(ctx, spawn_thread_bh_fn, pool);
QLIST_INIT(&pool->head);

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Wed Jan 14 00:38:44 UTC 2015 - agraf@suse.com
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.2
* Patches added:
0037-AIO-Reduce-number-of-threads-for-32.patch
-------------------------------------------------------------------
Mon Jan 12 14:32:14 UTC 2015 - afaerber@suse.de

View File

@ -61,6 +61,7 @@ Patch0033: 0033-linux-user-lseek-explicitly-cast-no.patch
Patch0034: 0034-virtfs-proxy-helper-Provide-__u64-f.patch
Patch0035: 0035-configure-Enable-PIE-for-ppc-and-pp.patch
Patch0036: 0036-qtest-Increase-socket-timeout.patch
Patch0037: 0037-AIO-Reduce-number-of-threads-for-32.patch
# Please do not add patches manually here, run update_git.sh.
# this is to make lint happy
Source300: qemu-rpmlintrc
@ -156,6 +157,7 @@ This sub-package contains development files for the Smartcard library.
%patch0034 -p1
%patch0035 -p1
%patch0036 -p1
%patch0037 -p1
%build
./configure --prefix=%_prefix --sysconfdir=%_sysconfdir \

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Wed Jan 14 00:38:41 UTC 2015 - agraf@suse.com
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.2
* Patches added:
0037-AIO-Reduce-number-of-threads-for-32.patch
-------------------------------------------------------------------
Mon Jan 12 14:32:10 UTC 2015 - afaerber@suse.de

View File

@ -61,6 +61,7 @@ Patch0033: 0033-linux-user-lseek-explicitly-cast-no.patch
Patch0034: 0034-virtfs-proxy-helper-Provide-__u64-f.patch
Patch0035: 0035-configure-Enable-PIE-for-ppc-and-pp.patch
Patch0036: 0036-qtest-Increase-socket-timeout.patch
Patch0037: 0037-AIO-Reduce-number-of-threads-for-32.patch
# Please do not add patches manually here, run update_git.sh.
# this is to make lint happy
Source300: qemu-rpmlintrc
@ -150,6 +151,7 @@ run cross-architecture builds.
%patch0034 -p1
%patch0035 -p1
%patch0036 -p1
%patch0037 -p1
%build
./configure --prefix=%_prefix --sysconfdir=%_sysconfdir \

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Wed Jan 14 00:38:38 UTC 2015 - agraf@suse.com
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.2
* Patches added:
0037-AIO-Reduce-number-of-threads-for-32.patch
-------------------------------------------------------------------
Mon Jan 12 14:32:06 UTC 2015 - afaerber@suse.de

View File

@ -91,6 +91,7 @@ Patch0033: 0033-linux-user-lseek-explicitly-cast-no.patch
Patch0034: 0034-virtfs-proxy-helper-Provide-__u64-f.patch
Patch0035: 0035-configure-Enable-PIE-for-ppc-and-pp.patch
Patch0036: 0036-qtest-Increase-socket-timeout.patch
Patch0037: 0037-AIO-Reduce-number-of-threads-for-32.patch
# Please do not add patches manually here, run update_git.sh.
# this is to make lint happy
@ -497,6 +498,7 @@ This package provides a service file for starting and stopping KSM.
%patch0034 -p1
%patch0035 -p1
%patch0036 -p1
%patch0037 -p1
%if %{build_x86_fw_from_source}
# as a safeguard, delete the firmware files that we intend to build