[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID:
<DU0PR04MB9299F752D033336295BCA8C180DB2@DU0PR04MB9299.eurprd04.prod.outlook.com>
Date: Tue, 9 Jul 2024 08:37:52 +0000
From: Aisheng Dong <aisheng.dong@....com>
To: Oreoluwa Babatunde <quic_obabatun@...cinc.com>
CC: Rob Herring <robh@...nel.org>, "devicetree@...r.kernel.org"
<devicetree@...r.kernel.org>, "imx@...ts.linux.dev" <imx@...ts.linux.dev>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>, Jason Liu <jason.hui.liu@....com>,
"dongas86@...il.com" <dongas86@...il.com>, "saravanak@...gle.com"
<saravanak@...gle.com>, Krzysztof Kozlowski <krzk@...nel.org>,
"kernel@...cinc.com" <kernel@...cinc.com>
Subject: RE: CMA Regression issue - [PATCH v2] of: reserved_mem: Restructure
code to call reserved mem init functions earlier
> From: Oreoluwa Babatunde <quic_obabatun@...cinc.com>
> Sent: 2024年7月9日 7:10
>
> On 7/4/2024 4:41 AM, Aisheng Dong wrote:
> > Hi Oreoluwa,
> >
> > We observed a CMA regression issue on MX8MN that the CMA region failed
> > to be setup by rmem_cma_setup() since the following patch:
> > f2a524d9ef5b ("of: reserved_mem: Restructure code to call reserved mem
> > init functions earlier") [1] And the CMA node was incorrect parsed (e.g.
> non-reuseable) due to NULL node pointer.
> > Below is one line boot log tested with the tag next-20240703 of linux-next
> tree.
> > OF: reserved mem: 0x0000000058000000..0x000000007fffffff (655360 KiB)
> > map non-reusable linux,cma
> > NOTE: actually there is a reusable property:
> > linux,cma {
> > compatible = "shared-dma-pool";
> > reusable;
> > size = <0 0x28000000>;
> > alloc-ranges = <0 0x40000000 0 0x40000000>;
> > linux,cma-default;
> > };
> >
> > The root cause was that the CMA region was initialized at a very early
> > stage since above commit in question.
> > The call flow became:
> > early_init_fdt_scan_reserved_mem()->fdt_scan_reserved_mem()->
> > __reserved_mem_alloc_size()->of_reserved_mem_save_node(NULL, xxx)->
> > of_init_reserved_mem_node()->__reserved_mem_init_node().
> >
> > The rmem->dev_node is still NULL when calling
> > __reserved_mem_init_node() which fails to call the rmem_cma_setup().
> >
> > Please let me know if there's already a fix patch.
> >
>
> I have uploaded a fix here:
> https://lore.kernel.org/all/20240708230613.448846-1-quic_obabatun@quicinc.com/
>
> Please test and see if this fixes the issue.
Tested it worked. Thanks for the fix.
Regards
Aisheng
Powered by blists - more mailing lists