Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 21 Oct 2019 11:56:57 +0000 (UTC)
From:      Leandro Lupori <luporl@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r353795 - head/sys/powerpc/aim
Message-ID:  <201910211156.x9LBuvLB045875@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: luporl
Date: Mon Oct 21 11:56:57 2019
New Revision: 353795
URL: https://svnweb.freebsd.org/changeset/base/353795

Log:
  [PPC64] Add minidump support to PowerNV
  
  Implementation of PowerNV specific minidump code.
  
  Reviewed by:	jhibbits
  Differential Revision:	https://reviews.freebsd.org/D21643

Modified:
  head/sys/powerpc/aim/moea64_native.c

Modified: head/sys/powerpc/aim/moea64_native.c
==============================================================================
--- head/sys/powerpc/aim/moea64_native.c	Mon Oct 21 09:33:45 2019	(r353794)
+++ head/sys/powerpc/aim/moea64_native.c	Mon Oct 21 11:56:57 2019	(r353795)
@@ -213,6 +213,12 @@ static struct rwlock moea64_eviction_lock;
 static volatile struct pate *moea64_part_table;
 
 /*
+ * Dump function.
+ */
+static void	*moea64_dump_pmap_native(mmu_t mmu, void *ctx, void *buf,
+		    u_long *nbytes);
+
+/*
  * PTE calls.
  */
 static int	moea64_pte_insert_native(mmu_t, struct pvo_entry *);
@@ -233,6 +239,7 @@ static mmu_method_t moea64_native_methods[] = {
 	/* Internal interfaces */
 	MMUMETHOD(mmu_bootstrap,	moea64_bootstrap_native),
 	MMUMETHOD(mmu_cpu_bootstrap,	moea64_cpu_bootstrap_native),
+        MMUMETHOD(mmu_dump_pmap,        moea64_dump_pmap_native),
 
 	MMUMETHOD(moea64_pte_synch,	moea64_pte_synch_native),
 	MMUMETHOD(moea64_pte_clear,	moea64_pte_clear_native),	
@@ -787,3 +794,21 @@ moea64_pte_insert_native(mmu_t mmu, struct pvo_entry *
 	return (-1);
 }
 
+static void *
+moea64_dump_pmap_native(mmu_t mmu, void *ctx, void *buf, u_long *nbytes)
+{
+	struct dump_context *dctx;
+	u_long ptex, ptex_end;
+
+	dctx = (struct dump_context *)ctx;
+	ptex = dctx->ptex;
+	ptex_end = ptex + dctx->blksz / sizeof(struct lpte);
+	ptex_end = MIN(ptex_end, dctx->ptex_end);
+	*nbytes = (ptex_end - ptex) * sizeof(struct lpte);
+
+	if (*nbytes == 0)
+		return (NULL);
+
+	dctx->ptex = ptex_end;
+	return (__DEVOLATILE(struct lpte *, moea64_pteg_table) + ptex);
+}



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