if (size || handle->aux_flags) {
                /*
                 * Only send RECORD_AUX if we have something useful to communicate
+                *
+                * Note: the OVERWRITE records by themselves are not considered
+                * useful, as they don't communicate any *new* information,
+                * aside from the short-lived offset, that becomes history at
+                * the next event sched-in and therefore isn't useful.
+                * The userspace that needs to copy out AUX data in overwrite
+                * mode should know to use user_page::aux_head for the actual
+                * offset. So, from now on we don't output AUX records that
+                * have *only* OVERWRITE flag set.
                 */
 
-               perf_event_aux_event(handle->event, aux_head, size,
-                                    handle->aux_flags);
+               if (handle->aux_flags & ~(u64)PERF_AUX_FLAG_OVERWRITE)
+                       perf_event_aux_event(handle->event, aux_head, size,
+                                            handle->aux_flags);
        }
 
        rb->user_page->aux_head = rb->aux_head;