* [PATCH 0/6] perf/imx_ddr: Add i.MX8QM and pmu in DB (system interconnects)
@ 2025-10-23 18:56 Frank Li
2025-10-23 18:56 ` [PATCH 1/6] dt-bindings: perf: fsl-imx-ddr: Add compatible string for i.MX8QM, i.MX8QXP and i.MX8DXL Frank Li
` (6 more replies)
0 siblings, 7 replies; 16+ messages in thread
From: Frank Li @ 2025-10-23 18:56 UTC (permalink / raw)
To: Frank Li, Xu Yang, Will Deacon, Mark Rutland, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam
Cc: Frank Li, linux-arm-kernel, linux-perf-users, devicetree, imx,
linux-kernel, Frank Li, Joakim Zhang, Jacky Bai
dts: add soc specific compatible string for imx8qm, imx8qxp, imx8dxl in db.
driver:
- did some cleanup
- add support for pmu in imx8dxl DB
binding:
- add compatible string for imx8qm, imx8qxp, imx8dxl in db
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
Frank Li (4):
dt-bindings: perf: fsl-imx-ddr: Add compatible string for i.MX8QM, i.MX8QXP and i.MX8DXL
perf/imx_ddr: Move ida_alloc() from ddr_perf_init() to ddr_perf_probe()
perf/imx_ddr: Get and enable optional clks
arm64: dts: imx8qm: add ddr perf device node
Jacky Bai (1):
arm64: dts: imx8dxl-ss-ddr: Add DB (system interconnects) pmu support for i.MX8DXL
Joakim Zhang (1):
perf/imx_ddr: Add support for PMU in DB (system interconnects)
.../devicetree/bindings/perf/fsl-imx-ddr.yaml | 26 +++++++
arch/arm64/boot/dts/freescale/imx8-ss-ddr.dtsi | 2 +-
arch/arm64/boot/dts/freescale/imx8dxl-ss-ddr.dtsi | 30 +++++++
arch/arm64/boot/dts/freescale/imx8qm-ss-ddr.dtsi | 19 +++++
arch/arm64/boot/dts/freescale/imx8qm.dtsi | 2 +
drivers/perf/fsl_imx8_ddr_perf.c | 91 ++++++++++++++++++----
6 files changed, 152 insertions(+), 18 deletions(-)
---
base-commit: c31b21db1c04ba719c3889a57873f0f7eff54670
change-id: 20251022-qm_dts-60145802537d
Best regards,
--
Frank Li <Frank.Li@nxp.com>
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 1/6] dt-bindings: perf: fsl-imx-ddr: Add compatible string for i.MX8QM, i.MX8QXP and i.MX8DXL
2025-10-23 18:56 [PATCH 0/6] perf/imx_ddr: Add i.MX8QM and pmu in DB (system interconnects) Frank Li
@ 2025-10-23 18:56 ` Frank Li
2025-10-24 13:03 ` Krzysztof Kozlowski
2025-10-23 18:56 ` [PATCH 2/6] perf/imx_ddr: Move ida_alloc() from ddr_perf_init() to ddr_perf_probe() Frank Li
` (5 subsequent siblings)
6 siblings, 1 reply; 16+ messages in thread
From: Frank Li @ 2025-10-23 18:56 UTC (permalink / raw)
To: Frank Li, Xu Yang, Will Deacon, Mark Rutland, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam
Cc: Frank Li, linux-arm-kernel, linux-perf-users, devicetree, imx,
linux-kernel, Frank Li
Add compatible string fsl,imx8qm-ddr-pmu, fsl,imx8qxp-ddr-pmu and
fsl,imx8dxl-db-pmu (for data bus fabric).
Add clocks and clock-names for fsl,imx8dxl-db-pmu and keep the same
restriction for existing compatible strings.
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
.../devicetree/bindings/perf/fsl-imx-ddr.yaml | 26 ++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/Documentation/devicetree/bindings/perf/fsl-imx-ddr.yaml b/Documentation/devicetree/bindings/perf/fsl-imx-ddr.yaml
index d2e578d6b83b8847c7a0ca9d5aeb208a90e2fa6a..13eb13a79e2100ae1d747ddf6fc4db5b470112a8 100644
--- a/Documentation/devicetree/bindings/perf/fsl-imx-ddr.yaml
+++ b/Documentation/devicetree/bindings/perf/fsl-imx-ddr.yaml
@@ -14,6 +14,7 @@ properties:
oneOf:
- enum:
- fsl,imx8-ddr-pmu
+ - fsl,imx8dxl-db-pmu
- fsl,imx8m-ddr-pmu
- fsl,imx8mq-ddr-pmu
- fsl,imx8mm-ddr-pmu
@@ -29,6 +30,8 @@ properties:
- const: fsl,imx8m-ddr-pmu
- items:
- const: fsl,imx8dxl-ddr-pmu
+ - const: fsl,imx8qm-ddr-pmu
+ - const: fsl,imx8qxp-ddr-pmu
- const: fsl,imx8-ddr-pmu
- items:
- enum:
@@ -43,6 +46,14 @@ properties:
interrupts:
maxItems: 1
+ clocks:
+ maxItems: 2
+
+ clock-names:
+ items:
+ - const: ipg
+ - const: cnt
+
required:
- compatible
- reg
@@ -50,6 +61,21 @@ required:
additionalProperties: false
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: fsl,imx8dxl-db-pmu
+ then:
+ required:
+ - clocks
+ - clock-names
+ else:
+ properties:
+ clocks: false
+ clock-names: false
+
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
--
2.34.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 2/6] perf/imx_ddr: Move ida_alloc() from ddr_perf_init() to ddr_perf_probe()
2025-10-23 18:56 [PATCH 0/6] perf/imx_ddr: Add i.MX8QM and pmu in DB (system interconnects) Frank Li
2025-10-23 18:56 ` [PATCH 1/6] dt-bindings: perf: fsl-imx-ddr: Add compatible string for i.MX8QM, i.MX8QXP and i.MX8DXL Frank Li
@ 2025-10-23 18:56 ` Frank Li
2025-10-30 11:11 ` ext4 issue on linux-next(next-20251030) Bough Chen
2025-10-23 18:56 ` [PATCH 3/6] perf/imx_ddr: Get and enable optional clks Frank Li
` (4 subsequent siblings)
6 siblings, 1 reply; 16+ messages in thread
From: Frank Li @ 2025-10-23 18:56 UTC (permalink / raw)
To: Frank Li, Xu Yang, Will Deacon, Mark Rutland, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam
Cc: Frank Li, linux-arm-kernel, linux-perf-users, devicetree, imx,
linux-kernel, Frank Li
Move ida_alloc() from helper ddr_perf_init() into ddr_perf_probe() to
clarify why ida_free() must be called at the error path.
Add return value check for ida_alloc().
Rename label 'cpuhp_state_err' to 'idr_free' to make the code clearer,
since two error paths now jump to this label.
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
drivers/perf/fsl_imx8_ddr_perf.c | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)
diff --git a/drivers/perf/fsl_imx8_ddr_perf.c b/drivers/perf/fsl_imx8_ddr_perf.c
index b989ffa95d692fce2d42eec08fbc70520c21b8e1..5ba34c606213d255edf27081bb9f63763cca3066 100644
--- a/drivers/perf/fsl_imx8_ddr_perf.c
+++ b/drivers/perf/fsl_imx8_ddr_perf.c
@@ -645,8 +645,8 @@ static void ddr_perf_pmu_disable(struct pmu *pmu)
{
}
-static int ddr_perf_init(struct ddr_pmu *pmu, void __iomem *base,
- struct device *dev)
+static void ddr_perf_init(struct ddr_pmu *pmu, void __iomem *base,
+ struct device *dev)
{
*pmu = (struct ddr_pmu) {
.pmu = (struct pmu) {
@@ -667,9 +667,6 @@ static int ddr_perf_init(struct ddr_pmu *pmu, void __iomem *base,
.base = base,
.dev = dev,
};
-
- pmu->id = ida_alloc(&ddr_ida, GFP_KERNEL);
- return pmu->id;
}
static irqreturn_t ddr_perf_irq_handler(int irq, void *p)
@@ -753,15 +750,21 @@ static int ddr_perf_probe(struct platform_device *pdev)
if (!pmu)
return -ENOMEM;
- num = ddr_perf_init(pmu, base, &pdev->dev);
+ ddr_perf_init(pmu, base, &pdev->dev);
platform_set_drvdata(pdev, pmu);
+ num = ida_alloc(&ddr_ida, GFP_KERNEL);
+ if (num < 0)
+ return num;
+
+ pmu->id = num;
+
name = devm_kasprintf(&pdev->dev, GFP_KERNEL, DDR_PERF_DEV_NAME "%d",
num);
if (!name) {
ret = -ENOMEM;
- goto cpuhp_state_err;
+ goto idr_free;
}
pmu->devtype_data = of_device_get_match_data(&pdev->dev);
@@ -774,7 +777,7 @@ static int ddr_perf_probe(struct platform_device *pdev)
if (ret < 0) {
dev_err(&pdev->dev, "cpuhp_setup_state_multi failed\n");
- goto cpuhp_state_err;
+ goto idr_free;
}
pmu->cpuhp_state = ret;
@@ -821,7 +824,7 @@ static int ddr_perf_probe(struct platform_device *pdev)
cpuhp_state_remove_instance_nocalls(pmu->cpuhp_state, &pmu->node);
cpuhp_instance_err:
cpuhp_remove_multi_state(pmu->cpuhp_state);
-cpuhp_state_err:
+idr_free:
ida_free(&ddr_ida, pmu->id);
dev_warn(&pdev->dev, "i.MX8 DDR Perf PMU failed (%d), disabled\n", ret);
return ret;
--
2.34.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 3/6] perf/imx_ddr: Get and enable optional clks
2025-10-23 18:56 [PATCH 0/6] perf/imx_ddr: Add i.MX8QM and pmu in DB (system interconnects) Frank Li
2025-10-23 18:56 ` [PATCH 1/6] dt-bindings: perf: fsl-imx-ddr: Add compatible string for i.MX8QM, i.MX8QXP and i.MX8DXL Frank Li
2025-10-23 18:56 ` [PATCH 2/6] perf/imx_ddr: Move ida_alloc() from ddr_perf_init() to ddr_perf_probe() Frank Li
@ 2025-10-23 18:56 ` Frank Li
2025-10-23 18:56 ` [PATCH 4/6] perf/imx_ddr: Add support for PMU in DB (system interconnects) Frank Li
` (3 subsequent siblings)
6 siblings, 0 replies; 16+ messages in thread
From: Frank Li @ 2025-10-23 18:56 UTC (permalink / raw)
To: Frank Li, Xu Yang, Will Deacon, Mark Rutland, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam
Cc: Frank Li, linux-arm-kernel, linux-perf-users, devicetree, imx,
linux-kernel, Frank Li
Get and enable optional clks because fsl,imx8dxl-db-pmu have two clocks.
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
drivers/perf/fsl_imx8_ddr_perf.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/perf/fsl_imx8_ddr_perf.c b/drivers/perf/fsl_imx8_ddr_perf.c
index 5ba34c606213d255edf27081bb9f63763cca3066..2a8426a74af98cf46725c2c70534829e198746f3 100644
--- a/drivers/perf/fsl_imx8_ddr_perf.c
+++ b/drivers/perf/fsl_imx8_ddr_perf.c
@@ -5,6 +5,7 @@
*/
#include <linux/bitfield.h>
+#include <linux/clk.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/io.h>
@@ -732,10 +733,12 @@ static int ddr_perf_offline_cpu(unsigned int cpu, struct hlist_node *node)
static int ddr_perf_probe(struct platform_device *pdev)
{
+ struct clk_bulk_data *clks;
struct ddr_pmu *pmu;
struct device_node *np;
void __iomem *base;
char *name;
+ int nclks;
int num;
int ret;
int irq;
@@ -754,6 +757,10 @@ static int ddr_perf_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, pmu);
+ nclks = devm_clk_bulk_get_all_enabled(&pdev->dev, &clks);
+ if (nclks < 0)
+ return dev_err_probe(&pdev->dev, nclks, "Failure get clks\n");
+
num = ida_alloc(&ddr_ida, GFP_KERNEL);
if (num < 0)
return num;
--
2.34.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 4/6] perf/imx_ddr: Add support for PMU in DB (system interconnects)
2025-10-23 18:56 [PATCH 0/6] perf/imx_ddr: Add i.MX8QM and pmu in DB (system interconnects) Frank Li
` (2 preceding siblings ...)
2025-10-23 18:56 ` [PATCH 3/6] perf/imx_ddr: Get and enable optional clks Frank Li
@ 2025-10-23 18:56 ` Frank Li
2025-10-23 18:56 ` [PATCH 5/6] arm64: dts: imx8qm: add ddr perf device node Frank Li
` (2 subsequent siblings)
6 siblings, 0 replies; 16+ messages in thread
From: Frank Li @ 2025-10-23 18:56 UTC (permalink / raw)
To: Frank Li, Xu Yang, Will Deacon, Mark Rutland, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam
Cc: Frank Li, linux-arm-kernel, linux-perf-users, devicetree, imx,
linux-kernel, Frank Li, Joakim Zhang
From: Joakim Zhang <qiangqing.zhang@nxp.com>
There is a PMU in DB, which has the same function with PMU in DDR
subsystem, the difference is PMU in DB only supports cycles, axid-read,
axid-write events.
e.g.
perf stat -a -e imx8_db0/axid-read,axi_mask=0xMMMM,axi_id=0xDDDD,axi_port=0xPP,axi_channel=0xH/ cmd
perf stat -a -e imx8_db0/axid-write,axi_mask=0xMMMM,axi_id=0xDDDD,axi_port=0xPP,axi_channel=0xH/ cmd
Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
drivers/perf/fsl_imx8_ddr_perf.c | 65 ++++++++++++++++++++++++++++++++++------
1 file changed, 56 insertions(+), 9 deletions(-)
diff --git a/drivers/perf/fsl_imx8_ddr_perf.c b/drivers/perf/fsl_imx8_ddr_perf.c
index 2a8426a74af98cf46725c2c70534829e198746f3..328287ab6326e3832aed85633957196548435d67 100644
--- a/drivers/perf/fsl_imx8_ddr_perf.c
+++ b/drivers/perf/fsl_imx8_ddr_perf.c
@@ -53,18 +53,27 @@
#define to_ddr_pmu(p) container_of(p, struct ddr_pmu, pmu)
#define DDR_PERF_DEV_NAME "imx8_ddr"
+#define DB_PERF_DEV_NAME "imx8_db"
#define DDR_CPUHP_CB_NAME DDR_PERF_DEV_NAME "_perf_pmu"
static DEFINE_IDA(ddr_ida);
+static DEFINE_IDA(db_ida);
/* DDR Perf hardware feature */
#define DDR_CAP_AXI_ID_FILTER 0x1 /* support AXI ID filter */
#define DDR_CAP_AXI_ID_FILTER_ENHANCED 0x3 /* support enhanced AXI ID filter */
#define DDR_CAP_AXI_ID_PORT_CHANNEL_FILTER 0x4 /* support AXI ID PORT CHANNEL filter */
+/* Perf type */
+enum fsl_ddr_type {
+ DDR_PERF_TYPE = 0, /* ddr Perf (default) */
+ DB_PERF_TYPE, /* db Perf */
+};
+
struct fsl_ddr_devtype_data {
unsigned int quirks; /* quirks needed for different DDR Perf core */
const char *identifier; /* system PMU identifier for userspace */
+ enum fsl_ddr_type type; /* types of Perf, ddr or db */
};
static const struct fsl_ddr_devtype_data imx8_devtype_data;
@@ -98,6 +107,12 @@ static const struct fsl_ddr_devtype_data imx8dxl_devtype_data = {
.identifier = "i.MX8DXL",
};
+static const struct fsl_ddr_devtype_data imx8dxl_db_devtype_data = {
+ .quirks = DDR_CAP_AXI_ID_PORT_CHANNEL_FILTER,
+ .identifier = "i.MX8DXL",
+ .type = DB_PERF_TYPE,
+};
+
static const struct of_device_id imx_ddr_pmu_dt_ids[] = {
{ .compatible = "fsl,imx8-ddr-pmu", .data = &imx8_devtype_data},
{ .compatible = "fsl,imx8m-ddr-pmu", .data = &imx8m_devtype_data},
@@ -106,6 +121,7 @@ static const struct of_device_id imx_ddr_pmu_dt_ids[] = {
{ .compatible = "fsl,imx8mn-ddr-pmu", .data = &imx8mn_devtype_data},
{ .compatible = "fsl,imx8mp-ddr-pmu", .data = &imx8mp_devtype_data},
{ .compatible = "fsl,imx8dxl-ddr-pmu", .data = &imx8dxl_devtype_data},
+ { .compatible = "fsl,imx8dxl-db-pmu", .data = &imx8dxl_db_devtype_data},
{ /* sentinel */ }
};
MODULE_DEVICE_TABLE(of, imx_ddr_pmu_dt_ids);
@@ -290,6 +306,18 @@ static const struct attribute_group ddr_perf_events_attr_group = {
.attrs = ddr_perf_events_attrs,
};
+static struct attribute *db_perf_events_attrs[] = {
+ IMX8_DDR_PMU_EVENT_ATTR(cycles, EVENT_CYCLES_ID),
+ IMX8_DDR_PMU_EVENT_ATTR(axid-read, 0x41),
+ IMX8_DDR_PMU_EVENT_ATTR(axid-write, 0x42),
+ NULL,
+};
+
+static struct attribute_group db_perf_events_attr_group = {
+ .name = "events",
+ .attrs = db_perf_events_attrs,
+};
+
PMU_FORMAT_ATTR(event, "config:0-7");
PMU_FORMAT_ATTR(axi_id, "config1:0-15");
PMU_FORMAT_ATTR(axi_mask, "config1:16-31");
@@ -310,7 +338,7 @@ static const struct attribute_group ddr_perf_format_attr_group = {
.attrs = ddr_perf_format_attrs,
};
-static const struct attribute_group *attr_groups[] = {
+static const struct attribute_group *ddr_attr_groups[] = {
&ddr_perf_events_attr_group,
&ddr_perf_format_attr_group,
&ddr_perf_cpumask_attr_group,
@@ -319,6 +347,14 @@ static const struct attribute_group *attr_groups[] = {
NULL,
};
+static const struct attribute_group *db_attr_groups[] = {
+ &db_perf_events_attr_group,
+ &ddr_perf_format_attr_group,
+ &ddr_perf_cpumask_attr_group,
+ &ddr_perf_filter_cap_attr_group,
+ NULL,
+};
+
static bool ddr_perf_is_filtered(struct perf_event *event)
{
return event->attr.config == 0x41 || event->attr.config == 0x42;
@@ -655,7 +691,6 @@ static void ddr_perf_init(struct ddr_pmu *pmu, void __iomem *base,
.parent = dev,
.capabilities = PERF_PMU_CAP_NO_EXCLUDE,
.task_ctx_nr = perf_invalid_context,
- .attr_groups = attr_groups,
.event_init = ddr_perf_event_init,
.add = ddr_perf_event_add,
.del = ddr_perf_event_del,
@@ -737,6 +772,7 @@ static int ddr_perf_probe(struct platform_device *pdev)
struct ddr_pmu *pmu;
struct device_node *np;
void __iomem *base;
+ struct ida *ida;
char *name;
int nclks;
int num;
@@ -761,21 +797,28 @@ static int ddr_perf_probe(struct platform_device *pdev)
if (nclks < 0)
return dev_err_probe(&pdev->dev, nclks, "Failure get clks\n");
- num = ida_alloc(&ddr_ida, GFP_KERNEL);
+ pmu->devtype_data = of_device_get_match_data(&pdev->dev);
+
+ ida = pmu->devtype_data->type == DDR_PERF_TYPE ? &ddr_ida : &db_ida;
+ num = ida_alloc(ida, GFP_KERNEL);
if (num < 0)
return num;
pmu->id = num;
- name = devm_kasprintf(&pdev->dev, GFP_KERNEL, DDR_PERF_DEV_NAME "%d",
- num);
+ if (pmu->devtype_data->type == DDR_PERF_TYPE) {
+ pmu->pmu.attr_groups = ddr_attr_groups;
+ name = devm_kasprintf(&pdev->dev, GFP_KERNEL, DDR_PERF_DEV_NAME "%d", num);
+ } else {
+ pmu->pmu.attr_groups = db_attr_groups;
+ name = devm_kasprintf(&pdev->dev, GFP_KERNEL, DB_PERF_DEV_NAME "%d", num);
+ }
+
if (!name) {
ret = -ENOMEM;
goto idr_free;
}
- pmu->devtype_data = of_device_get_match_data(&pdev->dev);
-
pmu->cpu = raw_smp_processor_id();
ret = cpuhp_setup_state_multi(CPUHP_AP_ONLINE_DYN,
DDR_CPUHP_CB_NAME,
@@ -832,7 +875,7 @@ static int ddr_perf_probe(struct platform_device *pdev)
cpuhp_instance_err:
cpuhp_remove_multi_state(pmu->cpuhp_state);
idr_free:
- ida_free(&ddr_ida, pmu->id);
+ ida_free(ida, pmu->id);
dev_warn(&pdev->dev, "i.MX8 DDR Perf PMU failed (%d), disabled\n", ret);
return ret;
}
@@ -846,7 +889,11 @@ static void ddr_perf_remove(struct platform_device *pdev)
perf_pmu_unregister(&pmu->pmu);
- ida_free(&ddr_ida, pmu->id);
+ if (pmu->devtype_data->type == DDR_PERF_TYPE)
+ ida_free(&ddr_ida, pmu->id);
+ else
+ ida_free(&db_ida, pmu->id);
+
}
static struct platform_driver imx_ddr_pmu_driver = {
--
2.34.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 5/6] arm64: dts: imx8qm: add ddr perf device node
2025-10-23 18:56 [PATCH 0/6] perf/imx_ddr: Add i.MX8QM and pmu in DB (system interconnects) Frank Li
` (3 preceding siblings ...)
2025-10-23 18:56 ` [PATCH 4/6] perf/imx_ddr: Add support for PMU in DB (system interconnects) Frank Li
@ 2025-10-23 18:56 ` Frank Li
2025-10-23 18:56 ` [PATCH 6/6] arm64: dts: imx8dxl-ss-ddr: Add DB (system interconnects) pmu support for i.MX8DXL Frank Li
2025-10-24 12:17 ` [PATCH 0/6] perf/imx_ddr: Add i.MX8QM and pmu in DB (system interconnects) Rob Herring (Arm)
6 siblings, 0 replies; 16+ messages in thread
From: Frank Li @ 2025-10-23 18:56 UTC (permalink / raw)
To: Frank Li, Xu Yang, Will Deacon, Mark Rutland, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam
Cc: Frank Li, linux-arm-kernel, linux-perf-users, devicetree, imx,
linux-kernel, Frank Li, Joakim Zhang
Add ddr perf monitor device node for i.MX8QM. Change imx8-ss-ddr.dtsi's
compatible string to fsl,imx8qxp-ddr-pmu. i.MX8QM overwrite to
fsl,imx8qm-ddr-pmu. All fallback to fsl,imx8-ddr-pmu.
Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
arch/arm64/boot/dts/freescale/imx8-ss-ddr.dtsi | 2 +-
arch/arm64/boot/dts/freescale/imx8qm-ss-ddr.dtsi | 19 +++++++++++++++++++
arch/arm64/boot/dts/freescale/imx8qm.dtsi | 2 ++
3 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8-ss-ddr.dtsi b/arch/arm64/boot/dts/freescale/imx8-ss-ddr.dtsi
index 7d5183c6c5bef9b57f2ff92c5184272e43054a03..37e68865b026deb73ffb6a52207f5c05a0dbf5fb 100644
--- a/arch/arm64/boot/dts/freescale/imx8-ss-ddr.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8-ss-ddr.dtsi
@@ -11,7 +11,7 @@ ddr_subsys: bus@5c000000 {
ranges = <0x5c000000 0x0 0x5c000000 0x1000000>;
ddr_pmu0: ddr-pmu@5c020000 {
- compatible = "fsl,imx8-ddr-pmu";
+ compatible = "fsl,imx8qxp-ddr-pmu", "fsl,imx8-ddr-pmu";
reg = <0x5c020000 0x10000>;
interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
};
diff --git a/arch/arm64/boot/dts/freescale/imx8qm-ss-ddr.dtsi b/arch/arm64/boot/dts/freescale/imx8qm-ss-ddr.dtsi
new file mode 100644
index 0000000000000000000000000000000000000000..c831567cfbc1f2df7e3642c1f0ff080551462543
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/imx8qm-ss-ddr.dtsi
@@ -0,0 +1,19 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2025 NXP
+ * Dong Aisheng <aisheng.dong@nxp.com>
+ */
+
+&ddr_pmu0 {
+ compatible = "fsl,imx8qm-ddr-pmu", "fsl,imx8-ddr-pmu";
+ interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
+};
+
+&ddr_subsys {
+ ddr_pmu1: ddr-pmu@5c120000 {
+ compatible = "fsl,imx8qm-ddr-pmu", "fsl,imx8-ddr-pmu";
+ reg = <0x5c120000 0x10000>;
+ interrupt-parent = <&gic>;
+ interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
+ };
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8qm.dtsi b/arch/arm64/boot/dts/freescale/imx8qm.dtsi
index 5206ca82eaf642a32299147e9c1b45704075e2b2..9ff0d56fe97078cabafb66db95b4ea82f95ebec2 100644
--- a/arch/arm64/boot/dts/freescale/imx8qm.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8qm.dtsi
@@ -635,6 +635,7 @@ vpu_dsp: dsp@556e8000 {
#include "imx8-ss-img.dtsi"
#include "imx8-ss-dma.dtsi"
#include "imx8-ss-conn.dtsi"
+ #include "imx8-ss-ddr.dtsi"
#include "imx8-ss-lsio.dtsi"
#include "imx8-ss-hsio.dtsi"
};
@@ -647,5 +648,6 @@ vpu_dsp: dsp@556e8000 {
#include "imx8qm-ss-lvds.dtsi"
#include "imx8qm-ss-mipi.dtsi"
#include "imx8qm-ss-hsio.dtsi"
+#include "imx8qm-ss-ddr.dtsi"
/delete-node/ &dsp;
--
2.34.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 6/6] arm64: dts: imx8dxl-ss-ddr: Add DB (system interconnects) pmu support for i.MX8DXL
2025-10-23 18:56 [PATCH 0/6] perf/imx_ddr: Add i.MX8QM and pmu in DB (system interconnects) Frank Li
` (4 preceding siblings ...)
2025-10-23 18:56 ` [PATCH 5/6] arm64: dts: imx8qm: add ddr perf device node Frank Li
@ 2025-10-23 18:56 ` Frank Li
2025-10-24 12:17 ` [PATCH 0/6] perf/imx_ddr: Add i.MX8QM and pmu in DB (system interconnects) Rob Herring (Arm)
6 siblings, 0 replies; 16+ messages in thread
From: Frank Li @ 2025-10-23 18:56 UTC (permalink / raw)
To: Frank Li, Xu Yang, Will Deacon, Mark Rutland, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam
Cc: Frank Li, linux-arm-kernel, linux-perf-users, devicetree, imx,
linux-kernel, Frank Li, Jacky Bai
From: Jacky Bai <ping.bai@nxp.com>
Add DB pmu related nodes. This pmu is in DB (system interconnects).
Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
arch/arm64/boot/dts/freescale/imx8dxl-ss-ddr.dtsi | 30 +++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx8dxl-ss-ddr.dtsi b/arch/arm64/boot/dts/freescale/imx8dxl-ss-ddr.dtsi
index 3569abb5bb9befd4d1504e3e2a352c64229533c0..b9ca15d6b7f623e990ac66a770f7a34e82bf4b17 100644
--- a/arch/arm64/boot/dts/freescale/imx8dxl-ss-ddr.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8dxl-ss-ddr.dtsi
@@ -7,3 +7,33 @@ &ddr_pmu0 {
compatible = "fsl,imx8dxl-ddr-pmu", "fsl,imx8-ddr-pmu";
interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
};
+
+&ddr_subsys {
+ db_ipg_clk: clock-db-ipg {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <456000000>;
+ clock-output-names = "db_ipg_clk";
+ };
+
+ db_pmu0: db-pmu@5ca40000 {
+ compatible = "fsl,imx8dxl-db-pmu";
+ reg = <0x5ca40000 0x10000>;
+ interrupt-parent = <&gic>;
+ interrupts = <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&db_pmu0_lpcg IMX_LPCG_CLK_4>, <&db_pmu0_lpcg IMX_LPCG_CLK_0>;
+ clock-names = "ipg", "cnt";
+ power-domains = <&pd IMX_SC_R_PERF>;
+ };
+
+ db_pmu0_lpcg: clock-controller@5cae0000 {
+ compatible = "fsl,imx8qxp-lpcg";
+ reg = <0x5cae0000 0x10000>;
+ #clock-cells = <1>;
+ clocks = <&db_ipg_clk>, <&db_ipg_clk>;
+ clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
+ clock-output-names = "perf_lpcg_cnt_clk",
+ "perf_lpcg_ipg_clk";
+ power-domains = <&pd IMX_SC_R_PERF>;
+ };
+};
--
2.34.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH 0/6] perf/imx_ddr: Add i.MX8QM and pmu in DB (system interconnects)
2025-10-23 18:56 [PATCH 0/6] perf/imx_ddr: Add i.MX8QM and pmu in DB (system interconnects) Frank Li
` (5 preceding siblings ...)
2025-10-23 18:56 ` [PATCH 6/6] arm64: dts: imx8dxl-ss-ddr: Add DB (system interconnects) pmu support for i.MX8DXL Frank Li
@ 2025-10-24 12:17 ` Rob Herring (Arm)
6 siblings, 0 replies; 16+ messages in thread
From: Rob Herring (Arm) @ 2025-10-24 12:17 UTC (permalink / raw)
To: Frank Li
Cc: Mark Rutland, Will Deacon, Xu Yang, Fabio Estevam,
linux-perf-users, Shawn Guo, Krzysztof Kozlowski, Frank Li,
linux-arm-kernel, imx, Joakim Zhang, Conor Dooley, Jacky Bai,
Frank Li, linux-kernel, devicetree, Sascha Hauer,
Pengutronix Kernel Team
On Thu, 23 Oct 2025 14:56:40 -0400, Frank Li wrote:
> dts: add soc specific compatible string for imx8qm, imx8qxp, imx8dxl in db.
> driver:
> - did some cleanup
> - add support for pmu in imx8dxl DB
> binding:
> - add compatible string for imx8qm, imx8qxp, imx8dxl in db
>
> Signed-off-by: Frank Li <Frank.Li@nxp.com>
> ---
> Frank Li (4):
> dt-bindings: perf: fsl-imx-ddr: Add compatible string for i.MX8QM, i.MX8QXP and i.MX8DXL
> perf/imx_ddr: Move ida_alloc() from ddr_perf_init() to ddr_perf_probe()
> perf/imx_ddr: Get and enable optional clks
> arm64: dts: imx8qm: add ddr perf device node
>
> Jacky Bai (1):
> arm64: dts: imx8dxl-ss-ddr: Add DB (system interconnects) pmu support for i.MX8DXL
>
> Joakim Zhang (1):
> perf/imx_ddr: Add support for PMU in DB (system interconnects)
>
> .../devicetree/bindings/perf/fsl-imx-ddr.yaml | 26 +++++++
> arch/arm64/boot/dts/freescale/imx8-ss-ddr.dtsi | 2 +-
> arch/arm64/boot/dts/freescale/imx8dxl-ss-ddr.dtsi | 30 +++++++
> arch/arm64/boot/dts/freescale/imx8qm-ss-ddr.dtsi | 19 +++++
> arch/arm64/boot/dts/freescale/imx8qm.dtsi | 2 +
> drivers/perf/fsl_imx8_ddr_perf.c | 91 ++++++++++++++++++----
> 6 files changed, 152 insertions(+), 18 deletions(-)
> ---
> base-commit: c31b21db1c04ba719c3889a57873f0f7eff54670
> change-id: 20251022-qm_dts-60145802537d
>
> Best regards,
> --
> Frank Li <Frank.Li@nxp.com>
>
>
>
My bot found new DTB warnings on the .dts files added or changed in this
series.
Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings
are fixed by another series. Ultimately, it is up to the platform
maintainer whether these warnings are acceptable or not. No need to reply
unless the platform maintainer has comments.
If you already ran DT checks and didn't see these error(s), then
make sure dt-schema is up to date:
pip3 install dtschema --upgrade
This patch series was applied (using b4) to base:
Base: base-commit c31b21db1c04ba719c3889a57873f0f7eff54670 not known, ignoring
Base: attempting to guess base-commit...
Base: tags/v6.18-rc2-24-gfda2253ceb14 (exact match)
Base: tags/v6.18-rc2-24-gfda2253ceb14 (use --merge-base to override)
If this is not the correct base, please add 'base-commit' tag
(or use b4 which does this automatically)
New warnings running 'make CHECK_DTBS=y for arch/arm64/boot/dts/freescale/' for 20251023-qm_dts-v1-0-9830d6a45939@nxp.com:
arch/arm64/boot/dts/freescale/imx8dx-colibri-eval-v3.dtb: ddr-pmu@5c020000 (fsl,imx8qxp-ddr-pmu): compatible: 'oneOf' conditional failed, one must be fixed:
['fsl,imx8qxp-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too long
['fsl,imx8qxp-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too short
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx8-ddr-pmu', 'fsl,imx8dxl-db-pmu', 'fsl,imx8m-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mp-ddr-pmu', 'fsl,imx93-ddr-pmu']
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mp-ddr-pmu']
'fsl,imx8dxl-ddr-pmu' was expected
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx91-ddr-pmu', 'fsl,imx94-ddr-pmu', 'fsl,imx95-ddr-pmu']
'fsl,imx8m-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' was expected
'fsl,imx93-ddr-pmu' was expected
from schema $id: http://devicetree.org/schemas/perf/fsl-imx-ddr.yaml
arch/arm64/boot/dts/freescale/imx8qxp-tqma8xqp-mba8xx.dtb: ddr-pmu@5c020000 (fsl,imx8qxp-ddr-pmu): compatible: 'oneOf' conditional failed, one must be fixed:
['fsl,imx8qxp-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too long
['fsl,imx8qxp-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too short
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx8-ddr-pmu', 'fsl,imx8dxl-db-pmu', 'fsl,imx8m-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mp-ddr-pmu', 'fsl,imx93-ddr-pmu']
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mp-ddr-pmu']
'fsl,imx8dxl-ddr-pmu' was expected
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx91-ddr-pmu', 'fsl,imx94-ddr-pmu', 'fsl,imx95-ddr-pmu']
'fsl,imx8m-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' was expected
'fsl,imx93-ddr-pmu' was expected
from schema $id: http://devicetree.org/schemas/perf/fsl-imx-ddr.yaml
arch/arm64/boot/dts/freescale/imx8dx-colibri-iris-v2.dtb: ddr-pmu@5c020000 (fsl,imx8qxp-ddr-pmu): compatible: 'oneOf' conditional failed, one must be fixed:
['fsl,imx8qxp-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too long
['fsl,imx8qxp-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too short
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx8-ddr-pmu', 'fsl,imx8dxl-db-pmu', 'fsl,imx8m-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mp-ddr-pmu', 'fsl,imx93-ddr-pmu']
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mp-ddr-pmu']
'fsl,imx8dxl-ddr-pmu' was expected
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx91-ddr-pmu', 'fsl,imx94-ddr-pmu', 'fsl,imx95-ddr-pmu']
'fsl,imx8m-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' was expected
'fsl,imx93-ddr-pmu' was expected
from schema $id: http://devicetree.org/schemas/perf/fsl-imx-ddr.yaml
arch/arm64/boot/dts/freescale/imx8qm-apalis-v1.1-eval.dtb: ddr-pmu@5c020000 (fsl,imx8qm-ddr-pmu): compatible: 'oneOf' conditional failed, one must be fixed:
['fsl,imx8qm-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too long
['fsl,imx8qm-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too short
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx8-ddr-pmu', 'fsl,imx8dxl-db-pmu', 'fsl,imx8m-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mp-ddr-pmu', 'fsl,imx93-ddr-pmu']
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mp-ddr-pmu']
'fsl,imx8dxl-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx91-ddr-pmu', 'fsl,imx94-ddr-pmu', 'fsl,imx95-ddr-pmu']
'fsl,imx8m-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' was expected
'fsl,imx93-ddr-pmu' was expected
from schema $id: http://devicetree.org/schemas/perf/fsl-imx-ddr.yaml
arch/arm64/boot/dts/freescale/imx8qm-apalis-v1.1-eval.dtb: ddr-pmu@5c120000 (fsl,imx8qm-ddr-pmu): compatible: 'oneOf' conditional failed, one must be fixed:
['fsl,imx8qm-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too long
['fsl,imx8qm-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too short
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx8-ddr-pmu', 'fsl,imx8dxl-db-pmu', 'fsl,imx8m-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mp-ddr-pmu', 'fsl,imx93-ddr-pmu']
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mp-ddr-pmu']
'fsl,imx8dxl-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx91-ddr-pmu', 'fsl,imx94-ddr-pmu', 'fsl,imx95-ddr-pmu']
'fsl,imx8m-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' was expected
'fsl,imx93-ddr-pmu' was expected
from schema $id: http://devicetree.org/schemas/perf/fsl-imx-ddr.yaml
arch/arm64/boot/dts/freescale/imx8qxp-ai_ml.dtb: ddr-pmu@5c020000 (fsl,imx8qxp-ddr-pmu): compatible: 'oneOf' conditional failed, one must be fixed:
['fsl,imx8qxp-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too long
['fsl,imx8qxp-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too short
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx8-ddr-pmu', 'fsl,imx8dxl-db-pmu', 'fsl,imx8m-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mp-ddr-pmu', 'fsl,imx93-ddr-pmu']
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mp-ddr-pmu']
'fsl,imx8dxl-ddr-pmu' was expected
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx91-ddr-pmu', 'fsl,imx94-ddr-pmu', 'fsl,imx95-ddr-pmu']
'fsl,imx8m-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' was expected
'fsl,imx93-ddr-pmu' was expected
from schema $id: http://devicetree.org/schemas/perf/fsl-imx-ddr.yaml
arch/arm64/boot/dts/freescale/imx8qxp-colibri-iris.dtb: ddr-pmu@5c020000 (fsl,imx8qxp-ddr-pmu): compatible: 'oneOf' conditional failed, one must be fixed:
['fsl,imx8qxp-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too long
['fsl,imx8qxp-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too short
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx8-ddr-pmu', 'fsl,imx8dxl-db-pmu', 'fsl,imx8m-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mp-ddr-pmu', 'fsl,imx93-ddr-pmu']
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mp-ddr-pmu']
'fsl,imx8dxl-ddr-pmu' was expected
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx91-ddr-pmu', 'fsl,imx94-ddr-pmu', 'fsl,imx95-ddr-pmu']
'fsl,imx8m-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' was expected
'fsl,imx93-ddr-pmu' was expected
from schema $id: http://devicetree.org/schemas/perf/fsl-imx-ddr.yaml
arch/arm64/boot/dts/freescale/imx8dx-colibri-aster.dtb: ddr-pmu@5c020000 (fsl,imx8qxp-ddr-pmu): compatible: 'oneOf' conditional failed, one must be fixed:
['fsl,imx8qxp-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too long
['fsl,imx8qxp-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too short
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx8-ddr-pmu', 'fsl,imx8dxl-db-pmu', 'fsl,imx8m-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mp-ddr-pmu', 'fsl,imx93-ddr-pmu']
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mp-ddr-pmu']
'fsl,imx8dxl-ddr-pmu' was expected
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx91-ddr-pmu', 'fsl,imx94-ddr-pmu', 'fsl,imx95-ddr-pmu']
'fsl,imx8m-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' was expected
'fsl,imx93-ddr-pmu' was expected
from schema $id: http://devicetree.org/schemas/perf/fsl-imx-ddr.yaml
arch/arm64/boot/dts/freescale/imx8dxl-evk.dtb: bus@5c000000 (simple-bus): clock-db-ipg: 'ranges' is a required property
from schema $id: http://devicetree.org/schemas/simple-bus.yaml
arch/arm64/boot/dts/freescale/imx8dxl-evk.dtb: ddr-pmu@5c020000 (fsl,imx8dxl-ddr-pmu): compatible: 'oneOf' conditional failed, one must be fixed:
['fsl,imx8dxl-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too long
['fsl,imx8dxl-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too short
'fsl,imx8dxl-ddr-pmu' is not one of ['fsl,imx8-ddr-pmu', 'fsl,imx8dxl-db-pmu', 'fsl,imx8m-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mp-ddr-pmu', 'fsl,imx93-ddr-pmu']
'fsl,imx8dxl-ddr-pmu' is not one of ['fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mp-ddr-pmu']
'fsl,imx8dxl-ddr-pmu' is not one of ['fsl,imx91-ddr-pmu', 'fsl,imx94-ddr-pmu', 'fsl,imx95-ddr-pmu']
'fsl,imx8m-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' was expected
'fsl,imx93-ddr-pmu' was expected
from schema $id: http://devicetree.org/schemas/perf/fsl-imx-ddr.yaml
arch/arm64/boot/dts/freescale/imx8dxl-evk.dtb: db-pmu@5ca40000 (fsl,imx8dxl-db-pmu): 'power-domains' does not match any of the regexes: '^pinctrl-[0-9]+$'
from schema $id: http://devicetree.org/schemas/perf/fsl-imx-ddr.yaml
arch/arm64/boot/dts/freescale/imx8qxp-tqma8xqps-mb-smarc-2.dtb: ddr-pmu@5c020000 (fsl,imx8qxp-ddr-pmu): compatible: 'oneOf' conditional failed, one must be fixed:
['fsl,imx8qxp-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too long
['fsl,imx8qxp-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too short
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx8-ddr-pmu', 'fsl,imx8dxl-db-pmu', 'fsl,imx8m-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mp-ddr-pmu', 'fsl,imx93-ddr-pmu']
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mp-ddr-pmu']
'fsl,imx8dxl-ddr-pmu' was expected
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx91-ddr-pmu', 'fsl,imx94-ddr-pmu', 'fsl,imx95-ddr-pmu']
'fsl,imx8m-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' was expected
'fsl,imx93-ddr-pmu' was expected
from schema $id: http://devicetree.org/schemas/perf/fsl-imx-ddr.yaml
arch/arm64/boot/dts/freescale/imx8dx-colibri-iris.dtb: ddr-pmu@5c020000 (fsl,imx8qxp-ddr-pmu): compatible: 'oneOf' conditional failed, one must be fixed:
['fsl,imx8qxp-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too long
['fsl,imx8qxp-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too short
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx8-ddr-pmu', 'fsl,imx8dxl-db-pmu', 'fsl,imx8m-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mp-ddr-pmu', 'fsl,imx93-ddr-pmu']
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mp-ddr-pmu']
'fsl,imx8dxl-ddr-pmu' was expected
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx91-ddr-pmu', 'fsl,imx94-ddr-pmu', 'fsl,imx95-ddr-pmu']
'fsl,imx8m-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' was expected
'fsl,imx93-ddr-pmu' was expected
from schema $id: http://devicetree.org/schemas/perf/fsl-imx-ddr.yaml
arch/arm64/boot/dts/freescale/imx8qm-apalis-v1.1-ixora-v1.2.dtb: ddr-pmu@5c020000 (fsl,imx8qm-ddr-pmu): compatible: 'oneOf' conditional failed, one must be fixed:
['fsl,imx8qm-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too long
['fsl,imx8qm-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too short
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx8-ddr-pmu', 'fsl,imx8dxl-db-pmu', 'fsl,imx8m-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mp-ddr-pmu', 'fsl,imx93-ddr-pmu']
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mp-ddr-pmu']
'fsl,imx8dxl-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx91-ddr-pmu', 'fsl,imx94-ddr-pmu', 'fsl,imx95-ddr-pmu']
'fsl,imx8m-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' was expected
'fsl,imx93-ddr-pmu' was expected
from schema $id: http://devicetree.org/schemas/perf/fsl-imx-ddr.yaml
arch/arm64/boot/dts/freescale/imx8qm-apalis-v1.1-ixora-v1.2.dtb: ddr-pmu@5c120000 (fsl,imx8qm-ddr-pmu): compatible: 'oneOf' conditional failed, one must be fixed:
['fsl,imx8qm-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too long
['fsl,imx8qm-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too short
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx8-ddr-pmu', 'fsl,imx8dxl-db-pmu', 'fsl,imx8m-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mp-ddr-pmu', 'fsl,imx93-ddr-pmu']
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mp-ddr-pmu']
'fsl,imx8dxl-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx91-ddr-pmu', 'fsl,imx94-ddr-pmu', 'fsl,imx95-ddr-pmu']
'fsl,imx8m-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' was expected
'fsl,imx93-ddr-pmu' was expected
from schema $id: http://devicetree.org/schemas/perf/fsl-imx-ddr.yaml
arch/arm64/boot/dts/freescale/imx8qm-apalis-v1.1-eval-v1.2.dtb: ddr-pmu@5c020000 (fsl,imx8qm-ddr-pmu): compatible: 'oneOf' conditional failed, one must be fixed:
['fsl,imx8qm-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too long
['fsl,imx8qm-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too short
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx8-ddr-pmu', 'fsl,imx8dxl-db-pmu', 'fsl,imx8m-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mp-ddr-pmu', 'fsl,imx93-ddr-pmu']
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mp-ddr-pmu']
'fsl,imx8dxl-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx91-ddr-pmu', 'fsl,imx94-ddr-pmu', 'fsl,imx95-ddr-pmu']
'fsl,imx8m-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' was expected
'fsl,imx93-ddr-pmu' was expected
from schema $id: http://devicetree.org/schemas/perf/fsl-imx-ddr.yaml
arch/arm64/boot/dts/freescale/imx8qm-apalis-v1.1-eval-v1.2.dtb: ddr-pmu@5c120000 (fsl,imx8qm-ddr-pmu): compatible: 'oneOf' conditional failed, one must be fixed:
['fsl,imx8qm-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too long
['fsl,imx8qm-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too short
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx8-ddr-pmu', 'fsl,imx8dxl-db-pmu', 'fsl,imx8m-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mp-ddr-pmu', 'fsl,imx93-ddr-pmu']
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mp-ddr-pmu']
'fsl,imx8dxl-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx91-ddr-pmu', 'fsl,imx94-ddr-pmu', 'fsl,imx95-ddr-pmu']
'fsl,imx8m-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' was expected
'fsl,imx93-ddr-pmu' was expected
from schema $id: http://devicetree.org/schemas/perf/fsl-imx-ddr.yaml
arch/arm64/boot/dts/freescale/imx8qm-apalis-eval.dtb: ddr-pmu@5c020000 (fsl,imx8qm-ddr-pmu): compatible: 'oneOf' conditional failed, one must be fixed:
['fsl,imx8qm-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too long
['fsl,imx8qm-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too short
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx8-ddr-pmu', 'fsl,imx8dxl-db-pmu', 'fsl,imx8m-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mp-ddr-pmu', 'fsl,imx93-ddr-pmu']
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mp-ddr-pmu']
'fsl,imx8dxl-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx91-ddr-pmu', 'fsl,imx94-ddr-pmu', 'fsl,imx95-ddr-pmu']
'fsl,imx8m-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' was expected
'fsl,imx93-ddr-pmu' was expected
from schema $id: http://devicetree.org/schemas/perf/fsl-imx-ddr.yaml
arch/arm64/boot/dts/freescale/imx8qm-apalis-eval.dtb: ddr-pmu@5c120000 (fsl,imx8qm-ddr-pmu): compatible: 'oneOf' conditional failed, one must be fixed:
['fsl,imx8qm-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too long
['fsl,imx8qm-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too short
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx8-ddr-pmu', 'fsl,imx8dxl-db-pmu', 'fsl,imx8m-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mp-ddr-pmu', 'fsl,imx93-ddr-pmu']
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mp-ddr-pmu']
'fsl,imx8dxl-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx91-ddr-pmu', 'fsl,imx94-ddr-pmu', 'fsl,imx95-ddr-pmu']
'fsl,imx8m-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' was expected
'fsl,imx93-ddr-pmu' was expected
from schema $id: http://devicetree.org/schemas/perf/fsl-imx-ddr.yaml
arch/arm64/boot/dts/freescale/imx8dxp-tqma8xdps-mb-smarc-2.dtb: ddr-pmu@5c020000 (fsl,imx8qxp-ddr-pmu): compatible: 'oneOf' conditional failed, one must be fixed:
['fsl,imx8qxp-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too long
['fsl,imx8qxp-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too short
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx8-ddr-pmu', 'fsl,imx8dxl-db-pmu', 'fsl,imx8m-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mp-ddr-pmu', 'fsl,imx93-ddr-pmu']
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mp-ddr-pmu']
'fsl,imx8dxl-ddr-pmu' was expected
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx91-ddr-pmu', 'fsl,imx94-ddr-pmu', 'fsl,imx95-ddr-pmu']
'fsl,imx8m-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' was expected
'fsl,imx93-ddr-pmu' was expected
from schema $id: http://devicetree.org/schemas/perf/fsl-imx-ddr.yaml
arch/arm64/boot/dts/freescale/imx8qm-mek.dtb: ddr-pmu@5c020000 (fsl,imx8qm-ddr-pmu): compatible: 'oneOf' conditional failed, one must be fixed:
['fsl,imx8qm-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too long
['fsl,imx8qm-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too short
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx8-ddr-pmu', 'fsl,imx8dxl-db-pmu', 'fsl,imx8m-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mp-ddr-pmu', 'fsl,imx93-ddr-pmu']
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mp-ddr-pmu']
'fsl,imx8dxl-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx91-ddr-pmu', 'fsl,imx94-ddr-pmu', 'fsl,imx95-ddr-pmu']
'fsl,imx8m-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' was expected
'fsl,imx93-ddr-pmu' was expected
from schema $id: http://devicetree.org/schemas/perf/fsl-imx-ddr.yaml
arch/arm64/boot/dts/freescale/imx8qm-mek.dtb: ddr-pmu@5c120000 (fsl,imx8qm-ddr-pmu): compatible: 'oneOf' conditional failed, one must be fixed:
['fsl,imx8qm-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too long
['fsl,imx8qm-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too short
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx8-ddr-pmu', 'fsl,imx8dxl-db-pmu', 'fsl,imx8m-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mp-ddr-pmu', 'fsl,imx93-ddr-pmu']
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mp-ddr-pmu']
'fsl,imx8dxl-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx91-ddr-pmu', 'fsl,imx94-ddr-pmu', 'fsl,imx95-ddr-pmu']
'fsl,imx8m-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' was expected
'fsl,imx93-ddr-pmu' was expected
from schema $id: http://devicetree.org/schemas/perf/fsl-imx-ddr.yaml
arch/arm64/boot/dts/freescale/imx8qm-apalis-ixora-v1.1.dtb: ddr-pmu@5c020000 (fsl,imx8qm-ddr-pmu): compatible: 'oneOf' conditional failed, one must be fixed:
['fsl,imx8qm-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too long
['fsl,imx8qm-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too short
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx8-ddr-pmu', 'fsl,imx8dxl-db-pmu', 'fsl,imx8m-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mp-ddr-pmu', 'fsl,imx93-ddr-pmu']
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mp-ddr-pmu']
'fsl,imx8dxl-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx91-ddr-pmu', 'fsl,imx94-ddr-pmu', 'fsl,imx95-ddr-pmu']
'fsl,imx8m-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' was expected
'fsl,imx93-ddr-pmu' was expected
from schema $id: http://devicetree.org/schemas/perf/fsl-imx-ddr.yaml
arch/arm64/boot/dts/freescale/imx8qm-apalis-ixora-v1.1.dtb: ddr-pmu@5c120000 (fsl,imx8qm-ddr-pmu): compatible: 'oneOf' conditional failed, one must be fixed:
['fsl,imx8qm-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too long
['fsl,imx8qm-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too short
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx8-ddr-pmu', 'fsl,imx8dxl-db-pmu', 'fsl,imx8m-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mp-ddr-pmu', 'fsl,imx93-ddr-pmu']
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mp-ddr-pmu']
'fsl,imx8dxl-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx91-ddr-pmu', 'fsl,imx94-ddr-pmu', 'fsl,imx95-ddr-pmu']
'fsl,imx8m-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' was expected
'fsl,imx93-ddr-pmu' was expected
from schema $id: http://devicetree.org/schemas/perf/fsl-imx-ddr.yaml
arch/arm64/boot/dts/freescale/imx8qm-apalis-v1.1-ixora-v1.1.dtb: ddr-pmu@5c020000 (fsl,imx8qm-ddr-pmu): compatible: 'oneOf' conditional failed, one must be fixed:
['fsl,imx8qm-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too long
['fsl,imx8qm-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too short
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx8-ddr-pmu', 'fsl,imx8dxl-db-pmu', 'fsl,imx8m-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mp-ddr-pmu', 'fsl,imx93-ddr-pmu']
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mp-ddr-pmu']
'fsl,imx8dxl-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx91-ddr-pmu', 'fsl,imx94-ddr-pmu', 'fsl,imx95-ddr-pmu']
'fsl,imx8m-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' was expected
'fsl,imx93-ddr-pmu' was expected
from schema $id: http://devicetree.org/schemas/perf/fsl-imx-ddr.yaml
arch/arm64/boot/dts/freescale/imx8qm-apalis-v1.1-ixora-v1.1.dtb: ddr-pmu@5c120000 (fsl,imx8qm-ddr-pmu): compatible: 'oneOf' conditional failed, one must be fixed:
['fsl,imx8qm-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too long
['fsl,imx8qm-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too short
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx8-ddr-pmu', 'fsl,imx8dxl-db-pmu', 'fsl,imx8m-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mp-ddr-pmu', 'fsl,imx93-ddr-pmu']
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mp-ddr-pmu']
'fsl,imx8dxl-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx91-ddr-pmu', 'fsl,imx94-ddr-pmu', 'fsl,imx95-ddr-pmu']
'fsl,imx8m-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' was expected
'fsl,imx93-ddr-pmu' was expected
from schema $id: http://devicetree.org/schemas/perf/fsl-imx-ddr.yaml
arch/arm64/boot/dts/freescale/imx8qxp-colibri-iris-v2.dtb: ddr-pmu@5c020000 (fsl,imx8qxp-ddr-pmu): compatible: 'oneOf' conditional failed, one must be fixed:
['fsl,imx8qxp-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too long
['fsl,imx8qxp-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too short
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx8-ddr-pmu', 'fsl,imx8dxl-db-pmu', 'fsl,imx8m-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mp-ddr-pmu', 'fsl,imx93-ddr-pmu']
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mp-ddr-pmu']
'fsl,imx8dxl-ddr-pmu' was expected
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx91-ddr-pmu', 'fsl,imx94-ddr-pmu', 'fsl,imx95-ddr-pmu']
'fsl,imx8m-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' was expected
'fsl,imx93-ddr-pmu' was expected
from schema $id: http://devicetree.org/schemas/perf/fsl-imx-ddr.yaml
arch/arm64/boot/dts/freescale/imx8qm-apalis-eval-v1.2.dtb: ddr-pmu@5c020000 (fsl,imx8qm-ddr-pmu): compatible: 'oneOf' conditional failed, one must be fixed:
['fsl,imx8qm-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too long
['fsl,imx8qm-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too short
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx8-ddr-pmu', 'fsl,imx8dxl-db-pmu', 'fsl,imx8m-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mp-ddr-pmu', 'fsl,imx93-ddr-pmu']
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mp-ddr-pmu']
'fsl,imx8dxl-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx91-ddr-pmu', 'fsl,imx94-ddr-pmu', 'fsl,imx95-ddr-pmu']
'fsl,imx8m-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' was expected
'fsl,imx93-ddr-pmu' was expected
from schema $id: http://devicetree.org/schemas/perf/fsl-imx-ddr.yaml
arch/arm64/boot/dts/freescale/imx8qm-apalis-eval-v1.2.dtb: ddr-pmu@5c120000 (fsl,imx8qm-ddr-pmu): compatible: 'oneOf' conditional failed, one must be fixed:
['fsl,imx8qm-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too long
['fsl,imx8qm-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too short
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx8-ddr-pmu', 'fsl,imx8dxl-db-pmu', 'fsl,imx8m-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mp-ddr-pmu', 'fsl,imx93-ddr-pmu']
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mp-ddr-pmu']
'fsl,imx8dxl-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' is not one of ['fsl,imx91-ddr-pmu', 'fsl,imx94-ddr-pmu', 'fsl,imx95-ddr-pmu']
'fsl,imx8m-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' was expected
'fsl,imx93-ddr-pmu' was expected
from schema $id: http://devicetree.org/schemas/perf/fsl-imx-ddr.yaml
arch/arm64/boot/dts/freescale/imx8dxp-tqma8xdp-mba8xx.dtb: ddr-pmu@5c020000 (fsl,imx8qxp-ddr-pmu): compatible: 'oneOf' conditional failed, one must be fixed:
['fsl,imx8qxp-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too long
['fsl,imx8qxp-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too short
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx8-ddr-pmu', 'fsl,imx8dxl-db-pmu', 'fsl,imx8m-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mp-ddr-pmu', 'fsl,imx93-ddr-pmu']
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mp-ddr-pmu']
'fsl,imx8dxl-ddr-pmu' was expected
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx91-ddr-pmu', 'fsl,imx94-ddr-pmu', 'fsl,imx95-ddr-pmu']
'fsl,imx8m-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' was expected
'fsl,imx93-ddr-pmu' was expected
from schema $id: http://devicetree.org/schemas/perf/fsl-imx-ddr.yaml
arch/arm64/boot/dts/freescale/imx8qxp-colibri-eval-v3.dtb: ddr-pmu@5c020000 (fsl,imx8qxp-ddr-pmu): compatible: 'oneOf' conditional failed, one must be fixed:
['fsl,imx8qxp-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too long
['fsl,imx8qxp-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too short
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx8-ddr-pmu', 'fsl,imx8dxl-db-pmu', 'fsl,imx8m-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mp-ddr-pmu', 'fsl,imx93-ddr-pmu']
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mp-ddr-pmu']
'fsl,imx8dxl-ddr-pmu' was expected
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx91-ddr-pmu', 'fsl,imx94-ddr-pmu', 'fsl,imx95-ddr-pmu']
'fsl,imx8m-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' was expected
'fsl,imx93-ddr-pmu' was expected
from schema $id: http://devicetree.org/schemas/perf/fsl-imx-ddr.yaml
arch/arm64/boot/dts/freescale/imx8qxp-colibri-aster.dtb: ddr-pmu@5c020000 (fsl,imx8qxp-ddr-pmu): compatible: 'oneOf' conditional failed, one must be fixed:
['fsl,imx8qxp-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too long
['fsl,imx8qxp-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too short
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx8-ddr-pmu', 'fsl,imx8dxl-db-pmu', 'fsl,imx8m-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mp-ddr-pmu', 'fsl,imx93-ddr-pmu']
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mp-ddr-pmu']
'fsl,imx8dxl-ddr-pmu' was expected
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx91-ddr-pmu', 'fsl,imx94-ddr-pmu', 'fsl,imx95-ddr-pmu']
'fsl,imx8m-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' was expected
'fsl,imx93-ddr-pmu' was expected
from schema $id: http://devicetree.org/schemas/perf/fsl-imx-ddr.yaml
arch/arm64/boot/dts/freescale/imx8qxp-mek.dtb: ddr-pmu@5c020000 (fsl,imx8qxp-ddr-pmu): compatible: 'oneOf' conditional failed, one must be fixed:
['fsl,imx8qxp-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too long
['fsl,imx8qxp-ddr-pmu', 'fsl,imx8-ddr-pmu'] is too short
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx8-ddr-pmu', 'fsl,imx8dxl-db-pmu', 'fsl,imx8m-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mp-ddr-pmu', 'fsl,imx93-ddr-pmu']
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx8mm-ddr-pmu', 'fsl,imx8mn-ddr-pmu', 'fsl,imx8mq-ddr-pmu', 'fsl,imx8mp-ddr-pmu']
'fsl,imx8dxl-ddr-pmu' was expected
'fsl,imx8qxp-ddr-pmu' is not one of ['fsl,imx91-ddr-pmu', 'fsl,imx94-ddr-pmu', 'fsl,imx95-ddr-pmu']
'fsl,imx8m-ddr-pmu' was expected
'fsl,imx8qm-ddr-pmu' was expected
'fsl,imx93-ddr-pmu' was expected
from schema $id: http://devicetree.org/schemas/perf/fsl-imx-ddr.yaml
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 1/6] dt-bindings: perf: fsl-imx-ddr: Add compatible string for i.MX8QM, i.MX8QXP and i.MX8DXL
2025-10-23 18:56 ` [PATCH 1/6] dt-bindings: perf: fsl-imx-ddr: Add compatible string for i.MX8QM, i.MX8QXP and i.MX8DXL Frank Li
@ 2025-10-24 13:03 ` Krzysztof Kozlowski
2025-10-24 13:19 ` Frank Li
0 siblings, 1 reply; 16+ messages in thread
From: Krzysztof Kozlowski @ 2025-10-24 13:03 UTC (permalink / raw)
To: Frank Li, Xu Yang, Will Deacon, Mark Rutland, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam
Cc: linux-arm-kernel, linux-perf-users, devicetree, imx, linux-kernel
On 23/10/2025 20:56, Frank Li wrote:
> Add compatible string fsl,imx8qm-ddr-pmu, fsl,imx8qxp-ddr-pmu and
> fsl,imx8dxl-db-pmu (for data bus fabric).
>
> Add clocks and clock-names for fsl,imx8dxl-db-pmu and keep the same
> restriction for existing compatible strings.
>
> Signed-off-by: Frank Li <Frank.Li@nxp.com>
> ---
> .../devicetree/bindings/perf/fsl-imx-ddr.yaml | 26 ++++++++++++++++++++++
> 1 file changed, 26 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/perf/fsl-imx-ddr.yaml b/Documentation/devicetree/bindings/perf/fsl-imx-ddr.yaml
> index d2e578d6b83b8847c7a0ca9d5aeb208a90e2fa6a..13eb13a79e2100ae1d747ddf6fc4db5b470112a8 100644
> --- a/Documentation/devicetree/bindings/perf/fsl-imx-ddr.yaml
> +++ b/Documentation/devicetree/bindings/perf/fsl-imx-ddr.yaml
> @@ -14,6 +14,7 @@ properties:
> oneOf:
> - enum:
> - fsl,imx8-ddr-pmu
> + - fsl,imx8dxl-db-pmu
> - fsl,imx8m-ddr-pmu
> - fsl,imx8mq-ddr-pmu
> - fsl,imx8mm-ddr-pmu
> @@ -29,6 +30,8 @@ properties:
> - const: fsl,imx8m-ddr-pmu
> - items:
> - const: fsl,imx8dxl-ddr-pmu
> + - const: fsl,imx8qm-ddr-pmu
> + - const: fsl,imx8qxp-ddr-pmu
I don't understand the need for this change, not explained in commit
msg. Why do you change 8dxl-ddr?
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 1/6] dt-bindings: perf: fsl-imx-ddr: Add compatible string for i.MX8QM, i.MX8QXP and i.MX8DXL
2025-10-24 13:03 ` Krzysztof Kozlowski
@ 2025-10-24 13:19 ` Frank Li
2025-10-24 15:50 ` Krzysztof Kozlowski
0 siblings, 1 reply; 16+ messages in thread
From: Frank Li @ 2025-10-24 13:19 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Xu Yang, Will Deacon, Mark Rutland, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, linux-arm-kernel,
linux-perf-users, devicetree, imx, linux-kernel
On Fri, Oct 24, 2025 at 03:03:10PM +0200, Krzysztof Kozlowski wrote:
> On 23/10/2025 20:56, Frank Li wrote:
> > Add compatible string fsl,imx8qm-ddr-pmu, fsl,imx8qxp-ddr-pmu and
> > fsl,imx8dxl-db-pmu (for data bus fabric).
> >
> > Add clocks and clock-names for fsl,imx8dxl-db-pmu and keep the same
> > restriction for existing compatible strings.
> >
> > Signed-off-by: Frank Li <Frank.Li@nxp.com>
> > ---
> > .../devicetree/bindings/perf/fsl-imx-ddr.yaml | 26 ++++++++++++++++++++++
> > 1 file changed, 26 insertions(+)
> >
> > diff --git a/Documentation/devicetree/bindings/perf/fsl-imx-ddr.yaml b/Documentation/devicetree/bindings/perf/fsl-imx-ddr.yaml
> > index d2e578d6b83b8847c7a0ca9d5aeb208a90e2fa6a..13eb13a79e2100ae1d747ddf6fc4db5b470112a8 100644
> > --- a/Documentation/devicetree/bindings/perf/fsl-imx-ddr.yaml
> > +++ b/Documentation/devicetree/bindings/perf/fsl-imx-ddr.yaml
> > @@ -14,6 +14,7 @@ properties:
> > oneOf:
> > - enum:
> > - fsl,imx8-ddr-pmu
> > + - fsl,imx8dxl-db-pmu
> > - fsl,imx8m-ddr-pmu
> > - fsl,imx8mq-ddr-pmu
> > - fsl,imx8mm-ddr-pmu
> > @@ -29,6 +30,8 @@ properties:
> > - const: fsl,imx8m-ddr-pmu
> > - items:
> > - const: fsl,imx8dxl-ddr-pmu
> > + - const: fsl,imx8qm-ddr-pmu
> > + - const: fsl,imx8qxp-ddr-pmu
>
>
> I don't understand the need for this change, not explained in commit
> msg. Why do you change 8dxl-ddr?
I have not change 8dxl-ddr, but add fsl,imx8dxl-db-pmu, which is difference
with fsl,imx8dxl-ddr-pmu. (db vs ddr). db have less events compared to
ddr's pmu.
Frank
>
> Best regards,
> Krzysztof
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 1/6] dt-bindings: perf: fsl-imx-ddr: Add compatible string for i.MX8QM, i.MX8QXP and i.MX8DXL
2025-10-24 13:19 ` Frank Li
@ 2025-10-24 15:50 ` Krzysztof Kozlowski
0 siblings, 0 replies; 16+ messages in thread
From: Krzysztof Kozlowski @ 2025-10-24 15:50 UTC (permalink / raw)
To: Frank Li
Cc: Xu Yang, Will Deacon, Mark Rutland, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, linux-arm-kernel,
linux-perf-users, devicetree, imx, linux-kernel
On 24/10/2025 15:19, Frank Li wrote:
> On Fri, Oct 24, 2025 at 03:03:10PM +0200, Krzysztof Kozlowski wrote:
>> On 23/10/2025 20:56, Frank Li wrote:
>>> Add compatible string fsl,imx8qm-ddr-pmu, fsl,imx8qxp-ddr-pmu and
>>> fsl,imx8dxl-db-pmu (for data bus fabric).
>>>
>>> Add clocks and clock-names for fsl,imx8dxl-db-pmu and keep the same
>>> restriction for existing compatible strings.
>>>
>>> Signed-off-by: Frank Li <Frank.Li@nxp.com>
>>> ---
>>> .../devicetree/bindings/perf/fsl-imx-ddr.yaml | 26 ++++++++++++++++++++++
>>> 1 file changed, 26 insertions(+)
>>>
>>> diff --git a/Documentation/devicetree/bindings/perf/fsl-imx-ddr.yaml b/Documentation/devicetree/bindings/perf/fsl-imx-ddr.yaml
>>> index d2e578d6b83b8847c7a0ca9d5aeb208a90e2fa6a..13eb13a79e2100ae1d747ddf6fc4db5b470112a8 100644
>>> --- a/Documentation/devicetree/bindings/perf/fsl-imx-ddr.yaml
>>> +++ b/Documentation/devicetree/bindings/perf/fsl-imx-ddr.yaml
>>> @@ -14,6 +14,7 @@ properties:
>>> oneOf:
>>> - enum:
>>> - fsl,imx8-ddr-pmu
>>> + - fsl,imx8dxl-db-pmu
>>> - fsl,imx8m-ddr-pmu
>>> - fsl,imx8mq-ddr-pmu
>>> - fsl,imx8mm-ddr-pmu
>>> @@ -29,6 +30,8 @@ properties:
>>> - const: fsl,imx8m-ddr-pmu
>>> - items:
>>> - const: fsl,imx8dxl-ddr-pmu
>>> + - const: fsl,imx8qm-ddr-pmu
>>> + - const: fsl,imx8qxp-ddr-pmu
>>
>>
>> I don't understand the need for this change, not explained in commit
>> msg. Why do you change 8dxl-ddr?
>
> I have not change 8dxl-ddr, but add fsl,imx8dxl-db-pmu, which is difference
I talk about this exact hunk. You clearly have list for imx8dxl-ddr-pmu
being modified.
> with fsl,imx8dxl-ddr-pmu. (db vs ddr). db have less events compared to
> ddr's pmu.
>
> Frank
>
>>
>> Best regards,
>> Krzysztof
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 16+ messages in thread
* ext4 issue on linux-next(next-20251030)
2025-10-23 18:56 ` [PATCH 2/6] perf/imx_ddr: Move ida_alloc() from ddr_perf_init() to ddr_perf_probe() Frank Li
@ 2025-10-30 11:11 ` Bough Chen
2025-10-31 1:33 ` Theodore Tso
0 siblings, 1 reply; 16+ messages in thread
From: Bough Chen @ 2025-10-30 11:11 UTC (permalink / raw)
To: jack@suse.cz
Cc: tytso@mit.edu, adilger.kernel@dilger.ca,
linux-ext4@vger.kernel.org, imx@lists.linux.dev
Hi Jack,
On the latest linux-next, I find your patch acf943e9768e ("ext4: fix checks for orphan inodes") trigger the following issue on our imx7d-sdb board.
I do not have enough background knowledge of ext4, so don't know why there are orphan inodes on the partition with ext4. Not sure whether this
is a real issue or we need some special operation on current ext4 partition.
Do you have any suggestions to debug this issue?
root@imx6ul7d:~# e2fsck -f /dev/mmcblk2p2
e2fsck 1.47.3 (8-Jul-2025)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
root: 64959/570080 files (0.1% non-contiguous), 719492/1139298 blocks
root@imx6ul7d:~# mount /dev/mmcblk2p2 test/
[ 203.776094] EXT4-fs (mmcblk2p2): mounted filesystem dc06048e-939b-4827-97ef-f815486f505f r/w with ordered data mode. Quota mode: none.
root@imx6ul7d:~# umount /dev/mmcblk2p2
[ 210.088283] EXT4-fs (mmcblk2p2): unmounting filesystem dc06048e-939b-4827-97ef-f815486f505f.
[ 210.104550] EXT4-fs (mmcblk2p2): Inode 1 (3148c11d): inode tracked as orphan!
[ 210.104605] 3148c11d: efb7ffde 5f7b7fff e7fffbfe 677b6f7f ......{_.....o{g
[ 210.104618] 961d5d65: feedff7e 7bfdefff 7fffffff fff3bebf ~......{........
[ 210.104630] 440e00b4: 9f77fdff cfd7ff7b 57b3ffe7 cfdfd777 ..w.{......Ww...
[ 210.104641] d896c4c3: edecffaf ecfae6f3 e3cf7f5f f7fee7e5 ........_.......
[ 210.104652] 594b2fff: 7bfbff9d f5bfab4f efffffff fef7ffff ...{O...........
[ 210.104663] 48812578: f6bffadf 00000000 00000000 00000000 ................
root@imx6ul7d:~# [ 210.104674] 6940b116: 00000000 00000000 c697af68 c697af68 ........h...h...
[ 210.104685] 5f2b32c1: c697af70 c697af70 c697af78 c697af78 p...p...x...x...
[ 210.104696] 01fb95bd: c697af80 c697af80 00000000 00000000 ................
[ 210.104708] ae1bfce8: 00000000 00000000 c697af98 c697af98 ................
[ 210.104719] 659d4cf2: 00000000 cd7cffff 00000000 00000000 ......|.........
[ 210.104729] 91d0ddfa: 00000000 00000000 00000000 00000000 ................
[ 210.104740] 0747a55c: c697afc0 c697afc0 00280000 00000000 ..........(.....
[ 210.104751] 77b8b5de: 00000000 00000000 ffffffff ffffffff ................
[ 210.104762] 326357f2: c1017dc0 c565d400 c697b0b8 00000001 .}....e.........
[ 210.104773] 3398af02: 00000001 00000000 00000000 00000000 ................
[ 210.104784] abe2702f: 00000000 00000000 00000000 00000000 ................
[ 210.104794] a7d16dda: 00000000 00000000 00000000 00000000 ................
[ 210.104805] f714e489: 00000000 00000000 00030003 000c0000 ................
[ 210.104816] 9969c6ba: 00000000 00000000 00000000 00000300 ................
[ 210.104827] 7b03ec5b: 00000000 00000000 00000000 00000000 ................
[ 210.104838] 8f2c1269: c697b050 c697b050 00000000 00000000 P...P...........
[ 210.104849] d7cc3d73: 00000000 00000000 c697b068 c697b068 ........h...h...
[ 210.104860] 90750112: c697b070 c697b070 c697b078 c697b078 p...p...x...x...
[ 210.104696] 01fb95bd: c697af80 c697af80 00000000 00000000 ................ [16/1961]
[ 210.104708] ae1bfce8: 00000000 00000000 c697af98 c697af98 ................
[ 210.104719] 659d4cf2: 00000000 cd7cffff 00000000 00000000 ......|.........
[ 210.104729] 91d0ddfa: 00000000 00000000 00000000 00000000 ................
[ 210.104740] 0747a55c: c697afc0 c697afc0 00280000 00000000 ..........(.....
[ 210.104751] 77b8b5de: 00000000 00000000 ffffffff ffffffff ................
[ 210.104762] 326357f2: c1017dc0 c565d400 c697b0b8 00000001 .}....e.........
[ 210.104773] 3398af02: 00000001 00000000 00000000 00000000 ................
[ 210.104784] abe2702f: 00000000 00000000 00000000 00000000 ................
[ 210.104794] a7d16dda: 00000000 00000000 00000000 00000000 ................
[ 210.104805] f714e489: 00000000 00000000 00030003 000c0000 ................
[ 210.104816] 9969c6ba: 00000000 00000000 00000000 00000300 ................
[ 210.104827] 7b03ec5b: 00000000 00000000 00000000 00000000 ................
[ 210.104838] 8f2c1269: c697b050 c697b050 00000000 00000000 P...P...........
[ 210.104849] d7cc3d73: 00000000 00000000 c697b068 c697b068 ........h...h...
[ 210.104860] 90750112: c697b070 c697b070 c697b078 c697b078 p...p...x...x...
[ 210.104871] 3d683c4a: c697b080 c697b080 00000000 00000000 ................
[ 210.104881] 6cb03d5d: 00000002 00000000 00000000 00000000 ................
[ 210.104892] 7c8038eb: 00000000 00000000 00000000 00000000 ................
[ 210.104903] 093a7b94: c1017e40 00000000 c697afc8 001f001f @~..............
[ 210.104914] 9fe63af0: 00000021 00000000 00000000 00000000 !...............
[ 210.104925] 1889fb16: 00000000 00000000 c697b0d8 c697b0d8 ................
[ 210.104936] 59cb62ef: 00100cca 00000000 00000000 00000000 ................
[ 210.104947] 86fb5791: 00000000 00000000 c1017ec8 00000010 .........~......
[ 210.104958] b399200b: 00000000 00000000 c697b108 c697b108 ................
[ 210.104968] 7ecef62e: 00000000 00000000 00000000 00000000 ................
[ 210.104979] e35002c8: c697b120 c697b120 00000000 c697b12c ... .......,...
[ 210.104990] 3c940dbc: c697b12c 00000000 00000000 00000000 ,...............
[ 210.105001] f8c050d9: 00000000 00000000 00000000 fffffff7 ................
[ 210.105012] c8073821: ffffff5f ffffdfd1 ffeffffc ffff6556 _...........Ve..
[ 210.105023] 84651cd7: 00000000 00000000 00000000 00000000 ................
[ 210.105033] f8a81094: 00000000 00000000 00000000 c697b17c ............|...
[ 210.105044] aaea6bf1: c697b17c 00000000 00000000 00000000 |...............
[ 210.105055] 758d8f80: ffff5efa 00000000 ffefcf6e ffffffef .^......n.......
[ 210.105066] 171a7e4a: 00000000 00000000 00000000 00000000 ................
[ 210.105077] 5da2c755: c697b1b0 c697b1b0 ffe00000 c697b1bc ................
[ 210.105088] 3b69580b: c697b1bc c03ffb38 00000000 00000000 ....8.?.........
[ 210.105099] 43f12395: 00000000 00000000 00000000 ffeff3f7 ................
[ 210.105108] f17da383: ffffd7fe ffefeffa ........
[ 210.105121] CPU: 0 UID: 0 PID: 777 Comm: umount Not tainted 6.18.0-rc3-next-20251030-00003-g01f4df1f83c5 #12 VOLUNTARY
[ 210.105137] Hardware name: Freescale i.MX7 Dual (Device Tree)
[ 210.105145] Call trace:
[ 210.105162] unwind_backtrace from show_stack+0x10/0x14
[ 210.105203] show_stack from dump_stack_lvl+0x54/0x68
[ 210.105224] dump_stack_lvl from ext4_destroy_inode+0x70/0x10c
[ 210.105248] ext4_destroy_inode from destroy_inode+0x3c/0x64
[ 210.105272] destroy_inode from ext4_mb_release+0x278/0x3ec
[ 210.105297] ext4_mb_release from ext4_put_super+0xec/0x42c
[ 210.105320] ext4_put_super from generic_shutdown_super+0x70/0x178
[ 210.105343] generic_shutdown_super from kill_block_super+0x10/0x2c
[ 210.105361] kill_block_super from ext4_kill_sb+0x18/0x30
[ 210.105379] ext4_kill_sb from deactivate_locked_super+0x50/0x98
[ 210.105397] deactivate_locked_super from cleanup_mnt+0xd8/0x178
[ 210.105415] cleanup_mnt from task_work_run+0x98/0x108
[ 210.105433] task_work_run from do_work_pending+0x4a0/0x4c4
[ 210.105453] do_work_pending from slow_work_pending+0xc/0x24
[ 210.105473] Exception stack(0xf0b89fb0 to 0xf0b89ff8)
[ 210.105486] 9fa0: 00000000 00000000 0100b870 00000002
[ 210.105498] 9fc0: 0100b2e0 0100b870 b6ef88dc 00000034 00000000 0100b370 0100b550 0100b2e0
[ 210.105509] 9fe0: 00000034 bea799cc b6e48e4f b6db9836 60070030 0100b870
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: ext4 issue on linux-next(next-20251030)
2025-10-30 11:11 ` ext4 issue on linux-next(next-20251030) Bough Chen
@ 2025-10-31 1:33 ` Theodore Tso
2025-10-31 2:31 ` Bough Chen
0 siblings, 1 reply; 16+ messages in thread
From: Theodore Tso @ 2025-10-31 1:33 UTC (permalink / raw)
To: Bough Chen
Cc: jack@suse.cz, adilger.kernel@dilger.ca,
linux-ext4@vger.kernel.org, imx@lists.linux.dev
On Thu, Oct 30, 2025 at 11:11:51AM +0000, Bough Chen wrote:
> Hi Jack,
>
> On the latest linux-next, I find your patch acf943e9768e ("ext4: fix checks for orphan inodes") trigger the following issue on our imx7d-sdb board.
> I do not have enough background knowledge of ext4, so don't know why there are orphan inodes on the partition with ext4. Not sure whether this
> is a real issue or we need some special operation on current ext4 partition.
If you are willing to let me to see your file
names, you could send me just the metadata blocks so I can examine file
system image. The details are in the REPORTING BUGS section of the
e2fsck man page and as well as the RAW IMAGE FILE and QCOW2 IMAGE FILE
sections of the e2image man page, but the short version is:
e2image -Q /dev/mmcblkp2p2 fs.qcow2
bzip2 -z fs.qcow2
... and then send me the fs.qcow2.bz file.
If you aren't please try running "dumpe2fs -h /dev/mmcblk2p2" and send
me the output.
Thanks,
- Ted
^ permalink raw reply [flat|nested] 16+ messages in thread
* RE: ext4 issue on linux-next(next-20251030)
2025-10-31 1:33 ` Theodore Tso
@ 2025-10-31 2:31 ` Bough Chen
2025-11-03 3:57 ` Bough Chen
0 siblings, 1 reply; 16+ messages in thread
From: Bough Chen @ 2025-10-31 2:31 UTC (permalink / raw)
To: Theodore Tso
Cc: jack@suse.cz, adilger.kernel@dilger.ca,
linux-ext4@vger.kernel.org, imx@lists.linux.dev
[-- Attachment #1: Type: text/plain, Size: 4223 bytes --]
Hi Theodore,
Thanks for your quick reply.
root@imx6ul7d:~# e2image -Q /dev/mmcblk2p2 fs.qcow2
e2image 1.47.3 (8-Jul-2025)
root@imx6ul7d:~# bzip2 -z fs.qcow2
for the fs.qcow2.bz, please refer to the attachement.
For this /dev/mmcblk2p2, sometimes umount do not meet this issue, but after several mount/umount operation, this issue come up again.
I also paste the log of your second suggestion:
root@imx6ul7d:~# dumpe2fs -h /dev/mmcblk2p2 [16/1922]
dumpe2fs 1.47.3 (8-Jul-2025)
Filesystem volume name: root
Last mounted on: <not available>
Filesystem UUID: dc06048e-939b-4827-97ef-f815486f505f
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index orphan_file filetype extent 64bit flex_bg metadata_csum_seed sparse_super large_file huge_file dir_nli
nk extra_isize metadata_csum
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 570080
Block count: 1139298
Reserved block count: 56964
Overhead clusters: 56548
Free blocks: 419806
Free inodes: 505121
First block: 0
Block size: 4096
Fragment size: 4096
Group descriptor size: 64
Reserved GDT blocks: 556
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 16288
Inode blocks per group: 1018
Flex block group size: 16
Filesystem created: Tue Apr 5 23:00:00 2011
Last mount time: Fri Oct 31 02:18:16 2025
Last write time: Fri Oct 31 02:18:17 2025
Mount count: 6
Maximum mount count: -1
Last checked: Thu Oct 30 10:35:48 2025
Check interval: 0 (<none>)
Lifetime writes: 4248 MB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 32
Desired extra isize: 32
Journal inode: 8
Default directory hash: half_md4
Directory Hash Seed: ff13b55b-8055-50d5-88d5-80782d2e8e86
Journal backup: inode blocks
Checksum type: crc32c
Checksum: 0xff831d21
Checksum seed: 0x794f2ccc
Orphan file inode: 12
Journal features: (none)
Total journal size: 64M
Total journal blocks: 16384
Max transaction length: 16384
Fast commit length: 0
Journal sequence: 0x00000002
Journal start: 0
Regards
Haibo Chen
> -----Original Message-----
> From: Theodore Tso <tytso@mit.edu>
> Sent: 2025年10月31日 9:34
> To: Bough Chen <haibo.chen@nxp.com>
> Cc: jack@suse.cz; adilger.kernel@dilger.ca; linux-ext4@vger.kernel.org;
> imx@lists.linux.dev
> Subject: Re: ext4 issue on linux-next(next-20251030)
>
> On Thu, Oct 30, 2025 at 11:11:51AM +0000, Bough Chen wrote:
> > Hi Jack,
> >
> > On the latest linux-next, I find your patch acf943e9768e ("ext4: fix checks for
> orphan inodes") trigger the following issue on our imx7d-sdb board.
> > I do not have enough background knowledge of ext4, so don't know why
> > there are orphan inodes on the partition with ext4. Not sure whether this is a
> real issue or we need some special operation on current ext4 partition.
>
> If you are willing to let me to see your file names, you could send me just the
> metadata blocks so I can examine file system image. The details are in the
> REPORTING BUGS section of the e2fsck man page and as well as the RAW
> IMAGE FILE and QCOW2 IMAGE FILE sections of the e2image man page, but the
> short version is:
>
>
> e2image -Q /dev/mmcblkp2p2 fs.qcow2
> bzip2 -z fs.qcow2
>
> ... and then send me the fs.qcow2.bz file.
>
> If you aren't please try running "dumpe2fs -h /dev/mmcblk2p2" and send me
> the output.
>
> Thanks,
>
> - Ted
[-- Attachment #2: fs.qcow2.bz2 --]
[-- Type: application/octet-stream, Size: 1265456 bytes --]
^ permalink raw reply [flat|nested] 16+ messages in thread
* RE: ext4 issue on linux-next(next-20251030)
2025-10-31 2:31 ` Bough Chen
@ 2025-11-03 3:57 ` Bough Chen
2025-11-03 8:46 ` Jan Kara
0 siblings, 1 reply; 16+ messages in thread
From: Bough Chen @ 2025-11-03 3:57 UTC (permalink / raw)
To: Theodore Tso
Cc: jack@suse.cz, adilger.kernel@dilger.ca,
linux-ext4@vger.kernel.org, imx@lists.linux.dev
Hi All,
I find something when debug, share the finding here:
I notice every time this issue happen, the log always show inode 1, so I think this is supper inode related. And seems related to the i_state_flags of struct ext4_inode_info
[ 210.104663] 48812578: f6bffadf 00000000 00000000 00000000
Here the i_state_flags = 0xf6bffadf, the Inode dynamic state flags only touch to bit0~bit12, so this i_state_flags is abnormal.
When I add the following changes, this issue gone:
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 66f92f832b0fb..c6c2d32d5531b 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -1396,6 +1396,7 @@ static struct inode *ext4_alloc_inode(struct super_block *sb)
inode_set_iversion(&ei->vfs_inode, 1);
ei->i_flags = 0;
+ ext4_clear_state_flags(ei);
spin_lock_init(&ei->i_raw_lock);
ei->i_prealloc_node = RB_ROOT;
atomic_set(&ei->i_prealloc_active, 0);
This can explain why this issue can't be reproduce 100%. And can also explain why only imx6/7 series meet this issue, but imx8/9 not, because imx6/7 is arm32 core, it use i_state_flags, but imx8/9 use arm64 core, do not use i_state_flags.
This issue may exist long time, but Jack's patch trigger this issue.
I also have the following concern:
Why need to distinguish arch32 and arch64, why not use u64 to merge these two casees?
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
index 46f54d0a4bfe9..7369e165efc0f 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -1034,10 +1034,7 @@ struct ext4_inode_info {
*/
ext4_group_t i_block_group;
ext4_lblk_t i_dir_start_lookup;
-#if (BITS_PER_LONG < 64)
- unsigned long i_state_flags; /* Dynamic state flags */
-#endif
- unsigned long i_flags;
+ u64 i_flags;
/*
* Extended attributes can be read independently of the main file
@@ -1973,21 +1970,12 @@ EXT4_INODE_BIT_FNS(flag, flags, 0)
static inline int ext4_test_inode_state(struct inode *inode, int bit);
static inline void ext4_set_inode_state(struct inode *inode, int bit);
static inline void ext4_clear_inode_state(struct inode *inode, int bit);
-#if (BITS_PER_LONG < 64)
-EXT4_INODE_BIT_FNS(state, state_flags, 0)
-
-static inline void ext4_clear_state_flags(struct ext4_inode_info *ei)
-{
- (ei)->i_state_flags = 0;
-}
-#else
EXT4_INODE_BIT_FNS(state, flags, 32)
static inline void ext4_clear_state_flags(struct ext4_inode_info *ei)
{
/* We depend on the fact that callers will set i_flags */
}
-#endif
#else
/* Assume that user mode programs are passing in an ext4fs superblock, not
* a kernel struct super_block. This will allow us to call the feature-test
Regards
Haibo Chen
> -----Original Message-----
> From: Bough Chen
> Sent: 2025年10月31日 10:31
> To: Theodore Tso <tytso@mit.edu>
> Cc: jack@suse.cz; adilger.kernel@dilger.ca;
> linux-ext4@vger.kernel.org; imx@lists.linux.dev
> Subject: RE: ext4 issue on linux-next(next-20251030)
>
> Hi Theodore,
>
> Thanks for your quick reply.
>
> root@imx6ul7d:~# e2image -Q /dev/mmcblk2p2 fs.qcow2 e2image 1.47.3
> (8-Jul-2025) root@imx6ul7d:~# bzip2 -z fs.qcow2
>
> for the fs.qcow2.bz, please refer to the attachement.
>
> For this /dev/mmcblk2p2, sometimes umount do not meet this issue, but
> after several mount/umount operation, this issue come up again.
>
> I also paste the log of your second suggestion:
>
> root@imx6ul7d:~# dumpe2fs -h /dev/mmcblk2p2 [16/1922] dumpe2fs 1.47.3
> (8-Jul-2025)
> Filesystem volume name: root
> Last mounted on: <not available>
> Filesystem UUID: dc06048e-939b-4827-97ef-f815486f505f
> Filesystem magic number: 0xEF53
> Filesystem revision #: 1 (dynamic)
> Filesystem features: has_journal ext_attr resize_inode dir_index
> orphan_file filetype extent 64bit flex_bg metadata_csum_seed
> sparse_super large_file huge_file dir_nli nk extra_isize metadata_csum
> Filesystem flags: signed_directory_hash
> Default mount options: user_xattr acl
> Filesystem state: clean
> Errors behavior: Continue
> Filesystem OS type: Linux
> Inode count: 570080
> Block count: 1139298
> Reserved block count: 56964
> Overhead clusters: 56548
> Free blocks: 419806
> Free inodes: 505121
> First block: 0
> Block size: 4096
> Fragment size: 4096
> Group descriptor size: 64
> Reserved GDT blocks: 556
> Blocks per group: 32768
> Fragments per group: 32768
> Inodes per group: 16288
> Inode blocks per group: 1018
> Flex block group size: 16
> Filesystem created: Tue Apr 5 23:00:00 2011
> Last mount time: Fri Oct 31 02:18:16 2025
> Last write time: Fri Oct 31 02:18:17 2025
> Mount count: 6
> Maximum mount count: -1
> Last checked: Thu Oct 30 10:35:48 2025
> Check interval: 0 (<none>)
> Lifetime writes: 4248 MB
> Reserved blocks uid: 0 (user root)
> Reserved blocks gid: 0 (group root)
> First inode: 11
> Inode size: 256
> Required extra isize: 32
> Desired extra isize: 32
> Journal inode: 8
> Default directory hash: half_md4
> Directory Hash Seed: ff13b55b-8055-50d5-88d5-80782d2e8e86
> Journal backup: inode blocks
> Checksum type: crc32c
> Checksum: 0xff831d21
> Checksum seed: 0x794f2ccc
> Orphan file inode: 12
> Journal features: (none)
> Total journal size: 64M
> Total journal blocks: 16384
> Max transaction length: 16384
> Fast commit length: 0
> Journal sequence: 0x00000002
> Journal start: 0
>
> Regards
> Haibo Chen
>
> > -----Original Message-----
> > From: Theodore Tso <tytso@mit.edu>
> > Sent: 2025年10月31日 9:34
> > To: Bough Chen <haibo.chen@nxp.com>
> > Cc: jack@suse.cz; adilger.kernel@dilger.ca;
> > linux-ext4@vger.kernel.org; imx@lists.linux.dev
> > Subject: Re: ext4 issue on linux-next(next-20251030)
> >
> > On Thu, Oct 30, 2025 at 11:11:51AM +0000, Bough Chen wrote:
> > > Hi Jack,
> > >
> > > On the latest linux-next, I find your patch acf943e9768e ("ext4:
> > > fix checks for
> > orphan inodes") trigger the following issue on our imx7d-sdb board.
> > > I do not have enough background knowledge of ext4, so don't know
> > > why there are orphan inodes on the partition with ext4. Not sure
> > > whether this is a
> > real issue or we need some special operation on current ext4 partition.
> >
> > If you are willing to let me to see your file names, you could send
> > me just the metadata blocks so I can examine file system image. The
> > details are in the REPORTING BUGS section of the e2fsck man page and
> > as well as the RAW IMAGE FILE and QCOW2 IMAGE FILE sections of the
> > e2image man page, but the short version is:
> >
> >
> > e2image -Q /dev/mmcblkp2p2 fs.qcow2
> > bzip2 -z fs.qcow2
> >
> > ... and then send me the fs.qcow2.bz file.
> >
> > If you aren't please try running "dumpe2fs -h /dev/mmcblk2p2" and
> > send me the output.
> >
> > Thanks,
> >
> > - Ted
^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: ext4 issue on linux-next(next-20251030)
2025-11-03 3:57 ` Bough Chen
@ 2025-11-03 8:46 ` Jan Kara
0 siblings, 0 replies; 16+ messages in thread
From: Jan Kara @ 2025-11-03 8:46 UTC (permalink / raw)
To: Bough Chen
Cc: Theodore Tso, jack@suse.cz, adilger.kernel@dilger.ca,
linux-ext4@vger.kernel.org, imx@lists.linux.dev
On Mon 03-11-25 03:57:37, Bough Chen wrote:
> Hi All,
>
> I find something when debug, share the finding here:
>
> I notice every time this issue happen, the log always show inode 1, so I
> think this is supper inode related. And seems related to the
> i_state_flags of struct ext4_inode_info
>
> [ 210.104663] 48812578: f6bffadf 00000000 00000000 00000000
>
> Here the i_state_flags = 0xf6bffadf, the Inode dynamic state flags only
> touch to bit0~bit12, so this i_state_flags is abnormal.
>
> When I add the following changes, this issue gone:
>
> diff --git a/fs/ext4/super.c b/fs/ext4/super.c
> index 66f92f832b0fb..c6c2d32d5531b 100644
> --- a/fs/ext4/super.c
> +++ b/fs/ext4/super.c
> @@ -1396,6 +1396,7 @@ static struct inode *ext4_alloc_inode(struct super_block *sb)
>
> inode_set_iversion(&ei->vfs_inode, 1);
> ei->i_flags = 0;
> + ext4_clear_state_flags(ei);
> spin_lock_init(&ei->i_raw_lock);
> ei->i_prealloc_node = RB_ROOT;
> atomic_set(&ei->i_prealloc_active, 0);
OK, that's a good catch. I was scratching my head how inode with ino 1
could get orphan bit set when the kernel should never touch it. Now I've
found out mbcache abuses EXT4_BAD_INO for its internal purposes so what we
complain about is an in-memory auxiliary inode used by mbcache. Indeed it
looks safer to initialize i_state_flags in ext4_alloc_inode() and we can
drop the initialization from __ext4_iget() and __ext4_new_inode().
> This can explain why this issue can't be reproduce 100%. And can also
> explain why only imx6/7 series meet this issue, but imx8/9 not, because
> imx6/7 is arm32 core, it use i_state_flags, but imx8/9 use arm64 core, do
> not use i_state_flags.
>
> This issue may exist long time, but Jack's patch trigger this issue.
>
> I also have the following concern:
> Why need to distinguish arch32 and arch64, why not use u64 to merge these
> two casees?
Because atomic bit operations are only guaranteed to work on unsigned long
type (32-bit on 32-bit architectures), not on u64 type.
Honza
--
Jan Kara <jack@suse.com>
SUSE Labs, CR
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2025-11-03 8:46 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-23 18:56 [PATCH 0/6] perf/imx_ddr: Add i.MX8QM and pmu in DB (system interconnects) Frank Li
2025-10-23 18:56 ` [PATCH 1/6] dt-bindings: perf: fsl-imx-ddr: Add compatible string for i.MX8QM, i.MX8QXP and i.MX8DXL Frank Li
2025-10-24 13:03 ` Krzysztof Kozlowski
2025-10-24 13:19 ` Frank Li
2025-10-24 15:50 ` Krzysztof Kozlowski
2025-10-23 18:56 ` [PATCH 2/6] perf/imx_ddr: Move ida_alloc() from ddr_perf_init() to ddr_perf_probe() Frank Li
2025-10-30 11:11 ` ext4 issue on linux-next(next-20251030) Bough Chen
2025-10-31 1:33 ` Theodore Tso
2025-10-31 2:31 ` Bough Chen
2025-11-03 3:57 ` Bough Chen
2025-11-03 8:46 ` Jan Kara
2025-10-23 18:56 ` [PATCH 3/6] perf/imx_ddr: Get and enable optional clks Frank Li
2025-10-23 18:56 ` [PATCH 4/6] perf/imx_ddr: Add support for PMU in DB (system interconnects) Frank Li
2025-10-23 18:56 ` [PATCH 5/6] arm64: dts: imx8qm: add ddr perf device node Frank Li
2025-10-23 18:56 ` [PATCH 6/6] arm64: dts: imx8dxl-ss-ddr: Add DB (system interconnects) pmu support for i.MX8DXL Frank Li
2025-10-24 12:17 ` [PATCH 0/6] perf/imx_ddr: Add i.MX8QM and pmu in DB (system interconnects) Rob Herring (Arm)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox