junjunk2 Опубликовано 11 марта, 2015 · Жалоба а кто-нибудь 3.18 в продакшене с ixgbe использовал? у меня просто на тест нормально отработал, а когда трафик приблизился к 2Гбит началось вот такое Mar 3 20:12:33 nat3 kernel: NMI watchdog: BUG: soft lockup - CPU#0 stuck for 23s! [rcuos/1:18] Mar 3 20:12:33 nat3 kernel: NMI watchdog: BUG: soft lockup - CPU#1 stuck for 22s! [rcuos/2:25] Mar 3 20:12:33 nat3 kernel: Modules linked in: 8021q garp stp llc ts_bm xt_string xt_addrtype iptable_filter xt_nat iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat ip_tables ip6t_REJECT nf_reject_ipv6 nf_conntrack_ipv6 nf_defrag_ipv6 xt_state nf_conntrack ip6table_filter ip6_tables ipv6 ppdev iTCO_wdt iTCO_vendor_support pcspkr 8250_fintek parport_pc parport ipmi_si ipmi_msghandler tpm_infineon i2c_i801 sg lpc_ich e1000e ixgbe(O) hwmon ptp pps_core dca ie31200_edac edac_core ext4 jbd2 mbcache sd_mod ahci libahci video ast ttm drm_kms_helper sysimgblt sysfillrect syscopyarea dm_mirror dm_region_hash dm_log dm_mod Mar 3 20:12:33 nat3 kernel: CPU: 1 PID: 25 Comm: rcuos/2 Tainted: G O L 3.18.6-1.el6.elrepo.x86_64 #1 Mar 3 20:12:33 nat3 kernel: Hardware name: ASUSTek Computer INC. RS100-X7/P8B-X series, BIOS 6702 07/23/2013 Mar 3 20:12:33 nat3 kernel: task: ffff880224fcd0d0 ti: ffff880224858000 task.ti: ffff880224858000 Mar 3 20:12:33 nat3 kernel: RIP: 0010:[<ffffffff8166bc32>] [<ffffffff8166bc32>] _raw_spin_unlock_irqrestore+0x12/0x20 Mar 3 20:12:33 nat3 kernel: RSP: 0018:ffff88022fc83d88 EFLAGS: 00000282 Mar 3 20:12:33 nat3 kernel: RAX: 0000000000000001 RBX: 0000000000000086 RCX: ffff88022fc80000 Mar 3 20:12:33 nat3 kernel: RDX: 0000000000000001 RSI: 0000000000000282 RDI: 0000000000000282 Mar 3 20:12:33 nat3 kernel: RBP: ffff88022fc83d88 R08: ffff88021b83df40 R09: dead000000200200 Mar 3 20:12:33 nat3 kernel: R10: 0000000000000000 R11: 0000000000000003 R12: ffff88022fc83cf8 Mar 3 20:12:33 nat3 kernel: R13: ffffffff8166d3fd R14: ffff88022fc83d88 R15: ffff8800c8a5b2c0 Mar 3 20:12:33 nat3 kernel: FS: 0000000000000000(0000) GS:ffff88022fc80000(0000) knlGS:0000000000000000 Mar 3 20:12:33 nat3 kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 Mar 3 20:12:33 nat3 kernel: CR2: ffffffffff600400 CR3: 000000021c75c000 CR4: 00000000001407e0 Mar 3 20:12:33 nat3 kernel: Stack: Mar 3 20:12:33 nat3 kernel: ffff88022fc83db8 ffffffff8156e1ba ffff88021a467840 0000000000000000 Mar 3 20:12:33 nat3 kernel: 00000000000fcf04 ffff8800c8a5b2e8 ffff88022fc83e08 ffffffff815706c5 Mar 3 20:12:33 nat3 kernel: 00000000000fcf04 ffff88022f0254c0 ffff8800c9a64300 ffffc9001153ad60 Mar 3 20:12:33 nat3 kernel: Call Trace: Mar 3 20:12:33 nat3 kernel: <IRQ> Mar 3 20:12:33 nat3 kernel: [<ffffffff8156e1ba>] add_unmap+0xca/0xf0 Mar 3 20:12:33 nat3 kernel: [<ffffffff815706c5>] intel_unmap+0xb5/0x140 Mar 3 20:12:33 nat3 kernel: [<ffffffff8157077e>] intel_unmap_page+0xe/0x10 Mar 3 20:12:33 nat3 kernel: [<ffffffffa0193f4d>] ixgbe_clean_tx_irq+0x14d/0x480 [ixgbe] Mar 3 20:12:33 nat3 kernel: [<ffffffff8159ba9c>] ? napi_gro_complete+0xac/0xf0 Mar 3 20:12:33 nat3 kernel: [<ffffffffa0195203>] ixgbe_poll+0x53/0x220 [ixgbe] Mar 3 20:12:33 nat3 kernel: [<ffffffff8159c082>] net_rx_action+0x112/0x2a0 Mar 3 20:12:33 nat3 kernel: [<ffffffff810769fc>] __do_softirq+0xfc/0x2b0 Mar 3 20:12:33 nat3 kernel: [<ffffffff8166e0bc>] do_softirq_own_stack+0x1c/0x30 Mar 3 20:12:33 nat3 kernel: <EOI> Mar 3 20:12:33 nat3 kernel: [<ffffffff810764c5>] do_softirq+0x55/0x60 Mar 3 20:12:33 nat3 kernel: [<ffffffff810765b1>] __local_bh_enable_ip+0x91/0xa0 Mar 3 20:12:33 nat3 kernel: [<ffffffff810d3392>] rcu_nocb_kthread+0x132/0x1c0 Mar 3 20:12:33 nat3 kernel: [<ffffffff810d3260>] ? __rcu_process_callbacks+0x1b0/0x1b0 Mar 3 20:12:33 nat3 kernel: [<ffffffff8109023e>] kthread+0xce/0xf0 Mar 3 20:12:33 nat3 kernel: [<ffffffff81090170>] ? kthread_freezable_should_stop+0x70/0x70 Mar 3 20:12:33 nat3 kernel: [<ffffffff8166c4bc>] ret_from_fork+0x7c/0xb0 Mar 3 20:12:33 nat3 kernel: [<ffffffff81090170>] ? kthread_freezable_should_stop+0x70/0x70 Mar 3 20:12:33 nat3 kernel: Code: d0 f0 0f b1 0f 39 c2 75 e5 b8 01 00 00 00 c9 c3 66 0f 1f 84 00 00 00 00 00 55 48 89 e5 0f 1f 44 00 00 66 83 07 01 48 89 f7 57 9d <0f> 1f 44 00 00 c9 c3 0f 1f 80 00 00 00 00 55 48 89 e5 0f 1f 44 Mar 3 20:12:33 nat3 kernel: Modules linked in: 8021q garp stp llc ts_bm xt_string xt_addrtype iptable_filter xt_nat iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat ip_tables ip6t_REJECT nf_reject_ipv6 nf_conntrack_ipv6 nf_defrag_ipv6 xt_state nf_conntrack ip6table_filter ip6_tables ipv6 ppdev iTCO_wdt iTCO_vendor_support pcspkr 8250_fintek parport_pc parport ipmi_si ipmi_msghandler tpm_infineon i2c_i801 sg lpc_ich e1000e ixgbe(O) hwmon ptp pps_core dca ie31200_edac edac_core ext4 jbd2 mbcache sd_mod ahci libahci video ast ttm drm_kms_helper sysimgblt sysfillrect syscopyarea dm_mirror dm_region_hash dm_log dm_mod Mar 3 20:12:33 nat3 kernel: CPU: 0 PID: 18 Comm: rcuos/1 Tainted: G O L 3.18.6-1.el6.elrepo.x86_64 #1 Mar 3 20:12:33 nat3 kernel: Hardware name: ASUSTek Computer INC. RS100-X7/P8B-X series, BIOS 6702 07/23/2013 Mar 3 20:12:33 nat3 kernel: task: ffff880224f29090 ti: ffff880224fac000 task.ti: ffff880224fac000 Mar 3 20:12:33 nat3 kernel: RIP: 0010:[<ffffffff8166bc32>] [<ffffffff8166bc32>] _raw_spin_unlock_irqrestore+0x12/0x20 Mar 3 20:12:33 nat3 kernel: RSP: 0018:ffff88022fc03658 EFLAGS: 00000292 Mar 3 20:12:33 nat3 kernel: RAX: ffff880222741181 RBX: 0000000000000001 RCX: 00000000000faf72 Mar 3 20:12:33 nat3 kernel: RDX: ffff88021b887ac0 RSI: 0000000000000292 RDI: 0000000000000292 Mar 3 20:12:33 nat3 kernel: RBP: ffff88022fc03658 R08: 0000000000000001 R09: 6db6db6db6db6db7 Mar 3 20:12:33 nat3 kernel: R10: 0000000000000001 R11: 0000000000000038 R12: ffff88022fc035c8 Mar 3 20:12:33 nat3 kernel: R13: ffffffff8166d3fd R14: ffff88022fc03658 R15: ffff8800c8a5b2e8 Mar 3 20:12:33 nat3 kernel: FS: 0000000000000000(0000) GS:ffff88022fc00000(0000) knlGS:0000000000000000 Mar 3 20:12:33 nat3 kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 Mar 3 20:12:33 nat3 kernel: CR2: 00007fff3d2e2e68 CR3: 000000021e4a3000 CR4: 00000000001407f0 Mar 3 20:12:33 nat3 kernel: Stack: Mar 3 20:12:33 nat3 kernel: ffff88022fc036c8 ffffffff8156b47f 00000000000faf72 0100000000000246 Mar 3 20:12:33 nat3 kernel: 0000000000000292 0000000000000040 ffff8800c8890000 ffff8800cec48100 Mar 3 20:12:33 nat3 kernel: ffff8800c8a5b2e8 ffff88021c15c180 ffff8800c8a5b2e8 0000000000000001 Mar 3 20:12:33 nat3 kernel: Call Trace: Mar 3 20:12:33 nat3 kernel: <IRQ> Mar 3 20:12:33 nat3 kernel: [<ffffffff8156b47f>] __alloc_and_insert_iova_range+0x17f/0x1f0 Mar 3 20:12:33 nat3 kernel: [<ffffffff8156b544>] alloc_iova+0x54/0xb0 Mar 3 20:12:33 nat3 kernel: [<ffffffff8156dc45>] intel_alloc_iova+0xb5/0xf0 Mar 3 20:12:33 nat3 kernel: [<ffffffff81570ff7>] __intel_map_single+0xb7/0x230 Mar 3 20:12:33 nat3 kernel: [<ffffffff815711b7>] intel_map_page+0x47/0x50 Mar 3 20:12:33 nat3 kernel: [<ffffffffa0195f38>] ixgbe_tx_map+0x378/0x460 [ixgbe] Mar 3 20:12:33 nat3 kernel: [<ffffffffa019630f>] ixgbe_xmit_frame_ring+0x2ef/0x690 [ixgbe] Mar 3 20:12:33 nat3 kernel: [<ffffffffa0196707>] ixgbe_xmit_frame+0x57/0xb0 [ixgbe] Mar 3 20:12:33 nat3 kernel: [<ffffffff8159ad72>] xmit_one+0x72/0x120 Mar 3 20:12:33 nat3 kernel: [<ffffffff8159ae70>] dev_hard_start_xmit+0x50/0xa0 Mar 3 20:12:33 nat3 kernel: [<ffffffff815bd8e2>] sch_direct_xmit+0x102/0x200 Mar 3 20:12:33 nat3 kernel: [<ffffffff8159cdb2>] __dev_queue_xmit+0x1e2/0x5a0 Mar 3 20:12:33 nat3 kernel: [<ffffffff8159d190>] dev_queue_xmit+0x10/0x20 Mar 3 20:12:33 nat3 kernel: [<ffffffffa0363a40>] vlan_dev_hard_start_xmit+0xa0/0x140 [8021q] Mar 3 20:12:33 nat3 kernel: [<ffffffff8159ad72>] xmit_one+0x72/0x120 Mar 3 20:12:33 nat3 kernel: [<ffffffff8159ae70>] dev_hard_start_xmit+0x50/0xa0 Mar 3 20:12:33 nat3 kernel: [<ffffffff8159d05a>] __dev_queue_xmit+0x48a/0x5a0 Mar 3 20:12:33 nat3 kernel: [<ffffffffa03267c1>] ? nf_nat_ipv4_fn+0xd1/0x220 [nf_nat_ipv4] Mar 3 20:12:33 nat3 kernel: [<ffffffff8159d190>] dev_queue_xmit+0x10/0x20 Mar 3 20:12:33 nat3 kernel: [<ffffffff815a4e4b>] neigh_connected_output+0xdb/0x130 Mar 3 20:12:33 nat3 kernel: [<ffffffff815dcef5>] ip_finish_output_gso+0x385/0x470 Mar 3 20:12:33 nat3 kernel: [<ffffffff815dcfe0>] ? ip_finish_output_gso+0x470/0x470 Mar 3 20:12:33 nat3 kernel: [<ffffffff815dd298>] ip_finish_output+0x2b8/0x430 Mar 3 20:12:33 nat3 kernel: [<ffffffff815dd6e0>] ip_output+0x90/0xa0 Mar 3 20:12:33 nat3 kernel: [<ffffffff815d7e39>] ip_forward_finish+0x69/0x80 Mar 3 20:12:33 nat3 kernel: [<ffffffff815d813d>] ip_forward+0x2ed/0x490 Mar 3 20:12:33 nat3 kernel: [<ffffffff815d5f09>] ip_rcv_finish+0x119/0x380 Mar 3 20:12:33 nat3 kernel: [<ffffffff815d657f>] ip_rcv+0x2cf/0x3b0 Mar 3 20:12:33 nat3 kernel: [<ffffffff8159b524>] __netif_receive_skb_core+0x4b4/0x640 Mar 3 20:12:33 nat3 kernel: [<ffffffff8159b6d7>] __netif_receive_skb+0x27/0x70 Mar 3 20:12:33 nat3 kernel: [<ffffffff8159b92d>] netif_receive_skb_internal+0x2d/0x90 Mar 3 20:12:33 nat3 kernel: [<ffffffffa019187a>] ? ixgbe_rx_skb+0x5a/0x120 [ixgbe] Mar 3 20:12:33 nat3 kernel: [<ffffffff8159ba9c>] napi_gro_complete+0xac/0xf0 Mar 3 20:12:33 nat3 kernel: [<ffffffff8159bee2>] napi_gro_flush+0x62/0x90 Mar 3 20:12:33 nat3 kernel: [<ffffffffa01952a4>] ixgbe_poll+0xf4/0x220 [ixgbe] Mar 3 20:12:33 nat3 kernel: [<ffffffff8159c082>] net_rx_action+0x112/0x2a0 Mar 3 20:12:33 nat3 kernel: [<ffffffff810769fc>] __do_softirq+0xfc/0x2b0 Mar 3 20:12:33 nat3 kernel: [<ffffffff8166e0bc>] do_softirq_own_stack+0x1c/0x30 Mar 3 20:12:33 nat3 kernel: <EOI> Mar 3 20:12:33 nat3 kernel: [<ffffffff810764c5>] do_softirq+0x55/0x60 Mar 3 20:12:33 nat3 kernel: [<ffffffff810765b1>] __local_bh_enable_ip+0x91/0xa0 Mar 3 20:12:33 nat3 kernel: [<ffffffff810d3392>] rcu_nocb_kthread+0x132/0x1c0 Mar 3 20:12:33 nat3 kernel: [<ffffffff810d3260>] ? __rcu_process_callbacks+0x1b0/0x1b0 Mar 3 20:12:33 nat3 kernel: [<ffffffff8109023e>] kthread+0xce/0xf0 Mar 3 20:12:33 nat3 kernel: [<ffffffff81090170>] ? kthread_freezable_should_stop+0x70/0x70 Mar 3 20:12:33 nat3 kernel: [<ffffffff8166c4bc>] ret_from_fork+0x7c/0xb0 Mar 3 20:12:33 nat3 kernel: [<ffffffff81090170>] ? kthread_freezable_should_stop+0x70/0x70 Mar 3 20:12:33 nat3 kernel: Code: d0 f0 0f b1 0f 39 c2 75 e5 b8 01 00 00 00 c9 c3 66 0f 1f 84 00 00 00 00 00 55 48 89 e5 0f 1f 44 00 00 66 83 07 01 48 89 f7 57 9d <0f> 1f 44 00 00 c9 c3 0f 1f 80 00 00 00 00 55 48 89 e5 0f 1f 44 Mar 3 20:12:33 nat3 kernel: NMI watchdog: BUG: soft lockup - CPU#3 stuck for 23s! [rcuos/0:9] Mar 3 20:12:33 nat3 kernel: Modules linked in: 8021q garp stp llc ts_bm xt_string xt_addrtype iptable_filter xt_nat iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat ip_tables ip6t_REJECT nf_reject_ipv6 nf_conntrack_ipv6 nf_defrag_ipv6 xt_state nf_conntrack ip6table_filter ip6_tables ipv6 ppdev iTCO_wdt iTCO_vendor_support pcspkr 8250_fintek parport_pc parport ipmi_si ipmi_msghandler tpm_infineon i2c_i801 sg lpc_ich e1000e ixgbe(O) hwmon ptp pps_core dca ie31200_edac edac_core ext4 jbd2 mbcache sd_mod ahci libahci video ast ttm drm_kms_helper sysimgblt sysfillrect syscopyarea dm_mirror dm_region_hash dm_log dm_mod Mar 3 20:12:33 nat3 kernel: CPU: 3 PID: 9 Comm: rcuos/0 Tainted: G O L 3.18.6-1.el6.elrepo.x86_64 #1 Mar 3 20:12:33 nat3 kernel: Hardware name: ASUSTek Computer INC. RS100-X7/P8B-X series, BIOS 6702 07/23/2013 Mar 3 20:12:33 nat3 kernel: task: ffff880224dca090 ti: ffff880224f08000 task.ti: ffff880224f08000 Mar 3 20:12:33 nat3 kernel: RIP: 0010:[<ffffffff8166bc32>] [<ffffffff8166bc32>] _raw_spin_unlock_irqrestore+0x12/0x20 Mar 3 20:12:33 nat3 kernel: RSP: 0018:ffff88022fd83d88 EFLAGS: 00000282 Mar 3 20:12:33 nat3 kernel: RAX: 0000000000000001 RBX: 0000000000000086 RCX: ffff88022fd80000 Mar 3 20:12:33 nat3 kernel: RDX: 0000000000000003 RSI: 0000000000000282 RDI: 0000000000000282 Mar 3 20:12:33 nat3 kernel: RBP: ffff88022fd83d88 R08: 0000000000000000 R09: dead000000200200 Mar 3 20:12:33 nat3 kernel: R10: 0000000000000000 R11: 0000000000000003 R12: ffff88022fd83cf8 Mar 3 20:12:33 nat3 kernel: R13: ffffffff8166d3fd R14: ffff88022fd83d88 R15: ffff8800c8a5b2c0 Mar 3 20:12:33 nat3 kernel: FS: 0000000000000000(0000) GS:ffff88022fd80000(0000) knlGS:0000000000000000 Mar 3 20:12:33 nat3 kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 Mar 3 20:12:33 nat3 kernel: CR2: 00007f034d32b000 CR3: 000000021c688000 CR4: 00000000001407e0 Mar 3 20:12:33 nat3 kernel: Stack: Mar 3 20:12:33 nat3 kernel: ffff88022fd83db8 ffffffff8156e1ba ffff8800c96bc4c0 0000000000000000 Mar 3 20:12:33 nat3 kernel: 00000000000fb0ca ffff8800c8a5b2e8 ffff88022fd83e08 ffffffff815706c5 Mar 3 20:12:33 nat3 kernel: 00000000000fb0ca ffff88022f0254c0 ffff8800c8882300 ffffc900115a3510 Mar 3 20:12:33 nat3 kernel: Call Trace: Mar 3 20:12:33 nat3 kernel: <IRQ> Mar 3 20:12:33 nat3 kernel: [<ffffffff8156e1ba>] add_unmap+0xca/0xf0 Mar 3 20:12:33 nat3 kernel: [<ffffffff815706c5>] intel_unmap+0xb5/0x140 Mar 3 20:12:33 nat3 kernel: [<ffffffff8157077e>] intel_unmap_page+0xe/0x10 Mar 3 20:12:33 nat3 kernel: [<ffffffffa0193eea>] ixgbe_clean_tx_irq+0xea/0x480 [ixgbe] Mar 3 20:12:33 nat3 kernel: [<ffffffff8159ba9c>] ? napi_gro_complete+0xac/0xf0 Mar 3 20:12:33 nat3 kernel: [<ffffffffa0195203>] ixgbe_poll+0x53/0x220 [ixgbe] Mar 3 20:12:33 nat3 kernel: [<ffffffff8159c082>] net_rx_action+0x112/0x2a0 Mar 3 20:12:33 nat3 kernel: [<ffffffff810769fc>] __do_softirq+0xfc/0x2b0 Mar 3 20:12:33 nat3 kernel: [<ffffffff8166e0bc>] do_softirq_own_stack+0x1c/0x30 Mar 3 20:12:33 nat3 kernel: <EOI> Mar 3 20:12:33 nat3 kernel: [<ffffffff810764c5>] do_softirq+0x55/0x60 Mar 3 20:12:33 nat3 kernel: [<ffffffff810765b1>] __local_bh_enable_ip+0x91/0xa0 Mar 3 20:12:33 nat3 kernel: [<ffffffff810d3392>] rcu_nocb_kthread+0x132/0x1c0 Mar 3 20:12:33 nat3 kernel: [<ffffffff810d3260>] ? __rcu_process_callbacks+0x1b0/0x1b0 Mar 3 20:12:33 nat3 kernel: [<ffffffff8109023e>] kthread+0xce/0xf0 Mar 3 20:12:33 nat3 kernel: [<ffffffff81090170>] ? kthread_freezable_should_stop+0x70/0x70 Mar 3 20:12:33 nat3 kernel: [<ffffffff8166c4bc>] ret_from_fork+0x7c/0xb0 Mar 3 20:12:33 nat3 kernel: [<ffffffff81090170>] ? kthread_freezable_should_stop+0x70/0x70 Mar 3 20:12:33 nat3 kernel: Code: d0 f0 0f b1 0f 39 c2 75 e5 b8 01 00 00 00 c9 c3 66 0f 1f 84 00 00 00 00 00 55 48 89 e5 0f 1f 44 00 00 66 83 07 01 48 89 f7 57 9d <0f> 1f 44 00 00 c9 c3 0f 1f 80 00 00 00 00 55 48 89 e5 0f 1f 44 Версия драйвера 3.23.2 На этом же железе с таким же драйвером но с последним CentOS 6 ядром всё работает Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Igor Diakonov Опубликовано 16 марта, 2015 · Жалоба alloc_and_insert_iova_range iommu? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
junjunk2 Опубликовано 19 марта, 2015 (изменено) · Жалоба Igor Diakonov а вот подробнее чуть можно? как-то не совсем понятно просто. Поясню чуть - на этом железе нет виртуальных машин, соответственно никаких аппаратных пробросов нет. Машинка занимается чисто натом. VT-d в биос скорее всего включена Изменено 19 марта, 2015 пользователем junjunk2 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 19 марта, 2015 · Жалоба iommu в некоторых конфигурациях сильно снижает производительность. Выключается параметром ядра Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
junjunk2 Опубликовано 20 марта, 2015 · Жалоба И приводит к вот такому поведению? То, что просто снижает производительность - да и как бы ладно. Почему при этом крашимся? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 20 марта, 2015 · Жалоба Почему при этом крашимся? поскольку у вас ядро актуальное, то вам надо писать этот вопрос в netdev@, а не на nag.ru Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
sexst Опубликовано 25 марта, 2015 · Жалоба Производительность повышена за счёт организации групповых операций блокировки очереди, а также заполнения/очистки очереди и взаимодействия с драйвером сетевой карты не на уровне отдельных пакетов, а манипулируя порциями пакетов. Не читайте opennet...читайте оригинальную статью. the process of validating packets for transmission could be moved outside of the queue lock entirely, increasing concurrency in the system. The resulting patch had benefits that Eric described as awesome: full 40Gb/sec wire speed, even in the absence of segmentation offload. Needless to say, this patch, too, has been accepted into the net-next tree for the 3.18 merge window. Патч http://lwn.net/Articles/615243/ вроде как отношения к дровам вообще не имеет - затрагивает только само ядро. Там вообще-то два существенных изменения: 1) В интерфейс для драйвера сетевой добавили флаг xmit_more, который говорит что ядро ВОТПРЯМЩАС готово отдать еще порцию данных на передачу. Соответственно переписанные драйвера смогут заполнить весь буфер сетевой карты не отпуская блокировку. Профит в исключении лишних операций блокировки (пара десятков ns на каждую блокировку/разблокировку). В итоге в операциях с кучей мелких пакетов существенный прирост производительности. 2) Таки реально вынесли валидацию пакетов за пределы этой блокировки. В итоге профит для многопроцессорных систем в исключении простаивания ядер процессора в ожидании - пока висит блокировка, можно пакеты пока обрабатывать и в очередь складывать. Еще попилили что-то связанное с возвратом пакетов в очередь, если они не влезли в буфер сетевой. Это вообще дорогостоящая операция, но я пока не почитал что именно сделали. На самом деле на реальном трафике профита как-то немного, все их десятки гигабит были получены на специально допиленном pktgen'е. Ну и вангую что первое изменение в грядущем на первое время грозит многочисленными факапами с драйверами и неиллюзорно вообще падением производительности - хрен его знает, влезет ли следующая порция данных вообще в буфер, и не придется ли возвращать ее в очередь. Пруфы: http://lwn.net/Articles/615238/ Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pavel.odintsov Опубликовано 25 марта, 2015 · Жалоба В какое полезное обсуждение вылилась тема! Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
junjunk2 Опубликовано 28 марта, 2015 (изменено) · Жалоба На ядре 3.19.3 с допиленным драйвером ixgbe (packet batch) наблюдаю вот такую картину: Эпизодически нагрузка на всех ядрах становится 100%, всё занято ksoftird/d perf top собирает вот такое: Samples: 1M of event 'cycles', Event count (approx.): 157139141749 Overhead Shared Object Symbol 48,95% [kernel] [k] _raw_spin_lock_irqsave 10,71% [kernel] [k] rb_prev 4,21% [kernel] [k] __alloc_and_insert_iova_range 2,35% [kernel] [k] clflush_cache_range 1,55% [kernel] [k] iova_get_pad_size 1,27% [kernel] [k] fib_table_lookup 1,17% [kernel] [k] find_iova Изменено 29 марта, 2015 пользователем junjunk2 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
junjunk2 Опубликовано 29 марта, 2015 · Жалоба Избавился я от нагрузки. Действительно, просто отключение iommu возвращает всё в норму. Вопрос по последним патчам - а насколько вообще это работоспособно? it will only work with queuing disciplines that have a single transmit queue - это как понимать? если у меня на интерфейсе вланы накинуты - тут уже не одна очередь на отправку, соответственно работать не будет? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
junjunk2 Опубликовано 29 марта, 2015 · Жалоба Ну и вангую что первое изменение в грядущем на первое время грозит многочисленными факапами с драйверами и неиллюзорно вообще падением производительности - хрен его знает, влезет ли следующая порция данных вообще в буфер, и не придется ли возвращать ее в очередь Я просмотрел код драйверов, где участвует xmit_more - везде эти моменты учтены. Хотя не везде красиво - у intel'овских драйверов будет счетчик tx_restart_queue подниматься, в случае если напихают "под завязку". Аналогично и у некоторых других. Но факт в том, что проверяют везде, а не тупо ждут следующего пакета. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...