diff --git a/0002-PR32302-Emit-forward-decls-within-tracepoint_derived.patch b/0002-PR32302-Emit-forward-decls-within-tracepoint_derived.patch new file mode 100644 index 0000000000000000000000000000000000000000..372014c8a25a672c2d61bc1f2c810993f71e9dfe --- /dev/null +++ b/0002-PR32302-Emit-forward-decls-within-tracepoint_derived.patch @@ -0,0 +1,223 @@ +commit 8b87bd584dcadb3713eaf6d0c9b540b4f54124bf +gpg: Signature made Mon 11 Nov 2024 11:48:03 AM EST +gpg: using RSA key D8F2E95271BA794E222FBEE0DB83606EC7DAAB26 +gpg: Can't check signature: No public key +Author: Martin Cermak +Date: Mon Nov 11 17:41:53 2024 +0100 + + PR32302: Emit forward decls within tracepoint_derived_probe_group() too + + Forward decls added in commit 069def0ae9184 need to actually be + emitted in 2 locations, roughtly corresponding to where + tracepoint_extra_decls() is used. + + It would be ideal to put them directly to tracepoint_extra_decls() + but that gives significantly less recognized tracepoints. + + The plan is toreview this again though and try to merge the + tracepoint_forward_decls() body into tracepoint_extra_decls() + if possible. + +diff --git a/tapsets.cxx b/tapsets.cxx +index b4ad7e14e..06540cafc 100644 +--- a/tapsets.cxx ++++ b/tapsets.cxx +@@ -11729,6 +11729,89 @@ static bool header_exists(systemtap_session& s, const string& header) + return false; + } + ++static vector tracepoint_forward_decls () ++{ ++ vector retval; ++ // Kernel 6.12 ++ retval.push_back("enum cachefiles_content;"); ++ retval.push_back("enum extent_type;"); ++ retval.push_back("struct bch_fs;"); ++ retval.push_back("struct bch_move_stats;"); ++ retval.push_back("struct bpos;"); ++ retval.push_back("struct btree_bkey_cached_common;"); ++ retval.push_back("struct btree_insert_entry;"); ++ retval.push_back("struct btree_path;"); ++ retval.push_back("struct btree_trans;"); ++ retval.push_back("struct cachefiles_msg;"); ++ retval.push_back("struct cachefiles_open;"); ++ retval.push_back("struct cachefiles_read;"); ++ retval.push_back("struct cachefiles_volume;"); ++ retval.push_back("struct clk_rate_request;"); ++ retval.push_back("struct compact_control;"); ++ retval.push_back("struct fsi_device;"); ++ retval.push_back("struct fsi_msg;"); ++ retval.push_back("struct fsi_slave;"); ++ retval.push_back("struct fuse_req;"); ++ retval.push_back("struct get_locks_fail;"); ++ retval.push_back("struct gss_cred;"); ++ retval.push_back("struct handshake_req;"); ++ retval.push_back("struct i2c_client;"); ++ retval.push_back("struct ib_mad_agent_private;"); ++ retval.push_back("struct ib_mad_qp_info;"); ++ retval.push_back("struct ib_mad_send_wr_private;"); ++ retval.push_back("struct ib_smp;"); ++ retval.push_back("struct iomap;"); ++ retval.push_back("struct iomap_iter;"); ++ retval.push_back("struct mctp_sk_key;"); ++ retval.push_back("struct mptcp_ext;"); ++ retval.push_back("struct mptcp_subflow_context;"); ++ retval.push_back("struct nbd_request;"); ++ retval.push_back("struct netfs_io_request;"); ++ retval.push_back("struct netfs_io_stream;"); ++ retval.push_back("struct netfs_io_subrequest;"); ++ retval.push_back("struct nfs42_clone_args;"); ++ retval.push_back("struct nfs42_copy_args;"); ++ retval.push_back("struct nfs42_copy_notify_args;"); ++ retval.push_back("struct nfs42_copy_notify_res;"); ++ retval.push_back("struct nfs42_copy_res;"); ++ retval.push_back("struct nfs42_falloc_args;"); ++ retval.push_back("struct nfs42_offload_status_args;"); ++ retval.push_back("struct nfs42_seek_args;"); ++ retval.push_back("struct nfs42_seek_res;"); ++ retval.push_back("struct nfs_direct_req;"); ++ retval.push_back("struct nfs_page;"); ++ retval.push_back("struct opa_smp;"); ++ retval.push_back("struct p9_fid;"); ++ retval.push_back("struct pwc_device;"); ++ retval.push_back("struct request;"); ++ retval.push_back("struct rpc_auth;"); ++ retval.push_back("struct rpc_gss_wire_cred;"); ++ retval.push_back("struct rpcrdma_ep;"); ++ retval.push_back("struct rpcrdma_mr;"); ++ retval.push_back("struct rpcrdma_notification;"); ++ retval.push_back("struct rpcrdma_rep;"); ++ retval.push_back("struct rpcrdma_req;"); ++ retval.push_back("struct rpcrdma_xprt;"); ++ retval.push_back("struct rpc_rqst;"); ++ retval.push_back("struct rpc_task;"); ++ retval.push_back("struct selinux_audit_data;"); ++ retval.push_back("struct spi_device;"); ++ retval.push_back("struct svc_rdma_chunk;"); ++ retval.push_back("struct svc_rdma_recv_ctxt;"); ++ retval.push_back("struct svc_rdma_segment;"); ++ retval.push_back("struct svc_rdma_send_ctxt;"); ++ retval.push_back("struct svc_rqst;"); ++ retval.push_back("struct svcxprt_rdma;"); ++ retval.push_back("struct tmigr_cpu;"); ++ retval.push_back("struct tmigr_group;"); ++ retval.push_back("struct virtio_gpu_ctrl_hdr;"); ++ retval.push_back("struct virtqueue;"); ++ retval.push_back("struct somenonexistentstruct_123;"); ++ retval.push_back("union ifs_sbaf;"); ++ retval.push_back("union ifs_sbaf_status;"); ++ retval.push_back("union tmigr_state;"); ++ return retval; ++} + + static vector tracepoint_extra_decls (systemtap_session& s, + const string& header, +@@ -12187,6 +12270,8 @@ tracepoint_derived_probe_group::emit_module_decls (systemtap_session& s) + s.op->newline(); + + ++ ++ + // We create a MODULE_aux_N.c file for each tracepoint header, to allow them + // to be separately compiled. That's because kernel tracepoint headers sometimes + // conflict. PR13155. +@@ -12207,6 +12292,11 @@ tracepoint_derived_probe_group::emit_module_decls (systemtap_session& s) + tpop = s.op_create_auxiliary(); + per_header_aux[header] = tpop; + ++ // add needed forward decls/#includes ++ static vector forward_decls = tracepoint_forward_decls(); ++ for (unsigned z=0; znewline()<< forward_decls[z] << "\n"; ++ + // PR9993: Add extra headers to work around undeclared types in individual + // include/trace/foo.h files + const vector& extra_decls = tracepoint_extra_decls (s, header, +@@ -12773,83 +12863,10 @@ tracepoint_builder::get_tracequery_modules(systemtap_session& s, + osrc << "#ifdef CONFIG_TRACEPOINTS" << endl; + osrc << "#include " << endl; + +- osrc << "enum cachefiles_content;" << endl; +- osrc << "enum extent_type;" << endl; +- osrc << "struct bch_fs;" << endl; +- osrc << "struct bch_move_stats;" << endl; +- osrc << "struct bpos;" << endl; +- osrc << "struct btree_bkey_cached_common;" << endl; +- osrc << "struct btree_insert_entry;" << endl; +- osrc << "struct btree_path;" << endl; +- osrc << "struct btree_trans;" << endl; +- osrc << "struct cachefiles_msg;" << endl; +- osrc << "struct cachefiles_open;" << endl; +- osrc << "struct cachefiles_read;" << endl; +- osrc << "struct cachefiles_volume;" << endl; +- osrc << "struct clk_rate_request;" << endl; +- osrc << "struct compact_control;" << endl; +- osrc << "struct fsi_device;" << endl; +- osrc << "struct fsi_msg;" << endl; +- osrc << "struct fsi_slave;" << endl; +- osrc << "struct fuse_req;" << endl; +- osrc << "struct get_locks_fail;" << endl; +- osrc << "struct gss_cred;" << endl; +- osrc << "struct handshake_req;" << endl; +- osrc << "struct i2c_client;" << endl; +- osrc << "struct ib_mad_agent_private;" << endl; +- osrc << "struct ib_mad_qp_info;" << endl; +- osrc << "struct ib_mad_send_wr_private;" << endl; +- osrc << "struct ib_smp;" << endl; +- osrc << "struct iomap;" << endl; +- osrc << "struct iomap_iter;" << endl; +- osrc << "struct mctp_sk_key;" << endl; +- osrc << "struct mptcp_ext;" << endl; +- osrc << "struct mptcp_subflow_context;" << endl; +- osrc << "struct nbd_request;" << endl; +- osrc << "struct netfs_io_request;" << endl; +- osrc << "struct netfs_io_stream;" << endl; +- osrc << "struct netfs_io_subrequest;" << endl; +- osrc << "struct nfs42_clone_args;" << endl; +- osrc << "struct nfs42_copy_args;" << endl; +- osrc << "struct nfs42_copy_notify_args;" << endl; +- osrc << "struct nfs42_copy_notify_res;" << endl; +- osrc << "struct nfs42_copy_res;" << endl; +- osrc << "struct nfs42_falloc_args;" << endl; +- osrc << "struct nfs42_offload_status_args;" << endl; +- osrc << "struct nfs42_seek_args;" << endl; +- osrc << "struct nfs42_seek_res;" << endl; +- osrc << "struct nfs_direct_req;" << endl; +- osrc << "struct nfs_page;" << endl; +- osrc << "struct opa_smp;" << endl; +- osrc << "struct p9_fid;" << endl; +- osrc << "struct pwc_device;" << endl; +- osrc << "struct request;" << endl; +- osrc << "struct rpc_auth;" << endl; +- osrc << "struct rpc_gss_wire_cred;" << endl; +- osrc << "struct rpcrdma_ep;" << endl; +- osrc << "struct rpcrdma_mr;" << endl; +- osrc << "struct rpcrdma_notification;" << endl; +- osrc << "struct rpcrdma_rep;" << endl; +- osrc << "struct rpcrdma_req;" << endl; +- osrc << "struct rpcrdma_xprt;" << endl; +- osrc << "struct rpc_rqst;" << endl; +- osrc << "struct rpc_task;" << endl; +- osrc << "struct selinux_audit_data;" << endl; +- osrc << "struct spi_device;" << endl; +- osrc << "struct svc_rdma_chunk;" << endl; +- osrc << "struct svc_rdma_recv_ctxt;" << endl; +- osrc << "struct svc_rdma_segment;" << endl; +- osrc << "struct svc_rdma_send_ctxt;" << endl; +- osrc << "struct svc_rqst;" << endl; +- osrc << "struct svcxprt_rdma;" << endl; +- osrc << "struct tmigr_cpu;" << endl; +- osrc << "struct tmigr_group;" << endl; +- osrc << "struct virtio_gpu_ctrl_hdr;" << endl; +- osrc << "struct virtqueue;" << endl; +- osrc << "struct somenonexistentstruct_123;" << endl; +- osrc << "union ifs_sbaf;" << endl; +- osrc << "union ifs_sbaf_status;" << endl; +- osrc << "union tmigr_state;" << endl; ++ // add needed forward decls/#includes ++ static vector forward_decls = tracepoint_forward_decls(); ++ for (unsigned z=0; z进行代码开发工作时,请注意选择当前版本对应的分支 -* aX分支为对应大版本的主分支,如a8分支对应当前最新版本 -* aX.Y分支为对应小版本的维护分支,如a8.2分支对应8.2版本 -## 开发流程 -1. 首先fork目标分支到自己的namespace -2. 在自己的fork分支上做出修改 -3. 向对应的仓库中提交merge request,源分支为fork分支 diff --git a/systemtap-4.8.tar.gz b/systemtap-5.2.tar.gz similarity index 41% rename from systemtap-4.8.tar.gz rename to systemtap-5.2.tar.gz index 0da0484d75a25548638bf18abddd6c28a863cfa3..a9a5a91c5d956d2a4b5e5fbdd4863ffece00c2ec 100644 Binary files a/systemtap-4.8.tar.gz and b/systemtap-5.2.tar.gz differ diff --git a/systemtap.spec b/systemtap.spec index ea281d10aef23b972e46a291c864d596d580da7e..c6fb1b09f9ffc2e9b1bf6e9f2fc3234dd413f4a9 100644 --- a/systemtap.spec +++ b/systemtap.spec @@ -1,4 +1,4 @@ -%define anolis_release 5 +%define anolis_release 1 %bcond_without rpm %bcond_without bpf %bcond_without crash @@ -78,7 +78,7 @@ m stapdev stapdev Name: systemtap -Version: 4.8 +Version: 5.2 Release: %{anolis_release}%{?release_override}%{?dist} # for version, see also configure.ac @@ -115,6 +115,7 @@ License: GPLv2+ URL: http://sourceware.org/systemtap/ Source: https://sourceware.org/ftp/systemtap/releases/%{name}-%{version}.tar.gz Patch001: 0001-add-loongarch64-support-for-systemtap.patch +Patch002: 0002-PR32302-Emit-forward-decls-within-tracepoint_derived.patch # Build* BuildRequires: make gcc-c++ @@ -536,6 +537,17 @@ This package installs the services necessary on a virtual machine for a systemtap-runtime-virthost machine to execute systemtap scripts. %endif +%package jupyter +Summary: ISystemtap jupyter kernel and examples +License: GPL-2.0-or-later +URL: https://sourceware.org/systemtap/ +Requires: systemtap = %{version}-%{release} + +%description jupyter +This package includes files needed to build and run +the interactive systemtap Jupyter kernel, either locally +or within a container. + # ------------------------------------------------------------------------ %prep @@ -1229,9 +1241,24 @@ exit 0 %{_mandir}/man1/stapvirt.1* %endif +%files jupyter +%{_bindir}/stap-jupyter-container +%{_bindir}/stap-jupyter-install +%{_mandir}/man1/stap-jupyter.1* +%dir %{_datadir}/systemtap +%{_datadir}/systemtap/interactive-notebook + # ------------------------------------------------------------------------ %changelog +* Thu Mar 20 2025 Weisson - 5.2-1 +- Update to 5.2 from 4.8 +- add jupyter kernel and examples in jupyter package from 4.9 ( + https://inbox.sourceware.org/systemtap/ZEw5pdqi7y%2FjYqeA@elastic.org/T/#u) +- Emit forward decls within tracepoint_derived_probe_group() too + [Patches cherry-picked from c10s. Original changelog: + - Emit forward decls within tracepoint_derived_probe_group() too (5.2-1)] + * Fri Mar 15 2024 Zhao Hang - 4.8-5 - Rebuild with python3.11