All of lore.kernel.org
 help / color / mirror / Atom feed
From: Willy Tarreau <w@1wt.eu>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org, linux@roeck-us.net
Cc: Neal Cardwell <ncardwell@google.com>,
	Yuchung Cheng <ycheng@google.com>,
	Nandita Dukkipati <nanditad@google.com>, Willy Tarreau <w@1wt.eu>
Subject: [PATCH 3.10 010/139] tcp: fix xmit timer to only be reset if data ACKed/SACKed
Date: Wed,  1 Nov 2017 22:17:10 +0100	[thread overview]
Message-ID: <1509571159-4405-11-git-send-email-w@1wt.eu> (raw)
In-Reply-To: <1509571159-4405-1-git-send-email-w@1wt.eu>

From: Neal Cardwell <ncardwell@google.com>

commit df92c8394e6ea0469e8056946ef8add740ab8046 upstream.

Fix a TCP loss recovery performance bug raised recently on the netdev
list, in two threads:

(i)  July 26, 2017: netdev thread "TCP fast retransmit issues"
(ii) July 26, 2017: netdev thread:
     "[PATCH V2 net-next] TLP: Don't reschedule PTO when there's one
     outstanding TLP retransmission"

The basic problem is that incoming TCP packets that did not indicate
forward progress could cause the xmit timer (TLP or RTO) to be rearmed
and pushed back in time. In certain corner cases this could result in
the following problems noted in these threads:

 - Repeated ACKs coming in with bogus SACKs corrupted by middleboxes
   could cause TCP to repeatedly schedule TLPs forever. We kept
   sending TLPs after every ~200ms, which elicited bogus SACKs, which
   caused more TLPs, ad infinitum; we never fired an RTO to fill in
   the holes.

 - Incoming data segments could, in some cases, cause us to reschedule
   our RTO or TLP timer further out in time, for no good reason. This
   could cause repeated inbound data to result in stalls in outbound
   data, in the presence of packet loss.

This commit fixes these bugs by changing the TLP and RTO ACK
processing to:

 (a) Only reschedule the xmit timer once per ACK.

 (b) Only reschedule the xmit timer if tcp_clean_rtx_queue() deems the
     ACK indicates sufficient forward progress (a packet was
     cumulatively ACKed, or we got a SACK for a packet that was sent
     before the most recent retransmit of the write queue head).

This brings us back into closer compliance with the RFCs, since, as
the comment for tcp_rearm_rto() notes, we should only restart the RTO
timer after forward progress on the connection. Previously we were
restarting the xmit timer even in these cases where there was no
forward progress.

As a side benefit, this commit simplifies and speeds up the TCP timer
arming logic. We had been calling inet_csk_reset_xmit_timer() three
times on normal ACKs that cumulatively acknowledged some data:

1) Once near the top of tcp_ack() to switch from TLP timer to RTO:
        if (icsk->icsk_pending == ICSK_TIME_LOSS_PROBE)
               tcp_rearm_rto(sk);

2) Once in tcp_clean_rtx_queue(), to update the RTO:
        if (flag & FLAG_ACKED) {
               tcp_rearm_rto(sk);

3) Once in tcp_ack() after tcp_fastretrans_alert() to switch from RTO
   to TLP:
        if (icsk->icsk_pending == ICSK_TIME_RETRANS)
               tcp_schedule_loss_probe(sk);

This commit, by only rescheduling the xmit timer once per ACK,
simplifies the code and reduces CPU overhead.

This commit was tested in an A/B test with Google web server
traffic. SNMP stats and request latency metrics were within noise
levels, substantiating that for normal web traffic patterns this is a
rare issue. This commit was also tested with packetdrill tests to
verify that it fixes the timer behavior in the corner cases discussed
in the netdev threads mentioned above.

This patch is a bug fix patch intended to be queued for -stable
relases.

[This version of the commit was compiled and briefly tested
based on top of v3.10.107.]

