[Skiboot] [PATCH] phb4/5: Escalate page-level TCE kills

Frederic Barrat fbarrat at linux.ibm.com
Thu Aug 26 01:04:08 AEST 2021


An hw issue was found on P10 (HW560152) where a page-level TCE kill
can be dropped if there are enough TCE kill requests already being
processed. The net effect is that data integrity is not
guaranteed. The circumvention is to stay away from page-level kills
and escalate those to PE kills. Which hurts performance.
It also affects P9.

Signed-off-by: Frederic Barrat <fbarrat at linux.ibm.com>
---
 hw/phb4.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/hw/phb4.c b/hw/phb4.c
index 79083d4a..ddaa18f8 100644
--- a/hw/phb4.c
+++ b/hw/phb4.c
@@ -1051,6 +1051,14 @@ static int64_t phb4_tce_kill(struct phb *phb, uint32_t kill_type,
 	uint64_t val;
 	int64_t rc;
 
+	/*
+	 * HW560152: a page-level kill can be dropped if the
+	 *	 processing queue is backed-up, which can cause data
+	 *	 integrity issues
+	 */
+	if (kill_type == OPAL_PCI_TCE_KILL_PAGES)
+		kill_type = OPAL_PCI_TCE_KILL_PE;
+
 	sync();
 	switch(kill_type) {
 	case OPAL_PCI_TCE_KILL_PAGES:
-- 
2.31.1



More information about the Skiboot mailing list