Date: Wed, 22 Jun 2005 01:36:38 GMT From: Paul Saab <ps@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 78791 for review Message-ID: <200506220136.j5M1acB1091411@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=78791 Change 78791 by ps@butter.corp on 2005/06/22 01:36:25 the dumper routines expect a virtual address, not a physical one. Peter, you can clean this up, but it works. Affected files ... .. //depot/projects/hammer/sys/amd64/amd64/dump_machdep.c#10 edit Differences ... ==== //depot/projects/hammer/sys/amd64/amd64/dump_machdep.c#10 (text+ko) ==== @@ -149,14 +149,16 @@ cb_dumpdata(struct md_pa *mdp, int seqnr, void *arg) { struct dumperinfo *di = (struct dumperinfo*)arg; - vm_offset_t pa; + vm_paddr_t a, pa; + void *va; uint64_t pgs; size_t counter, sz; - int c, error, twiddle; + int i, c, error, twiddle; error = 0; /* catch case in which chunk size is 0 */ counter = 0; /* Update twiddle every 16MB */ twiddle = 0; + va = 0; pgs = (mdp->md_end - mdp->md_start) / PAGE_SIZE; pa = mdp->md_start; @@ -170,7 +172,11 @@ printf("%c\b", "|/-\\"[twiddle++ & 3]); counter &= (1<<24) - 1; } - error = di->dumper(di->priv, (void*)pa, 0, dumplo, sz); + for (i = 0; i < sz >> PAGE_SHIFT; i++) { + a = pa + i * PAGE_SIZE; + va = pmap_kenter_temporary(trunc_page(a), i); + } + error = di->dumper(di->priv, (void*)va, 0, dumplo, sz); if (error) break; dumplo += sz;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200506220136.j5M1acB1091411>