Change-Id: If0417380fd59290b65cf04a415373aa13dd1dad7
Fixes: 6ba8a3b19e76 ("tcp: Tail loss probe (TLP)")
Reported-by: Klavs Klavsen <kl@vsen.dk>
Reported-by: Mao Wenan <maowenan@huawei.com>
Signed-off-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: Yuchung Cheng <ycheng@google.com>
Signed-off-by: Nandita Dukkipati <nanditad@google.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Willy Tarreau <w@1wt.eu>
---
 net/ipv4/tcp_input.c  | 25 +++++++++++++++----------
 net/ipv4/tcp_output.c | 12 ------------
 2 files changed, 15 insertions(+), 22 deletions(-)

diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index a36b7c5..70f217c 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -111,6 +111,7 @@ int sysctl_tcp_early_retrans __read_mostly = 3;
 #define FLAG_ORIG_SACK_ACKED	0x200 /* Never retransmitted data are (s)acked	*/
 #define FLAG_SND_UNA_ADVANCED	0x400 /* Snd_una was changed (!= FLAG_DATA_ACKED) */
 #define FLAG_DSACKING_ACK	0x800 /* SACK blocks contained D-SACK info */
+#define FLAG_SET_XMIT_TIMER	0x1000 /* Set TLP or RTO timer */
 #define FLAG_SACK_RENEGING	0x2000 /* snd_una advanced to a sacked seq */
 #define FLAG_UPDATE_TS_RECENT	0x4000 /* tcp_replace_ts_recent() */
 
@@ -3002,6 +3003,13 @@ void tcp_resume_early_retransmit(struct sock *sk)
 	tcp_xmit_retransmit_queue(sk);
 }
 
