From patchwork Tue Sep 27 09:58:46 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Lieven X-Patchwork-Id: 9351649 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 0EA956077A for ; Tue, 27 Sep 2016 10:06:07 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 002B6291A9 for ; Tue, 27 Sep 2016 10:06:07 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E913F291AF; Tue, 27 Sep 2016 10:06:06 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 20A94291A9 for ; Tue, 27 Sep 2016 10:06:05 +0000 (UTC) Received: from localhost ([::1]:49241 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bopH2-0005Sq-8R for patchwork-qemu-devel@patchwork.kernel.org; Tue, 27 Sep 2016 06:06:04 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50242) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bopAQ-0007op-8n for qemu-devel@nongnu.org; Tue, 27 Sep 2016 05:59:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bopAP-00078v-DG for qemu-devel@nongnu.org; Tue, 27 Sep 2016 05:59:14 -0400 Received: from mx01.kamp.de ([82.141.2.16]:43410) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bopAP-00078Q-4P for qemu-devel@nongnu.org; Tue, 27 Sep 2016 05:59:13 -0400 Received: (qmail 18827 invoked by uid 89); 27 Sep 2016 09:59:12 -0000 Received: from [195.62.97.28] by client-16-kamp (envelope-from , uid 89) with qmail-scanner-2010/03/19-MF (clamdscan: 0.99.2/22259. avast: 1.2.2/16092600. spamassassin: 3.4.1. Clear:RC:1(195.62.97.28):. Processed in 0.216689 secs); 27 Sep 2016 09:59:12 -0000 Received: from smtp.kamp.de (HELO submission.kamp.de) ([195.62.97.28]) by mx01.kamp.de with ESMTPS (DHE-RSA-AES256-GCM-SHA384 encrypted); 27 Sep 2016 09:59:08 -0000 X-GL_Whitelist: yes Received: (qmail 12463 invoked from network); 27 Sep 2016 09:58:58 -0000 Received: from lieven-pc.kamp-intra.net (HELO lieven-pc) (relay@kamp.de@::ffff:172.21.12.60) by submission.kamp.de with ESMTPS (DHE-RSA-AES256-GCM-SHA384 encrypted) ESMTPA; 27 Sep 2016 09:58:58 -0000 Received: by lieven-pc (Postfix, from userid 1000) id A101E2086B; Tue, 27 Sep 2016 11:58:58 +0200 (CEST) From: Peter Lieven To: qemu-devel@nongnu.org Date: Tue, 27 Sep 2016 11:58:46 +0200 Message-Id: <1474970326-10271-8-git-send-email-pl@kamp.de> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1474970326-10271-1-git-send-email-pl@kamp.de> References: <1474970326-10271-1-git-send-email-pl@kamp.de> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 82.141.2.16 Subject: [Qemu-devel] [PATCH V9 7/7] coroutine: reduce stack size to 60kB X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, peter.maydell@linaro.org, mst@redhat.com, armbru@redhat.com, Peter Lieven , dgilbert@redhat.com, mreitz@redhat.com, pbonzini@redhat.com, rth@twiddle.net Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP evaluation with the recently introduced maximum stack usage monitoring revealed that the actual used stack size was never above 4kB so allocating 1MB stack for each coroutine is a lot of wasted memory. So reduce the stack size to 60kB which should still give enough head room. The guard page added in qemu_alloc_stack will catch a potential stack overflow introduced by this commit. The 60kB + guard page will result in an allocation of 64kB per coroutine on systems where a page is 4kB. Signed-off-by: Peter Lieven Reviewed-by: Eric Blake --- include/qemu/coroutine_int.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/qemu/coroutine_int.h b/include/qemu/coroutine_int.h index 14d4f1d..be14260 100644 --- a/include/qemu/coroutine_int.h +++ b/include/qemu/coroutine_int.h @@ -28,7 +28,7 @@ #include "qemu/queue.h" #include "qemu/coroutine.h" -#define COROUTINE_STACK_SIZE (1 << 20) +#define COROUTINE_STACK_SIZE 61440 typedef enum { COROUTINE_YIELD = 1,