From nobody Tue May 21 18:23:05 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1690790708; cv=none; d=zohomail.com; s=zohoarc; b=BUD2l4GbKiCk2zmxJv1Wwi7c/iQUttwqwksI1EA8RVJr7k9HSCenJLHXBO0/dfg28VV2dWdyDkNDbzekZJZ8CrdoH8ixDz4/elVjI5EN0CFz0eBxNFe81x4lqhkR6fQ+VuI5wcRl2dXnAPE0ZvtKvSE7hJ8i7DLXo5weh3guhOA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1690790708; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject; bh=mLTJ6OySdKa0e08zgg6P2LepbGVDXAFUy1gJglbhNWE=; b=Squ+Ky1i8n8m/ZbaXYPukBRiplLWlOCu7LHtpyWY4AGdENpBdmAc9l/xKseqCLbqy08bbwRiwRjNUidafYZQtspexIb+0/J+KgeFnYZIGjhnD5QWjghRz66HzCqArmEtU6T3MQS7kOFslDxU9tCEvdNaeGxcLSkB5XiBmGenyAU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1690790708019569.7936454608275; Mon, 31 Jul 2023 01:05:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qQNsR-0002CF-6D; Mon, 31 Jul 2023 04:03:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qQNsO-0002Bc-V1 for qemu-devel@nongnu.org; Mon, 31 Jul 2023 04:03:36 -0400 Received: from mail-pl1-x634.google.com ([2607:f8b0:4864:20::634]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qQNsN-0005zg-9e for qemu-devel@nongnu.org; Mon, 31 Jul 2023 04:03:36 -0400 Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-1b9c368f4b5so33403005ad.0 for ; Mon, 31 Jul 2023 01:03:34 -0700 (PDT) Received: from alarm.. ([157.82.204.253]) by smtp.gmail.com with ESMTPSA id jb22-20020a170903259600b001b89466a5f4sm7883559plb.105.2023.07.31.01.03.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 31 Jul 2023 01:03:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=daynix-com.20221208.gappssmtp.com; s=20221208; t=1690790613; x=1691395413; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=mLTJ6OySdKa0e08zgg6P2LepbGVDXAFUy1gJglbhNWE=; b=cVtjcAZJbmxLH2BnoYQxo615LeJQCz2sNapuOOGdqUHjCbUtD2MSRNCG2nVD6Rl1Hs HC5hqgPXREwxq3NZvSxqq+sI2mOBN+2/tT0gYsANMX9EVgmGI3RFcMoSLJKHqPdUk8XG 8Qxb6g52beqOxwbMvT9hW7umzQOuzeCpgol6D7NKuiiH2sdnxwmDTO7YU2bTtaHdKj1X 149vIxtN4D+IYAvg5BTRCl00iagvGmdTE6BgHWspTZSSz3giWDC4/qVqkxVQVlXO5cX9 JD4VhwEtSYRoi0nVkGAS3dU4PQsyjTNtmdGyuHBQGzMonYTqFCtdqPDaGtXMiWsQADBc 0Kyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690790613; x=1691395413; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mLTJ6OySdKa0e08zgg6P2LepbGVDXAFUy1gJglbhNWE=; b=XMzqUs4zQRiUmAyvmI016dSIS2XNDC9/BAuJxCKJjPt9//E/fiKveg9+fcg1vvmZHC 2i/KeGAXFjwVzyjM6z7Z7lMxMgYxSdEpcJqte7Li33jyyPyX2esft82DuCIZNevlbJQ3 2dq5f7OpRZ1ZNrzsmetqGsOsRs6Ww3pUq6mmsIS6PDfeSvJLyi70RgS8bpYUUohOhYKW Kj4ESTALkM+ysDxlECJLOUWJuuiaSMO1U1/9YvwJ1QVaqFbMRGeR6+t+eSqHx55y631J wV6k2zTpV2Lx10xqdcPKnxIC1rV35frool3wnIRaYsdYO1E3UaRrh20hObjwerFlou9S 8O2Q== X-Gm-Message-State: ABy/qLYvIAINTLIZiCWLa2WdM6A5lqHOcm/tG28MWpIm5Q9fQBOsUmRL dXxfz2exFq7gV/sXDZ+H+mkkW3i+9iniYCu2wMg= X-Google-Smtp-Source: APBJJlFjOMtLEl7xHaChjPAxZGlFiVW0nrMuaF+IXIodiP2DK/X54ZqFbCEmvbDgMEQqRcvILN4nSg== X-Received: by 2002:a17:903:186:b0:1bb:9efe:b1be with SMTP id z6-20020a170903018600b001bb9efeb1bemr10685956plg.30.1690790613305; Mon, 31 Jul 2023 01:03:33 -0700 (PDT) From: Akihiko Odaki To: Cc: qemu-devel@nongnu.org, Laurent Vivier , Akihiko Odaki Subject: [PATCH 1/5] linux-user: Unset MAP_FIXED_NOREPLACE for host Date: Mon, 31 Jul 2023 17:03:10 +0900 Message-ID: <20230731080317.112658-2-akihiko.odaki@daynix.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230731080317.112658-1-akihiko.odaki@daynix.com> References: <20230731080317.112658-1-akihiko.odaki@daynix.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::634; envelope-from=akihiko.odaki@daynix.com; helo=mail-pl1-x634.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @daynix-com.20221208.gappssmtp.com) X-ZM-MESSAGEID: 1690790709015100003 Content-Type: text/plain; charset="utf-8" Passing MAP_FIXED_NOREPLACE to host will fail if the virtual address space is reserved with mmap. Replace it with MAP_FIXED. Signed-off-by: Akihiko Odaki Tested-by: Joel Stanley --- linux-user/mmap.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/linux-user/mmap.c b/linux-user/mmap.c index a5dfb56545..2f26cbaf5d 100644 --- a/linux-user/mmap.c +++ b/linux-user/mmap.c @@ -610,6 +610,8 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, in= t target_prot, goto fail; } =20 + flags =3D (flags & ~MAP_FIXED_NOREPLACE) | MAP_FIXED; + /* * worst case: we cannot map the file because the offset is not * aligned, so we read it --=20 2.41.0 From nobody Tue May 21 18:23:05 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1690790714; cv=none; d=zohomail.com; s=zohoarc; b=U3uLgVt/Nf086PjWD7MsUFIUPzPffUIr/bl6KmPFKBmkEOl7d3k6qNkcoZPd3dh+AayyjRdyfwJrZ/UObVLUpEgKsHM6ZfQSb3an7ZO1WZ7nspGLPhBl7oZ9kQZALdrVfi8LDWHXLJfx1g1RZ8no6EimlbbxVnyMYIq2swbax0c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1690790714; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject; bh=hKykz5Wsssds9S/3O933s/0TQLXH+UtBErA42CM1Ugg=; b=DBnZk/naQDFWnXQDzvgRTIwU4wzBkW4RT9g3oTyY1CwM+WSH5VEwy/B9VDud1OWxXDfHGGCkjUYRZJRJk5Xx8PrfHLYA12eCTkde34oCAHnA/z/ITWYVaA1ZB6FLpe464qF6pw8duGZwH/wMOOhJGocYk1/dogCviYK9hKP6QFU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1690790714067456.12898305126396; Mon, 31 Jul 2023 01:05:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qQNsR-0002CN-Vv; Mon, 31 Jul 2023 04:03:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qQNsP-0002Bl-HM for qemu-devel@nongnu.org; Mon, 31 Jul 2023 04:03:37 -0400 Received: from mail-pl1-x634.google.com ([2607:f8b0:4864:20::634]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qQNsO-0005zo-2v for qemu-devel@nongnu.org; Mon, 31 Jul 2023 04:03:37 -0400 Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-1bb775625e2so26318445ad.1 for ; Mon, 31 Jul 2023 01:03:35 -0700 (PDT) Received: from alarm.. ([157.82.204.253]) by smtp.gmail.com with ESMTPSA id jb22-20020a170903259600b001b89466a5f4sm7883559plb.105.2023.07.31.01.03.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 31 Jul 2023 01:03:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=daynix-com.20221208.gappssmtp.com; s=20221208; t=1690790615; x=1691395415; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=hKykz5Wsssds9S/3O933s/0TQLXH+UtBErA42CM1Ugg=; b=LZLtttVSqoVNhyBPcQXUCEnBVf73dtxl5hN7Mt9h5uDVaHBU/U4TBI2kVeM3lE/OU2 MTOi1arr5qp4LmITL4LMWrVe2ABTMsRP1swFqxmSuEgqXpYiZ4HbFYDpoMVB7lKvzKEv tHWQLgV3WRiNFI+WAaogEWPajHInRbOqGn7w+vaba9l21BbC1vYN/TL6NvvENi0H8c7H NzAliuorJjP9h4XH9/fwzxfi1mnBykseLxBYJs5eh9PCvjOiGVwgtcVixe3mOactUGWF b8UFjWUbVW98Fyhk2jIohgrCh7EGH+OFVAIYzHbPvW4ZTnVTIdeQBzBAzjTtTBSyUU+7 8LTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690790615; x=1691395415; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hKykz5Wsssds9S/3O933s/0TQLXH+UtBErA42CM1Ugg=; b=Y8qE8McRxBJwZMtMPZnx7t8vbSYZE4Jcdc+WFnE95j9ShBqJXKLP2kO8i+3oK9kjca OtHYgfCScGbSX7gLIIfO+WpHlM4UAc3jEl/Koof4K88wNSUzp9heAuDFnTQ4mQXFU5H/ nD+Rn6Z29JXRjNeawMTphbfQ1w61AJAJQkSsYmG0+f93gj3sLoQV2dwbZkGr1QePK5aO U+GTw6RGAspF5pzFQsZHmAbinTxMIsxBXpArK4+onwjJmmMObmIvus2KWBiFvt3CuUEr afmhagsfudivJMvL5MrGGIsz//xsSEEw8JVN9mQuz28o6V+gIHBjOdXiqeZLWcLI3uYh AaQQ== X-Gm-Message-State: ABy/qLbTciU6nhoxuSaR/Z6zhtZdE7o7lRZzBspCzI6NuniQo4KuhW6u gfjQxaz1kq8yt9dcTJyLaGH5igqldB24DRVJBuk= X-Google-Smtp-Source: APBJJlG8i2K5iWLzc/YhtY6E+KaPKI3/geE28oCmkUaHaWqdOFx2tklpj0jC9BVuNnqFnTbx0HyrKg== X-Received: by 2002:a17:903:30d2:b0:1b6:6b03:10e7 with SMTP id s18-20020a17090330d200b001b66b0310e7mr8083818plc.5.1690790614730; Mon, 31 Jul 2023 01:03:34 -0700 (PDT) From: Akihiko Odaki To: Cc: qemu-devel@nongnu.org, Laurent Vivier , Akihiko Odaki Subject: [PATCH 2/5] linux-user: Do not call get_errno() in do_brk() Date: Mon, 31 Jul 2023 17:03:11 +0900 Message-ID: <20230731080317.112658-3-akihiko.odaki@daynix.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230731080317.112658-1-akihiko.odaki@daynix.com> References: <20230731080317.112658-1-akihiko.odaki@daynix.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::634; envelope-from=akihiko.odaki@daynix.com; helo=mail-pl1-x634.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @daynix-com.20221208.gappssmtp.com) X-ZM-MESSAGEID: 1690790715041100009 Content-Type: text/plain; charset="utf-8" Later the returned value is compared with -1, and negated errno is not expected. Fixes: 00faf08c95 ("linux-user: Don't use MAP_FIXED in do_brk()") Signed-off-by: Akihiko Odaki Reviewed-by: Helge Deller Tested-by: Joel Stanley --- linux-user/syscall.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 95727a816a..b9d2ec02f9 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -862,9 +862,9 @@ abi_long do_brk(abi_ulong brk_val) */ if (new_host_brk_page > brk_page) { new_alloc_size =3D new_host_brk_page - brk_page; - mapped_addr =3D get_errno(target_mmap(brk_page, new_alloc_size, - PROT_READ|PROT_WRITE, - MAP_ANON|MAP_PRIVATE, 0, 0)); + mapped_addr =3D target_mmap(brk_page, new_alloc_size, + PROT_READ|PROT_WRITE, + MAP_ANON|MAP_PRIVATE, 0, 0); } else { new_alloc_size =3D 0; mapped_addr =3D brk_page; --=20 2.41.0 From nobody Tue May 21 18:23:05 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1690790669; cv=none; d=zohomail.com; s=zohoarc; b=h1t9D6ooIEQ3gklITDMgJCu5jUbpSTzh5XxbF0XuVihLFpejrd96Uf/QWgvk8di4fhsALjdYnKANkM7mzTA1iXqTHDwPOfiGTq0RiMVBPTMUL+colU9G6Nbldgq7d7praW1qhE5mCkxh761QevPpWToJSS34o4QxMJWoCCFnIZs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1690790669; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject; bh=YOp4AdoD8Bkg7odyELEU2opCXFUALl4I3whyZmG1z+k=; b=CqGNvfofQJHAq2RhnPnEkllefG4znXnv4R+ygEXGTOD4heHaUGwW6PSvoPSG5xH46ImLo/CYXv6rtFpFqh4QwxYvB4ZTCpVYKVKI2dF3ZzE3oNop9c486tgHZ+vk5Yp6YIH0u/aCuFA143lEegMMA5fPztD65x3r5ee1DkB/5SI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1690790669690696.828826071549; Mon, 31 Jul 2023 01:04:29 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qQNsS-0002CQ-9o; Mon, 31 Jul 2023 04:03:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qQNsR-0002CD-2f for qemu-devel@nongnu.org; Mon, 31 Jul 2023 04:03:39 -0400 Received: from mail-pl1-x62e.google.com ([2607:f8b0:4864:20::62e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qQNsP-000600-Gm for qemu-devel@nongnu.org; Mon, 31 Jul 2023 04:03:38 -0400 Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-1bbd03cb7c1so25246995ad.3 for ; Mon, 31 Jul 2023 01:03:37 -0700 (PDT) Received: from alarm.. ([157.82.204.253]) by smtp.gmail.com with ESMTPSA id jb22-20020a170903259600b001b89466a5f4sm7883559plb.105.2023.07.31.01.03.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 31 Jul 2023 01:03:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=daynix-com.20221208.gappssmtp.com; s=20221208; t=1690790616; x=1691395416; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=YOp4AdoD8Bkg7odyELEU2opCXFUALl4I3whyZmG1z+k=; b=dwR66dtxXEOvdgQUON0x5rThkA5uIRjdmLQuLz+5V7cu5lXxAQLc8DCYYIPoOA6sCK GVgwRbg5xQvwRi2RtbUttZJ8dDTzQkL/bcs3i3QW4l0oYr8WOR9fQKOAWe1+du28+Hat Co5W7Bco3E2Ys+ZedEPOtssEFOul5QiQ1vHd4EIBJEGmhunQYw5wWWH0RR7ZJsWpmvlp 2bw+WPuH5fD9h9huC6WgCG0FjQcTnPJGaBAD99H6Pz7H9NGk3zbfQk9KnBYssDeA0vQw 2+eSSgg6NmTkd/r6t89FvN7qi+b3VD3M+hLQ/Z1tDZGEU/Mqh1z6ybkpf+mvPrLj0200 hrIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690790616; x=1691395416; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=YOp4AdoD8Bkg7odyELEU2opCXFUALl4I3whyZmG1z+k=; b=KI5sbgUlo6hfPHz1F0MCLsQz0IpQ92hIMz7Li7poHC06zqbXzBv947cdPQk2E4tPN1 /hkkh9UtesMOpsKuO81WLu6oZI8MGHefjQKwcJzLz2PbcuTiurrMElD6xPSPtrUjsc7k 2i7UakqDMD/XQyGN+j0h+s76e6hLxbPeMCY8bc/b8P4eHFYZuD5yN4bHCoWEt6mW+X1r n37Vgwe9opBuyvHWdvHPrnyRypERg4NenzrsUPd99fhVhMT/PKZJJGS124nt8UkiXB7Q CHzan9UZo83TW2JAI++MSqMVHdMxT5M39r8t1znrCwGGQklDOTA8RtWWiFCJy5WYzi9d fw3w== X-Gm-Message-State: ABy/qLav397eD/QD0ppW9C3w/bd5T/fb6NAm/Nw3D7fJKsAxvx+j/6RJ +oUsHr0zoTj3tbVYLi8mbm1gIRbSdDhyNVbXjKI= X-Google-Smtp-Source: APBJJlHTRunyYGiU770e+tpFDx8VgoB8ZdLrtZtbWSlP7NR33vVpz8Y8vbZfjUrmMOyykwz2ZuAa7A== X-Received: by 2002:a17:902:d303:b0:1b8:3dec:48de with SMTP id b3-20020a170902d30300b001b83dec48demr8485591plc.47.1690790616157; Mon, 31 Jul 2023 01:03:36 -0700 (PDT) From: Akihiko Odaki To: Cc: qemu-devel@nongnu.org, Laurent Vivier , Akihiko Odaki Subject: [PATCH 3/5] linux-user: Use MAP_FIXED_NOREPLACE for do_brk() Date: Mon, 31 Jul 2023 17:03:12 +0900 Message-ID: <20230731080317.112658-4-akihiko.odaki@daynix.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230731080317.112658-1-akihiko.odaki@daynix.com> References: <20230731080317.112658-1-akihiko.odaki@daynix.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::62e; envelope-from=akihiko.odaki@daynix.com; helo=mail-pl1-x62e.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @daynix-com.20221208.gappssmtp.com) X-ZM-MESSAGEID: 1690790670270100001 Content-Type: text/plain; charset="utf-8" MAP_FIXED_NOREPLACE can ensure the mapped address is fixed without concerning that the new mapping overwrites something else. Signed-off-by: Akihiko Odaki Tested-by: Joel Stanley --- linux-user/syscall.c | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index b9d2ec02f9..ac429a185a 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -854,17 +854,12 @@ abi_long do_brk(abi_ulong brk_val) return target_brk; } =20 - /* We need to allocate more memory after the brk... Note that - * we don't use MAP_FIXED because that will map over the top of - * any existing mapping (like the one with the host libc or qemu - * itself); instead we treat "mapped but at wrong address" as - * a failure and unmap again. - */ if (new_host_brk_page > brk_page) { new_alloc_size =3D new_host_brk_page - brk_page; mapped_addr =3D target_mmap(brk_page, new_alloc_size, - PROT_READ|PROT_WRITE, - MAP_ANON|MAP_PRIVATE, 0, 0); + PROT_READ | PROT_WRITE, + MAP_FIXED_NOREPLACE | MAP_ANON | MAP_PRI= VATE, + 0, 0); } else { new_alloc_size =3D 0; mapped_addr =3D brk_page; @@ -883,12 +878,6 @@ abi_long do_brk(abi_ulong brk_val) target_brk =3D brk_val; brk_page =3D new_host_brk_page; return target_brk; - } else if (mapped_addr !=3D -1) { - /* Mapped but at wrong address, meaning there wasn't actually - * enough space for this brk. - */ - target_munmap(mapped_addr, new_alloc_size); - mapped_addr =3D -1; } =20 #if defined(TARGET_ALPHA) --=20 2.41.0 From nobody Tue May 21 18:23:05 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1690790713; cv=none; d=zohomail.com; s=zohoarc; b=DfalMNSvUmcfMFFTeZW0yr8cktemFISybSzxw1D9F5+U/Zib/cT5KJRbRYpakdNvDLcNA6ekNckpPkNFiXhYlaovEhkgULmd1Cnkv5TmMXjHFeTDmilgGk8s/2iB9jLGcJ+gNjQjLwMVP33YZBWdOQiJzA8YRsopMQCSKiWs1D8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1690790713; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject; bh=xdY2jz5owuzZfQl4B7CvgdbQ9JW8e4qk8DsaUFELJ3w=; b=QPqQ93dgD0u7NV5X0zVEzqZ7/I57LMYCLnMk1TsIbJQh8i1Nd+XZ6VbkZTKHN99rdKuViBl1j2JfNUH7UopWcOlmi8Y+VbxgUbEUU+Dv6/l7SBXSzvIIcDoE6vkIO4m8aqKLPIreFkURLGyeivm3O4mA4A1oQ0B2T2WCBOkeFQY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1690790713067204.61195657231087; Mon, 31 Jul 2023 01:05:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qQNsV-0002Dm-MA; Mon, 31 Jul 2023 04:03:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qQNsS-0002CR-N7 for qemu-devel@nongnu.org; Mon, 31 Jul 2023 04:03:40 -0400 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qQNsR-00060R-6Y for qemu-devel@nongnu.org; Mon, 31 Jul 2023 04:03:40 -0400 Received: by mail-pl1-x636.google.com with SMTP id d9443c01a7336-1bb775625e2so26318745ad.1 for ; Mon, 31 Jul 2023 01:03:38 -0700 (PDT) Received: from alarm.. ([157.82.204.253]) by smtp.gmail.com with ESMTPSA id jb22-20020a170903259600b001b89466a5f4sm7883559plb.105.2023.07.31.01.03.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 31 Jul 2023 01:03:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=daynix-com.20221208.gappssmtp.com; s=20221208; t=1690790618; x=1691395418; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=xdY2jz5owuzZfQl4B7CvgdbQ9JW8e4qk8DsaUFELJ3w=; b=rmJSkpY75v35otj0qRIK6lNDFFt56TfGf/rl/SxXHNbc8FGpLLukws7YevwbUxUw9S /j5+qP8OiLpZA4GnApGhnG86shqHi2CZtdoI4A1cN6V0VDV+TLmXh544225JkjfxcRF+ zkVpk7hfoVLX+i1wxpqn1t3OshyjbwXKM4cQL+uDrTjHUOlBf2dgwUe7qqEd0SkfCz5e fLL145TnPQYcxY7bTNUPGKXJ40N/hTGtVEBpvV4b8sEF3kE659Q6C0nUCA3PuQMWSQRb yo4a9dhYoq/JEE3jwylFe5k9U9bg7x2X3YE/BIRnuDF0lIR4jVFpfIw55MdOaM0kmOTY X0kw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690790618; x=1691395418; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=xdY2jz5owuzZfQl4B7CvgdbQ9JW8e4qk8DsaUFELJ3w=; b=eYkz0Qe/hagAeQSSQ6GAyONKKUhOta11OVKt+K9wdvyIoUL6TRs7kdjOUH/3Ko2Kqt bK3ZDSPzk7V5rS91AXhNf/H5189lsoQOAkWtlfGxyaUV/ra7XQnbwfilnr0YxkJdJSxd 6ZxUoLw+MvFqfIWxnEMHk5/1UmZxaXZ+B8BZwo83Z1pSiH3B4AzZXthcv0mZcqj14pMK CoIOqurQgSpEHTIkjci0UGBzY8ZEDHu/qtmxpLZe+zP8x1yDYa03boVhIxZ8YHFWslk9 L7W+HwpSVK4FmbIxa3pYgOSSVLtPaOCdfAi6wsVbG+rsdIHtRGJcLMMmxwX1q26eOwVW yPbw== X-Gm-Message-State: ABy/qLYG1kqkfSst3Q4MOKP3qZn38ZiAvBz4bfA/hu9WWGETCNtp45wF IuIUeTwwvEQ3imjN1nSXAWmLorOCcXhEs3XgSmc= X-Google-Smtp-Source: APBJJlGKjPMdlALwK3Rt9RfSqlGXPTp1GCDtvWV5XoqcVAjHUXopYJR5wsP4X3rW0pXtYcvFKbAGMg== X-Received: by 2002:a17:902:da87:b0:1b8:6952:5381 with SMTP id j7-20020a170902da8700b001b869525381mr11603982plx.9.1690790617621; Mon, 31 Jul 2023 01:03:37 -0700 (PDT) From: Akihiko Odaki To: Cc: qemu-devel@nongnu.org, Laurent Vivier , Akihiko Odaki Subject: [PATCH 4/5] linux-user: Do nothing if too small brk is specified Date: Mon, 31 Jul 2023 17:03:13 +0900 Message-ID: <20230731080317.112658-5-akihiko.odaki@daynix.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230731080317.112658-1-akihiko.odaki@daynix.com> References: <20230731080317.112658-1-akihiko.odaki@daynix.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::636; envelope-from=akihiko.odaki@daynix.com; helo=mail-pl1-x636.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @daynix-com.20221208.gappssmtp.com) X-ZM-MESSAGEID: 1690790714749100007 Content-Type: text/plain; charset="utf-8" Linux 6.4.7 does nothing when a value smaller than the initial brk is specified. Fixes: 86f04735ac ("linux-user: Fix brk() to release pages") Signed-off-by: Akihiko Odaki Reviewed-by: Helge Deller Tested-by: Joel Stanley --- linux-user/syscall.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index ac429a185a..ebdc8c144c 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -820,14 +820,14 @@ abi_long do_brk(abi_ulong brk_val) =20 /* brk pointers are always untagged */ =20 - /* return old brk value if brk_val unchanged or zero */ - if (!brk_val || brk_val =3D=3D target_brk) { + /* return old brk value if brk_val unchanged */ + if (brk_val =3D=3D target_brk) { return target_brk; } =20 /* do not allow to shrink below initial brk value */ if (brk_val < initial_target_brk) { - brk_val =3D initial_target_brk; + return target_brk; } =20 new_brk =3D TARGET_PAGE_ALIGN(brk_val); --=20 2.41.0 From nobody Tue May 21 18:23:05 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1690790710; cv=none; d=zohomail.com; s=zohoarc; b=fhfc+QxW6vTiqqtggTvCcCVAWSvD2pO38NbjbTvTw5lcJ47YFNSnvcbay7I6Z1hWxYWs3XhkXGN20awBPZEOtKehum34YT5xg7cJLYeKIU+y+4XpqHcoxJM0h3WvKVDrQbJVychCCxkR2SZ3LHMA1oXQx+Gh48tvqm5ticEDy28= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1690790710; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject; bh=uZmw+WGj+dKArQBXoU9nV+Zof62NM5jUx/ZLEkyqwJU=; b=aRSTeL7CNdhCj4VGGB2SlwWSJ/EYN1raIWfIulFe7R2jF6icQLqsWfw6lWOSBO9BF8NRF2rgscuHs7rl9usDOmLCtHfW5+7SGDVAyBtVYWNuiRZ/6PpsJjDcvskKEamOH/JojfhRXu80axoAJxi9ueoLGZjC9LMGvravnT0GgQE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 169079071058918.640880840313116; Mon, 31 Jul 2023 01:05:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qQNsV-0002Dp-Tq; Mon, 31 Jul 2023 04:03:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qQNsU-0002D5-C2 for qemu-devel@nongnu.org; Mon, 31 Jul 2023 04:03:42 -0400 Received: from mail-pl1-x62c.google.com ([2607:f8b0:4864:20::62c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qQNsS-00060e-HN for qemu-devel@nongnu.org; Mon, 31 Jul 2023 04:03:42 -0400 Received: by mail-pl1-x62c.google.com with SMTP id d9443c01a7336-1bbc7b2133fso25816335ad.1 for ; Mon, 31 Jul 2023 01:03:40 -0700 (PDT) Received: from alarm.. ([157.82.204.253]) by smtp.gmail.com with ESMTPSA id jb22-20020a170903259600b001b89466a5f4sm7883559plb.105.2023.07.31.01.03.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 31 Jul 2023 01:03:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=daynix-com.20221208.gappssmtp.com; s=20221208; t=1690790619; x=1691395419; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=uZmw+WGj+dKArQBXoU9nV+Zof62NM5jUx/ZLEkyqwJU=; b=fpPmEhC+VlHh2XvX7ONmDZuGIO5moWxYoKyZK1tvppswuBOtfNo3/6uhn+bBDqQ5GE ovYYfikbXZeyGxDQ4PdNxAzIOExEcgkAeB6TzT11i4L0534G8DbXyCiyBou7M2sDP8eX 4vBFPPA4Cd8KadUWpFYgZS3Cq4xRNORnZh2MaeQVERmQpdsJuz8Z7que3l9fWKzFlVn6 PIIAgG62dUTpaHJU9IJcv9Twyze+ZFzYgdHFNWgPqE9Omx471EHIWUFXRoWIMiWPYxTx 1p5nd2rdXOOWKQsdRjacypP7eodQ6R+RGRMDr0YTUTYo2puqgT6jZ2C00Vu488+IwaRz CwXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690790619; x=1691395419; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=uZmw+WGj+dKArQBXoU9nV+Zof62NM5jUx/ZLEkyqwJU=; b=EAKf6vX/64lUG6WEPYZldBZDENRMIxpx53JyOkOhavQrU22AV34rRxnaPcTub5GovO 1vYRWLmSUIphvN4Z+jmZmkmiconQtKwxNBUwFT3ala5J+yspUUgu47RiUnx4mEk1dnn7 PixNT0SyCdJ2gm+7Ac+nt5kpfptFqvxg+bFq147F4WFFPJSdXZ2G9zTtQ/v2EbjpbWsv LmLK8iKCONsppB1nQ0At+eCggtsC/oypmPVyUdLzJ5h7YZB7bkjSsxo4ZI8kkAOiuAup D1v+Z4djTsMdQpgckXU6dXWh6TT6xXmOTFk7R4ABv1RIhjo6w3M91lz4WHhSdC5zg7f2 zipg== X-Gm-Message-State: ABy/qLYAMKSADJb/oDQp3JrK1y6WVo2Tsm2AAalOqfHpsILyo9pNV4az SqhaZA7Zt4DflPc3eaB0WG9e/F6zopKGd3OMwNk= X-Google-Smtp-Source: APBJJlGqcqLZVZ5vl+Tar9kVsu2WkrOJK40pTCPPbeZxDnty64oe2MdMql9E2TlnbDhC8lIKELnoeg== X-Received: by 2002:a17:902:c94f:b0:1bb:91f2:bb3e with SMTP id i15-20020a170902c94f00b001bb91f2bb3emr9673478pla.49.1690790619111; Mon, 31 Jul 2023 01:03:39 -0700 (PDT) From: Akihiko Odaki To: Cc: qemu-devel@nongnu.org, Laurent Vivier , Akihiko Odaki Subject: [PATCH 5/5] linux-user: Do not align brk with host page size Date: Mon, 31 Jul 2023 17:03:14 +0900 Message-ID: <20230731080317.112658-6-akihiko.odaki@daynix.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230731080317.112658-1-akihiko.odaki@daynix.com> References: <20230731080317.112658-1-akihiko.odaki@daynix.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::62c; envelope-from=akihiko.odaki@daynix.com; helo=mail-pl1-x62c.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @daynix-com.20221208.gappssmtp.com) X-ZM-MESSAGEID: 1690790711800100001 Content-Type: text/plain; charset="utf-8" do_brk() minimizes calls into target_mmap() by aligning the address with host page size, which is potentially larger than the target page size. However, the current implementation of this optimization has two bugs: - The start of brk is rounded up with the host page size while brk advertises an address aligned with the target page size as the beginning of brk. This makes the beginning of brk unmapped. - Content clearing after mapping is flawed. The size to clear is specified as HOST_PAGE_ALIGN(brk_page) - brk_page, but brk_page is aligned with the host page size so it is always zero. This optimization actually has no practical benefit. It makes difference when brk() is called multiple times with values in a range of the host page size. However, sophisticated memory allocators try to avoid to make such frequent brk() calls. For example, glibc 2.37 calls brk() to shrink the heap only when there is a room more than 128 KiB. It is rare to have a page size larger than 128 KiB if it happens. Let's remove the optimization to fix the bugs and make the code simpler. Fixes: 86f04735ac ("linux-user: Fix brk() to release pages") Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1616 Signed-off-by: Akihiko Odaki Tested-by: Joel Stanley --- linux-user/elfload.c | 4 ++-- linux-user/syscall.c | 54 ++++++++++---------------------------------- 2 files changed, 14 insertions(+), 44 deletions(-) diff --git a/linux-user/elfload.c b/linux-user/elfload.c index 861ec07abc..2aee2298ec 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -3678,8 +3678,8 @@ int load_elf_binary(struct linux_binprm *bprm, struct= image_info *info) * to mmap pages in this space. */ if (info->reserve_brk) { - abi_ulong start_brk =3D HOST_PAGE_ALIGN(info->brk); - abi_ulong end_brk =3D HOST_PAGE_ALIGN(info->brk + info->reserve_br= k); + abi_ulong start_brk =3D TARGET_PAGE_ALIGN(info->brk); + abi_ulong end_brk =3D TARGET_PAGE_ALIGN(info->brk + info->reserve_= brk); target_munmap(start_brk, end_brk - start_brk); } =20 diff --git a/linux-user/syscall.c b/linux-user/syscall.c index ebdc8c144c..475260b7ce 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -802,81 +802,51 @@ static inline int host_to_target_sock_type(int host_t= ype) } =20 static abi_ulong target_brk, initial_target_brk; -static abi_ulong brk_page; =20 void target_set_brk(abi_ulong new_brk) { target_brk =3D TARGET_PAGE_ALIGN(new_brk); initial_target_brk =3D target_brk; - brk_page =3D HOST_PAGE_ALIGN(target_brk); } =20 /* do_brk() must return target values and target errnos. */ abi_long do_brk(abi_ulong brk_val) { abi_long mapped_addr; - abi_ulong new_alloc_size; - abi_ulong new_brk, new_host_brk_page; + abi_ulong new_brk; + abi_ulong old_brk; =20 /* brk pointers are always untagged */ =20 - /* return old brk value if brk_val unchanged */ - if (brk_val =3D=3D target_brk) { - return target_brk; - } - /* do not allow to shrink below initial brk value */ if (brk_val < initial_target_brk) { return target_brk; } =20 new_brk =3D TARGET_PAGE_ALIGN(brk_val); - new_host_brk_page =3D HOST_PAGE_ALIGN(brk_val); + old_brk =3D TARGET_PAGE_ALIGN(target_brk); =20 - /* brk_val and old target_brk might be on the same page */ - if (new_brk =3D=3D TARGET_PAGE_ALIGN(target_brk)) { - /* empty remaining bytes in (possibly larger) host page */ - memset(g2h_untagged(new_brk), 0, new_host_brk_page - new_brk); + /* new and old target_brk might be on the same page */ + if (new_brk =3D=3D old_brk) { target_brk =3D brk_val; return target_brk; } =20 /* Release heap if necesary */ - if (new_brk < target_brk) { - /* empty remaining bytes in (possibly larger) host page */ - memset(g2h_untagged(new_brk), 0, new_host_brk_page - new_brk); - - /* free unused host pages and set new brk_page */ - target_munmap(new_host_brk_page, brk_page - new_host_brk_page); - brk_page =3D new_host_brk_page; + if (new_brk < old_brk) { + target_munmap(new_brk, old_brk - new_brk); =20 target_brk =3D brk_val; return target_brk; } =20 - if (new_host_brk_page > brk_page) { - new_alloc_size =3D new_host_brk_page - brk_page; - mapped_addr =3D target_mmap(brk_page, new_alloc_size, - PROT_READ | PROT_WRITE, - MAP_FIXED_NOREPLACE | MAP_ANON | MAP_PRI= VATE, - 0, 0); - } else { - new_alloc_size =3D 0; - mapped_addr =3D brk_page; - } - - if (mapped_addr =3D=3D brk_page) { - /* Heap contents are initialized to zero, as for anonymous - * mapped pages. Technically the new pages are already - * initialized to zero since they *are* anonymous mapped - * pages, however we have to take care with the contents that - * come from the remaining part of the previous page: it may - * contains garbage data due to a previous heap usage (grown - * then shrunken). */ - memset(g2h_untagged(brk_page), 0, HOST_PAGE_ALIGN(brk_page) - brk_= page); + mapped_addr =3D target_mmap(old_brk, new_brk - old_brk, + PROT_READ | PROT_WRITE, + MAP_FIXED_NOREPLACE | MAP_ANON | MAP_PRIVATE, + 0, 0); =20 + if (mapped_addr =3D=3D old_brk) { target_brk =3D brk_val; - brk_page =3D new_host_brk_page; return target_brk; } =20 --=20 2.41.0