Print this page
    
NEX-15682 Update dtrace scripts
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
NEX-15682 Update dtrace scripts
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
SMB-114 Should deliver SMB dtrace scripts
SMB-113 Some dtrace scripts for SMB
    
      
        | Split | 
	Close | 
      
      | Expand all | 
      | Collapse all | 
    
    
          --- old/usr/src/cmd/smbsrv/dtrace/smbsrv.d
          +++ new/usr/src/cmd/smbsrv/dtrace/smbsrv.d
   1    1  #!/usr/sbin/dtrace -s
   2    2  /*
   3    3   * This file and its contents are supplied under the terms of the
  
    | 
      ↓ open down ↓ | 
    3 lines elided | 
    
      ↑ open up ↑ | 
  
   4    4   * Common Development and Distribution License ("CDDL"), version 1.0.
   5    5   * You may only use this file in accordance with the terms of version
   6    6   * 1.0 of the CDDL.
   7    7   *
   8    8   * A full copy of the text of the CDDL should have accompanied this
   9    9   * source.  A copy of the CDDL is also available via the Internet at
  10   10   * http://www.illumos.org/license/CDDL.
  11   11   */
  12   12  
  13   13  /*
  14      - * Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
       14 + * Copyright 2017 Nexenta Systems, Inc.  All rights reserved.
  15   15   */
  16   16  
  17   17  /*
  18   18   * Developer dtrace program for smbsrv
  19   19   * Usage: dtrace -s smbsrv.d
  20   20   */
  21   21  
  22      -#pragma D option flowindent
  23      -
  24   22  self int trace;
  25   23  self int mask;
  26   24  
  27   25  /*
  28   26   * Trace almost everything
  29   27   */
  30   28  fbt:smbsrv::entry
  31   29  {
  32   30          self->trace++;
  33   31  }
  34   32  
  35   33  /*
  36   34   * If traced and not masked, print entry/return
  37   35   */
  38   36  fbt:smbsrv::entry
  39   37  /self->trace > 0 && self->mask == 0/
  40   38  {
  41   39          printf("\t0x%x", arg0);
  42   40          printf("\t0x%x", arg1);
  43   41          printf("\t0x%x", arg2);
  44   42          printf("\t0x%x", arg3);
  45   43          printf("\t0x%x", arg4);
  46   44          printf("\t0x%x", arg5);
  47   45  }
  48   46  
  49   47  /*
  50   48   * Mask (don't print) all function calls below these functions.
  51   49   * These make many boring, repetitive function calls like
  52   50   * smb_mbtowc, mbc_marshal_...
  53   51   */
  54   52  fbt::smb_mbc_vdecodef:entry,
  55   53  fbt::smb_mbc_vencodef:entry,
  56   54  fbt::smb_msgbuf_decode:entry,
  57   55  fbt::smb_msgbuf_encode:entry,
  58   56  fbt::smb_strlwr:entry,
  59   57  fbt::smb_strupr:entry,
  60   58  fbt::smb_wcequiv_strlen:entry
  61   59  {
  62   60          self->mask++;
  63   61  }
  64   62  
  65   63  /*
  66   64   * Now inverses of above, unwind order.
  67   65   */
  68   66  
  69   67  fbt::smb_mbc_vdecodef:return,
  70   68  fbt::smb_mbc_vencodef:return,
  71   69  fbt::smb_msgbuf_decode:return,
  72   70  fbt::smb_msgbuf_encode:return,
  73   71  fbt::smb_strlwr:return,
  74   72  fbt::smb_strupr:return,
  75   73  fbt::smb_wcequiv_strlen:return
  76   74  {
  77   75          self->mask--;
  78   76  }
  
    | 
      ↓ open down ↓ | 
    45 lines elided | 
    
      ↑ open up ↑ | 
  
  79   77  
  80   78  fbt:smbsrv::return
  81   79  /self->trace > 0 && self->mask == 0/
  82   80  {
  83   81          printf("\t0x%x", arg1);
  84   82  }
  85   83  
  86   84  fbt:smbsrv::return
  87   85  {
  88   86          self->trace--;
       87 +}
       88 +
       89 +/*
       90 + * Use the "smb" dtrace provider.
       91 + */
       92 +
       93 +smb:::op-CheckDirectory-start,
       94 +smb:::op-Close-start,
       95 +smb:::op-CloseAndTreeDisconnect-start,
       96 +smb:::op-ClosePrintFile-start,
       97 +smb:::op-Create-start,
       98 +smb:::op-CreateDirectory-start,
       99 +smb:::op-CreateNew-start,
      100 +smb:::op-CreateTemporary-start,
      101 +smb:::op-Delete-start,
      102 +smb:::op-DeleteDirectory-start,
      103 +smb:::op-Echo-start,
      104 +smb:::op-Find-start,
      105 +smb:::op-FindClose-start,
      106 +smb:::op-FindClose2-start,
      107 +smb:::op-FindUnique-start,
      108 +smb:::op-Flush-start,
      109 +smb:::op-GetPrintQueue-start,
      110 +smb:::op-Invalid-start,
      111 +smb:::op-Ioctl-start,
      112 +smb:::op-LockAndRead-start,
      113 +smb:::op-LockByteRange-start,
      114 +smb:::op-LockingX-start,
      115 +smb:::op-LogoffX-start,
      116 +smb:::op-Negotiate-start,
      117 +smb:::op-NtCancel-start,
      118 +smb:::op-NtCreateX-start,
      119 +smb:::op-NtRename-start,
      120 +smb:::op-NtTransact-start,
      121 +smb:::op-NtTransactCreate-start,
      122 +smb:::op-NtTransactSecondary-start,
      123 +smb:::op-Open-start,
      124 +smb:::op-OpenPrintFile-start,
      125 +smb:::op-OpenX-start,
      126 +smb:::op-ProcessExit-start,
      127 +smb:::op-QueryInformation-start,
      128 +smb:::op-QueryInformation2-start,
      129 +smb:::op-QueryInformationDisk-start,
      130 +smb:::op-Read-start,
      131 +smb:::op-ReadRaw-start,
      132 +smb:::op-ReadX-start,
      133 +smb:::op-Rename-start,
      134 +smb:::op-Search-start,
      135 +smb:::op-Seek-start,
      136 +smb:::op-SessionSetupX-start,
      137 +smb:::op-SetInformation-start,
      138 +smb:::op-SetInformation2-start,
      139 +smb:::op-Transaction-start,
      140 +smb:::op-Transaction2-start,
      141 +smb:::op-Transaction2Secondary-start,
      142 +smb:::op-TransactionSecondary-start,
      143 +smb:::op-TreeConnect-start,
      144 +smb:::op-TreeConnectX-start,
      145 +smb:::op-TreeDisconnect-start,
      146 +smb:::op-UnlockByteRange-start,
      147 +smb:::op-Write-start,
      148 +smb:::op-WriteAndClose-start,
      149 +smb:::op-WriteAndUnlock-start,
      150 +smb:::op-WritePrintFile-start,
      151 +smb:::op-WriteRaw-start,
      152 +smb:::op-WriteX-start
      153 +{
      154 +        printf("clnt=%s mid=0x%x uid=0x%x tid=0x%x\n",
      155 +               args[0]->ci_remote,
      156 +               args[1]->soi_mid,
      157 +               args[1]->soi_uid,
      158 +               args[1]->soi_tid);
      159 +}
      160 +
      161 +smb:::op-CheckDirectory-done,
      162 +smb:::op-Close-done,
      163 +smb:::op-CloseAndTreeDisconnect-done,
      164 +smb:::op-ClosePrintFile-done,
      165 +smb:::op-Create-done,
      166 +smb:::op-CreateDirectory-done,
      167 +smb:::op-CreateNew-done,
      168 +smb:::op-CreateTemporary-done,
      169 +smb:::op-Delete-done,
      170 +smb:::op-DeleteDirectory-done,
      171 +smb:::op-Echo-done,
      172 +smb:::op-Find-done,
      173 +smb:::op-FindClose-done,
      174 +smb:::op-FindClose2-done,
      175 +smb:::op-FindUnique-done,
      176 +smb:::op-Flush-done,
      177 +smb:::op-GetPrintQueue-done,
      178 +smb:::op-Invalid-done,
      179 +smb:::op-Ioctl-done,
      180 +smb:::op-LockAndRead-done,
      181 +smb:::op-LockByteRange-done,
      182 +smb:::op-LockingX-done,
      183 +smb:::op-LogoffX-done,
      184 +smb:::op-Negotiate-done,
      185 +smb:::op-NtCancel-done,
      186 +smb:::op-NtCreateX-done,
      187 +smb:::op-NtRename-done,
      188 +smb:::op-NtTransact-done,
      189 +smb:::op-NtTransactCreate-done,
      190 +smb:::op-NtTransactSecondary-done,
      191 +smb:::op-Open-done,
      192 +smb:::op-OpenPrintFile-done,
      193 +smb:::op-OpenX-done,
      194 +smb:::op-ProcessExit-done,
      195 +smb:::op-QueryInformation-done,
      196 +smb:::op-QueryInformation2-done,
      197 +smb:::op-QueryInformationDisk-done,
      198 +smb:::op-Read-done,
      199 +smb:::op-ReadRaw-done,
      200 +smb:::op-ReadX-done,
      201 +smb:::op-Rename-done,
      202 +smb:::op-Search-done,
      203 +smb:::op-Seek-done,
      204 +smb:::op-SessionSetupX-done,
      205 +smb:::op-SetInformation-done,
      206 +smb:::op-SetInformation2-done,
      207 +smb:::op-Transaction-done,
      208 +smb:::op-Transaction2-done,
      209 +smb:::op-Transaction2Secondary-done,
      210 +smb:::op-TransactionSecondary-done,
      211 +smb:::op-TreeConnect-done,
      212 +smb:::op-TreeConnectX-done,
      213 +smb:::op-TreeDisconnect-done,
      214 +smb:::op-UnlockByteRange-done,
      215 +smb:::op-Write-done,
      216 +smb:::op-WriteAndClose-done,
      217 +smb:::op-WriteAndUnlock-done,
      218 +smb:::op-WritePrintFile-done,
      219 +smb:::op-WriteRaw-done,
      220 +smb:::op-WriteX-done
      221 +{
      222 +        printf("clnt=%s mid=0x%x status=0x%x\n",
      223 +               args[0]->ci_remote,
      224 +               args[1]->soi_mid,
      225 +               args[1]->soi_status);
      226 +}
      227 +
      228 +/*
      229 + * Use the "smb2" dtrace provider.
      230 + */
      231 +
      232 +smb2:::op-Cancel-start,
      233 +smb2:::op-ChangeNotify-start,
      234 +smb2:::op-Close-start,
      235 +smb2:::op-Create-start,
      236 +smb2:::op-Echo-start,
      237 +smb2:::op-Flush-start,
      238 +smb2:::op-Ioctl-start,
      239 +smb2:::op-Lock-start,
      240 +smb2:::op-Logoff-start,
      241 +smb2:::op-Negotiate-start,
      242 +smb2:::op-OplockBreak-start,
      243 +smb2:::op-QueryDirectory-start,
      244 +smb2:::op-QueryInfo-start,
      245 +smb2:::op-Read-start,
      246 +smb2:::op-SessionSetup-start,
      247 +smb2:::op-SetInfo-start,
      248 +smb2:::op-TreeConnect-start,
      249 +smb2:::op-TreeDisconnect-start,
      250 +smb2:::op-Write-start
      251 +{
      252 +        printf("clnt=%s mid=0x%x uid=0x%x tid=0x%x\n",
      253 +               args[0]->ci_remote,
      254 +               args[1]->soi_mid,
      255 +               args[1]->soi_uid,
      256 +               args[1]->soi_tid);
      257 +}
      258 +
      259 +smb2:::op-Cancel-done,
      260 +smb2:::op-ChangeNotify-done,
      261 +smb2:::op-Close-done,
      262 +smb2:::op-Create-done,
      263 +smb2:::op-Echo-done,
      264 +smb2:::op-Flush-done,
      265 +smb2:::op-Ioctl-done,
      266 +smb2:::op-Lock-done,
      267 +smb2:::op-Logoff-done,
      268 +smb2:::op-Negotiate-done,
      269 +smb2:::op-OplockBreak-done,
      270 +smb2:::op-QueryDirectory-done,
      271 +smb2:::op-QueryInfo-done,
      272 +smb2:::op-Read-done,
      273 +smb2:::op-SessionSetup-done,
      274 +smb2:::op-SetInfo-done,
      275 +smb2:::op-TreeConnect-done,
      276 +smb2:::op-TreeDisconnect-done,
      277 +smb2:::op-Write-done
      278 +{
      279 +        printf("clnt=%s mid=0x%x status=0x%x\n",
      280 +               args[0]->ci_remote,
      281 +               args[1]->soi_mid,
      282 +               args[1]->soi_status);
  89  283  }
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX