tree: git://git.samba.org/sfrench/cifs-2.6.git for-next head: 85c48cf275b0279d13f42e61904ffca1e4da0a50 commit: ac204b8b2b598cb64db24832aa0df347c6480616 [33/35] cifs: dump channel info in DebugData config: i386-randconfig-a002-20191121 (attached as .config) compiler: gcc-4.9 (Debian 4.9.2-10+deb8u1) 4.9.2 reproduce: git checkout ac204b8b2b598cb64db24832aa0df347c6480616 # save the attached .config to linux build tree make ARCH=i386 If you fix the issue, kindly add following tag Reported-by: kbuild test robot All warnings (new ones prefixed by >>): fs//cifs/cifs_debug.c: In function 'cifs_dump_channel': fs//cifs/cifs_debug.c:141:25: error: 'struct TCP_Server_Info' has no member named 'in_send' atomic_read(&server->in_send), ^ fs//cifs/cifs_debug.c:142:25: error: 'struct TCP_Server_Info' has no member named 'num_waiters' atomic_read(&server->num_waiters)); ^ fs//cifs/cifs_debug.c: In function 'cifs_debug_data_proc_show': >> fs//cifs/cifs_debug.c:403:9: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'size_t' [-Wformat=] ses->chan_count-1); ^ vim +403 fs//cifs/cifs_debug.c 215 216 static int cifs_debug_data_proc_show(struct seq_file *m, void *v) 217 { 218 struct list_head *tmp1, *tmp2, *tmp3; 219 struct mid_q_entry *mid_entry; 220 struct TCP_Server_Info *server; 221 struct cifs_ses *ses; 222 struct cifs_tcon *tcon; 223 int i, j; 224 225 seq_puts(m, 226 "Display Internal CIFS Data Structures for Debugging\n" 227 "---------------------------------------------------\n"); 228 seq_printf(m, "CIFS Version %s\n", CIFS_VERSION); 229 seq_printf(m, "Features:"); 230 #ifdef CONFIG_CIFS_DFS_UPCALL 231 seq_printf(m, " DFS"); 232 #endif 233 #ifdef CONFIG_CIFS_FSCACHE 234 seq_printf(m, ",FSCACHE"); 235 #endif 236 #ifdef CONFIG_CIFS_SMB_DIRECT 237 seq_printf(m, ",SMB_DIRECT"); 238 #endif 239 #ifdef CONFIG_CIFS_STATS2 240 seq_printf(m, ",STATS2"); 241 #else 242 seq_printf(m, ",STATS"); 243 #endif 244 #ifdef CONFIG_CIFS_DEBUG2 245 seq_printf(m, ",DEBUG2"); 246 #elif defined(CONFIG_CIFS_DEBUG) 247 seq_printf(m, ",DEBUG"); 248 #endif 249 #ifdef CONFIG_CIFS_ALLOW_INSECURE_LEGACY 250 seq_printf(m, ",ALLOW_INSECURE_LEGACY"); 251 #endif 252 #ifdef CONFIG_CIFS_WEAK_PW_HASH 253 seq_printf(m, ",WEAK_PW_HASH"); 254 #endif 255 #ifdef CONFIG_CIFS_POSIX 256 seq_printf(m, ",CIFS_POSIX"); 257 #endif 258 #ifdef CONFIG_CIFS_UPCALL 259 seq_printf(m, ",UPCALL(SPNEGO)"); 260 #endif 261 #ifdef CONFIG_CIFS_XATTR 262 seq_printf(m, ",XATTR"); 263 #endif 264 seq_printf(m, ",ACL"); 265 seq_putc(m, '\n'); 266 seq_printf(m, "CIFSMaxBufSize: %d\n", CIFSMaxBufSize); 267 seq_printf(m, "Active VFS Requests: %d\n", GlobalTotalActiveXid); 268 seq_printf(m, "Servers:"); 269 270 i = 0; 271 spin_lock(&cifs_tcp_ses_lock); 272 list_for_each(tmp1, &cifs_tcp_ses_list) { 273 server = list_entry(tmp1, struct TCP_Server_Info, 274 tcp_ses_list); 275 276 #ifdef CONFIG_CIFS_SMB_DIRECT 277 if (!server->rdma) 278 goto skip_rdma; 279 280 if (!server->smbd_conn) { 281 seq_printf(m, "\nSMBDirect transport not available"); 282 goto skip_rdma; 283 } 284 285 seq_printf(m, "\nSMBDirect (in hex) protocol version: %x " 286 "transport status: %x", 287 server->smbd_conn->protocol, 288 server->smbd_conn->transport_status); 289 seq_printf(m, "\nConn receive_credit_max: %x " 290 "send_credit_target: %x max_send_size: %x", 291 server->smbd_conn->receive_credit_max, 292 server->smbd_conn->send_credit_target, 293 server->smbd_conn->max_send_size); 294 seq_printf(m, "\nConn max_fragmented_recv_size: %x " 295 "max_fragmented_send_size: %x max_receive_size:%x", 296 server->smbd_conn->max_fragmented_recv_size, 297 server->smbd_conn->max_fragmented_send_size, 298 server->smbd_conn->max_receive_size); 299 seq_printf(m, "\nConn keep_alive_interval: %x " 300 "max_readwrite_size: %x rdma_readwrite_threshold: %x", 301 server->smbd_conn->keep_alive_interval, 302 server->smbd_conn->max_readwrite_size, 303 server->smbd_conn->rdma_readwrite_threshold); 304 seq_printf(m, "\nDebug count_get_receive_buffer: %x " 305 "count_put_receive_buffer: %x count_send_empty: %x", 306 server->smbd_conn->count_get_receive_buffer, 307 server->smbd_conn->count_put_receive_buffer, 308 server->smbd_conn->count_send_empty); 309 seq_printf(m, "\nRead Queue count_reassembly_queue: %x " 310 "count_enqueue_reassembly_queue: %x " 311 "count_dequeue_reassembly_queue: %x " 312 "fragment_reassembly_remaining: %x " 313 "reassembly_data_length: %x " 314 "reassembly_queue_length: %x", 315 server->smbd_conn->count_reassembly_queue, 316 server->smbd_conn->count_enqueue_reassembly_queue, 317 server->smbd_conn->count_dequeue_reassembly_queue, 318 server->smbd_conn->fragment_reassembly_remaining, 319 server->smbd_conn->reassembly_data_length, 320 server->smbd_conn->reassembly_queue_length); 321 seq_printf(m, "\nCurrent Credits send_credits: %x " 322 "receive_credits: %x receive_credit_target: %x", 323 atomic_read(&server->smbd_conn->send_credits), 324 atomic_read(&server->smbd_conn->receive_credits), 325 server->smbd_conn->receive_credit_target); 326 seq_printf(m, "\nPending send_pending: %x " 327 "send_payload_pending: %x", 328 atomic_read(&server->smbd_conn->send_pending), 329 atomic_read(&server->smbd_conn->send_payload_pending)); 330 seq_printf(m, "\nReceive buffers count_receive_queue: %x " 331 "count_empty_packet_queue: %x", 332 server->smbd_conn->count_receive_queue, 333 server->smbd_conn->count_empty_packet_queue); 334 seq_printf(m, "\nMR responder_resources: %x " 335 "max_frmr_depth: %x mr_type: %x", 336 server->smbd_conn->responder_resources, 337 server->smbd_conn->max_frmr_depth, 338 server->smbd_conn->mr_type); 339 seq_printf(m, "\nMR mr_ready_count: %x mr_used_count: %x", 340 atomic_read(&server->smbd_conn->mr_ready_count), 341 atomic_read(&server->smbd_conn->mr_used_count)); 342 skip_rdma: 343 #endif 344 seq_printf(m, "\nNumber of credits: %d Dialect 0x%x", 345 server->credits, server->dialect); 346 if (server->compress_algorithm == SMB3_COMPRESS_LZNT1) 347 seq_printf(m, " COMPRESS_LZNT1"); 348 else if (server->compress_algorithm == SMB3_COMPRESS_LZ77) 349 seq_printf(m, " COMPRESS_LZ77"); 350 else if (server->compress_algorithm == SMB3_COMPRESS_LZ77_HUFF) 351 seq_printf(m, " COMPRESS_LZ77_HUFF"); 352 if (server->sign) 353 seq_printf(m, " signed"); 354 if (server->posix_ext_supported) 355 seq_printf(m, " posix"); 356 357 i++; 358 list_for_each(tmp2, &server->smb_ses_list) { 359 ses = list_entry(tmp2, struct cifs_ses, 360 smb_ses_list); 361 if ((ses->serverDomain == NULL) || 362 (ses->serverOS == NULL) || 363 (ses->serverNOS == NULL)) { 364 seq_printf(m, "\n%d) Name: %s Uses: %d Capability: 0x%x\tSession Status: %d ", 365 i, ses->serverName, ses->ses_count, 366 ses->capabilities, ses->status); 367 if (ses->session_flags & SMB2_SESSION_FLAG_IS_GUEST) 368 seq_printf(m, "Guest\t"); 369 else if (ses->session_flags & SMB2_SESSION_FLAG_IS_NULL) 370 seq_printf(m, "Anonymous\t"); 371 } else { 372 seq_printf(m, 373 "\n%d) Name: %s Domain: %s Uses: %d OS:" 374 " %s\n\tNOS: %s\tCapability: 0x%x\n\tSMB" 375 " session status: %d ", 376 i, ses->serverName, ses->serverDomain, 377 ses->ses_count, ses->serverOS, ses->serverNOS, 378 ses->capabilities, ses->status); 379 } 380 if (server->rdma) 381 seq_printf(m, "RDMA\n\t"); 382 seq_printf(m, "TCP status: %d Instance: %d\n\tLocal Users To " 383 "Server: %d SecMode: 0x%x Req On Wire: %d", 384 server->tcpStatus, 385 server->reconnect_instance, 386 server->srv_count, 387 server->sec_mode, in_flight(server)); 388 389 #ifdef CONFIG_CIFS_STATS2 390 seq_printf(m, " In Send: %d In MaxReq Wait: %d", 391 atomic_read(&server->in_send), 392 atomic_read(&server->num_waiters)); 393 #endif 394 /* dump session id helpful for use with network trace */ 395 seq_printf(m, " SessionId: 0x%llx", ses->Suid); 396 if (ses->session_flags & SMB2_SESSION_FLAG_ENCRYPT_DATA) 397 seq_puts(m, " encrypted"); 398 if (ses->sign) 399 seq_puts(m, " signed"); 400 401 if (ses->chan_count > 1) { 402 seq_printf(m, "\n\n\tExtra Channels: %lu\n", > 403 ses->chan_count-1); 404 for (j = 1; j < ses->chan_count; j++) 405 cifs_dump_channel(m, j, &ses->chans[j]); 406 } 407 408 seq_puts(m, "\n\tShares:"); 409 j = 0; 410 411 seq_printf(m, "\n\t%d) IPC: ", j); 412 if (ses->tcon_ipc) 413 cifs_debug_tcon(m, ses->tcon_ipc); 414 else 415 seq_puts(m, "none\n"); 416 417 list_for_each(tmp3, &ses->tcon_list) { 418 tcon = list_entry(tmp3, struct cifs_tcon, 419 tcon_list); 420 ++j; 421 seq_printf(m, "\n\t%d) ", j); 422 cifs_debug_tcon(m, tcon); 423 } 424 425 seq_puts(m, "\n\tMIDs:\n"); 426 427 spin_lock(&GlobalMid_Lock); 428 list_for_each(tmp3, &server->pending_mid_q) { 429 mid_entry = list_entry(tmp3, struct mid_q_entry, 430 qhead); 431 seq_printf(m, "\tState: %d com: %d pid:" 432 " %d cbdata: %p mid %llu\n", 433 mid_entry->mid_state, 434 le16_to_cpu(mid_entry->command), 435 mid_entry->pid, 436 mid_entry->callback_data, 437 mid_entry->mid); 438 } 439 spin_unlock(&GlobalMid_Lock); 440 441 spin_lock(&ses->iface_lock); 442 if (ses->iface_count) 443 seq_printf(m, "\n\tServer interfaces: %zu\n", 444 ses->iface_count); 445 for (j = 0; j < ses->iface_count; j++) { 446 struct cifs_server_iface *iface; 447 448 iface = &ses->iface_list[j]; 449 seq_printf(m, "\t%d)", j); 450 cifs_dump_iface(m, iface); 451 if (is_ses_using_iface(ses, iface)) 452 seq_puts(m, "\t\t[CONNECTED]\n"); 453 } 454 spin_unlock(&ses->iface_lock); 455 } 456 } 457 spin_unlock(&cifs_tcp_ses_lock); 458 seq_putc(m, '\n'); 459 460 /* BB add code to dump additional info such as TCP session info now */ 461 return 0; 462 } 463 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation