xref: /xnu-12377.41.6/bsd/dev/dtrace/scripts/vm_object_ownership.d (revision bbb1b6f9e71b8cdde6e5cd6f4841f207dee3d828)
1*bbb1b6f9SApple OSS Distributions #!/usr/sbin/dtrace -s
2*bbb1b6f9SApple OSS Distributions 
3*bbb1b6f9SApple OSS Distributions vminfo:::object_ownership_change
4*bbb1b6f9SApple OSS Distributions {
5*bbb1b6f9SApple OSS Distributions 	old_owner = (task_t)arg1;
6*bbb1b6f9SApple OSS Distributions 	if (old_owner == 0) {
7*bbb1b6f9SApple OSS Distributions 		old_pid = -1;
8*bbb1b6f9SApple OSS Distributions 		old_name = "(nil)";
9*bbb1b6f9SApple OSS Distributions 	} else {
10*bbb1b6f9SApple OSS Distributions 		old_proc = xlate <psinfo_t *>((proc_t)old_owner->t_tro->tro_proc);
11*bbb1b6f9SApple OSS Distributions 		old_pid = old_proc->pr_pid;
12*bbb1b6f9SApple OSS Distributions 		old_name = old_proc->pr_fname;
13*bbb1b6f9SApple OSS Distributions 	}
14*bbb1b6f9SApple OSS Distributions 	new_owner = (task_t)arg4;
15*bbb1b6f9SApple OSS Distributions 	if (new_owner == 0) {
16*bbb1b6f9SApple OSS Distributions 		new_pid = -1;
17*bbb1b6f9SApple OSS Distributions 		new_name = "(nil)";
18*bbb1b6f9SApple OSS Distributions 	} else {
19*bbb1b6f9SApple OSS Distributions 		new_proc = xlate <psinfo_t *>((proc_t)new_owner->t_tro->tro_proc);
20*bbb1b6f9SApple OSS Distributions 		new_pid = new_proc->pr_pid;
21*bbb1b6f9SApple OSS Distributions 		new_name = new_proc->pr_fname;
22*bbb1b6f9SApple OSS Distributions 	}
23*bbb1b6f9SApple OSS Distributions 
24*bbb1b6f9SApple OSS Distributions 	printf("%d[%s] object 0x%p id 0x%x purgeable:%d owner:0x%p (%d[%s]) tag:%d nofootprint:%d -> owner:0x%p (%d[%s]) tag:%d nofootprint:%d",
25*bbb1b6f9SApple OSS Distributions 	       pid, execname, arg0, arg7, ((vm_object_t)arg0)->purgable,
26*bbb1b6f9SApple OSS Distributions 	       old_owner, old_pid, old_name,
27*bbb1b6f9SApple OSS Distributions 	       arg2, arg3,
28*bbb1b6f9SApple OSS Distributions 	       new_owner, new_pid, new_name,
29*bbb1b6f9SApple OSS Distributions 	       arg5, arg6);
30*bbb1b6f9SApple OSS Distributions 	stack();
31*bbb1b6f9SApple OSS Distributions 	ustack();
32*bbb1b6f9SApple OSS Distributions }
33