user mode backtrace
David Boreham
david_list@boreham.org
Fri Oct 20 14:50:00 GMT 2006
> The disk I/O schedules the reads and writes. It is unlikely that the
> matching user process is running when the physical read occurs.
Can I clarify the problem here ? : the user process isn't running
because it's been put to sleep waiting on I/O that is done
in the context of another thread (or whatever we call that animal in the
Linux kernel) , or is this when read-ahead is being
done on the file, at the behest of the kernel, with no corresponding
user process read() call having been issued yet ?
(apologies my knowledge of present-day linux kernel details is rather
patchy).
> Would it be useful to look at the elapsed time between entry and exit
> time of the read system call and trigger recording of information if
> it is over some threshold?
Possibly. I wouldn't want to get too hung up on this specific example --
I thought it up off the top of my head.
The point I was trying to make is that probing in userland in glibc may
not do everything that's required because sometimes
one is interested in events that are only visible inside the kernel.
Physical I/O was just the first one that I could
think of. I suppose a kernel mutex being busy might be another case.
> Would it make sense for the probing code to mark that userstack is
> needed and then record when the processor is about to return to
> userspace? The marking takes a fixed amount of time to do, so should
> be safe for probes.
Yes, that sounds like a good way to do it.
More information about the Systemtap
mailing list