public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* CLONE_THREAD with old (glibc 2.2.5) linuxthreads
@ 2003-02-22  1:05 Dave Pifke
  2003-02-22  6:10 ` Daniel Jacobowitz
  0 siblings, 1 reply; 2+ messages in thread
From: Dave Pifke @ 2003-02-22  1:05 UTC (permalink / raw)
  To: linux-kernel

-----BEGIN PGP SIGNED MESSAGE-----

I'm attempting to add ps-like code to an application, and am running into
a problem calculating the memory usage of multithreaded processes.  The
memory usage numbers in /proc/PID/statm don't give any indication as to
whether or not the process shares its VM with another, thus a
multithreaded application appears to be using (actual usage * number of
threads).

It looks like this could be easilly solved by looking at Tgid in
/proc/PID/status and calculating memory usage per-thread-group instead of
per-process.  The problem, however, is that glibc 2.2.5 does not set
CLONE_THREAD and so Tgid == Pid in every case.

Would it break anything if I patch my glibc to set this flag?  Is
task_struct->tgid just informational in 2.4, or does it modify the
behavior of the task somehow?

Or, is there perhaps another way to see if CLONE_VM was set when the
process was cloned?  (Thus avoiding the need to change anything in glibc.)

Upgrading to 2.5 and using NGPT is not an option at this point.

Other suggestions?


- --
Dave Pifke, dave@pifke.org

-----BEGIN PGP SIGNATURE-----
Version: 2.6.2

iQCVAwUBPlbM5juW2fOIQC3pAQFl8wQAgTTIFIXjIS3VTV7sRqYQe5EcV2AOeM9K
tcGtUcxaoks08vhTyK/x7kKqauM+ZE5KCRQTYy0Z2vZXNTcuVWB47a/vGK0eKk9P
r9WCeI4k0hTMVmfK09guZeMW9TJeP26SWyhNU2jQR+j8rv6ohFAmujvzZtlEA8Oz
L71LeorLqr0=
=r4z2
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2003-02-22  6:00 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-02-22  1:05 CLONE_THREAD with old (glibc 2.2.5) linuxthreads Dave Pifke
2003-02-22  6:10 ` Daniel Jacobowitz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox