* tcp_mark_head_lost warning in Linux kernel 3.10
@ 2014-11-14 22:39 Vinson Lee
2014-11-14 23:00 ` Eric Dumazet
0 siblings, 1 reply; 4+ messages in thread
From: Vinson Lee @ 2014-11-14 22:39 UTC (permalink / raw)
To: David S. Miller, Alexey Kuznetsov, James Morris,
Hideaki YOSHIFUJI, Patrick McHardy
Cc: netdev
Hi.
We hit this networking tcp_mark_head_lost warning in Linux kernel 3.10.
------------[ cut here ]------------
WARNING: at net/ipv4/tcp_input.c:2262 tcp_mark_head_lost+0x1aa/0x1dd()
Modules linked in: netconsole configfs xt_DSCP iptable_mangle
cpufreq_ondemand ipv6 ppdev parport_pc lp parport tcp_diag inet_diag
ipmi_si ipmi_devintf ipmi_msghandler iTCO_wdt iTCO_vendor_support
acpi_cpufreq freq_table mperf coretemp kvm_intel kvm crc32c_intel
ghash_clmulni_intel microcode serio_raw i2c_i801 lpc_ich mfd_core igb
i2c_algo_bit i2c_core ptp pps_core ioatdma dca wmi
CPU: 1 PID: 16561 Not tainted 3.10.50 #1
0000000000000000 ffff88085fc23948 ffffffff814a4094 ffff88085fc23980
ffffffff8103cbf9 0000000000000000 ffff8807b644b200 0000000000000001
ffff880764e1ca40 000000004e9c4970 ffff88085fc23990 ffffffff8103ccbf
Call Trace:
<IRQ> [<ffffffff814a4094>] dump_stack+0x19/0x1b
[<ffffffff8103cbf9>] warn_slowpath_common+0x65/0x7d
[<ffffffff8103ccbf>] warn_slowpath_null+0x1a/0x1c
[<ffffffff81434c61>] tcp_mark_head_lost+0x1aa/0x1dd
[<ffffffff814367fc>] tcp_update_scoreboard+0x4f/0x13f
[<ffffffff81438beb>] tcp_fastretrans_alert+0x736/0x7be
[<ffffffff81439644>] tcp_ack+0x95e/0xb47
[<ffffffff81439be6>] tcp_rcv_established+0xde/0x442
[<ffffffff81442cab>] tcp_v4_do_rcv+0x1e6/0x3e8
[<ffffffff8144371e>] tcp_v4_rcv+0x293/0x52c
[<ffffffff81425e6a>] ? NF_HOOK_THRESH.constprop.11+0x53/0x53
[<ffffffff8142d562>] ? __inet_lookup_listener+0xfa/0x17f
[<ffffffff81425f4a>] ip_local_deliver_finish+0xe0/0x155
[<ffffffff81425e6a>] ? NF_HOOK_THRESH.constprop.11+0x53/0x53
[<ffffffff81425e48>] NF_HOOK_THRESH.constprop.11+0x31/0x53
[<ffffffff814260ef>] ip_local_deliver+0x40/0x52
[<ffffffff81425d50>] ip_rcv_finish+0x274/0x2b6
[<ffffffff81425adc>] ? inet_del_offload+0x3d/0x3d
[<ffffffff81425e48>] NF_HOOK_THRESH.constprop.11+0x31/0x53
[<ffffffff81426324>] ip_rcv+0x223/0x267
[<ffffffff813f76b4>] __netif_receive_skb_core+0x435/0x4a7
[<ffffffff8107bab8>] ? timekeeping_get_ns.constprop.10+0x11/0x36
[<ffffffff813f773e>] __netif_receive_skb+0x18/0x5a
[<ffffffff813f8813>] netif_receive_skb+0x40/0x75
[<ffffffff813f8f94>] napi_gro_receive+0x3e/0x80
[<ffffffffa004a097>] igb_clean_rx_irq+0x67e/0x69e [igb]
[<ffffffffa004a425>] igb_poll+0x36e/0x5b0 [igb]
[<ffffffff813ea49a>] ? __sk_mem_reclaim+0x2f/0x84
[<ffffffff8143ef76>] ? tcp_delack_timer_handler+0x2e/0x19c
[<ffffffff813f8a61>] net_rx_action+0xcf/0x196
[<ffffffff8106870c>] ? sched_clock_cpu+0x42/0xc7
[<ffffffff8104371d>] __do_softirq+0xd5/0x1f4
[<ffffffff814b01bc>] call_softirq+0x1c/0x30
[<ffffffff81003ecd>] do_softirq+0x33/0x6e
[<ffffffff81043931>] irq_exit+0x51/0x93
[<ffffffff814b086e>] do_IRQ+0x8e/0xa5
[<ffffffff814a85aa>] common_interrupt+0x6a/0x6a
<EOI>
---[ end trace 8b2ed2c5c443e39d ]---
net/ipv4/tcp_input.c
2200 /* Detect loss in event "A" above by marking head of queue up as lost.
2201 * For FACK or non-SACK(Reno) senders, the first "packets"
number of segments
2202 * are considered lost. For RFC3517 SACK, a segment is
considered lost if it
2203 * has at least tp->reordering SACKed seqments above it;
"packets" refers to
2204 * the maximum SACKed segments to pass before reaching this limit.
2205 */
2206 static void tcp_mark_head_lost(struct sock *sk, int packets,
int mark_head)
2207 {
[...]
2262 tcp_verify_left_out(tp);
2263 }
include/net/tcp.h
936 /* Use define here intentionally to get WARN_ON location shown
at the caller */
937 #define tcp_verify_left_out(tp) WARN_ON(tcp_left_out(tp) >
tp->packets_out)
Cheers,
Vinson
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: tcp_mark_head_lost warning in Linux kernel 3.10
2014-11-14 22:39 tcp_mark_head_lost warning in Linux kernel 3.10 Vinson Lee
@ 2014-11-14 23:00 ` Eric Dumazet
[not found] ` <CADVnQymD96k6pBmkYHb5G5MAWcRywdgEb2jo-BnNttWeii0u2Q@mail.gmail.com>
0 siblings, 1 reply; 4+ messages in thread
From: Eric Dumazet @ 2014-11-14 23:00 UTC (permalink / raw)
To: Vinson Lee, Neal Cardwell
Cc: David S. Miller, Alexey Kuznetsov, James Morris,
Hideaki YOSHIFUJI, Patrick McHardy, netdev
On Fri, 2014-11-14 at 14:39 -0800, Vinson Lee wrote:
> Hi.
>
> We hit this networking tcp_mark_head_lost warning in Linux kernel 3.10.
>
CC Neal, because he is working on this
> ------------[ cut here ]------------
> WARNING: at net/ipv4/tcp_input.c:2262 tcp_mark_head_lost+0x1aa/0x1dd()
> Modules linked in: netconsole configfs xt_DSCP iptable_mangle
> cpufreq_ondemand ipv6 ppdev parport_pc lp parport tcp_diag inet_diag
> ipmi_si ipmi_devintf ipmi_msghandler iTCO_wdt iTCO_vendor_support
> acpi_cpufreq freq_table mperf coretemp kvm_intel kvm crc32c_intel
> ghash_clmulni_intel microcode serio_raw i2c_i801 lpc_ich mfd_core igb
> i2c_algo_bit i2c_core ptp pps_core ioatdma dca wmi
> CPU: 1 PID: 16561 Not tainted 3.10.50 #1
> 0000000000000000 ffff88085fc23948 ffffffff814a4094 ffff88085fc23980
> ffffffff8103cbf9 0000000000000000 ffff8807b644b200 0000000000000001
> ffff880764e1ca40 000000004e9c4970 ffff88085fc23990 ffffffff8103ccbf
> Call Trace:
> <IRQ> [<ffffffff814a4094>] dump_stack+0x19/0x1b
> [<ffffffff8103cbf9>] warn_slowpath_common+0x65/0x7d
> [<ffffffff8103ccbf>] warn_slowpath_null+0x1a/0x1c
> [<ffffffff81434c61>] tcp_mark_head_lost+0x1aa/0x1dd
> [<ffffffff814367fc>] tcp_update_scoreboard+0x4f/0x13f
> [<ffffffff81438beb>] tcp_fastretrans_alert+0x736/0x7be
> [<ffffffff81439644>] tcp_ack+0x95e/0xb47
> [<ffffffff81439be6>] tcp_rcv_established+0xde/0x442
> [<ffffffff81442cab>] tcp_v4_do_rcv+0x1e6/0x3e8
> [<ffffffff8144371e>] tcp_v4_rcv+0x293/0x52c
> [<ffffffff81425e6a>] ? NF_HOOK_THRESH.constprop.11+0x53/0x53
> [<ffffffff8142d562>] ? __inet_lookup_listener+0xfa/0x17f
> [<ffffffff81425f4a>] ip_local_deliver_finish+0xe0/0x155
> [<ffffffff81425e6a>] ? NF_HOOK_THRESH.constprop.11+0x53/0x53
> [<ffffffff81425e48>] NF_HOOK_THRESH.constprop.11+0x31/0x53
> [<ffffffff814260ef>] ip_local_deliver+0x40/0x52
> [<ffffffff81425d50>] ip_rcv_finish+0x274/0x2b6
> [<ffffffff81425adc>] ? inet_del_offload+0x3d/0x3d
> [<ffffffff81425e48>] NF_HOOK_THRESH.constprop.11+0x31/0x53
> [<ffffffff81426324>] ip_rcv+0x223/0x267
> [<ffffffff813f76b4>] __netif_receive_skb_core+0x435/0x4a7
> [<ffffffff8107bab8>] ? timekeeping_get_ns.constprop.10+0x11/0x36
> [<ffffffff813f773e>] __netif_receive_skb+0x18/0x5a
> [<ffffffff813f8813>] netif_receive_skb+0x40/0x75
> [<ffffffff813f8f94>] napi_gro_receive+0x3e/0x80
> [<ffffffffa004a097>] igb_clean_rx_irq+0x67e/0x69e [igb]
> [<ffffffffa004a425>] igb_poll+0x36e/0x5b0 [igb]
> [<ffffffff813ea49a>] ? __sk_mem_reclaim+0x2f/0x84
> [<ffffffff8143ef76>] ? tcp_delack_timer_handler+0x2e/0x19c
> [<ffffffff813f8a61>] net_rx_action+0xcf/0x196
> [<ffffffff8106870c>] ? sched_clock_cpu+0x42/0xc7
> [<ffffffff8104371d>] __do_softirq+0xd5/0x1f4
> [<ffffffff814b01bc>] call_softirq+0x1c/0x30
> [<ffffffff81003ecd>] do_softirq+0x33/0x6e
> [<ffffffff81043931>] irq_exit+0x51/0x93
> [<ffffffff814b086e>] do_IRQ+0x8e/0xa5
> [<ffffffff814a85aa>] common_interrupt+0x6a/0x6a
> <EOI>
> ---[ end trace 8b2ed2c5c443e39d ]---
>
>
> net/ipv4/tcp_input.c
> 2200 /* Detect loss in event "A" above by marking head of queue up as lost.
> 2201 * For FACK or non-SACK(Reno) senders, the first "packets"
> number of segments
> 2202 * are considered lost. For RFC3517 SACK, a segment is
> considered lost if it
> 2203 * has at least tp->reordering SACKed seqments above it;
> "packets" refers to
> 2204 * the maximum SACKed segments to pass before reaching this limit.
> 2205 */
> 2206 static void tcp_mark_head_lost(struct sock *sk, int packets,
> int mark_head)
> 2207 {
> [...]
> 2262 tcp_verify_left_out(tp);
> 2263 }
>
> include/net/tcp.h
> 936 /* Use define here intentionally to get WARN_ON location shown
> at the caller */
> 937 #define tcp_verify_left_out(tp) WARN_ON(tcp_left_out(tp) >
> tp->packets_out)
>
> Cheers,
> Vinson
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: tcp_mark_head_lost warning in Linux kernel 3.10
[not found] ` <CADVnQymD96k6pBmkYHb5G5MAWcRywdgEb2jo-BnNttWeii0u2Q@mail.gmail.com>
@ 2014-11-15 1:48 ` Vinson Lee
2014-11-15 2:08 ` Neal Cardwell
0 siblings, 1 reply; 4+ messages in thread
From: Vinson Lee @ 2014-11-15 1:48 UTC (permalink / raw)
To: Neal Cardwell
Cc: Eric Dumazet, David S. Miller, Alexey Kuznetsov, James Morris,
Hideaki YOSHIFUJI, Patrick McHardy, Netdev
On Fri, Nov 14, 2014 at 5:36 PM, Neal Cardwell <ncardwell@google.com> wrote:
> Thanks, Vinson. The theory I'm working on involves SACK reneging. What do
> you get from:
>
> nstat -a -z | grep TcpExtTCPSACKReneging
>
$ nstat -a -z | grep TcpExtTCPSACKReneging
TcpExtTCPSACKReneging 184357 0.0
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: tcp_mark_head_lost warning in Linux kernel 3.10
2014-11-15 1:48 ` Vinson Lee
@ 2014-11-15 2:08 ` Neal Cardwell
0 siblings, 0 replies; 4+ messages in thread
From: Neal Cardwell @ 2014-11-15 2:08 UTC (permalink / raw)
To: Vinson Lee
Cc: Eric Dumazet, David S. Miller, Alexey Kuznetsov, James Morris,
Hideaki YOSHIFUJI, Patrick McHardy, Netdev
On Fri, Nov 14, 2014 at 8:48 PM, Vinson Lee <vlee@twopensource.com> wrote:
>
> On Fri, Nov 14, 2014 at 5:36 PM, Neal Cardwell <ncardwell@google.com> wrote:
> > Thanks, Vinson. The theory I'm working on involves SACK reneging. What do
> > you get from:
> >
> > nstat -a -z | grep TcpExtTCPSACKReneging
> >
>
> $ nstat -a -z | grep TcpExtTCPSACKReneging
> TcpExtTCPSACKReneging 184357 0.0
OK, good. So that is at least consistent with the theory. Thanks!
neal
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-11-15 2:08 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-11-14 22:39 tcp_mark_head_lost warning in Linux kernel 3.10 Vinson Lee
2014-11-14 23:00 ` Eric Dumazet
[not found] ` <CADVnQymD96k6pBmkYHb5G5MAWcRywdgEb2jo-BnNttWeii0u2Q@mail.gmail.com>
2014-11-15 1:48 ` Vinson Lee
2014-11-15 2:08 ` Neal Cardwell
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.