From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from buffalo.u-blox.com (buffalo.u-blox.com [195.34.89.137]) by sourceware.org (Postfix) with ESMTPS id 04D133857C78 for ; Sun, 8 Nov 2020 17:14:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 04D133857C78 Received: from mail_filter (localhost [127.0.0.1]) by buffalo.u-blox.com (PF_LO_10026) with ESMTP id B9DDF39F13 for ; Sun, 8 Nov 2020 18:14:07 +0100 (CET) Received: from ASSP.nospam (localhost [127.0.0.1]) by buffalo.u-blox.com (Postfix) with ESMTP id 9BCA339EEB for ; Sun, 8 Nov 2020 18:14:07 +0100 (CET) Received: from unknown ([127.0.0.1] helo=anyhost.local) by ASSP.nospam with SMTP (2.4.7); 8 Nov 2020 18:14:07 +0100 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WgPMioI5xdu2ejzEmr0QGgaVxOGaPCisBewRp+CwEr+ATD3HAhvEgvYtokDA5TTOy8Rx6KQ0WwHEM2kwlZ99gya1imV+mmmNRr/RUXAmGgRceUc//gH7PGveikR2lOVMV1tNP5dOQjyKK0BGZHMYxFRytvD+sB1XgdDlYzmWhiQM/vXdBP6YZN1xNFl1Rf/oX6TTNGFlUGRrz57UmD54e2RiXr2P4xaLN4iGaVn9xOPL6Gxrxpxv2syOtW4unUmZ0elCEmggXLmI/MJQm3gmeCemYSnQ4W5rkUye6MRL7fGEHpaLHFJvfCVly7n9FdnVuFVVhtOrACL2QDbgHJWczw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=95PwzqPGLT7Dogp4b5UjyCFIXy0NYfSZ976C9FeErZQ=; b=AEOcSnUd4yexV4q1K5b5sHM/s9KOXHCX5keGCr3VlRQZGMYT3u5mLUzViQTRrVGyTQxcCGKDX42F4BYC7Fhq1AfAyiHap9F9LAStW2bPsLkHbv5AjXyhh8lK2XfsQqyqLES4cZk4vxaVITNgXHWGVUT5HKntqQBG6wYzfvJbv1UO+gaz63KdbZRuEswG1jWJ+7aRHFUbcvfJUPlm1Da0EleGsWzfMGpjPStgQernPAIASgtGJxu0DFRf6ECvk4Y+2MkA4lXf0eg2c1dxyxiZ4N4Ue7Q4toS0aKseWHEOaUIGSyl3a6i3DtpUKRk0keA7ZIie7DlJR2j5OS8scmRhjA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=u-blox.com; dmarc=pass action=none header.from=u-blox.com; dkim=pass header.d=u-blox.com; arc=none From: Rob Meades To: "newlib@sourceware.org" Subject: Implementing a heap watermark Thread-Topic: Implementing a heap watermark Thread-Index: Ada18Zj4lC8gH5XeQF6+3GHSpw7cBw== Date: Sun, 8 Nov 2020 17:14:05 +0000 Message-ID: Accept-Language: en-US, en-GB Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 50b0e35b-8eda-41c0-2e27-08d88409b2ad x-ms-traffictypediagnostic: CWXP265MB1574: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: zG+X/XQuylAbwo2RqHrERlsNvGg28kqMfL7L4onwFOA5RKAEml8Xi4hVTDl1d1eB3CntWngyNYhfsvHeCCvuq4Dgi+CRK91BHI70q2766g99QsH5rL0QfKC/XVdCDFqZgl3bpytvOVNs+CZJZtnJ7C4t1CUsPY1WSq4Sv88bj88XuegRB4ju/SBC/KsKZisARTXAaFBFv0OeLWDgNUO2GoDM1cFEZoWIElQXCmDp/TN1TkXS5DNE/lf/MEpn4FqGPmjBDdYMt+KR6+uYDW9cFJ5YDQe7cSv2+6pnUovVxKWPMCmUyHnLo+FCKb/w3IhuTqV9qWI5hM+fEevkADrCQg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CWXP265MB0039.GBRP265.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(39830400003)(366004)(136003)(396003)(346002)(376002)(8936002)(4744005)(55016002)(52536014)(9686003)(316002)(33656002)(3480700007)(8676002)(71200400001)(86362001)(186003)(83380400001)(5660300002)(66476007)(66556008)(64756008)(66446008)(6506007)(6916009)(7696005)(76116006)(478600001)(2906002)(26005)(66946007); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: rafeRPQf058OK9ek70CLoLN9dpQbHUuCDWUvY7jtuE9W/gMvj8ErgZm0dbWY4SiXCxUP5ak1OVgIQOVv2AqhxSuKnBf4m18eg332CyOMOqvQGx5ymeG9DRP9nd/2ROjjp4tUV5SUeCG438euqzANLEyOpaB2f1+T7cevYHXO0bOYBg+w4OQph5rboeiQEcNkwf/eYVqt0q39iNGwFHJKpN6jogIXFQXs0DkRhq7mXHTxD/ZGJCL7qgswXIIBTEs8O43ON+QaxVuGDAJWI0pC+Ema5V/jiJL90gAnAAtFdiB98UYm/xID6e1+1tVS/O1R+E0hmAEJjfmrvOOR/aLOi+WG4utaujcv1ydgJ8hFJLsSydTI3MwfP1IPrFWNGqE0ux3mJsfsGmlWQxtwCyHhTmbd3NL6dN45Fhi3A5bdSeFmCoTWeNndWMfm9tF/ZHO/vp6uIV8xPNUrGiVU+OK3oC1VI/q5dbfLL8fgd1cZ+SiVDyvQ1NeUa5sEmt9JCZcZOO49hAqychR3prsK66agmtI3/klGoqbFnBrGcuRe4473zeiwDcQmdBLr7Rp7XipCy8l46uDrJALUO+X5xMoEd2BaTq8PAyAtLm79ewYwdTtd4fqsAEt2PV0vMjcHU4h0KXPj8zliW1VmS++yfOh0eQ== x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CWXP265MB0039.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 50b0e35b-8eda-41c0-2e27-08d88409b2ad X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Nov 2020 17:14:05.9091 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 80c4ffa6-7511-4bba-9f03-e5872a660c9b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: wGhG3yUNsDlUr3H14bCQdh5S2qaf6hFBmgSi/gjc7kdYbJo4Ar4jLl/+SK/LsFou2VZ3zahlM9fcQWMq10I+7Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CWXP265MB1574 X-OriginatorOrg: u-blox.com X-Assp-Version: 2.4.7(16004) on ASSP.nospam X-Assp-ID: ASSP.nospam 55647-09436 X-Assp-Session: 8D665850 (mail 1) X-Assp-Original-Subject: Implementing a heap watermark X-Assp-Client-TLS: yes X-Virus-Scanned: clamav-milter 0.99.4 at buffalo X-Virus-Status: Clean X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_20, KAM_DMARC_STATUS, SPF_HELO_PASS, SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: newlib@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Newlib mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Nov 2020 17:14:13 -0000 I run/test my library code on various embedded processors (STM32F4, NRF52/5= 3, ESP32), all of which use newlib. I need to implement a "minimum heap ever available" watermark kind of funct= ion so that, after my tests are run, I can be sure that I have left suffici= ent room for user code to obtain heap memory. Such a facility does not seem to be available in newlib out of the box: doe= s anyone have any recommendations on how to go about implementing such a fu= nction? For instance, is the newlib malloc()ater guaranteed to only call sbrk() whe= n it really needs more memory, as opposed to when it might have free blocks= available but it is "cheaper" to call sbrk() then to allocate from those b= locks? If the former then simply monitoring sbrk() would do the job for me= . If the latter then I probably have to intercept the malloc()/free() call= s to track what's going on. Rob