diff --git a/cmds/atrace/atrace.c b/cmds/atrace/atrace.c
index 890165a..2d9b4f8 100644
--- a/cmds/atrace/atrace.c
+++ b/cmds/atrace/atrace.c
@@ -35,6 +35,7 @@
 static bool g_traceCpuIdle = false;
 static bool g_traceDisk = false;
 static bool g_traceGovernorLoad = false;
+static bool g_traceSync = false;
 static bool g_traceWorkqueue = false;
 static bool g_traceOverwrite = false;
 static int g_traceBufferSizeKB = 2048;
@@ -76,6 +77,9 @@
 static const char* k_governorLoadEnablePath =
     "/sys/kernel/debug/tracing/events/cpufreq_interactive/enable";
 
+static const char* k_syncEnablePath =
+    "/sys/kernel/debug/tracing/events/sync/enable";
+
 static const char* k_workqueueEnablePath =
     "/sys/kernel/debug/tracing/events/workqueue/enable";
 
@@ -196,6 +200,16 @@
     return ok;
 }
 
+// Enable or disable tracing of sync timelines and waits.
+static bool setSyncTracingEnabled(bool enable)
+{
+    bool ok = true;
+    if (fileExists(k_syncEnablePath) || enable) {
+        ok &= setKernelOptionEnable(k_syncEnablePath, enable);
+    }
+    return ok;
+}
+
 // Enable or disable tracing of the kernel workqueues.
 static bool setWorkqueueTracingEnabled(bool enable)
 {
@@ -267,6 +281,7 @@
     // root.
     if (isRoot) {
         ok &= setBusUtilizationTracingEnable(g_traceBusUtilization);
+        ok &= setSyncTracingEnabled(g_traceSync);
         ok &= setWorkqueueTracingEnabled(g_traceWorkqueue);
         ok &= setDiskTracingEnabled(g_traceDisk);
     }
@@ -296,6 +311,7 @@
 
     if (isRoot) {
         setBusUtilizationTracingEnable(false);
+        setSyncTracingEnabled(false);
         setWorkqueueTracingEnabled(false);
         setDiskTracingEnabled(false);
     }
@@ -415,6 +431,7 @@
                     "  -t N            trace for N seconds [defualt 5]\n"
                     "  -u              trace bus utilization\n"
                     "  -w              trace the kernel workqueue\n"
+                    "  -y              trace sync timelines and waits\n"
                     "  -z              compress the trace dump\n");
 }
 
@@ -447,7 +464,7 @@
     for (;;) {
         int ret;
 
-        ret = getopt(argc, argv, "b:cidflst:uwznS:");
+        ret = getopt(argc, argv, "b:cidflst:uwyznS:");
 
         if (ret < 0) {
             break;
@@ -514,6 +531,14 @@
                 g_traceWorkqueue = true;
             break;
 
+            case 'y':
+                if (!isRoot) {
+                    fprintf(stderr, "error: tracing sync requires root privileges\n");
+                    exit(1);
+                }
+                g_traceSync = true;
+            break;
+
             case 'z':
                 g_compress = true;
             break;
