Project

General

Profile

Bug #10176

i40e: driving X722 1GbE cause hangup

Added by jing zhang 9 months ago. Updated 9 months ago.

Status:
New
Priority:
High
Assignee:
-
Category:
driver - device drivers
Start date:
2019-01-05
Due date:
% Done:

0%

Estimated time:
Difficulty:
Medium
Tags:
needs-triage

Description

The system hangs up when executing the 'ifconfig i40e0 plumb ... ' command.

The specific phenomenon is that the 'I40E_AQ_FLAG_RD' flag will cause hangup.

for example:
the 'i40e_aq_update_vsi_params' function in i40e_common.c will cause hangup.

2493 enum i40e_status_code i40e_aq_update_vsi_params(struct i40e_hw *hw,
2494                                 struct i40e_vsi_context *vsi_ctx,
2495                                 struct i40e_asq_cmd_details *cmd_details)
2496 {
2497         struct i40e_aq_desc desc;
2498         struct i40e_aqc_add_get_update_vsi *cmd =
2499                 (struct i40e_aqc_add_get_update_vsi *)&desc.params.raw;
2500         struct i40e_aqc_add_get_update_vsi_completion *resp =
2501                 (struct i40e_aqc_add_get_update_vsi_completion *)
2502                 &desc.params.raw;
2503         enum i40e_status_code status;
2504
2505         i40e_fill_default_direct_cmd_desc(&desc,
2506                                           i40e_aqc_opc_update_vsi_parameters);
2507         cmd->uplink_seid = CPU_TO_LE16(vsi_ctx->seid);
2508
2509         desc.flags |= CPU_TO_LE16((u16)(I40E_AQ_FLAG_BUF | I40E_AQ_FLAG_RD));
2510
2511         status = i40e_asq_send_command(hw, &desc, &vsi_ctx->info,
2512                                     sizeof(vsi_ctx->info), cmd_details);
2513
2514         vsi_ctx->vsis_allocated = LE16_TO_CPU(resp->vsi_used);
2515         vsi_ctx->vsis_unallocated = LE16_TO_CPU(resp->vsi_free);
2516
2517         return status;
2518 }

the 'i40e_aq_mac_address_read' function in i40e_common.c will not cause hangup.

1012 static enum i40e_status_code i40e_aq_mac_address_read(struct i40e_hw *hw,
1013                                    u16 *flags,
1014                                    struct i40e_aqc_mac_address_read_data *addrs,
1015                                    struct i40e_asq_cmd_details *cmd_details)
1016 {
1017         struct i40e_aq_desc desc;
1018         struct i40e_aqc_mac_address_read *cmd_data =
1019                 (struct i40e_aqc_mac_address_read *)&desc.params.raw;
1020         enum i40e_status_code status;
1021
1022         i40e_fill_default_direct_cmd_desc(&desc, i40e_aqc_opc_mac_address_read);
1023         desc.flags |= CPU_TO_LE16(I40E_AQ_FLAG_BUF);
1024
1025         status = i40e_asq_send_command(hw, &desc, addrs,
1026                                        sizeof(*addrs), cmd_details);
1027         *flags = LE16_TO_CPU(cmd_data->command_flags);
1028
1029         return status;
1030 }

Device info:

pci bus 0x003d cardnum 0x00 function 0x02: vendor 0x8086 device 0x37d1
 Intel Corporation Ethernet Connection X722 for 1GbE

firmware version : 3.1.57069

cpu:

ID    SIZE TYPE
102   122  SMB_TYPE_PROCESSOR (type 4) (processor)
  Manufacturer: Intel(R) Corporation
  Version: Intel(R) Xeon(R) Gold 5120 CPU @ 2.20GHz
  Asset Tag: UNKNOWN
  Location Tag: CPU0

  Family: 179 (Intel Xeon)
  Family Ext: 179 (Intel Xeon)
  CPUID: 0xbfebfbff00050654
  Type: 3 (central processor)
  Socket Upgrade: 1 (other)
  Socket Status: Populated
  Processor Status: 1 (enabled)
  Supported Voltages: 1.6V
  Core Count: 14
  Cores Enabled: 14
  Thread Count: 28
  Processor Characteristics: 0xfc
    SMB_PRC_64BIT (64-bit capable)
    SMB_PRC_MC (multi-core)
    SMB_PRC_HT (hardware thread)
    SMB_PRC_NX (execution protection)
    SMB_PRC_VT (enhanced virtualization)
    SMB_PRC_PM (power/performance control)
  External Clock Speed: Unknown
  Maximum Speed: 4000MHz
  Current Speed: 2200MHz
     L1 Cache: 99
     L2 Cache: 100
     L3 Cache: 101

ID    SIZE TYPE
106   122  SMB_TYPE_PROCESSOR (type 4) (processor)

  Manufacturer: Intel(R) Corporation
  Version: Intel(R) Xeon(R) Gold 5120 CPU @ 2.20GHz
  Asset Tag: UNKNOWN
  Location Tag: CPU1

  Family: 179 (Intel Xeon)
  Family Ext: 179 (Intel Xeon)
  CPUID: 0xbfebfbff00050654
  Type: 3 (central processor)
  Socket Upgrade: 1 (other)
  Socket Status: Populated
  Processor Status: 1 (enabled)
  Supported Voltages: 1.6V
  Core Count: 14
  Cores Enabled: 14
  Thread Count: 28
  Processor Characteristics: 0xfc
    SMB_PRC_64BIT (64-bit capable)
    SMB_PRC_MC (multi-core)
    SMB_PRC_HT (hardware thread)
    SMB_PRC_NX (execution protection)
    SMB_PRC_VT (enhanced virtualization)
    SMB_PRC_PM (power/performance control)
  External Clock Speed: Unknown
  Maximum Speed: 4000MHz
  Current Speed: 2200MHz
     L1 Cache: 103
     L2 Cache: 104
     L3 Cache: 105

motherboard:

ID    SIZE TYPE
2     142  SMB_TYPE_BASEBOARD (type 2) (base board)

  Manufacturer: Sugon
  Product: 60P16-US
  Version: 24001540
  Serial Number: 2400154000100732
  Asset Tag:                                                                
  Location Tag: To Be Filled By O.E.M.

  Chassis: 3
  Flags: 0x9
    SMB_BBFL_MOTHERBOARD (board is a motherboard)
    SMB_BBFL_REPLACABLE (board is field-replacable)
  Board Type: 0xa (motherboard)


Related issues

Related to illumos gate - Bug #9601: Divide by zero in i40e_get_available_resources()In Progress2018-06-14

Actions

History

#1

Updated by Marcel Telka 9 months ago

  • Category set to driver - device drivers
#2

Updated by Marcel Telka 9 months ago

  • Related to Bug #9601: Divide by zero in i40e_get_available_resources() added

Also available in: Atom PDF