* [PATCH rasdaemon 1/2] rasdaemon: add support of l3tag and l3data in hip08 OEM format2
2020-03-23 9:14 [PATCH rasdaemon 0/2] support l3tag&l3data decoding and one fix Xiaofei Tan
@ 2020-03-23 9:14 ` Xiaofei Tan
2020-03-23 9:14 ` [PATCH rasdaemon 2/2] rasdaemon: fix the issue that non standard decoder can't work in pthread way Xiaofei Tan
2020-05-19 9:01 ` [PATCH rasdaemon 0/2] support l3tag&l3data decoding and one fix Xiaofei Tan
2 siblings, 0 replies; 4+ messages in thread
From: Xiaofei Tan @ 2020-03-23 9:14 UTC (permalink / raw)
To: mchehab, linux-edac; +Cc: linuxarm, shiju.jose, jonathan.cameron, Xiaofei Tan
The two modules, l3tag and l3data were originally reported through "ARM
processor error section". But it is not suitable. Because l3tag or l3data
doesn't belong to any single CPU core. So we change it to use OEM format2.
Signed-off-by: Xiaofei Tan <tanxiaofei@huawei.com>
---
non-standard-hisi_hip08.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)
diff --git a/non-standard-hisi_hip08.c b/non-standard-hisi_hip08.c
index 4cfa107..8bf10c1 100644
--- a/non-standard-hisi_hip08.c
+++ b/non-standard-hisi_hip08.c
@@ -52,6 +52,8 @@
#define HISI_OEM_MODULE_ID_PA 2
#define HISI_OEM_MODULE_ID_HLLC 3
#define HISI_OEM_MODULE_ID_DDRC 4
+#define HISI_OEM_MODULE_ID_L3T 5
+#define HISI_OEM_MODULE_ID_L3D 6
#define HISI_OEM_TYPE2_VALID_ERR_FR BIT(6)
#define HISI_OEM_TYPE2_VALID_ERR_CTRL BIT(7)
@@ -374,6 +376,36 @@ static const char *ddrc_submodule_name[] = {
"TA_DDRC3",
};
+static const char *l3tag_submodule_name[] = {
+ "TB_PARTITION0",
+ "TB_PARTITION1",
+ "TB_PARTITION2",
+ "TB_PARTITION3",
+ "TB_PARTITION4",
+ "TB_PARTITION5",
+ "TB_PARTITION6",
+ "TB_PARTITION7",
+ "TA_PARTITION0",
+ "TA_PARTITION1",
+ "TA_PARTITION2",
+ "TA_PARTITION3",
+ "TA_PARTITION4",
+ "TA_PARTITION5",
+ "TA_PARTITION6",
+ "TA_PARTITION7",
+};
+
+static const char *l3data_submodule_name[] = {
+ "TB_BANK0",
+ "TB_BANK1",
+ "TB_BANK2",
+ "TB_BANK3",
+ "TA_BANK0",
+ "TA_BANK1",
+ "TA_BANK2",
+ "TA_BANK3",
+};
+
static const struct hisi_module_info hisi_oem_type2_module[] = {
{
.id = HISI_OEM_MODULE_ID_SMMU,
@@ -404,6 +436,18 @@ static const struct hisi_module_info hisi_oem_type2_module[] = {
.sub_num = ARRAY_SIZE(ddrc_submodule_name),
},
{
+ .id = HISI_OEM_MODULE_ID_L3T,
+ .name = "L3TAG",
+ .sub = l3tag_submodule_name,
+ .sub_num = ARRAY_SIZE(l3tag_submodule_name),
+ },
+ {
+ .id = HISI_OEM_MODULE_ID_L3D,
+ .name = "L3DATA",
+ .sub = l3data_submodule_name,
+ .sub_num = ARRAY_SIZE(l3data_submodule_name),
+ },
+ {
}
};
--
2.8.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH rasdaemon 2/2] rasdaemon: fix the issue that non standard decoder can't work in pthread way
2020-03-23 9:14 [PATCH rasdaemon 0/2] support l3tag&l3data decoding and one fix Xiaofei Tan
2020-03-23 9:14 ` [PATCH rasdaemon 1/2] rasdaemon: add support of l3tag and l3data in hip08 OEM format2 Xiaofei Tan
@ 2020-03-23 9:14 ` Xiaofei Tan
2020-05-19 9:01 ` [PATCH rasdaemon 0/2] support l3tag&l3data decoding and one fix Xiaofei Tan
2 siblings, 0 replies; 4+ messages in thread
From: Xiaofei Tan @ 2020-03-23 9:14 UTC (permalink / raw)
To: mchehab, linux-edac; +Cc: linuxarm, shiju.jose, jonathan.cameron, Xiaofei Tan
The non standard decoding functions are registered in app init process
through __attribute__((constructor)), and unregistered in app exit process
through __attribute__((destructor)). We don't need to unregister them
in any other steps. This patch removes these unnecessary unregister calls.
Fixes: 78a21c1e9770 ("rasdaemon: add closure and cleanups for the database")
Signed-off-by: Xiaofei Tan <tanxiaofei@huawei.com>
---
ras-events.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/ras-events.c b/ras-events.c
index 5635278..e6c89dd 100644
--- a/ras-events.c
+++ b/ras-events.c
@@ -496,10 +496,8 @@ static int read_ras_event_all_cpus(struct pthread_data *pdata,
"Old kernel detected. Stop listening and fall back to pthread way.\n");
cleanup:
- if (pdata[0].ras->record_events) {
- unregister_ns_dec_tab();
+ if (pdata[0].ras->record_events)
ras_mc_event_closedb(pdata[0].cpu, pdata[0].ras);
- }
error:
kbuffer_free(kbuf);
@@ -598,10 +596,8 @@ static void *handle_ras_events_cpu(void *priv)
read_ras_event(fd, pdata, kbuf, page);
- if (pdata->ras->record_events) {
- unregister_ns_dec_tab();
+ if (pdata->ras->record_events)
ras_mc_event_closedb(pdata->cpu, pdata->ras);
- }
close(fd);
kbuffer_free(kbuf);
--
2.8.1
^ permalink raw reply related [flat|nested] 4+ messages in thread