PERFORCE change 117421 for review

Roman Divacky rdivacky at FreeBSD.org
Thu Apr 5 10:54:29 UTC 2007


http://perforce.freebsd.org/chv.cgi?CH=117421

Change 117421 by rdivacky at rdivacky_witten on 2007/04/05 10:53:39

	Sync /proc/<pid>/status with linux 2.6, this is incomplete but I cannot
	play more because the module panics system on unload :(

Affected files ...

.. //depot/projects/linuxolator/src/sys/compat/linprocfs/linprocfs.c#15 edit

Differences ...

==== //depot/projects/linuxolator/src/sys/compat/linprocfs/linprocfs.c#15 (text+ko) ====

@@ -668,13 +668,16 @@
 	fill_kinfo_proc(p, &kp);
 	sbuf_printf(sb, "Name:\t%s\n",		p->p_comm); /* XXX escape */
 	sbuf_printf(sb, "State:\t%s\n",		state);
+	sbuf_printf(sb, "SleepAVG:\t%d%%\n",	98);	/* seen on real Linux */
 
 	/*
 	 * Credentials
 	 */
-	sbuf_printf(sb, "Pid:\t%d\n",		p->p_pid);
+	sbuf_printf(sb, "Tgid:\t%d\n",		p->p_pid);
+	sbuf_printf(sb, "Pid:\t%d\n",		p->p_pid);	/* XXX: wrong with 2.6 */
 	sbuf_printf(sb, "PPid:\t%d\n",		p->p_pptr ?
 						p->p_pptr->p_pid : 0);
+	sbuf_printf(sb, "TracerPid:\t%d\n",	0);
 	sbuf_printf(sb, "Uid:\t%d %d %d %d\n",	p->p_ucred->cr_ruid,
 						p->p_ucred->cr_uid,
 						p->p_ucred->cr_svuid,
@@ -685,6 +688,7 @@
 						p->p_ucred->cr_svgid,
 						/* FreeBSD doesn't have fsgid */
 						p->p_ucred->cr_gid);
+	sbuf_printf(sb, "FDSize:\t%d\n",	64);	/* seen on real Linux */
 	sbuf_cat(sb, "Groups:\t");
 	for (i = 0; i < p->p_ucred->cr_ngroups; i++)
 		sbuf_printf(sb, "%d ",		p->p_ucred->cr_groups[i]);
@@ -702,8 +706,10 @@
 	 * could also compute VmLck, but I don't really care enough to
 	 * implement it. Submissions are welcome.
 	 */
+	sbuf_printf(sb, "VmPeak:\t%8ju kB\n",	B2K((uintmax_t)kp.ki_size));
 	sbuf_printf(sb, "VmSize:\t%8ju kB\n",	B2K((uintmax_t)kp.ki_size));
 	sbuf_printf(sb, "VmLck:\t%8u kB\n",	P2K(0)); /* XXX */
+	sbuf_printf(sb, "VmHWM:\t%8ju kB\n",	P2K((uintmax_t)kp.ki_rssize));
 	sbuf_printf(sb, "VmRss:\t%8ju kB\n",	P2K((uintmax_t)kp.ki_rssize));
 	sbuf_printf(sb, "VmData:\t%8ju kB\n",	P2K((uintmax_t)kp.ki_dsize));
 	sbuf_printf(sb, "VmStk:\t%8ju kB\n",	P2K((uintmax_t)kp.ki_ssize));
@@ -711,6 +717,10 @@
 	lsize = B2P(kp.ki_size) - kp.ki_dsize -
 	    kp.ki_ssize - kp.ki_tsize - 1;
 	sbuf_printf(sb, "VmLib:\t%8ju kB\n",	P2K((uintmax_t)lsize));
+	sbuf_printf(sb, "VmPTE:\t%8ju kB\n",	P2K((uintmax_t)4));
+
+	/* Threads */
+	sbuf_printf(sb, "Threads:\t%d\n",	1);	/* XXX: bogus */
 
 	/*
 	 * Signal masks
@@ -724,6 +734,10 @@
 	 * running on anything but i386, so ignore that for now.
 	 */
 	PROC_LOCK(p);
+	/* XXX: bogus, should be like this
+	sbuf_printf(sb, "SigQ:\t%d/%d\n",	sigs,p->p_limit->pl_rlimit[RLIMIT_SIGPENDING]);
+	*/
+	sbuf_printf(sb, "SigQ:\t%d/%d\n",	0, 0);
 	sbuf_printf(sb, "SigPnd:\t%08x\n",	p->p_siglist.__bits[0]);
 	/*
 	 * I can't seem to find out where the signal mask is in


More information about the p4-projects mailing list