Print this page
NEX-16712 NFS dtrace providers do not support per-share filtering
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Gordon Ross <gordon.ross@nexenta.com>
Reviewed by: Yuri Pankon <yuri.pankov@nexenta.com>
NEX-15555 SMB2 async redesign
NEX-15061 smtorture smb2.lock.cancel.cancel is failed
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Roman Strashkin <roman.strashkin@nexenta.com>
Also follow-up change to:
 NEX-1643 dtrace provider for smbsrv (remove "done2" probes,
 which don't make sense with the new async design)
NEX-15555 SMB2 async redesign
NEX-15061 smtorture smb2.lock.cancel.cancel is failed
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Roman Strashkin <roman.strashkin@nexenta.com>
Also follow-up change to:
 NEX-1643 dtrace provider for smbsrv (remove "done2" probes,
 which don't make sense with the new async design)
NEX-1643 dtrace provider for smbsrv
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Matt Barden <matt.barden@nexenta.com>


   4  * The contents of this file are subject to the terms of the
   5  * Common Development and Distribution License (the "License").
   6  * You may not use this file except in compliance with the License.
   7  *
   8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9  * or http://www.opensolaris.org/os/licensing.
  10  * See the License for the specific language governing permissions
  11  * and limitations under the License.
  12  *
  13  * When distributing Covered Code, include this CDDL HEADER in each
  14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15  * If applicable, add the following below this CDDL HEADER, with the
  16  * fields enclosed by brackets "[]" replaced with your own identifying
  17  * information: Portions Copyright [yyyy] [name of copyright owner]
  18  *
  19  * CDDL HEADER END
  20  */
  21 /*
  22  * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
  23  * Copyright (c) 2013 by Delphix. All rights reserved.

  24  */
  25 
  26 #ifndef _SYS_SDT_H
  27 #define _SYS_SDT_H
  28 
  29 #include <sys/stdint.h>
  30 
  31 #ifdef  __cplusplus
  32 extern "C" {
  33 #endif
  34 
  35 #ifndef _KERNEL
  36 
  37 #define DTRACE_PROBE(provider, name) {                                  \
  38         extern void __dtrace_##provider##___##name(void);               \
  39         __dtrace_##provider##___##name();                               \
  40 }
  41 
  42 #define DTRACE_PROBE1(provider, name, arg1) {                           \
  43         extern void __dtrace_##provider##___##name(unsigned long);      \


 213         DTRACE_PROBE6(__iscsi_##name, type1, arg1, type2, arg2,         \
 214             type3, arg3, type4, arg4, type5, arg5, type6, arg6);
 215 
 216 #define DTRACE_ISCSI_7(name, type1, arg1, type2, arg2,                  \
 217     type3, arg3, type4, arg4, type5, arg5, type6, arg6, type7, arg7)    \
 218         DTRACE_PROBE7(__iscsi_##name, type1, arg1, type2, arg2,         \
 219             type3, arg3, type4, arg4, type5, arg5, type6, arg6,         \
 220             type7, arg7);
 221 
 222 #define DTRACE_ISCSI_8(name, type1, arg1, type2, arg2,                  \
 223     type3, arg3, type4, arg4, type5, arg5, type6, arg6,                 \
 224     type7, arg7, type8, arg8)                                           \
 225         DTRACE_PROBE8(__iscsi_##name, type1, arg1, type2, arg2,         \
 226             type3, arg3, type4, arg4, type5, arg5, type6, arg6,         \
 227             type7, arg7, type8, arg8);
 228 
 229 #define DTRACE_NFSV3_3(name, type1, arg1, type2, arg2,                  \
 230     type3, arg3)                                                        \
 231         DTRACE_PROBE3(__nfsv3_##name, type1, arg1, type2, arg2,         \
 232             type3, arg3);

 233 #define DTRACE_NFSV3_4(name, type1, arg1, type2, arg2,                  \
 234     type3, arg3, type4, arg4)                                           \
 235         DTRACE_PROBE4(__nfsv3_##name, type1, arg1, type2, arg2,         \
 236             type3, arg3, type4, arg4);
 237 





 238 #define DTRACE_NFSV4_1(name, type1, arg1) \
 239         DTRACE_PROBE1(__nfsv4_##name, type1, arg1);
 240 
 241 #define DTRACE_NFSV4_2(name, type1, arg1, type2, arg2) \
 242         DTRACE_PROBE2(__nfsv4_##name, type1, arg1, type2, arg2);
 243 
 244 #define DTRACE_NFSV4_3(name, type1, arg1, type2, arg2, type3, arg3) \
 245         DTRACE_PROBE3(__nfsv4_##name, type1, arg1, type2, arg2, type3, arg3);
 246 
 247 #define DTRACE_SMB_1(name, type1, arg1) \
 248         DTRACE_PROBE1(__smb_##name, type1, arg1);







 249 
 250 #define DTRACE_SMB_2(name, type1, arg1, type2, arg2) \
 251         DTRACE_PROBE2(__smb_##name, type1, arg1, type2, arg2);


 252 
 253 #define DTRACE_IP(name)                                         \
 254         DTRACE_PROBE(__ip_##name);
 255 
 256 #define DTRACE_IP1(name, type1, arg1)                                   \
 257         DTRACE_PROBE1(__ip_##name, type1, arg1);
 258 
 259 #define DTRACE_IP2(name, type1, arg1, type2, arg2)                      \
 260         DTRACE_PROBE2(__ip_##name, type1, arg1, type2, arg2);
 261 
 262 #define DTRACE_IP3(name, type1, arg1, type2, arg2, type3, arg3) \
 263         DTRACE_PROBE3(__ip_##name, type1, arg1, type2, arg2, type3, arg3);
 264 
 265 #define DTRACE_IP4(name, type1, arg1, type2, arg2,                      \
 266     type3, arg3, type4, arg4)                                           \
 267         DTRACE_PROBE4(__ip_##name, type1, arg1, type2, arg2,            \
 268             type3, arg3, type4, arg4);
 269 
 270 #define DTRACE_IP5(name, type1, arg1, type2, arg2,                      \
 271     type3, arg3, type4, arg4, type5, arg5)                              \




   4  * The contents of this file are subject to the terms of the
   5  * Common Development and Distribution License (the "License").
   6  * You may not use this file except in compliance with the License.
   7  *
   8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9  * or http://www.opensolaris.org/os/licensing.
  10  * See the License for the specific language governing permissions
  11  * and limitations under the License.
  12  *
  13  * When distributing Covered Code, include this CDDL HEADER in each
  14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15  * If applicable, add the following below this CDDL HEADER, with the
  16  * fields enclosed by brackets "[]" replaced with your own identifying
  17  * information: Portions Copyright [yyyy] [name of copyright owner]
  18  *
  19  * CDDL HEADER END
  20  */
  21 /*
  22  * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
  23  * Copyright (c) 2013 by Delphix. All rights reserved.
  24  * Copyright 2018 Nexenta Systems, Inc.  All rights reserved.
  25  */
  26 
  27 #ifndef _SYS_SDT_H
  28 #define _SYS_SDT_H
  29 
  30 #include <sys/stdint.h>
  31 
  32 #ifdef  __cplusplus
  33 extern "C" {
  34 #endif
  35 
  36 #ifndef _KERNEL
  37 
  38 #define DTRACE_PROBE(provider, name) {                                  \
  39         extern void __dtrace_##provider##___##name(void);               \
  40         __dtrace_##provider##___##name();                               \
  41 }
  42 
  43 #define DTRACE_PROBE1(provider, name, arg1) {                           \
  44         extern void __dtrace_##provider##___##name(unsigned long);      \


 214         DTRACE_PROBE6(__iscsi_##name, type1, arg1, type2, arg2,         \
 215             type3, arg3, type4, arg4, type5, arg5, type6, arg6);
 216 
 217 #define DTRACE_ISCSI_7(name, type1, arg1, type2, arg2,                  \
 218     type3, arg3, type4, arg4, type5, arg5, type6, arg6, type7, arg7)    \
 219         DTRACE_PROBE7(__iscsi_##name, type1, arg1, type2, arg2,         \
 220             type3, arg3, type4, arg4, type5, arg5, type6, arg6,         \
 221             type7, arg7);
 222 
 223 #define DTRACE_ISCSI_8(name, type1, arg1, type2, arg2,                  \
 224     type3, arg3, type4, arg4, type5, arg5, type6, arg6,                 \
 225     type7, arg7, type8, arg8)                                           \
 226         DTRACE_PROBE8(__iscsi_##name, type1, arg1, type2, arg2,         \
 227             type3, arg3, type4, arg4, type5, arg5, type6, arg6,         \
 228             type7, arg7, type8, arg8);
 229 
 230 #define DTRACE_NFSV3_3(name, type1, arg1, type2, arg2,                  \
 231     type3, arg3)                                                        \
 232         DTRACE_PROBE3(__nfsv3_##name, type1, arg1, type2, arg2,         \
 233             type3, arg3);
 234 
 235 #define DTRACE_NFSV3_4(name, type1, arg1, type2, arg2,                  \
 236     type3, arg3, type4, arg4)                                           \
 237         DTRACE_PROBE4(__nfsv3_##name, type1, arg1, type2, arg2,         \
 238             type3, arg3, type4, arg4);
 239 
 240 #define DTRACE_NFSV3_5(name, type1, arg1, type2, arg2,                  \
 241     type3, arg3, type4, arg4, type5, arg5)                              \
 242         DTRACE_PROBE5(__nfsv3_##name, type1, arg1, type2, arg2,         \
 243             type3, arg3, type4, arg4, type5, arg5);
 244 
 245 #define DTRACE_NFSV4_1(name, type1, arg1) \
 246         DTRACE_PROBE1(__nfsv4_##name, type1, arg1);
 247 
 248 #define DTRACE_NFSV4_2(name, type1, arg1, type2, arg2) \
 249         DTRACE_PROBE2(__nfsv4_##name, type1, arg1, type2, arg2);
 250 
 251 #define DTRACE_NFSV4_3(name, type1, arg1, type2, arg2, type3, arg3) \
 252         DTRACE_PROBE3(__nfsv4_##name, type1, arg1, type2, arg2, type3, arg3);
 253 
 254 /*
 255  * The SMB probes are done a little differently from the other probes
 256  * in this file for the benefit of the libfksmbsrv USDT provider.
 257  * See: lib/smbsrv/libfksmbsrv/common/sys/sdt.h
 258  */
 259 #define DTRACE_SMB_START(name, type1, arg1) \
 260         DTRACE_PROBE1(__smb_##name##__start, type1, arg1);
 261 #define DTRACE_SMB_DONE(name, type1, arg1) \
 262         DTRACE_PROBE1(__smb_##name##__done, type1, arg1);
 263 
 264 #define DTRACE_SMB2_START(name, type1, arg1) \
 265         DTRACE_PROBE1(__smb2_##name##__start, type1, arg1);
 266 #define DTRACE_SMB2_DONE(name, type1, arg1) \
 267         DTRACE_PROBE1(__smb2_##name##__done, type1, arg1);
 268 
 269 #define DTRACE_IP(name)                                         \
 270         DTRACE_PROBE(__ip_##name);
 271 
 272 #define DTRACE_IP1(name, type1, arg1)                                   \
 273         DTRACE_PROBE1(__ip_##name, type1, arg1);
 274 
 275 #define DTRACE_IP2(name, type1, arg1, type2, arg2)                      \
 276         DTRACE_PROBE2(__ip_##name, type1, arg1, type2, arg2);
 277 
 278 #define DTRACE_IP3(name, type1, arg1, type2, arg2, type3, arg3) \
 279         DTRACE_PROBE3(__ip_##name, type1, arg1, type2, arg2, type3, arg3);
 280 
 281 #define DTRACE_IP4(name, type1, arg1, type2, arg2,                      \
 282     type3, arg3, type4, arg4)                                           \
 283         DTRACE_PROBE4(__ip_##name, type1, arg1, type2, arg2,            \
 284             type3, arg3, type4, arg4);
 285 
 286 #define DTRACE_IP5(name, type1, arg1, type2, arg2,                      \
 287     type3, arg3, type4, arg4, type5, arg5)                              \