Michael Ernest
2009-May-18 19:42 UTC
[dtrace-discuss] fbt with predicates and [O]Sol on VBox
I''ve been playing with a follow script example and getting a system hang every time. Turns out when I try: syscall::read:entry /execname == "ls" / { self->tr = 1; } fbt::: {} syscall::read:return /self->tr / { self->tr = 0; } I get (unusable) output. But when I add /self->tr / to my fbt::: clause, it hangs the instance every time. I''ve tried this on Sol u6, Sol u7, OSol b110, OSol Nov2008, anywhere from 1-2 GB RAM. I don''t a native Solaris instance available today, although I have no reason to believe I''d see this issue on it. Any help? -- This message posted from opensolaris.org
It hangs the instance of dtrace, or it hangs the instance of Solaris? You''re enabling the entry and return for every fbt probe, which is on the order of 50k+ probes, and you probably meant to include an exit(0); in the read:return probe clause. You probably also want to include the flowindent option, since you wish to "truss the kernel" when a read(2) is executed. If this is truly causing the dtrace consumer to hang, or (worse), the kernel to hang, please see if you can capture a core dump. Thanks, /jim Michael Ernest wrote:> I''ve been playing with a follow script example and getting a system hang every time. Turns out when I try: > > syscall::read:entry /execname == "ls" / { self->tr = 1; } > fbt::: {} > syscall::read:return /self->tr / { self->tr = 0; } > > I get (unusable) output. But when I add /self->tr / to my fbt::: clause, it hangs the instance every time. I''ve tried this on Sol u6, Sol u7, OSol b110, OSol Nov2008, anywhere from 1-2 GB RAM. I don''t a native Solaris instance available today, although I have no reason to believe I''d see this issue on it. > > Any help? >
FYI - I just tried this in OpenSolaris 2008.11, running in a Vbox (2.2) virtual machine. It''s noisy without the predicate for the fbt probes (naturally :^), but it doesn''t hang. (Vbox on a Mac host, FWIW). Thanks, /jim Michael Ernest wrote:> I''ve been playing with a follow script example and getting a system hang every time. Turns out when I try: > > syscall::read:entry /execname == "ls" / { self->tr = 1; } > fbt::: {} > syscall::read:return /self->tr / { self->tr = 0; } > > I get (unusable) output. But when I add /self->tr / to my fbt::: clause, it hangs the instance every time. I''ve tried this on Sol u6, Sol u7, OSol b110, OSol Nov2008, anywhere from 1-2 GB RAM. I don''t a native Solaris instance available today, although I have no reason to believe I''d see this issue on it. > > Any help? >
Michael Ernest
2009-May-18 22:28 UTC
[dtrace-discuss] fbt with predicates and [O]Sol on VBox
It hangs Solaris in a way that I would guess is hard swapping. Then I left the predicate for the fbt probe off by accident, and it ran like a champ. Now I don''t think it''s caused by enabling too many probes. Add the predicate to the fbt, though, and it freezes. I didn''t mention my -F for brevity''s sake and didn''t use exit(0) since I was tracing a short-lived user app (ls). Unkempt, but I didn''t see the harm in it. It''s easy enough to reproduce, so I''ll try and get a core. Thanks, Michael -- This message posted from opensolaris.org