Archive for the ‘DTrace’ Category
From Prometheus to Sisyphus
When Apple announced their new file system, APFS, in June, I hustled to be in the front row of the WWDC presentation, questions with the presenters, and then the open Q&A session. I took a week to write up my notes which turned into as 12 page behemoth of a blog post — longer than my college [...]
DTrace at Home
I had been procrastinating making the family holiday card. It was a combination of having a lot on my plate and dreading the formulation of our annual note recapping the year; there were some great moments, but I’m glad I don’t have to do 2016 again. It was just before midnight and either I’d make [...]
DTrace OEL Dynamic Language Support
We built DTrace to solve problems; at the start, the problems we understood best were our own. In the Solaris Kernel Group we started by instrumenting the kernel and system calls, the user/kernel boundary. Early use required detailed knowledge of kernel internals. As DTrace use grew—within the team, in Sun and then beyond—we extended DTrace [...]
illumos hackathon 2012: user-land types for DTrace
At the illumos hackathon last week, Robert Mustacchi and I prototyped better support for manipulating user-land structures. As anyone who’s used it knows, DTrace is currently very kernel-centric — this both reflects the reality of how operating systems and DTrace are constructed, and the origins of DTrace itself in the Solaris Kernel Group. Discussions at [...]
In: DTrace · Tagged with: DTrace, hackathon, illumos, pid, user-land
My New DTrace Favorite
The mantra as we initially developed DTrace was to make impossible things possible, not easy things easier. Since codifying that, the tendency toward the latter in developer tools has been apparent. Our focus on the former however has left certain usability burrs that stymie newbies, and annoy vets. Much of the DTrace development of late [...]
BTrace: DTrace for Java… ish
DTrace first peered into Java in early 2005 thanks to an early prototype by Jarod Jenson that led eventually to the inclusion of USDT probes in the HotSpot JVM. If you want to see where, say, the java.net.SocketOutputStream.write() method is called, you can simply run this DTrace script: hotspot$target:::method-entry /copyinstr(arg1, arg2) == “java/net/SocketOutputStream” && copyinstr(arg3, [...]
In: DTrace · Tagged with: BTrace, DTrace, Java
dtrace.conf(12) wrap-up
For the second time in as many quadrennial dtrace.confs, I was impressed at how well the unconference format worked out. Sharing coffee with the DTrace community, it was great to see some of the oldest friends of DTrace — Jarod Jenson, Stephen O’Grady, Jonathan Adams to name a few — and to put faces to [...]
In: DTrace · Tagged with: BryanCantrill, DavePacheco, DTrace, dtrace.conf, EricSchrock, GeorgeWilson, KrisvanHees, MattAhrens, OEL
DTrace OEL update
A few months ago I took DTrace on OEL for a spin after Oracle announced it. The results were ugly; as one of the authors of DTrace, I admit to being shocked by shoddiness of the effort. Yesterday, Oracle dropped an updated beta so I wanted to see how far they’ve come in the 4+ months [...]
In: DTrace · Tagged with: DTrace, OEL, Oracle
The case of the un-unmountable tmpfs
Every once in a rare while our development machines encounter an fatal error during boot because we couldn’t unmount tmpfs. This weekend I cracked the case, so I thought I’d share my uses of boot-time DTrace, and the musty corners of the operating systems that I encountered along the way. First I should explain a [...]
In: DTrace · Tagged with: anonymous, boot, DTrace, pageout, tmpfs, ZFS
Oracle’s port: this is not DTrace
After writing about Oracle’s port of DTrace to OEL, I wanted to take it for a spin. Following the directions that Wim Coekaerts spelled out, I installed and configured a VM to run OEL with Oracle’s nascent DTrace port. Setting up the system was relatively painless. Here’s my first DTrace invocation on OEL: [root@screven ~]# [...]