PERFORCE change 78791 for review
Paul Saab
ps at FreeBSD.org
Wed Jun 22 01:36:39 GMT 2005
http://perforce.freebsd.org/chv.cgi?CH=78791
Change 78791 by ps at 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;
More information about the p4-projects
mailing list