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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id D7276ECAAD8 for ; Wed, 21 Sep 2022 06:35:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6EAB5940009; Wed, 21 Sep 2022 02:35:48 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 69A9E940007; Wed, 21 Sep 2022 02:35:48 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 53C8C940009; Wed, 21 Sep 2022 02:35:48 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 44104940007 for ; Wed, 21 Sep 2022 02:35:48 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 11DD580175 for ; Wed, 21 Sep 2022 06:35:48 +0000 (UTC) X-FDA: 79935131976.30.CB5F4AC Received: from mail-lf1-f48.google.com (mail-lf1-f48.google.com [209.85.167.48]) by imf22.hostedemail.com (Postfix) with ESMTP id ADAA0C001A for ; Wed, 21 Sep 2022 06:35:47 +0000 (UTC) Received: by mail-lf1-f48.google.com with SMTP id o2so7544537lfc.10 for ; Tue, 20 Sep 2022 23:35:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date; bh=n+2ZxJcjb49lGiDrPW53e358mRm61CpTv1V9K9mM2/k=; b=Vk8cu70b2BLhdL9QfU4XqEGV6y9ItVyPNeaDVEKQyONGnm8PDjErRHMix23+F4/i+x DUYYEkTJv4KMbAP3ZEpf/j+LCOronifjSow3KNMiGQcTSLzm8XujG0zwvFL1JGAUrrpT 9b7KffmeyonCFVjs0h/gXS6WI8crxWYY2Inol3d2eR+ZP4niDck6cqAFIgX0uDb28wGg 2Hp9+yBzzBSABfL0yYGQLKS4UWWWOpl/u+yBq7z8ncvfMa1mMJ8aJp5oPJ5aI+wXKa7k N46xiO+36aPa1CMAq1XLpZHfoTwmKcN7amcuerVq4aup0IbPkUb2Xaf9aDm3SYq5vBAB PTLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date; bh=n+2ZxJcjb49lGiDrPW53e358mRm61CpTv1V9K9mM2/k=; b=KQM4DnJDWrwO1mQ6Z5nAHTuRGhtBw0N9NhaVocOES/wdgylMs0Aho7JRHq25cTZAXa J4DpDDIRQm6QK2XCzHSUa4xsJeLD/x083M3nr3KxNhGa9+aRYolUEX7r/pRuzhXmkzGo U9DYYlEClNdtk+srhskWJLkBDgvQlIoWXve0Jvv87SvmpHB1YJ3s5BuNU2Ta5kd8Tiym CUMJCUMHX84EiciG0qiRPsPdR6Sia11NQ6NiOHs5tOi7qse+b8HkgGyawkjtXumJMdkp S5AS+uozL2BMUiJO0HycqmoiWbq+52ZjjVWPF0N9yo0fr+Cb7SNVOE/Y7shdbhCtxZjD Vmdw== X-Gm-Message-State: ACrzQf2G7YZJL4pfF0tJb1bAxKfEZbxnTac1CssAyC9VlbYPk98sW+HI XGLK1Zk+EPxLcceDE0iLeM90hw== X-Google-Smtp-Source: AMsMyM7z6wDETlJm0X+kjb9NEoIfdgdDOeXnatO8onpzRYKhOrbOEkKmLam1fVWH+llISeTX/u+4Nw== X-Received: by 2002:a05:6512:6d6:b0:499:27c:1aa0 with SMTP id u22-20020a05651206d600b00499027c1aa0mr9963497lff.88.1663742145891; Tue, 20 Sep 2022 23:35:45 -0700 (PDT) Received: from [192.168.0.21] (78-11-189-27.static.ip.netia.com.pl. [78.11.189.27]) by smtp.gmail.com with ESMTPSA id l10-20020a056512110a00b0049f9c732858sm292693lfg.254.2022.09.20.23.35.44 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 20 Sep 2022 23:35:45 -0700 (PDT) Message-ID: <12602c20-d653-4d64-8589-b33270e2baa2@linaro.org> Date: Wed, 21 Sep 2022 08:35:43 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.13.0 Subject: Re: [PATCH 16/21] dt-bindings: reserved-memory: introduce designated-movable-block Content-Language: en-US To: Doug Berger , Rob Herring Cc: Andrew Morton , Jonathan Corbet , Krzysztof Kozlowski , Frank Rowand , Mike Kravetz , Muchun Song , Mike Rapoport , Christoph Hellwig , Marek Szyprowski , Robin Murphy , Borislav Petkov , "Paul E. McKenney" , Neeraj Upadhyay , Randy Dunlap , Damien Le Moal , Florian Fainelli , David Hildenbrand , Zi Yan , Oscar Salvador , Hari Bathini , Kees Cook , - , KOSAKI Motohiro , Mel Gorman , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-mm@kvack.org, iommu@lists.linux.dev References: <20220913195508.3511038-1-opendmb@gmail.com> <20220913195508.3511038-17-opendmb@gmail.com> <20220914145506.GA2149379-robh@kernel.org> <57f19774-39a1-03a6-fe68-83d7e4b16521@gmail.com> <07d87203-6fe1-c612-cb79-9080e1988454@linaro.org> <92a2cf9f-c371-fb7d-11ff-90cdc09dcae6@gmail.com> From: Krzysztof Kozlowski In-Reply-To: <92a2cf9f-c371-fb7d-11ff-90cdc09dcae6@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=linaro.org header.s=google header.b=Vk8cu70b; spf=pass (imf22.hostedemail.com: domain of krzysztof.kozlowski@linaro.org designates 209.85.167.48 as permitted sender) smtp.mailfrom=krzysztof.kozlowski@linaro.org; dmarc=pass (policy=none) header.from=linaro.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1663742147; a=rsa-sha256; cv=none; b=J4TN0WB0RbQDIkqCNx10XJEWSBw1jGxFcgN8NOVFeLHyLj+i95eENrfCaFsmFsrnLjlmVn LExk9hWgASiTRmXZpGLyNKENPAbEhoXR3hn/D81PDB4iMH0H5IGW5EBGI/CwbqKolONnSQ tNlq0DQVA2tk+29/AR5GLtnHjanRjyM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1663742147; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=n+2ZxJcjb49lGiDrPW53e358mRm61CpTv1V9K9mM2/k=; b=iuv7umhKA5fdW3Es463tkCq5U7lXg2RuY/NkjvFuRaKF2rc8Cvy7+LWeLphHAoxJ94iTlG esPClX5JVeG7yIF/Fr1KFrl3xTpBWLpdihKMg+Jz1KHanOAW2BOzUfcdKqAhru2sG7PeHl 6vI74Sea7/E+FFQpqtIYldN8n7RTywM= X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: ADAA0C001A X-Rspam-User: Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=linaro.org header.s=google header.b=Vk8cu70b; spf=pass (imf22.hostedemail.com: domain of krzysztof.kozlowski@linaro.org designates 209.85.167.48 as permitted sender) smtp.mailfrom=krzysztof.kozlowski@linaro.org; dmarc=pass (policy=none) header.from=linaro.org X-Stat-Signature: bmdko9h5ys4tyy9pcs9ucrux8qtohe46 X-HE-Tag: 1663742147-13793 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On 21/09/2022 02:14, Doug Berger wrote: > On 9/19/2022 4:03 AM, Krzysztof Kozlowski wrote: >> On 19/09/2022 01:12, Doug Berger wrote: >>> On 9/18/2022 3:31 AM, Krzysztof Kozlowski wrote: >>>> On 14/09/2022 18:13, Doug Berger wrote: >>>>> On 9/14/2022 7:55 AM, Rob Herring wrote: >>>>>> On Tue, Sep 13, 2022 at 12:55:03PM -0700, Doug Berger wrote: >>>>>>> Introduce designated-movable-block.yaml to document the >>>>>>> devicetree binding for Designated Movable Block children of the >>>>>>> reserved-memory node. >>>>>> >>>>>> What is a Designated Movable Block? This patch needs to stand on its >>>>>> own. >>>>> As noted in my reply to your [PATCH 00/21] comment, my intention in >>>>> submitting the entire patch set (and specifically PATCH 00/21]) was to >>>>> communicate this context. Now that I believe I understand that only this >>>>> patch should have been submitted to the devicetree-spec mailing list, I >>>>> will strive harder to make it more self contained. >>>> >>>> The submission of entire thread was ok. What is missing is the >>>> explanation in this commit. This commit must be self-explanatory (e.g. >>>> in explaining "Why are you doing it?"), not rely on other commits for >>>> such explanation. >>>> >>>>> >>>>>> >>>>>> Why does this belong or need to be in DT? >>>>> While my preferred method of declaring Designated Movable Blocks is >>>>> through the movablecore kernel parameter, I can conceive that others may >>>>> wish to take advantage of the reserved-memory DT nodes. In particular, >>>>> it has the advantage that a device can claim ownership of the >>>>> reserved-memory via device tree, which is something that has yet to be >>>>> implemented for DMBs defined with movablecore. >>>> >>>> Rephrasing the question: why OS memory layout and OS behavior is a >>>> property of hardware (DTS)? >>> I would say the premise is fundamentally the same as the existing >>> reserved-memory child node. >> >> I don't think it is fundamentally the same. >> >> The existing reserved-memory node describes memory used by hardware - by >> other devices. The OS way of handling this memory - movable, reclaimable >> etc - is not part of it. >> >> So no, it is not the same. >> >>> >>> I've been rethinking how this should be specified. I am now thinking >>> that it may be better to introduce a new Reserved Memory property that >>> serves as a modifier to the 'reusable' property. The 'reusable' property >>> allows the OS to use memory that has been reserved for a device and >>> therefore requires the device driver to reclaim the memory prior to its >>> use. However, an OS may have multiple ways of implementing such reuse >>> and reclamation. >> >> ... and I repeat the question - why OS way of implementing reuse and >> reclamation is relevant to DT? >> >>> I am considering introducing the vendor specific 'linux,dmb' property >>> that is dependent on the 'reusable' property to allow both the OS and >>> the device driver to identify the method used by the Linux OS to support >>> reuse and reclamation of the reserved-memory child node. >> >> Sure, but why? Why OS and Linux driver specific pieces should be in DT? >>> Such a property would remove any need for new compatible strings to the >>> device tree. Does that approach seem reasonable to you? >> >> No, because you did not explain original question. At all. > I apologize if I have somehow offended you, but please recognize that my > apparent inability to answer your question does not come from an > unwillingness to do so. > > I believe an example of the reserved-memory node being used the way you > indicate (though there are other uses) can be expressed with device tree > nodes like these: > > reserved-memory { > #address-cells = <0x1>; > #size-cells = <0x1>; > ranges; > > multimedia_reserved: multimedia@80000000 { > reg = <0x80000000 0x10000000>; > }; > }; > > decoder@8012000 { > memory-region = <&multimedia_reserved>; > /* ... */ > }; > > Here a 256MB chunk of memory is reserved for use by a hardware decoder > as part of rendering a video stream. In this case the memory is reserved > for the exclusive use of the decoder device and its associated device > driver. > > The Devicetree Specification includes a property named 'reusable' that > could be applied to the multimedia node to allow the OS to "use the > memory in this region with the limitation that the device driver(s) > owning the region need to be able to reclaim it back". Indeed, there is such.... and should be used instead. :) > This is a good > idea, because this memory could probably be put to good use when the > decoder is not active. Unfortunately, the methods for reusing this > memory are not defined for Linux so the multimedia reserved memory would > not be reused even though the devicetree indicates that it is allowed. Then rather implementation has to be changed, not Devicetree bindings. > > The notion behind this commit was to introduce the > 'designated-movable-block' compatible string that could be added to the > multimedia node to allow the Client Program (i.e. Linux) to select a > device driver that knows how to reclaim reserved memory back from the OS > when it is needed by the decoder device and release it back to the OS > when the decoder no longer needs it. In this way, the purpose of the > multimedia node remains the same (i.e. to reserve memory for use by a > device), but a new compatible string is defined to allow for selection > of an appropriate device driver and allow successful reuse of the memory > for the benefit of the system. We don't need a new compatible for it but use that existing property. > > From Rob's feedback it is clear that 'designated-movable-block' is not > an appropriate name, but maybe 'linux,dmb' might have been. However, it > would be more flexible if a 'linux,dmb' property could be introduced as > a modifier to the existing 'reusable' property to provide a general > mechanism for clarifying how 'reusable' should be supported by the > Client Software and its device drivers. > > Such a property is not directly relevant to hardware, but the devicetree > is not wholly concerned with hardware. Reserved memory node children > include support for 'linux,cma-default' and 'linux,dma-default' > properties that signal behavioral intent to the Linux OS. Some aspects > of the devicetree (e.g. the /chosen node and 'reusable' property) are > for the benefit of the Client Program. Fair enough, although there is difference between generic property for reusable/reclaimable memory and a property describing one of Linux memory-management zones. Best regards, Krzysztof