Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 23 Nov 2002 13:45:02 -0800 (PST)
From:      Marcel Moolenaar <marcel@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 21425 for review
Message-ID:  <200211232145.gANLj270097605@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=21425

Change 21425 by marcel@marcel_nfs on 2002/11/23 13:44:25

	Increase S/N ratio for the itr/dtr dump. The itr and dtr on
	McKinley has 63 registers and so far each has at most 1 valid
	translations under EFI. Instead of dumping garbage for all 63
	TRs, we mention how many TRs there are and only list the valid
	ones.  Replace the V column with the TR number.
	While here, bail out and report when there's an error.

Affected files ...

.. //depot/projects/ia64/sys/boot/efi/loader/main.c#6 edit

Differences ...

==== //depot/projects/ia64/sys/boot/efi/loader/main.c#6 (text+ko) ====

@@ -439,14 +439,23 @@
 	else
 		maxtr = (res.pal_result[0] >> 32) & 0xff;
 
+	printf("%d translation registers\n", maxtr);
+
 	pager_open();
-	pager_output("V RID    Virtual Page  Physical Page PgSz ED AR PL D A MA  P KEY\n");
+	pager_output("TR# RID    Virtual Page  Physical Page PgSz ED AR PL D A MA  P KEY\n");
 	for (i = 0; i <= maxtr; i++) {
 		char lbuf[128];
 
 		bzero(&buf, sizeof(buf));
 		res = ia64_call_pal_stacked(PAL_VM_TR_READ, i, type,
 					    (u_int64_t) &buf);
+		if (res.pal_status != 0)
+			break;
+
+		/* Only display valid translations */
+		if ((buf.ifa.ifa_ig & 1) == 0)
+			continue;
+
 		if (!(res.pal_result[0] & 1))
 			buf.pte.pte_ar = 0;
 		if (!(res.pal_result[0] & 2))
@@ -456,8 +465,8 @@
 		if (!(res.pal_result[0] & 8))
 			buf.pte.pte_ma = 0;
 		sprintf(lbuf,
-			"%d %06x %013lx %013lx %4s %d  %d  %d  %d %d %-3s %d %06x\n",
-			buf.ifa.ifa_ig & 1,
+	"%03d %06x %013lx %013lx %4s %d  %d  %d  %d %d %-3s %d %06x\n",
+			i,
 			buf.rr.rr_rid,
 			buf.ifa.ifa_vpn,
 			buf.pte.pte_ppn,
@@ -474,6 +483,10 @@
 	}
 	pager_close();
 
+	if (res.pal_status != 0) {
+		printf("Error while getting TR contents\n");
+		return CMD_ERROR;
+	}
 	return CMD_OK;
 }
 

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe p4-projects" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200211232145.gANLj270097605>