From patchwork Thu Aug 31 14:40:17 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Graf X-Patchwork-Id: 111445 Delivered-To: patch@linaro.org Received: by 10.140.95.112 with SMTP id h103csp111772qge; Thu, 31 Aug 2017 14:46:59 -0700 (PDT) X-Google-Smtp-Source: ADKCNb4dmdHqmYojIRIXyUZ/EoNDt5MgmN4BlA5OdXE7OxLLmJfQKh+mMVThRbi3JdL7IPrWMUB+ X-Received: by 10.200.15.29 with SMTP id e29mr9070847qtk.5.1504216019527; Thu, 31 Aug 2017 14:46:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1504216019; cv=none; d=google.com; s=arc-20160816; b=zmtHnIkT9y+JAV1VuTzfFv2fCRYlwoady+H9d+ndcDCnxlsqR0zjnyeffdRxnCE7Eq FWVVfxAt/g49KANbwgNaUAxsJbH+avq0U+2E3Up5rL9VD6rrtvM/qeYwuMpNbytfJlwn 88shUuk2x1U6zOg6Wg4dPNEm2dNiEwU7Hvi8FH3dY8doL6imsnUZjbve8t1D2HlY7uBM ZKQW5pWbdXj76cU5x1i/sHz4a7fS6L015ZHZK0BlLqcliJ1uvQ4G62zLIDApRfi6cNoz B6p1XUdEYBToziboZBUhaeOim5/9s9jDPnEMheOuWaue8zuPyE8DP4ZYUX04iNPdnJWe zWhg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:message-id:date:subject:to:from :arc-authentication-results; bh=JGIrmKQe8vDgTTjUCFFLGhg6SVVPuYo33MiS41T4J4o=; b=zFUywDg9lbngFpDhhL7pNcSR22dfRkPuDWTiOQV3wneu1ra5rgGS4ExGhnqE8vX7jM 7INeUmKxqOr91qc5HzOwA3+T2tPlbAEzb7pL2g8+b6RdiBlAxrsaeFu6NTxlXKSDBue9 lMrnhcIMfQUvnC3XKN0IMEaVqtukCKL96U9AT1AHOMMXv7UiuQGVivEfn7T0+T5R1AsT hjWhZiNUN+WYR5/NNzuWC7PomCvM5jMBabHe8/28qSfEqPv+E86gzZD7kMQljug9zpNT UQOhf+Ibf80n4Co5tl2fbcAVRu8+lv/lgk5A0qwjA6o51OfiRDmuGysCofr73hIOkFzU VaNQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of grub-devel-bounces+patch=linaro.org@gnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=grub-devel-bounces+patch=linaro.org@gnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id t26si769201qta.228.2017.08.31.14.46.59 for (version=TLS1 cipher=AES128-SHA bits=128/128); Thu, 31 Aug 2017 14:46:59 -0700 (PDT) Received-SPF: pass (google.com: domain of grub-devel-bounces+patch=linaro.org@gnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; spf=pass (google.com: domain of grub-devel-bounces+patch=linaro.org@gnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=grub-devel-bounces+patch=linaro.org@gnu.org Received: from localhost ([::1]:57631 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dnXIf-0001Lh-Ek for patch@linaro.org; Thu, 31 Aug 2017 17:46:57 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55248) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dnXIW-0001LI-3z for grub-devel@gnu.org; Thu, 31 Aug 2017 17:46:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dnXIR-0003bX-7P for grub-devel@gnu.org; Thu, 31 Aug 2017 17:46:48 -0400 Received: from mx2.suse.de ([195.135.220.15]:48942 helo=mx1.suse.de) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dnXIR-0003bF-0w for grub-devel@gnu.org; Thu, 31 Aug 2017 17:46:43 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 6015CAF50; Thu, 31 Aug 2017 21:46:41 +0000 (UTC) From: Alexander Graf To: grub-devel@gnu.org Subject: [PATCH v7 0/2] efi: Free memory on exit Date: Thu, 31 Aug 2017 16:40:17 +0200 Message-Id: <20170831144019.65588-1-agraf@suse.de> X-Mailer: git-send-email 2.12.3 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (no timestamps) [generic] [fuzzy] X-Received-From: 195.135.220.15 X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: The development of GNU GRUB Cc: Leif Lindholm , phcoder@gmail.com, mchang@suse.com, Daniel Kiper , elliott@hpe.com MIME-Version: 1.0 Errors-To: grub-devel-bounces+patch=linaro.org@gnu.org Sender: "Grub-devel" When exiting grub, we currently leave the heap allocated. This means that if we exit and rerun grub, after a few iterations we can run into memory shortage. This patch set frees the heap on exit. That way we can rerun grub many times without much problem. v3 -> v4: - Move grub_reboot to kern/efi/efi.c - use dynamic list instead of static array at runtime - use allocate_pool for list, so we are not bound by heap or random numbers - remember all allocations, not just the heap v4 -> v5: - free dynamic list entries on allocation removal v5 -> v6: - move next ptr to last field - s/start_addr/address/ - s/grub_efi_unremember_pages()/grub_efi_drop_alloc()/ - s/grub_efi_remember_pages()/grub_efi_store_alloc()/ - move grub_efi_drop_alloc after grub_efi_store_alloc - s/grub2/GRUB/ - Make grub_efi_memory_fini comment more verbose - Drop useless efi_allocated_memory = NULL; line v6 -> v7: - rewrite grub_efi_drop_alloc() according to Daniel's comments Alexander Graf (2): efi: Move grub_reboot() into kernel efi: Free malloc regions on exit grub-core/Makefile.core.def | 4 --- grub-core/kern/efi/efi.c | 9 ++++++ grub-core/kern/efi/init.c | 1 + grub-core/kern/efi/mm.c | 79 +++++++++++++++++++++++++++++++++++++++++++++ grub-core/lib/efi/reboot.c | 33 ------------------- include/grub/efi/efi.h | 1 + include/grub/misc.h | 3 +- 7 files changed, 92 insertions(+), 38 deletions(-) delete mode 100644 grub-core/lib/efi/reboot.c -- 2.12.3 _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel