Received: by 2002:a05:6a10:6744:0:0:0:0 with SMTP id w4csp901948pxu; Fri, 23 Oct 2020 16:49:09 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy3AKlb2SyyFMhhecALC3fb8cSqvwICTm2pnm07Im6v2B60dTLUnfxqhYsIeFRyomxpcV5W X-Received: by 2002:a17:906:400b:: with SMTP id v11mr4321885ejj.421.1603496949296; Fri, 23 Oct 2020 16:49:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1603496949; cv=none; d=google.com; s=arc-20160816; b=WxWlXSJ/yJ/LLVfvfqi25FCFxDL+TNrNbwEcbnxazQIpzxx+fT42Agc9m/y7wOHhNu j/Oo0c0EwB5aObO8Zav1im5QjXqj1dt6ASKwBx9SYK0ZxfZ1edtk2Auiz6rF6H67c6h1 jSZGKxL8FdC1s13v5OV5htMzTb96+/AddZpyomWAebHM1FWaJK85CGV4gm/55/mJuU+h EVYK9wzz0bnPuk04hC0ITxlGPMlPXAjHZbc63Fe5zRTUiOO5VIHzRRp5Ap54qmmZoTv7 5FE7VoQKaLC7uWrn4cIMEkEysaCA6U6hOILIWI2x57ICjyPUzdpgtI51hMf4Cko0hlrb BweQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature:dkim-filter; bh=72FXe7XbiRUBCbyjx8FqEitIcCm0DjJMktXzOLswNDc=; b=x+xSRibYMnitkezqM+Da9HYuqB+OGzEu/c7rSbQY4am7Caax0+JECRy1QHjy04u96W 0z0QJODzxL/SzCxiEnPCLon3ATzQjjOcJAL7djmPGolgnblBNdC0SWx481RMgGlHqyN/ jD01wE+RK9KXDA+z2O/ICwZbSm2oHLLtDNIwXgOsCq36eZkExE0w3jaOUVMgmK41CzuE xoiFRno2hgeSP/3/vHgiw+i+37smYCu0lEUczT2TO3mnwi2yBFwUGsGrgBMXG1MsCJzg rgEQZ0+7mRSuOlAeX7nUiQ+fJz9DlAnpL+ooE97WODr+XsTwpUtOsWeZ4othoGJXqZP+ MhrQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@efficios.com header.s=default header.b=l5qwzvrO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=efficios.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w20si1086276ejc.568.2020.10.23.16.48.47; Fri, 23 Oct 2020 16:49:09 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@efficios.com header.s=default header.b=l5qwzvrO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=efficios.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755014AbgJWTyT (ORCPT + 99 others); Fri, 23 Oct 2020 15:54:19 -0400 Received: from mail.efficios.com ([167.114.26.124]:45578 "EHLO mail.efficios.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S463594AbgJWTyT (ORCPT ); Fri, 23 Oct 2020 15:54:19 -0400 Received: from localhost (localhost [127.0.0.1]) by mail.efficios.com (Postfix) with ESMTP id D9049279803; Fri, 23 Oct 2020 15:54:17 -0400 (EDT) Received: from mail.efficios.com ([127.0.0.1]) by localhost (mail03.efficios.com [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id MiMvdgLqwa2p; Fri, 23 Oct 2020 15:54:17 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by mail.efficios.com (Postfix) with ESMTP id 7C40B279621; Fri, 23 Oct 2020 15:54:17 -0400 (EDT) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.efficios.com 7C40B279621 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=efficios.com; s=default; t=1603482857; bh=72FXe7XbiRUBCbyjx8FqEitIcCm0DjJMktXzOLswNDc=; h=From:To:Date:Message-Id:MIME-Version; b=l5qwzvrOP577xDYZuFZl1MkQkVFTuzub1PK8l2tVRASmHNJ/B4hUyjMSUSRa4D3e2 0oPrsjcrD/4+L8CkmQnskNSa2XQiFfdPrQ5i2soumpK/Oh8RhTQUjYZbeN24Rzw/AC Xex7vYpDDBiZ6FzPTBAKKIEmx0rUILBsSjcSqT0HduKbND9Erk5C8InTWhgNJPKN/C XtC6Cev8nwEV3mmsYZlmb1KQF/TKvuDZ9oTMDcos6dJrfJJ1rz9WxJWdYZL4vGR7CL l+0GcMURUiy7/aJCbEbfGkn0bc4aWY6kw4dt0us4jNA7qQ9eTWqfi/uIU+FLX7KcNa iG+HjzMiI1XgA== X-Virus-Scanned: amavisd-new at efficios.com Received: from mail.efficios.com ([127.0.0.1]) by localhost (mail03.efficios.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id tt-dha39xSFv; Fri, 23 Oct 2020 15:54:17 -0400 (EDT) Received: from localhost.localdomain (96-127-212-112.qc.cable.ebox.net [96.127.212.112]) by mail.efficios.com (Postfix) with ESMTPSA id 6E196279561; Fri, 23 Oct 2020 15:54:14 -0400 (EDT) From: Michael Jeanson To: linux-kernel@vger.kernel.org Cc: mathieu.desnoyers@efficios.com, Michael Jeanson , Steven Rostedt , Peter Zijlstra , Alexei Starovoitov , Yonghong Song , "Paul E . McKenney" , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Joel Fernandes , bpf@vger.kernel.org Subject: [RFC PATCH 0/6] Sleepable tracepoints Date: Fri, 23 Oct 2020 15:53:46 -0400 Message-Id: <20201023195352.26269-1-mjeanson@efficios.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When invoked from system call enter/exit instrumentation, accessing user-space data is a common use-case for tracers. However, tracepoints currently disable preemption around iteration on the registered tracepoint probes and invocation of the probe callbacks, which prevents tracers from handling page faults. Extend the tracepoint and trace event APIs to allow specific tracer probes to take page faults. Adapt ftrace, perf, and ebpf to allow being called from sleepable context, and convert the system call enter/exit instrumentation to sleepable tracepoints. This series only implements the tracepoint infrastructure required to allow tracers to handle page faults. Modifying each tracer to handle those page faults would be a next step after we all agree on this piece of instrumentation infrastructure. This patchset is base on v5.9.1. Cc: Steven Rostedt (VMware) Cc: Peter Zijlstra Cc: Alexei Starovoitov Cc: Yonghong Song Cc: Paul E. McKenney Cc: Ingo Molnar Cc: Arnaldo Carvalho de Melo Cc: Mark Rutland Cc: Alexander Shishkin Cc: Jiri Olsa Cc: Namhyung Kim Cc: Joel Fernandes (Google) Cc: bpf@vger.kernel.org Mathieu Desnoyers (1): tracing: use sched-RCU instead of SRCU for rcuidle tracepoints Michael Jeanson (5): tracing: introduce sleepable tracepoints tracing: ftrace: add support for sleepable tracepoints tracing: bpf-trace: add support for sleepable tracepoints tracing: perf: add support for sleepable tracepoints tracing: convert sys_enter/exit to sleepable tracepoints include/linux/tracepoint-defs.h | 11 ++++ include/linux/tracepoint.h | 104 +++++++++++++++++++++----------- include/trace/bpf_probe.h | 23 ++++++- include/trace/define_trace.h | 7 +++ include/trace/events/syscalls.h | 4 +- include/trace/perf.h | 26 ++++++-- include/trace/trace_events.h | 79 ++++++++++++++++++++++-- init/Kconfig | 1 + kernel/trace/bpf_trace.c | 5 +- kernel/trace/trace_events.c | 15 ++++- kernel/trace/trace_syscalls.c | 68 +++++++++++++-------- kernel/tracepoint.c | 104 +++++++++++++++++++++++++------- 12 files changed, 351 insertions(+), 96 deletions(-) --=20 2.25.1