From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com [IPv6:2a00:1450:4864:20::12a]) by sourceware.org (Postfix) with ESMTPS id 226FF385AC12 for ; Thu, 7 Dec 2023 14:28:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 226FF385AC12 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 226FF385AC12 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::12a ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701959312; cv=none; b=qicnt52xIRLCoYH8EcVtYgszf3Q+A4mlYGIz59BPUR6Y5LDXtwlmHWvUQAWnTE09ERfsSPPMehnz8g2/r40u5UU5e4ZNpUxtMLVEMyHEIebq/atMqDRANbNzy9H/Lbp3S1FZhlYiJy7l0T4b1eIUx0zkbBz9FWMyt2qXnS+klcY= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701959312; c=relaxed/simple; bh=uUWLfpPoGsw4RdHPEr6sXTrqPmoPXK01aPd7Cu8Fp+w=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=I8QCnffLS1yzpHXHRnG9ifnFtB/DAAb+KeZJBJYEx78gQIifEb4HQJJUdhYNmuqsHQNGeSYjziEGygkZBLSaW5v4FJduxiAb04R/VFjx0PxRnKMjWWtFr0Ivmvtea8BnKWEOlGocH+5qF9iit3tU3XjFZTgL1g7FGs7U8ZD/xB8= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-lf1-x12a.google.com with SMTP id 2adb3069b0e04-50bf69afa99so919782e87.3 for ; Thu, 07 Dec 2023 06:28:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701959309; x=1702564109; darn=gcc.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=s/JGJcdt5LsisjlPN52tBo+x8g071b7NHWEQC+No1Eo=; b=dkXM+nGkiLE6wk9f+SJdhemsuvWXaWyotPh4MNF4+wy6OCxyeCdFj9fjlTJ/HinbI/ M30JNrmjc+udr1GmPvkiWGd0KMhFZrxPzJiNhPtBfG8BelWnraZEoojLNwd9akz/R5nQ YEDB0WQxt0DlPg9xppNbUvXvnZObWedag7vgb4jQc9SHJ5BjV25uUJ9+6dDpc+1LYNTK 8UQeG7J889P3758873ORpAjAhqHQgKx2pchhgKUPkpCeec2Tjyj+WA4vviYW1QtXAy5z cn83RjNSCETv/IOBd98VUbAOj+XSkZta4Dza9hriFc05EXWDzHri92JyuAClQfH9/dxU M0oQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701959309; x=1702564109; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=s/JGJcdt5LsisjlPN52tBo+x8g071b7NHWEQC+No1Eo=; b=KN7xQilxzbXJ8Q4EeDVAGqDO7AOKhVaKWMMg94+qsOo+v0hxXu22WehDZGR9MjDLo/ 1iq9uD7QUz6CdLGMEqMR9r7yP+1pyz9Lfjk5pYIeeLi5e9SJpftIAT19oK3zSAinX3in VeJkvAo3M6y5YTzzLyKDN4lq/2WdRTZEj1Aw4jmgJwSfMdODnH3EhDXeURIsD8dnKxRh V2u/UOMw2DyBkZOrC6VXWldK2KK04EJQJ1riTVR1IvpBoFZUyKOIGFmPBf5sQJrxdWLQ o5QQMN0pnBIvbWLsAQLLytlOL09Iy4LTADf5ds2DnOdLANXnLHPfuZDuEHw5tVoJ5Pkm K9Ew== X-Gm-Message-State: AOJu0YxqmZuhe3qsKUmh0mu+jFK/dWji6b9jmhVzmI9CPyo4kWgEkPyu qbqWDq2y2Euma5yVU6V+zM/UpH2pNYPSOel/N0hnxN/EpM4= X-Google-Smtp-Source: AGHT+IGcaYgFeRrb+bWAvC9va23gF6pCQa7m6Eh6u+CEqChw5eJLoewqqdXXkvIcHNEd0Nyjg6awNSrPs9E2I6tooac= X-Received: by 2002:ac2:5de7:0:b0:50b:fd92:4d4c with SMTP id z7-20020ac25de7000000b0050bfd924d4cmr1658736lfq.123.1701959309183; Thu, 07 Dec 2023 06:28:29 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Costas Argyris Date: Thu, 7 Dec 2023 14:28:18 +0000 Message-ID: Subject: Re: [PATCH] driver: Fix memory leak. To: Jakub Jelinek Cc: Jonathan Wakely , gcc-patches@gcc.gnu.org Content-Type: multipart/mixed; boundary="0000000000000c7d49060bec486f" X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,HTML_MESSAGE,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --0000000000000c7d49060bec486f Content-Type: multipart/alternative; boundary="0000000000000c7d47060bec486d" --0000000000000c7d47060bec486d Content-Type: text/plain; charset="UTF-8" Would that be something like this? Although it didn't fix the leak, which was the entire point of this exercise. Maybe because driver::finalize () is not getting called so the call to mdswitches.release () doesn't really happen, which was the reason I went with std::vector in the first place because it takes care of itself. On Wed, 6 Dec 2023 at 14:39, Jakub Jelinek wrote: > On Wed, Dec 06, 2023 at 02:29:25PM +0000, Costas Argyris wrote: > > Attached a new patch with these changes. > > > > On Mon, 4 Dec 2023 at 12:15, Jonathan Wakely wrote: > > > > > On Sat, 2 Dec 2023 at 21:24, Costas Argyris wrote: > > > > > > > > Use std::vector instead of malloc'd pointer > > > > to get automatic freeing of memory. > > > > > > You can't include there. Instead you need to define > > > INCLUDE_VECTOR before "system.h" > > > > > > Shouldn't you be using resize, not reserve? Otherwise mdswitches[i] is > > > undefined. > > Any reason not to use vec.h instead? > I especially don't like the fact that with a global > std::vector var; > it means runtime __cxa_atexit for the var the destruction, which it really > doesn't need on exit. > > We really don't need to free the memory at exit time, that is just wasted > cycles, all we need is that it is freed before the pointer or vector is > cleared. > > Jakub > > --0000000000000c7d47060bec486d-- --0000000000000c7d49060bec486f Content-Type: application/octet-stream; name="0001-driver-Fix-memory-leak.patch" Content-Disposition: attachment; filename="0001-driver-Fix-memory-leak.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lpvafu0w0 RnJvbSBhNzY5NDJmY2FjZDEyYWQ5NTY2N2NjNzgyYzhkMGFmZjIzY2VhZmFi IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDb3N0YXMgQXJneXJp cyA8Y29zdGFzLmFyZ3lyaXNAZ21haWwuY29tPgpEYXRlOiBTYXQsIDIgRGVj IDIwMjMgMjA6NTI6MDcgKzAwMDAKU3ViamVjdDogW1BBVENIXSBkcml2ZXI6 IEZpeCBtZW1vcnkgbGVhay4KClVzZSB2ZWMgaW5zdGVhZCBvZiBtYWxsb2Mn ZCBwb2ludGVyCnRvIGdldCBhdXRvbWF0aWMgZnJlZWluZyBvZiBtZW1vcnku CgpSZXN1bHQgd2FzIHZlcmlmaWVkIGJ5IHZhbGdyaW5kLCB3aGljaCBzaG93 ZWQKb25lIGxlc3MgbG9zcyByZWNvcmQuCgpTaWduZWQtb2ZmLWJ5OiBDb3N0 YXMgQXJneXJpcyA8Y29zdGFzLmFyZ3lyaXNAZ21haWwuY29tPgotLS0KIGdj Yy9nY2MuY2MgfCAxNCArKysrKysrLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDcgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9nY2MvZ2NjLmNjIGIvZ2NjL2djYy5jYwppbmRleCA5ZjIxYWQ5NDUzZS4u NjUzNGUwOTg2MGMgMTAwNjQ0Ci0tLSBhL2djYy9nY2MuY2MKKysrIGIvZ2Nj L2djYy5jYwpAQCAtOTUzNCw3ICs5NTM0LDcgQEAgc3RydWN0IG1kc3dpdGNo c3RyCiAgIGludCBsZW47CiB9OwogCi1zdGF0aWMgc3RydWN0IG1kc3dpdGNo c3RyICptZHN3aXRjaGVzOworc3RhdGljIHZlYzxzdHJ1Y3QgbWRzd2l0Y2hz dHI+IG1kc3dpdGNoZXM7CiBzdGF0aWMgaW50IG5fbWRzd2l0Y2hlczsKIAog LyogQ2hlY2sgd2hldGhlciBhIHBhcnRpY3VsYXIgYXJndW1lbnQgd2FzIHVz ZWQuICBUaGUgZmlyc3QgdGltZSB3ZQpAQCAtOTc1MSw5ICs5NzUxLDcgQEAg c2V0X211bHRpbGliX2RpciAodm9pZCkKIAogICBpZiAobl9tZHN3aXRjaGVz KQogICAgIHsKLSAgICAgIGludCBpID0gMDsKLQotICAgICAgbWRzd2l0Y2hl cyA9IFhORVdWRUMgKHN0cnVjdCBtZHN3aXRjaHN0ciwgbl9tZHN3aXRjaGVz KTsKKyAgICAgIG1kc3dpdGNoZXMuY3JlYXRlIChuX21kc3dpdGNoZXMpOwog ICAgICAgZm9yIChzdGFydCA9IG11bHRpbGliX2RlZmF1bHRzOyAqc3RhcnQg IT0gJ1wwJzsgc3RhcnQgPSBlbmQgKyAxKQogCXsKIAkgIHdoaWxlICgqc3Rh cnQgPT0gJyAnIHx8ICpzdGFydCA9PSAnXHQnKQpAQCAtOTc2OCw4ICs5NzY2 LDEwIEBAIHNldF9tdWx0aWxpYl9kaXIgKHZvaWQpCiAKIAkgIG9ic3RhY2tf Z3JvdyAoJm11bHRpbGliX29ic3RhY2ssIHN0YXJ0LCBlbmQgLSBzdGFydCk7 CiAJICBvYnN0YWNrXzFncm93ICgmbXVsdGlsaWJfb2JzdGFjaywgMCk7Ci0J ICBtZHN3aXRjaGVzW2ldLnN0ciA9IFhPQkZJTklTSCAoJm11bHRpbGliX29i c3RhY2ssIGNvbnN0IGNoYXIgKik7Ci0JICBtZHN3aXRjaGVzW2krK10ubGVu ID0gZW5kIC0gc3RhcnQ7CisJICBzdHJ1Y3QgbWRzd2l0Y2hzdHIgdG1wOwor CSAgdG1wLnN0ciA9IFhPQkZJTklTSCAoJm11bHRpbGliX29ic3RhY2ssIGNv bnN0IGNoYXIgKik7CisJICB0bXAubGVuID0gZW5kIC0gc3RhcnQ7CisJICBt ZHN3aXRjaGVzLnNhZmVfcHVzaCAodG1wKTsKIAogCSAgaWYgKCplbmQgPT0g J1wwJykKIAkgICAgYnJlYWs7CkBAIC0xMTM2Niw3ICsxMTM2Niw3IEBAIGRy aXZlcjo6ZmluYWxpemUgKCkKICAgaW5wdXRfZnJvbV9waXBlID0gMDsKICAg c3VmZml4X3N1YnN0ID0gTlVMTDsKIAotICBtZHN3aXRjaGVzID0gTlVMTDsK KyAgbWRzd2l0Y2hlcy5yZWxlYXNlICgpOwogICBuX21kc3dpdGNoZXMgPSAw OwogCiAgIHVzZWRfYXJnLmZpbmFsaXplICgpOwotLSAKMi4zMC4yCgo= --0000000000000c7d49060bec486f--