Received: by 2002:a05:6359:c8b:b0:c7:702f:21d4 with SMTP id go11csp4912347rwb; Tue, 20 Sep 2022 23:51:03 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5cr7347L+9QHO+2uMHlzGmVnPyFpHKdcpMUXx9+jRww6TxVhiI+s6kzO91p5ZZPC69Y7T0 X-Received: by 2002:aa7:c0c5:0:b0:453:9a23:a0cd with SMTP id j5-20020aa7c0c5000000b004539a23a0cdmr17484221edp.286.1663743062962; Tue, 20 Sep 2022 23:51:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1663743062; cv=none; d=google.com; s=arc-20160816; b=jG+Eoc+P6S+tkkW2bfDdTaX2XR3tr6sASJH1kmhR1Aa4CwHmMyH0Y7iL+4sw2fb0Y1 3yoeMRbU/SI0aGmxifaLBtEfoNUQztryDi5G0wptC0Kntx8tuGF4emI8OO0Ga00wSQA/ An9aaoV1NGy0sK88Dgg+FOpku6zUxijtMskMxmW5YfWBEbVV39GzI5Z/qR4QVvN6YyvG MZ8/B8xZZZt5/cPDJ9eepbn+JZGscdIDeyR7zaP9yqtidcJIRku36pJ7daYdCKhFxIZU mjE7q1BkmdBP4Fc1q2lJNalJ0hOscvngU+HNXDMffA7CGdd6s7WcG5ArkzvoFhUhyJVG Yp9w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:dkim-signature; bh=n+2ZxJcjb49lGiDrPW53e358mRm61CpTv1V9K9mM2/k=; b=nIWNMLZRFV7SijU5p8J8jkVwlNFE+DDBssMMH/8kwh2St9lMhinmpbYcJ8L5jDYL/9 Jr3gC2Y/IFU6ZNRuH32emIElJyzeCGA6w2dSp9Irm/geU49f/TJaZb+341jbc+XV1/2b Ku6xS1SxbgYjKCgxFyzWYqYYGRpXnP8HLvEHgEeYIJRhITbgxyj4aSLSg56rcLkBms6b niX3Y8j+W0WEENck40OyikMVTW0n+0N/tNCItRS+1NmM5w8Sw96j14Ouo8AMUO08t9fu Y5UL1PSWuMQqqzQUeph/2CYWXg/slq0fAxuxZ/kjHNijCwe+cVcSbWxAPcXA67d50O2i 4f2A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Vk8cu70b; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x67-20020a50bac9000000b00452ce356136si1480710ede.135.2022.09.20.23.50.36; Tue, 20 Sep 2022 23:51:02 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Vk8cu70b; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229919AbiIUGfy (ORCPT + 99 others); Wed, 21 Sep 2022 02:35:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36350 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229888AbiIUGfu (ORCPT ); Wed, 21 Sep 2022 02:35:50 -0400 Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com [IPv6:2a00:1450:4864:20::136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A6EBB78584 for ; Tue, 20 Sep 2022 23:35:47 -0700 (PDT) Received: by mail-lf1-x136.google.com with SMTP id x27so7672386lfu.0 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=BBplQY6pRyOvbiRiN+UFydXnMH306C10WiGWze6S8ocVfmhcJniUV4XKfBChejpEzv rspquPQ/yeto1ComnNztgi3ghvzb2T5/Uld/Lnz+Pn2Zm+r18+nfbvY8Oz5ySZjjRb2z FQoXJ8NVtiB3nb5Z6+gJWqPSvrjbWgKPZm85yd80HlyBHAGpW4iobtBlfIQsvBJ8qBBb P/EggbbCuMaaNd1ETXAd/r835IJ7iv0V1K1/0dnd9sywPDOlDbPjbkSbCTZ+z4kbCvg4 B7zp0SF/zl2ZUAauvU+PenS2w07ZE9oQL/m2c4nwL5r1srjB4o80Fa/DYEPxzEnKMfHg vP9w== X-Gm-Message-State: ACrzQf3sIrwOigpZVWra8Blub8Fj9L9vCqvI0/te7fOV5M3fmbVEg6Nx Lmt/8YNiYKVHI36EhMvQecxM0A== 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 X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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