From owner-dev-commits-src-all@freebsd.org Fri Aug 27 17:09:10 2021 Return-Path: Delivered-To: dev-commits-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0A82B663FAB; Fri, 27 Aug 2021 17:09:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Gx5m56jsdz3Gq1; Fri, 27 Aug 2021 17:09:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CEDB926EFF; Fri, 27 Aug 2021 17:09:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 17RH99nc009618; Fri, 27 Aug 2021 17:09:09 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 17RH99T3009617; Fri, 27 Aug 2021 17:09:09 GMT (envelope-from git) Date: Fri, 27 Aug 2021 17:09:09 GMT Message-Id: <202108271709.17RH99T3009617@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Stephen J. Kiernan" Subject: git: fd80208a5f92 - main - Add SDT probes virtqueue::enqueue_segments:{entry, return} MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: stevek X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: fd80208a5f92a60381d7bb7b5225bcdc38ab6fd5 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Aug 2021 17:09:10 -0000 The branch main has been updated by stevek: URL: https://cgit.FreeBSD.org/src/commit/?id=fd80208a5f92a60381d7bb7b5225bcdc38ab6fd5 commit fd80208a5f92a60381d7bb7b5225bcdc38ab6fd5 Author: Stephen J. Kiernan AuthorDate: 2021-08-27 17:08:59 +0000 Commit: Stephen J. Kiernan CommitDate: 2021-08-27 17:08:59 +0000 Add SDT probes virtqueue::enqueue_segments:{entry,return} This allows one to be able to map the sglist entries passed into the vq_ring_enqueue_segments() function to the segment indexes used in the virtqueue. This function normally gets inlined and may not available via FBT probes. Differential Revision: https://reviews.freebsd.org/D31620 --- sys/dev/virtio/virtqueue.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/sys/dev/virtio/virtqueue.c b/sys/dev/virtio/virtqueue.c index 14c2088b70a8..59aefb31d9ac 100644 --- a/sys/dev/virtio/virtqueue.c +++ b/sys/dev/virtio/virtqueue.c @@ -38,6 +38,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -137,6 +138,11 @@ static int vq_ring_must_notify_host(struct virtqueue *); static void vq_ring_notify_host(struct virtqueue *); static void vq_ring_free_chain(struct virtqueue *, uint16_t); +SDT_PROVIDER_DEFINE(virtqueue); +SDT_PROBE_DEFINE6(virtqueue, , enqueue_segments, entry, "struct virtqueue *", + "struct vring_desc *", "uint16_t", "struct sglist *", "int", "int"); +SDT_PROBE_DEFINE1(virtqueue, , enqueue_segments, return, "uint16_t"); + #define vq_modern(_vq) (((_vq)->vq_flags & VIRTQUEUE_FLAG_MODERN) != 0) #define vq_htog16(_vq, _val) virtio_htog16(vq_modern(_vq), _val) #define vq_htog32(_vq, _val) virtio_htog32(vq_modern(_vq), _val) @@ -703,6 +709,9 @@ vq_ring_enqueue_segments(struct virtqueue *vq, struct vring_desc *desc, int i, needed; uint16_t idx; + SDT_PROBE6(virtqueue, , enqueue_segments, entry, vq, desc, head_idx, + sg, readable, writable); + needed = readable + writable; for (i = 0, idx = head_idx, seg = sg->sg_segs; @@ -722,6 +731,7 @@ vq_ring_enqueue_segments(struct virtqueue *vq, struct vring_desc *desc, dp->flags |= vq_gtoh16(vq, VRING_DESC_F_WRITE); } + SDT_PROBE1(virtqueue, , enqueue_segments, return, idx); return (idx); }