diff options
author | Josh Hay <joshua.a.hay@intel.com> | 2012-09-26 01:59:41 -0400 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2012-11-22 04:39:23 -0500 |
commit | 8ad88e3711d326b1441d4c198928302b13e06fc5 (patch) | |
tree | d0dc1d41c0c559b500e4a0f4e3e8767c12c85a89 /drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | |
parent | 76e0d67a08bb195bd0ddea2fcba8c15c85eab243 (diff) |
ixgbe: Reformat output of ixgbe_dump
Reformats the output of the Tx/Rx descriptor dumps to more
appropriately align the output of the ixgbe_dump and improve readability.
Prevents empty Tx descriptors from being displayed to decrease the size
of the dump and make it more manageable.
Signed-off-by: Josh Hay <joshua.a.hay@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ethernet/intel/ixgbe/ixgbe_main.c')
-rw-r--r-- | drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 75 |
1 files changed, 41 insertions, 34 deletions
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index 38fc186c53c4..004ea6caf45f 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | |||
@@ -336,11 +336,13 @@ static void ixgbe_dump(struct ixgbe_adapter *adapter) | |||
336 | goto exit; | 336 | goto exit; |
337 | 337 | ||
338 | dev_info(&adapter->pdev->dev, "TX Rings Summary\n"); | 338 | dev_info(&adapter->pdev->dev, "TX Rings Summary\n"); |
339 | pr_info("Queue [NTU] [NTC] [bi(ntc)->dma ] leng ntw timestamp\n"); | 339 | pr_info(" %s %s %s %s\n", |
340 | "Queue [NTU] [NTC] [bi(ntc)->dma ]", | ||
341 | "leng", "ntw", "timestamp"); | ||
340 | for (n = 0; n < adapter->num_tx_queues; n++) { | 342 | for (n = 0; n < adapter->num_tx_queues; n++) { |
341 | tx_ring = adapter->tx_ring[n]; | 343 | tx_ring = adapter->tx_ring[n]; |
342 | tx_buffer = &tx_ring->tx_buffer_info[tx_ring->next_to_clean]; | 344 | tx_buffer = &tx_ring->tx_buffer_info[tx_ring->next_to_clean]; |
343 | pr_info(" %5d %5X %5X %016llX %04X %p %016llX\n", | 345 | pr_info(" %5d %5X %5X %016llX %08X %p %016llX\n", |
344 | n, tx_ring->next_to_use, tx_ring->next_to_clean, | 346 | n, tx_ring->next_to_use, tx_ring->next_to_clean, |
345 | (u64)dma_unmap_addr(tx_buffer, dma), | 347 | (u64)dma_unmap_addr(tx_buffer, dma), |
346 | dma_unmap_len(tx_buffer, len), | 348 | dma_unmap_len(tx_buffer, len), |
@@ -394,40 +396,43 @@ static void ixgbe_dump(struct ixgbe_adapter *adapter) | |||
394 | pr_info("------------------------------------\n"); | 396 | pr_info("------------------------------------\n"); |
395 | pr_info("TX QUEUE INDEX = %d\n", tx_ring->queue_index); | 397 | pr_info("TX QUEUE INDEX = %d\n", tx_ring->queue_index); |
396 | pr_info("------------------------------------\n"); | 398 | pr_info("------------------------------------\n"); |
397 | pr_info("T [desc] [address 63:0 ] " | 399 | pr_info("%s%s %s %s %s %s\n", |
398 | "[PlPOIdStDDt Ln] [bi->dma ] " | 400 | "T [desc] [address 63:0 ] ", |
399 | "leng ntw timestamp bi->skb\n"); | 401 | "[PlPOIdStDDt Ln] [bi->dma ] ", |
402 | "leng", "ntw", "timestamp", "bi->skb"); | ||
400 | 403 | ||
401 | for (i = 0; tx_ring->desc && (i < tx_ring->count); i++) { | 404 | for (i = 0; tx_ring->desc && (i < tx_ring->count); i++) { |
402 | tx_desc = IXGBE_TX_DESC(tx_ring, i); | 405 | tx_desc = IXGBE_TX_DESC(tx_ring, i); |
403 | tx_buffer = &tx_ring->tx_buffer_info[i]; | 406 | tx_buffer = &tx_ring->tx_buffer_info[i]; |
404 | u0 = (struct my_u0 *)tx_desc; | 407 | u0 = (struct my_u0 *)tx_desc; |
405 | pr_info("T [0x%03X] %016llX %016llX %016llX" | 408 | if (dma_unmap_len(tx_buffer, len) > 0) { |
406 | " %04X %p %016llX %p", i, | 409 | pr_info("T [0x%03X] %016llX %016llX %016llX %08X %p %016llX %p", |
407 | le64_to_cpu(u0->a), | 410 | i, |
408 | le64_to_cpu(u0->b), | 411 | le64_to_cpu(u0->a), |
409 | (u64)dma_unmap_addr(tx_buffer, dma), | 412 | le64_to_cpu(u0->b), |
410 | dma_unmap_len(tx_buffer, len), | 413 | (u64)dma_unmap_addr(tx_buffer, dma), |
411 | tx_buffer->next_to_watch, | ||
412 | (u64)tx_buffer->time_stamp, | ||
413 | tx_buffer->skb); | ||
414 | if (i == tx_ring->next_to_use && | ||
415 | i == tx_ring->next_to_clean) | ||
416 | pr_cont(" NTC/U\n"); | ||
417 | else if (i == tx_ring->next_to_use) | ||
418 | pr_cont(" NTU\n"); | ||
419 | else if (i == tx_ring->next_to_clean) | ||
420 | pr_cont(" NTC\n"); | ||
421 | else | ||
422 | pr_cont("\n"); | ||
423 | |||
424 | if (netif_msg_pktdata(adapter) && | ||
425 | tx_buffer->skb) | ||
426 | print_hex_dump(KERN_INFO, "", | ||
427 | DUMP_PREFIX_ADDRESS, 16, 1, | ||
428 | tx_buffer->skb->data, | ||
429 | dma_unmap_len(tx_buffer, len), | 414 | dma_unmap_len(tx_buffer, len), |
430 | true); | 415 | tx_buffer->next_to_watch, |
416 | (u64)tx_buffer->time_stamp, | ||
417 | tx_buffer->skb); | ||
418 | if (i == tx_ring->next_to_use && | ||
419 | i == tx_ring->next_to_clean) | ||
420 | pr_cont(" NTC/U\n"); | ||
421 | else if (i == tx_ring->next_to_use) | ||
422 | pr_cont(" NTU\n"); | ||
423 | else if (i == tx_ring->next_to_clean) | ||
424 | pr_cont(" NTC\n"); | ||
425 | else | ||
426 | pr_cont("\n"); | ||
427 | |||
428 | if (netif_msg_pktdata(adapter) && | ||
429 | tx_buffer->skb) | ||
430 | print_hex_dump(KERN_INFO, "", | ||
431 | DUMP_PREFIX_ADDRESS, 16, 1, | ||
432 | tx_buffer->skb->data, | ||
433 | dma_unmap_len(tx_buffer, len), | ||
434 | true); | ||
435 | } | ||
431 | } | 436 | } |
432 | } | 437 | } |
433 | 438 | ||
@@ -497,11 +502,13 @@ rx_ring_summary: | |||
497 | pr_info("------------------------------------\n"); | 502 | pr_info("------------------------------------\n"); |
498 | pr_info("RX QUEUE INDEX = %d\n", rx_ring->queue_index); | 503 | pr_info("RX QUEUE INDEX = %d\n", rx_ring->queue_index); |
499 | pr_info("------------------------------------\n"); | 504 | pr_info("------------------------------------\n"); |
500 | pr_info("R [desc] [ PktBuf A0] " | 505 | pr_info("%s%s%s", |
501 | "[ HeadBuf DD] [bi->dma ] [bi->skb] " | 506 | "R [desc] [ PktBuf A0] ", |
507 | "[ HeadBuf DD] [bi->dma ] [bi->skb ] ", | ||
502 | "<-- Adv Rx Read format\n"); | 508 | "<-- Adv Rx Read format\n"); |
503 | pr_info("RWB[desc] [PcsmIpSHl PtRs] " | 509 | pr_info("%s%s%s", |
504 | "[vl er S cks ln] ---------------- [bi->skb] " | 510 | "RWB[desc] [PcsmIpSHl PtRs] ", |
511 | "[vl er S cks ln] ---------------- [bi->skb ] ", | ||
505 | "<-- Adv Rx Write-Back format\n"); | 512 | "<-- Adv Rx Write-Back format\n"); |
506 | 513 | ||
507 | for (i = 0; i < rx_ring->count; i++) { | 514 | for (i = 0; i < rx_ring->count; i++) { |