From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id F3C18C4332D for ; Thu, 4 Mar 2021 23:20:30 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 965A664FFD for ; Thu, 4 Mar 2021 23:20:30 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 965A664FFD Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id AD8C46EA8A; Thu, 4 Mar 2021 23:20:24 +0000 (UTC) Received: from mail-pf1-x42d.google.com (mail-pf1-x42d.google.com [IPv6:2607:f8b0:4864:20::42d]) by gabe.freedesktop.org (Postfix) with ESMTPS id 77DE56EA8A for ; Thu, 4 Mar 2021 23:20:23 +0000 (UTC) Received: by mail-pf1-x42d.google.com with SMTP id d12so405832pfo.7 for ; Thu, 04 Mar 2021 15:20:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=1viYL6LhK+5nIQ13ju++XlarHcY6osyk1cCjbOPG1F0=; b=KcWKRMcTqPHZF1q05Ce0JCzTme39nwPKHDDiT/YIqKCsscOzC9PyUbaxoEvglXFwrK 1w32NYPCKD9OTcIgZBeCWhzZDLKez5Sl3ufwPZjZCA9VnxgZhu0jIuSF7RZQwDPMX1lw Z5a47mYCKuV+OVShTvu9KWHrGgTAPKj4pQIvMwsZNm24ziWIXPihJMDYtexedzbB1N5u nyE1nYLI9TW/aaWhK7GA7d3xngcaHhqA/h6acr3mB5GPKA7G2GqQUQQXj+4luvgel37m P4UBL+C8Ll6L9gUFrsn3ZL/qjxkKcuBQ2s/cwt2cj3mDi8uyuMqv3qGrJM83UhMY0Tty Fa4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=1viYL6LhK+5nIQ13ju++XlarHcY6osyk1cCjbOPG1F0=; b=AWqkMGisjYOrdZjcKB11T3DsyXjatQ0Bmja8IKrNjbmPmXHn2uD5iIrrhvtknpoi6T Q2jrJQ79K0KgfjTHxYxYrCtBGOGOV9askobiNzSATrBz8aXjgzlYBhS7anSYIFeLYzVH oLqeKyG0T0oYsc2disrEsxsHQExBqGFxsH/gl99c1DhM6wUq/Ist6UIxGDcdiVd/eipI CpQxyaIKMkYr8AkvxvwB3aR/dO2iCECLPRB7pHzpvyluNBLrpSZFhHVhGwj0eZxKpUou 69R5BVBS+q875+Fyh/uAv4YLToyk11a4x3bXdnl/hOdbpdp5Ld2OyZetG/lz6AQDPbL6 sVEw== X-Gm-Message-State: AOAM531g1ihvXRQVdgoiEaAWSirQ6S2j8+ZezMLhl4tuO6CH2oOi/cV4 vjoupqQaf5FT1iiQo/vCsM/7bZP3HHcpHg== X-Google-Smtp-Source: ABdhPJw2jFY8Rq+iS4tDrmeKtrXjB9IUAoh4ZkSvegh37qen93VKtQdaq2WlbCBS2hJuKS1jzQ4vsA== X-Received: by 2002:aa7:8d05:0:b029:1ec:b460:f21d with SMTP id j5-20020aa78d050000b02901ecb460f21dmr6027582pfe.29.1614900023086; Thu, 04 Mar 2021 15:20:23 -0800 (PST) Received: from localhost.localdomain ([2601:1c2:680:1319:692:26ff:feda:3a81]) by smtp.gmail.com with ESMTPSA id u66sm429290pfc.72.2021.03.04.15.20.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Mar 2021 15:20:22 -0800 (PST) From: John Stultz To: lkml Subject: [PATCH v8 5/5] dma-buf: system_heap: Add deferred freeing to the system heap Date: Thu, 4 Mar 2021 23:20:11 +0000 Message-Id: <20210304232011.1479036-6-john.stultz@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210304232011.1479036-1-john.stultz@linaro.org> References: <20210304232011.1479036-1-john.stultz@linaro.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: dri-devel@lists.freedesktop.org, Sandeep Patil , Ezequiel Garcia , Robin Murphy , James Jones , Liam Mark , Laura Abbott , Chris Goldsworthy , Hridya Valsaraju , =?UTF-8?q?=C3=98rjan=20Eide?= , linux-media@vger.kernel.org, Suren Baghdasaryan , Christian Koenig , Daniel Mentz Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" VXRpbGl6ZSB0aGUgZGVmZXJyZWQgZnJlZSBoZWxwZXIgbGlicmFyeSBpbiB0aGUgc3lzdGVtIGhl YXAuCgpUaGlzIHByb3ZpZGVzIGEgbmljZSBwZXJmb3JtYW5jZSBidW1wIGFuZCBwdXRzIHRoZQpz eXN0ZW0gaGVhcCBwZXJmb3JtYW5jZSBvbiBwYXIgd2l0aCBJT04uCgpDYzogRGFuaWVsIFZldHRl ciA8ZGFuaWVsQGZmd2xsLmNoPgpDYzogQ2hyaXN0aWFuIEtvZW5pZyA8Y2hyaXN0aWFuLmtvZW5p Z0BhbWQuY29tPgpDYzogU3VtaXQgU2Vtd2FsIDxzdW1pdC5zZW13YWxAbGluYXJvLm9yZz4KQ2M6 IExpYW0gTWFyayA8bG1hcmtAY29kZWF1cm9yYS5vcmc+CkNjOiBDaHJpcyBHb2xkc3dvcnRoeSA8 Y2dvbGRzd29AY29kZWF1cm9yYS5vcmc+CkNjOiBMYXVyYSBBYmJvdHQgPGxhYmJvdHRAa2VybmVs Lm9yZz4KQ2M6IEJyaWFuIFN0YXJrZXkgPEJyaWFuLlN0YXJrZXlAYXJtLmNvbT4KQ2M6IEhyaWR5 YSBWYWxzYXJhanUgPGhyaWR5YUBnb29nbGUuY29tPgpDYzogU3VyZW4gQmFnaGRhc2FyeWFuIDxz dXJlbmJAZ29vZ2xlLmNvbT4KQ2M6IFNhbmRlZXAgUGF0aWwgPHNzcGF0aWxAZ29vZ2xlLmNvbT4K Q2M6IERhbmllbCBNZW50eiA8ZGFuaWVsbWVudHpAZ29vZ2xlLmNvbT4KQ2M6IMOYcmphbiBFaWRl IDxvcmphbi5laWRlQGFybS5jb20+CkNjOiBSb2JpbiBNdXJwaHkgPHJvYmluLm11cnBoeUBhcm0u Y29tPgpDYzogRXplcXVpZWwgR2FyY2lhIDxlemVxdWllbEBjb2xsYWJvcmEuY29tPgpDYzogU2lt b24gU2VyIDxjb250YWN0QGVtZXJzaW9uLmZyPgpDYzogSmFtZXMgSm9uZXMgPGpham9uZXNAbnZp ZGlhLmNvbT4KQ2M6IGxpbnV4LW1lZGlhQHZnZXIua2VybmVsLm9yZwpDYzogZHJpLWRldmVsQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpTaWduZWQtb2ZmLWJ5OiBKb2huIFN0dWx0eiA8am9obi5zdHVs dHpAbGluYXJvLm9yZz4KLS0tCnYyOgoqIFJld29yayBkZWZlcnJlZC1mcmVlIGFwaSB0byB1c2Ug cmVhc29uIGVudW0gYXMgc3VnZ2VzdGVkIGJ5CiAgU3VyZW4gQmFnaGRhc2FyeWFuCiogUmV3b3Jr IGZvciBkZWZlcnJlZC1mcmVlIGFwaSBjaGFuZ2UgdG8gdXNlIG5yX3BhZ2VzIHJhdGhlcgogIHRo YW4gc2l6ZSBhcyBzdWdnc3RlZCBieSBTdXJlbiBCYWdoZGFzYXJ5YW4Kdjg6CiogUmV3b3JrZWQg dG8gZHJvcCBidWZmZXIgemVyb2luZyBsb2dpYywgYXMgdGhlIGRybV9wYWdlX3Bvb2wgbm93CiAg aGFuZGxlcyB0aGF0LgotLS0KIGRyaXZlcnMvZG1hLWJ1Zi9oZWFwcy9LY29uZmlnICAgICAgIHwg IDEgKwogZHJpdmVycy9kbWEtYnVmL2hlYXBzL3N5c3RlbV9oZWFwLmMgfCAyOCArKysrKysrKysr KysrKysrKysrKysrLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDIzIGluc2VydGlvbnMoKyksIDYg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL2hlYXBzL0tjb25maWcg Yi9kcml2ZXJzL2RtYS1idWYvaGVhcHMvS2NvbmZpZwppbmRleCA3ZTI4OTM0ZTBkZWYuLjEwNjMy Y2NmYjRhNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9kbWEtYnVmL2hlYXBzL0tjb25maWcKKysrIGIv ZHJpdmVycy9kbWEtYnVmL2hlYXBzL0tjb25maWcKQEAgLTUsNiArNSw3IEBAIGNvbmZpZyBETUFC VUZfSEVBUFNfU1lTVEVNCiAJYm9vbCAiRE1BLUJVRiBTeXN0ZW0gSGVhcCIKIAlkZXBlbmRzIG9u IERNQUJVRl9IRUFQUwogCXNlbGVjdCBEUk1fUEFHRV9QT09MCisJc2VsZWN0IERNQUJVRl9IRUFQ U19ERUZFUlJFRF9GUkVFCiAJaGVscAogCSAgQ2hvb3NlIHRoaXMgb3B0aW9uIHRvIGVuYWJsZSB0 aGUgc3lzdGVtIGRtYWJ1ZiBoZWFwLiBUaGUgc3lzdGVtIGhlYXAKIAkgIGlzIGJhY2tlZCBieSBw YWdlcyBmcm9tIHRoZSBidWRkeSBhbGxvY2F0b3IuIElmIGluIGRvdWJ0LCBzYXkgWS4KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZG1hLWJ1Zi9oZWFwcy9zeXN0ZW1faGVhcC5jIGIvZHJpdmVycy9kbWEt YnVmL2hlYXBzL3N5c3RlbV9oZWFwLmMKaW5kZXggMDA2MjcxODgxZDg1Li5jNzUzYzgyZmQ5ZjEg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZG1hLWJ1Zi9oZWFwcy9zeXN0ZW1faGVhcC5jCisrKyBiL2Ry aXZlcnMvZG1hLWJ1Zi9oZWFwcy9zeXN0ZW1faGVhcC5jCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5j bHVkZSA8bGludXgvdm1hbGxvYy5oPgogCiAjaW5jbHVkZSA8ZHJtL3BhZ2VfcG9vbC5oPgorI2lu Y2x1ZGUgImRlZmVycmVkLWZyZWUtaGVscGVyLmgiCiAKIHN0YXRpYyBzdHJ1Y3QgZG1hX2hlYXAg KnN5c19oZWFwOwogCkBAIC0zMyw2ICszNCw3IEBAIHN0cnVjdCBzeXN0ZW1faGVhcF9idWZmZXIg ewogCXN0cnVjdCBzZ190YWJsZSBzZ190YWJsZTsKIAlpbnQgdm1hcF9jbnQ7CiAJdm9pZCAqdmFk ZHI7CisJc3RydWN0IGRlZmVycmVkX2ZyZWVsaXN0X2l0ZW0gZGVmZXJyZWRfZnJlZTsKIH07CiAK IHN0cnVjdCBkbWFfaGVhcF9hdHRhY2htZW50IHsKQEAgLTI5MCwyNyArMjkyLDQxIEBAIHN0YXRp YyB1bnNpZ25lZCBsb25nIHN5c3RlbV9oZWFwX2ZyZWVfcGFnZXMoc3RydWN0IGRybV9wYWdlX3Bv b2wgKnBvb2wsIHN0cnVjdCBwCiAJcmV0dXJuIDEgPDwgcG9vbC0+b3JkZXI7CiB9CiAKLXN0YXRp YyB2b2lkIHN5c3RlbV9oZWFwX2RtYV9idWZfcmVsZWFzZShzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVm KQorc3RhdGljIHZvaWQgc3lzdGVtX2hlYXBfYnVmX2ZyZWUoc3RydWN0IGRlZmVycmVkX2ZyZWVs aXN0X2l0ZW0gKml0ZW0sCisJCQkJIGVudW0gZGZfcmVhc29uIHJlYXNvbikKIHsKLQlzdHJ1Y3Qg c3lzdGVtX2hlYXBfYnVmZmVyICpidWZmZXIgPSBkbWFidWYtPnByaXY7CisJc3RydWN0IHN5c3Rl bV9oZWFwX2J1ZmZlciAqYnVmZmVyOwogCXN0cnVjdCBzZ190YWJsZSAqdGFibGU7CiAJc3RydWN0 IHNjYXR0ZXJsaXN0ICpzZzsKIAlpbnQgaSwgajsKIAorCWJ1ZmZlciA9IGNvbnRhaW5lcl9vZihp dGVtLCBzdHJ1Y3Qgc3lzdGVtX2hlYXBfYnVmZmVyLCBkZWZlcnJlZF9mcmVlKTsKIAl0YWJsZSA9 ICZidWZmZXItPnNnX3RhYmxlOwogCWZvcl9lYWNoX3NnKHRhYmxlLT5zZ2wsIHNnLCB0YWJsZS0+ bmVudHMsIGkpIHsKIAkJc3RydWN0IHBhZ2UgKnBhZ2UgPSBzZ19wYWdlKHNnKTsKIAotCQlmb3Ig KGogPSAwOyBqIDwgTlVNX09SREVSUzsgaisrKSB7Ci0JCQlpZiAoY29tcG91bmRfb3JkZXIocGFn ZSkgPT0gb3JkZXJzW2pdKQotCQkJCWJyZWFrOworCQlpZiAocmVhc29uID09IERGX1VOREVSX1BS RVNTVVJFKSB7CisJCQlfX2ZyZWVfcGFnZXMocGFnZSwgY29tcG91bmRfb3JkZXIocGFnZSkpOwor CQl9IGVsc2UgeworCQkJZm9yIChqID0gMDsgaiA8IE5VTV9PUkRFUlM7IGorKykgeworCQkJCWlm IChjb21wb3VuZF9vcmRlcihwYWdlKSA9PSBvcmRlcnNbal0pCisJCQkJCWJyZWFrOworCQkJfQor CQkJZHJtX3BhZ2VfcG9vbF9hZGQoJnBvb2xzW2pdLCBwYWdlKTsKIAkJfQotCQlkcm1fcGFnZV9w b29sX2FkZCgmcG9vbHNbal0sIHBhZ2UpOwogCX0KIAlzZ19mcmVlX3RhYmxlKHRhYmxlKTsKIAlr ZnJlZShidWZmZXIpOwogfQogCitzdGF0aWMgdm9pZCBzeXN0ZW1faGVhcF9kbWFfYnVmX3JlbGVh c2Uoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZikKK3sKKwlzdHJ1Y3Qgc3lzdGVtX2hlYXBfYnVmZmVy ICpidWZmZXIgPSBkbWFidWYtPnByaXY7CisJaW50IG5wYWdlcyA9IFBBR0VfQUxJR04oYnVmZmVy LT5sZW4pIC8gUEFHRV9TSVpFOworCisJZGVmZXJyZWRfZnJlZSgmYnVmZmVyLT5kZWZlcnJlZF9m cmVlLCBzeXN0ZW1faGVhcF9idWZfZnJlZSwgbnBhZ2VzKTsKK30KKwogc3RhdGljIGNvbnN0IHN0 cnVjdCBkbWFfYnVmX29wcyBzeXN0ZW1faGVhcF9idWZfb3BzID0gewogCS5hdHRhY2ggPSBzeXN0 ZW1faGVhcF9hdHRhY2gsCiAJLmRldGFjaCA9IHN5c3RlbV9oZWFwX2RldGFjaCwKLS0gCjIuMjUu MQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRl dmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 87536C433E6 for ; Thu, 4 Mar 2021 23:20:31 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 5CAC264DFF for ; Thu, 4 Mar 2021 23:20:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233112AbhCDXUa (ORCPT ); Thu, 4 Mar 2021 18:20:30 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37002 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233131AbhCDXU2 (ORCPT ); Thu, 4 Mar 2021 18:20:28 -0500 Received: from mail-pf1-x42c.google.com (mail-pf1-x42c.google.com [IPv6:2607:f8b0:4864:20::42c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7B4CFC061574 for ; Thu, 4 Mar 2021 15:20:23 -0800 (PST) Received: by mail-pf1-x42c.google.com with SMTP id w18so361343pfu.9 for ; Thu, 04 Mar 2021 15:20:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=1viYL6LhK+5nIQ13ju++XlarHcY6osyk1cCjbOPG1F0=; b=KcWKRMcTqPHZF1q05Ce0JCzTme39nwPKHDDiT/YIqKCsscOzC9PyUbaxoEvglXFwrK 1w32NYPCKD9OTcIgZBeCWhzZDLKez5Sl3ufwPZjZCA9VnxgZhu0jIuSF7RZQwDPMX1lw Z5a47mYCKuV+OVShTvu9KWHrGgTAPKj4pQIvMwsZNm24ziWIXPihJMDYtexedzbB1N5u nyE1nYLI9TW/aaWhK7GA7d3xngcaHhqA/h6acr3mB5GPKA7G2GqQUQQXj+4luvgel37m P4UBL+C8Ll6L9gUFrsn3ZL/qjxkKcuBQ2s/cwt2cj3mDi8uyuMqv3qGrJM83UhMY0Tty Fa4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=1viYL6LhK+5nIQ13ju++XlarHcY6osyk1cCjbOPG1F0=; b=bw+lOzgzOtYe/xIX4xuIxntWAgIGh4HCorrQW4u8H1l8E5wf9BdZsLwyWg7bLJrskq ZKPwA0U3PZSe6DqM4VOMqPNeKRVQQsvGiKxFMaYba3gy0iBTApLMj/8ty3LnT4su0w1+ KvHrhkcB9dkAdcv3BKT1/VdYwA3pAPkArNFLVVclgHfho7f8R2+CU667MUdpUoSgYqiM mMBK3xLP+z+idPQNIGMOcsriZ+GYuxIT8I/vL0ZmVGzFrL5N2PTPg7E+KLVsUdaYjXwQ GnwLZrO9sqa+DspjcJT4BiTL02JzqwsdA0XNWrfQ2opqJqwNqcW/ZBW9PgaIFGS8+fh+ QxLw== X-Gm-Message-State: AOAM532w01TNzFEDZU3aknmeV3FP3nbwBz6UwfmM62ejDsXjFb6k0VCy j7FuFTs5HfRAQH7LpoxpP7rQsA== X-Google-Smtp-Source: ABdhPJw2jFY8Rq+iS4tDrmeKtrXjB9IUAoh4ZkSvegh37qen93VKtQdaq2WlbCBS2hJuKS1jzQ4vsA== X-Received: by 2002:aa7:8d05:0:b029:1ec:b460:f21d with SMTP id j5-20020aa78d050000b02901ecb460f21dmr6027582pfe.29.1614900023086; Thu, 04 Mar 2021 15:20:23 -0800 (PST) Received: from localhost.localdomain ([2601:1c2:680:1319:692:26ff:feda:3a81]) by smtp.gmail.com with ESMTPSA id u66sm429290pfc.72.2021.03.04.15.20.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Mar 2021 15:20:22 -0800 (PST) From: John Stultz To: lkml Cc: John Stultz , Daniel Vetter , Christian Koenig , Sumit Semwal , Liam Mark , Chris Goldsworthy , Laura Abbott , Brian Starkey , Hridya Valsaraju , Suren Baghdasaryan , Sandeep Patil , Daniel Mentz , =?UTF-8?q?=C3=98rjan=20Eide?= , Robin Murphy , Ezequiel Garcia , Simon Ser , James Jones , linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org Subject: [PATCH v8 5/5] dma-buf: system_heap: Add deferred freeing to the system heap Date: Thu, 4 Mar 2021 23:20:11 +0000 Message-Id: <20210304232011.1479036-6-john.stultz@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210304232011.1479036-1-john.stultz@linaro.org> References: <20210304232011.1479036-1-john.stultz@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org Utilize the deferred free helper library in the system heap. This provides a nice performance bump and puts the system heap performance on par with ION. Cc: Daniel Vetter Cc: Christian Koenig Cc: Sumit Semwal Cc: Liam Mark Cc: Chris Goldsworthy Cc: Laura Abbott Cc: Brian Starkey Cc: Hridya Valsaraju Cc: Suren Baghdasaryan Cc: Sandeep Patil Cc: Daniel Mentz Cc: Ørjan Eide Cc: Robin Murphy Cc: Ezequiel Garcia Cc: Simon Ser Cc: James Jones Cc: linux-media@vger.kernel.org Cc: dri-devel@lists.freedesktop.org Signed-off-by: John Stultz --- v2: * Rework deferred-free api to use reason enum as suggested by Suren Baghdasaryan * Rework for deferred-free api change to use nr_pages rather than size as suggsted by Suren Baghdasaryan v8: * Reworked to drop buffer zeroing logic, as the drm_page_pool now handles that. --- drivers/dma-buf/heaps/Kconfig | 1 + drivers/dma-buf/heaps/system_heap.c | 28 ++++++++++++++++++++++------ 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/drivers/dma-buf/heaps/Kconfig b/drivers/dma-buf/heaps/Kconfig index 7e28934e0def..10632ccfb4a5 100644 --- a/drivers/dma-buf/heaps/Kconfig +++ b/drivers/dma-buf/heaps/Kconfig @@ -5,6 +5,7 @@ config DMABUF_HEAPS_SYSTEM bool "DMA-BUF System Heap" depends on DMABUF_HEAPS select DRM_PAGE_POOL + select DMABUF_HEAPS_DEFERRED_FREE help Choose this option to enable the system dmabuf heap. The system heap is backed by pages from the buddy allocator. If in doubt, say Y. diff --git a/drivers/dma-buf/heaps/system_heap.c b/drivers/dma-buf/heaps/system_heap.c index 006271881d85..c753c82fd9f1 100644 --- a/drivers/dma-buf/heaps/system_heap.c +++ b/drivers/dma-buf/heaps/system_heap.c @@ -22,6 +22,7 @@ #include #include +#include "deferred-free-helper.h" static struct dma_heap *sys_heap; @@ -33,6 +34,7 @@ struct system_heap_buffer { struct sg_table sg_table; int vmap_cnt; void *vaddr; + struct deferred_freelist_item deferred_free; }; struct dma_heap_attachment { @@ -290,27 +292,41 @@ static unsigned long system_heap_free_pages(struct drm_page_pool *pool, struct p return 1 << pool->order; } -static void system_heap_dma_buf_release(struct dma_buf *dmabuf) +static void system_heap_buf_free(struct deferred_freelist_item *item, + enum df_reason reason) { - struct system_heap_buffer *buffer = dmabuf->priv; + struct system_heap_buffer *buffer; struct sg_table *table; struct scatterlist *sg; int i, j; + buffer = container_of(item, struct system_heap_buffer, deferred_free); table = &buffer->sg_table; for_each_sg(table->sgl, sg, table->nents, i) { struct page *page = sg_page(sg); - for (j = 0; j < NUM_ORDERS; j++) { - if (compound_order(page) == orders[j]) - break; + if (reason == DF_UNDER_PRESSURE) { + __free_pages(page, compound_order(page)); + } else { + for (j = 0; j < NUM_ORDERS; j++) { + if (compound_order(page) == orders[j]) + break; + } + drm_page_pool_add(&pools[j], page); } - drm_page_pool_add(&pools[j], page); } sg_free_table(table); kfree(buffer); } +static void system_heap_dma_buf_release(struct dma_buf *dmabuf) +{ + struct system_heap_buffer *buffer = dmabuf->priv; + int npages = PAGE_ALIGN(buffer->len) / PAGE_SIZE; + + deferred_free(&buffer->deferred_free, system_heap_buf_free, npages); +} + static const struct dma_buf_ops system_heap_buf_ops = { .attach = system_heap_attach, .detach = system_heap_detach, -- 2.25.1