+/* Try to schedule a loss probe; if that doesn't work, then schedule an RTO. */
+static void tcp_set_xmit_timer(struct sock *sk)
+{
+	if (!tcp_schedule_loss_probe(sk))
+		tcp_rearm_rto(sk);
+}
+
 /* If we get here, the whole TSO packet has not been acked. */
 static u32 tcp_tso_acked(struct sock *sk, struct sk_buff *skb)
 {
@@ -3132,7 +3140,7 @@ static int tcp_clean_rtx_queue(struct sock *sk, int prior_fackets,
 		}
 
 		tcp_ack_update_rtt(sk, flag, seq_rtt);
-		tcp_rearm_rto(sk);
+		flag |= FLAG_SET_XMIT_TIMER;  /* set TLP or RTO timer */
 
 		if (tcp_is_reno(tp)) {
 			tcp_remove_reno_sacks(sk, pkts_acked);
@@ -3392,10 +3400,6 @@ static int tcp_ack(struct sock *sk, const struct sk_buff *skb, int flag)
 	if (after(ack, tp->snd_nxt))
 		goto invalid_ack;
 
-	if (icsk->icsk_pending == ICSK_TIME_EARLY_RETRANS ||
-	    icsk->icsk_pending == ICSK_TIME_LOSS_PROBE)
-		tcp_rearm_rto(sk);
-
 	if (after(ack, prior_snd_una))
 		flag |= FLAG_SND_UNA_ADVANCED;
 
@@ -3452,6 +3456,12 @@ static int tcp_ack(struct sock *sk, const struct sk_buff *skb, int flag)
 
 	pkts_acked = previous_packets_out - tp->packets_out;
 
+	if (tp->tlp_high_seq)
+		tcp_process_tlp_ack(sk, ack, flag);
+	/* If needed, reset TLP/RTO timer; RACK may later override this. */
+	if (flag & FLAG_SET_XMIT_TIMER)
+		tcp_set_xmit_timer(sk);
+
 	if (tcp_ack_is_dubious(sk, flag)) {
 		/* Advance CWND, if state allows this. */
 		if ((flag & FLAG_DATA_ACKED) && tcp_may_raise_cwnd(sk, flag))
@@ -3464,17 +3474,12 @@ static int tcp_ack(struct sock *sk, const struct sk_buff *skb, int flag)
 			tcp_cong_avoid(sk, ack, prior_in_flight);
 	}
 
-	if (tp->tlp_high_seq)
-		tcp_process_tlp_ack(sk, ack, flag);
-
 	if ((flag & FLAG_FORWARD_PROGRESS) || !(flag & FLAG_NOT_DUP)) {
 		struct dst_entry *dst = __sk_dst_get(sk);
 		if (dst)
 			dst_confirm(dst);
 	}
 
-	if (icsk->icsk_pending == ICSK_TIME_RETRANS)
-		tcp_schedule_loss_probe(sk);
 	if (tp->srtt != prior_rtt || tp->snd_cwnd != prior_cwnd)
 		tcp_update_pacing_rate(sk);
 	return 1;
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index 1354402..f5d670c 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -1945,28 +1945,16 @@ repair:
 
 bool tcp_schedule_loss_probe(struct sock *sk)
 {
-	struct inet_connection_sock *icsk = inet_csk(sk);
 	struct tcp_sock *tp = tcp_sk(sk);
 	u32 rtt = tp->srtt >> 3;
 	u32 timeout, rto_delta;
 
-	if (WARN_ON(icsk->icsk_pending == ICSK_TIME_EARLY_RETRANS))
-		return false;
-	/* No consecutive loss probes. */
-	if (WARN_ON(icsk->icsk_pending == ICSK_TIME_LOSS_PROBE)) {
-		tcp_rearm_rto(sk);
-		return false;
-	}
 	/* Don't do any loss probe on a Fast Open connection before 3WHS
 	 * finishes.
 	 */
 	if (sk->sk_state == TCP_SYN_RECV)
 		return false;
 
-	/* TLP is only scheduled when next timer event is RTO. */
-	if (icsk->icsk_pending != ICSK_TIME_RETRANS)
-		return false;
-
 	/* Schedule a loss probe in 2*RTT for SACK capable connections
 	 * in Open state, that are either limited by cwnd or application.
 	 */
-- 
2.8.0.rc2.1.gbe9624a

  parent reply	other threads:[~2017-11-01 21:22 UTC|newest]

Thread overview: 153+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-01 21:17 [PATCH 3.10 000/139] 3.10.108-stable review Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 001/139] ipvs: SNAT packet replies only for NATed connections Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 002/139] net: reduce skb_warn_bad_offload() noise Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 003/139] net: skb_needs_check() accepts CHECKSUM_NONE for tx Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 004/139] Staging: comedi: comedi_fops: Avoid orphaned proc entry Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 005/139] udp: consistently apply ufo or fragmentation Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 006/139] Bluetooth: bnep: bnep_add_connection() should verify that it's dealing with l2cap socket Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 007/139] Bluetooth: cmtp: cmtp_add_connection() " Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 008/139] tcp: introduce tcp_rto_delta_us() helper for xmit timer fix Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 009/139] tcp: enable xmit timer fix by having TLP use time when RTO should fire Willy Tarreau
2017-11-01 21:17 ` Willy Tarreau [this message]
2017-11-01 21:17 ` [PATCH 3.10 011/139] mm/page_alloc: Remove kernel address exposure in free_reserved_area() Willy Tarreau
2017-11-01 21:17   ` Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 012/139] leak in O_DIRECT readv past the EOF Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 013/139] usb: renesas_usbhs: fix the behavior of some usbhs_pkt_handle Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 014/139] usb: renesas_usbhs: fix the sequence in xfer_work() Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 015/139] usb: renesas_usbhs: Fix DMAC sequence for receiving zero-length packet Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 016/139] fs/exec.c: account for argv/envp pointers Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 017/139] rxrpc: Fix several cases where a padded len isn't checked in ticket decode Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 018/139] xfrm: policy: check policy direction value Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 019/139] nl80211: check for the required netlink attributes presence Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 020/139] ALSA: seq: Fix use-after-free at creating a port Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 021/139] MIPS: Send SIGILL for BPOSGE32 in `__compute_return_epc_for_insn' Willy Tarreau
2017-11-06  4:41   ` Huacai Chen
2017-11-06  5:07     ` Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 022/139] serial: ifx6x60: fix use-after-free on module unload Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 023/139] KEYS: fix dereferencing NULL payload with nonzero length Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 024/139] usb: chipidea: debug: check before accessing ci_role Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 025/139] cpufreq: conservative: Allow down_threshold to take values from 1 to 10 Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 026/139] powerpc/kprobes: Pause function_graph tracing during jprobes handling Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 027/139] staging: comedi: fix clean-up of comedi_class in comedi_init() Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 028/139] brcmfmac: fix possible buffer overflow in brcmf_cfg80211_mgmt_tx() Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 029/139] vt: fix unchecked __put_user() in tioclinux ioctls Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 030/139] crypto: talitos - Extend max key length for SHA384/512-HMAC and AEAD Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 031/139] PM / Domains: Fix unsafe iteration over modified list of device links Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 032/139] powerpc/64: Fix atomic64_inc_not_zero() to return an int Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 033/139] powerpc: Fix emulation of mfocrf in emulate_step() Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 034/139] powerpc/asm: Mark cr0 as clobbered in mftb() Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 035/139] usb: renesas_usbhs: fix usbhsc_resume() for !USBHSF_RUNTIME_PWCTRL Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 036/139] MIPS: Actually decode JALX in `__compute_return_epc_for_insn' Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 037/139] MIPS: Fix unaligned PC interpretation in `compute_return_epc' Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 038/139] MIPS: math-emu: Prevent wrong ISA mode instruction emulation Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 039/139] libata: array underflow in ata_find_dev() Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 040/139] workqueue: restore WQ_UNBOUND/max_active==1 to be ordered Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 041/139] ext4: fix SEEK_HOLE/SEEK_DATA for blocksize < pagesize Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 042/139] ext4: fix overflow caused by missing cast in ext4_resize_fs() Willy Tarreau
2017-11-01 21:17 ` [PATCH 3.10 043/139] media: platform: davinci: return -EINVAL for VPFE_CMD_S_CCDC_RAW_PARAMS ioctl Willy Tarreau
2017-11-01 21:25 ` Willy Tarreau
2017-11-01 21:25 ` [PATCH 3.10 044/139] target: Avoid mappedlun symlink creation during lun shutdown Willy Tarreau
2017-11-01 21:25 ` [PATCH 3.10 050/139] scsi: zfcp: trace HBA FSF response by default on dismiss or timedout late response Willy Tarreau
2017-11-01 21:25   ` [PATCH 3.10 051/139] usb: renesas_usbhs: fix the BCLR setting condition for non-DCP pipe Willy Tarreau
2017-11-01 21:25   ` [PATCH 3.10 052/139] usb: renesas_usbhs: fix usbhsf_fifo_clear() for RX direction Willy Tarreau
2017-11-01 21:25   ` [PATCH 3.10 053/139] iommu/amd: Finish TLB flush in amd_iommu_unmap() Willy Tarreau
2017-11-01 21:25   ` [PATCH 3.10 054/139] direct-io: Prevent NULL pointer access in submit_page_section Willy Tarreau
2017-11-01 22:43     ` Andreas Gruenbacher
2017-11-02  6:17       ` Willy Tarreau
2017-11-01 21:25   ` [PATCH 3.10 055/139] USB: serial: console: fix use-after-free after failed setup Willy Tarreau
2017-11-01 21:25   ` [PATCH 3.10 056/139] KEYS: don't let add_key() update an uninstantiated key Willy Tarreau
2017-11-01 21:25   ` [PATCH 3.10 058/139] ext4: keep existing extra fields when inode expands Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 059/139] MIPS: Fix mips_atomic_set() retry condition Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 062/139] md/bitmap: disable bitmap_resize for file-backed bitmaps Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 064/139] netfilter: invoke synchronize_rcu after set the _hook_ to NULL Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 065/139] md/raid10: submit bio directly to replacement disk Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 066/139] md: fix super_offset endianness in super_1_rdev_size_change Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 067/139] lib/cmdline.c: fix get_options() overflow while parsing ranges Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 068/139] ext4: fix SEEK_HOLE Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 069/139] net: prevent sign extension in dev_get_stats() Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 070/139] kernel/extable.c: mark core_kernel_text notrace Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 071/139] wext: handle NULL extra data in iwe_stream_add_point better Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 072/139] netfilter: nf_ct_ext: fix possible panic after nf_ct_extend_unregister Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 073/139] ext4: in ext4_seek_{hole,data}, return -ENXIO for negative offsets Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 074/139] ext4: avoid deadlock when expanding inode size Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 075/139] sctp: don't dereference ptr before leaving _sctp_walk_{params, errors}() Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 076/139] sctp: fix the check for _sctp_walk_params and _sctp_walk_errors Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 077/139] sctp: fully initialize the IPv6 address in sctp_v6_to_addr() Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 078/139] sctp: potential read out of bounds in sctp_ulpevent_type_enabled() Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 079/139] tcp: disallow cwnd undo when switching congestion control Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 080/139] netfilter: xt_TCPMSS: add more sanity tests on tcph->doff Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 081/139] tcp: reset sk_rx_dst in tcp_disconnect() Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 082/139] tcp: avoid setting cwnd to invalid ssthresh after cwnd reduction states Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 083/139] tcp: when rearming RTO, if RTO time is in past then fire RTO ASAP Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 084/139] tcp: initialize rcv_mss to TCP_MIN_MSS instead of 0 Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 085/139] net/packet: check length in getsockopt() called with PACKET_HDRLEN Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 086/139] net: Set sk_prot_creator when cloning sockets to the right proto Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 087/139] net/mlx4_core: Fix VF overwrite of module param which disables DMFS on new probed PFs Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 088/139] net: 8021q: Fix one possible panic caused by BUG_ON in free_netdev Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 089/139] x86/io: Add "memory" clobber to insb/insw/insl/outsb/outsw/outsl Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 090/139] kvm: async_pf: fix rcu_irq_enter() with irqs enabled Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 091/139] net: ping: do not abuse udp_poll() Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 092/139] scsi: qla2xxx: don't disable a not previously enabled PCI device Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 093/139] drm/vmwgfx: Handle vmalloc() failure in vmw_local_fifo_reserve() Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 094/139] net: xilinx_emaclite: fix receive buffer overflow Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 095/139] serial: efm32: Fix parity management in 'efm32_uart_console_get_options()' Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 096/139] x86/mm/32: Set the '__vmalloc_start_set' flag in initmem_init() Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 097/139] mfd: omap-usb-tll: Fix inverted bit use for USB TLL mode Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 098/139] [media] pvrusb2: reduce stack usage pvr2_eeprom_analyze() Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 099/139] usb: r8a66597-hcd: select a different endpoint on timeout Willy Tarreau
2017-11-01 21:26 ` [PATCH 3.10 045/139] fuse: initialize the flock flag in fuse_file on allocation Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 046/139] scsi: zfcp: fix queuecommand for scsi_eh commands when DIX enabled Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 047/139] scsi: zfcp: add handling for FCP_RESID_OVER to the fcp ingress path Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 048/139] scsi: zfcp: fix missing trace records for early returns in TMF eh handlers Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 049/139] scsi: zfcp: fix payload with full FCP_RSP IU in SCSI trace records Willy Tarreau
2017-11-01 21:26 ` [PATCH 3.10 100/139] usb: r8a66597-hcd: decrease timeout Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 101/139] drivers/misc/c2port/c2port-duramar2150.c: checking for NULL instead of IS_ERR() Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 102/139] net: phy: fix marvell phy status reading Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 103/139] net: korina: Fix NAPI versus resources freeing Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 104/139] xfrm: NULL dereference on allocation failure Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 105/139] xfrm: Oops on error in pfkey_msg2xfrm_state() Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 106/139] cpufreq: s3c2416: double free on driver init error path Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 107/139] KVM: x86: zero base3 of unusable segments Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 108/139] KEYS: Fix an error code in request_master_key() Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 109/139] ipv6: avoid unregistering inet6_dev for loopback Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 110/139] cfg80211: Validate frequencies nested in NL80211_ATTR_SCAN_FREQUENCIES Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 111/139] cfg80211: Check if PMKID attribute is of expected size Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 112/139] mm: fix overflow check in expand_upwards() Willy Tarreau
2017-11-02  9:19     ` Geert Uytterhoeven
2017-11-02  9:44       ` Willy Tarreau
2017-11-02  9:44         ` Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 113/139] crypto: caam - fix signals handling Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 114/139] [media] ir-core: fix gcc-7 warning on bool arithmetic Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 115/139] udf: Fix deadlock between writeback and udf_setsize() Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 116/139] perf annotate: Fix broken arrow at row 0 connecting jmp instruction to its target Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 117/139] net/mlx4: Remove BUG_ON from ICM allocation routine Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 118/139] ipv4: initialize fib_trie prior to register_netdev_notifier call Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 119/139] workqueue: implicit ordered attribute should be overridable Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 120/139] packet: fix tp_reserve race in packet_set_ring Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 121/139] staging:iio:resolver:ad2s1210 fix negative IIO_ANGL_VEL read Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 122/139] ALSA: core: Fix unexpected error at replacing user TLV Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 123/139] ACPI / APEI: Add missing synchronize_rcu() on NOTIFY_SCI removal Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 124/139] qlge: avoid memcpy buffer overflow Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 125/139] ipv6: fix memory leak with multiple tables during netns destruction Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 126/139] ipv6: fix typo in fib6_net_exit() Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 127/139] ip6_gre: fix endianness errors in ip6gre_err Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 128/139] crypto: AF_ALG - remove SGL terminator indicator when chaining Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 129/139] scsi: qla2xxx: Fix an integer overflow in sysfs code Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 130/139] tracing: Apply trace_clock changes to instance max buffer Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 131/139] tracing: Erase irqsoff trace with empty write Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 132/139] btrfs: prevent to set invalid default subvolid Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 133/139] IB/ipoib: rtnl_unlock can not come after free_netdev Willy Tarreau
2017-11-01 21:26   ` [PATCH 3.10 134/139] team: fix memory leaks Willy Tarreau
2017-11-01 21:27   ` [PATCH 3.10 135/139] IB/qib: fix false-postive maybe-uninitialized warning Willy Tarreau
2017-11-01 21:27   ` [PATCH 3.10 136/139] KVM: nVMX: fix guest CR4 loading when emulating L2 to L1 exit Willy Tarreau
2017-11-01 21:27   ` [PATCH 3.10 137/139] usb: gadget: composite: Fix use-after-free in usb_composite_overwrite_options Willy Tarreau
2017-11-01 21:27   ` [PATCH 3.10 138/139] scsi: scsi_dh_emc: return success in clariion_std_inquiry() Willy Tarreau
2017-11-01 21:27   ` [PATCH 3.10 139/139] can: esd_usb2: Fix can_dlc value for received RTR, frames Willy Tarreau
2017-11-02  1:21 ` [PATCH 3.10 000/139] 3.10.108-stable review Guenter Roeck
2017-11-02  6:12   ` Willy Tarreau
2017-11-05  4:27     ` Levin, Alexander (Sasha Levin)
2017-11-05 14:03       ` Guenter Roeck
2017-11-02  8:08 ` Christoph Biedl
2017-11-02  8:15   ` Willy Tarreau
2017-11-02 21:23     ` Christoph Biedl
2017-11-02 22:40       ` Willy Tarreau

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1509571159-4405-11-git-send-email-w@1wt.eu \
    --to=w@1wt.eu \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=nanditad@google.com \
    --cc=ncardwell@google.com \
    --cc=stable@vger.kernel.org \
    --cc=ycheng@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.