mirror of https://lore.kernel.org/lkml/
 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: Glauber Costa <glauber@scylladb.com>,
	Jens Axboe <axboe@kernel.dk>,
	linux-block@vger.kernel.org, Jens Axboe <axboe@fb.com>,
	Willy Tarreau <w@1wt.eu>
Subject: [PATCH 3.10 283/319] cfq: fix starvation of asynchronous writes
Date: Sun,  5 Feb 2017 20:21:45 +0100	[thread overview]
Message-ID: <1486322541-8206-184-git-send-email-w@1wt.eu> (raw)
In-Reply-To: <1486322541-8206-1-git-send-email-w@1wt.eu>

From: Glauber Costa <glauber@scylladb.com>

commit 3932a86b4b9d1f0b049d64d4591ce58ad18b44ec upstream.

While debugging timeouts happening in my application workload (ScyllaDB), I have
observed calls to open() taking a long time, ranging everywhere from 2 seconds -
the first ones that are enough to time out my application - to more than 30
seconds.

The problem seems to happen because XFS may block on pending metadata updates
under certain circumnstances, and that's confirmed with the following backtrace
taken by the offcputime tool (iovisor/bcc):

    ffffffffb90c57b1 finish_task_switch
    ffffffffb97dffb5 schedule
    ffffffffb97e310c schedule_timeout
    ffffffffb97e1f12 __down
    ffffffffb90ea821 down
    ffffffffc046a9dc xfs_buf_lock
    ffffffffc046abfb _xfs_buf_find
    ffffffffc046ae4a xfs_buf_get_map
    ffffffffc046babd xfs_buf_read_map
    ffffffffc0499931 xfs_trans_read_buf_map
    ffffffffc044a561 xfs_da_read_buf
    ffffffffc0451390 xfs_dir3_leaf_read.constprop.16
    ffffffffc0452b90 xfs_dir2_leaf_lookup_int
    ffffffffc0452e0f xfs_dir2_leaf_lookup
    ffffffffc044d9d3 xfs_dir_lookup
    ffffffffc047d1d9 xfs_lookup
    ffffffffc0479e53 xfs_vn_lookup
    ffffffffb925347a path_openat
    ffffffffb9254a71 do_filp_open
    ffffffffb9242a94 do_sys_open
    ffffffffb9242b9e sys_open
    ffffffffb97e42b2 entry_SYSCALL_64_fastpath
    00007fb0698162ed [unknown]

Inspecting my run with blktrace, I can see that the xfsaild kthread exhibit very
high "Dispatch wait" times, on the dozens of seconds range and consistent with
the open() times I have saw in that run.

Still from the blktrace output, we can after searching a bit, identify the
request that wasn't dispatched:

  8,0   11      152    81.092472813   804  A  WM 141698288 + 8 <- (8,1) 141696240
  8,0   11      153    81.092472889   804  Q  WM 141698288 + 8 [xfsaild/sda1]
  8,0   11      154    81.092473207   804  G  WM 141698288 + 8 [xfsaild/sda1]
  8,0   11      206    81.092496118   804  I  WM 141698288 + 8 (   22911) [xfsaild/sda1]
  <==== 'I' means Inserted (into the IO scheduler) ===================================>
  8,0    0   289372    96.718761435     0  D  WM 141698288 + 8 (15626265317) [swapper/0]
  <==== Only 15s later the CFQ scheduler dispatches the request ======================>

As we can see above, in this particular example CFQ took 15 seconds to dispatch
this request. Going back to the full trace, we can see that the xfsaild queue
had plenty of opportunity to run, and it was selected as the active queue many
times. It would just always be preempted by something else (example):

  8,0    1        0    81.117912979     0  m   N cfq1618SN / insert_request
  8,0    1        0    81.117913419     0  m   N cfq1618SN / add_to_rr
  8,0    1        0    81.117914044     0  m   N cfq1618SN / preempt
  8,0    1        0    81.117914398     0  m   N cfq767A  / slice expired t=1
  8,0    1        0    81.117914755     0  m   N cfq767A  / resid=40
  8,0    1        0    81.117915340     0  m   N / served: vt=1948520448 min_vt=1948520448
  8,0    1        0    81.117915858     0  m   N cfq767A  / sl_used=1 disp=0 charge=0 iops=1 sect=0

where cfq767 is the xfsaild queue and cfq1618 corresponds to one of the ScyllaDB
IO dispatchers.

The requests preempting the xfsaild queue are synchronous requests. That's a
characteristic of ScyllaDB workloads, as we only ever issue O_DIRECT requests.
While it can be argued that preempting ASYNC requests in favor of SYNC is part
of the CFQ logic, I don't believe that doing so for 15+ seconds is anyone's
goal.

Moreover, unless I am misunderstanding something, that breaks the expectation
set by the "fifo_expire_async" tunable, which in my system is set to the
default.

Looking at the code, it seems to me that the issue is that after we make
an async queue active, there is no guarantee that it will execute any request.

When the queue itself tests if it cfq_may_dispatch() it can bail if it sees SYNC
requests in flight. An incoming request from another queue can also preempt it
in such situation before we have the chance to execute anything (as seen in the
trace above).

This patch sets the must_dispatch flag if we notice that we have requests
that are already fifo_expired. This flag is always cleared after
cfq_dispatch_request() returns from cfq_dispatch_requests(), so it won't pin
the queue for subsequent requests (unless they are themselves expired)

Care is taken during preempt to still allow rt requests to preempt us
regardless.

Testing my workload with this patch applied produces much better results.
>From the application side I see no timeouts, and the open() latency histogram
generated by systemtap looks much better, with the worst outlier at 131ms:

Latency histogram of xfs_buf_lock acquisition (microseconds):
 value |-------------------------------------------------- count
     0 |                                                     11
     1 |@@@@                                                161
     2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  1966
     4 |@                                                    54
     8 |                                                     36
    16 |                                                      7
    32 |                                                      0
    64 |                                                      0
       ~
  1024 |                                                      0
  2048 |                                                      0
  4096 |                                                      1
  8192 |                                                      1
 16384 |                                                      2
 32768 |                                                      0
 65536 |                                                      0
131072 |                                                      1
262144 |                                                      0
524288 |                                                      0

Signed-off-by: Glauber Costa <glauber@scylladb.com>
CC: Jens Axboe <axboe@kernel.dk>
CC: linux-block@vger.kernel.org
CC: linux-kernel@vger.kernel.org
Signed-off-by: Glauber Costa <glauber@scylladb.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
Signed-off-by: Willy Tarreau <w@1wt.eu>
---
 block/cfq-iosched.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index 69111c5..ddb0ebb 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -2812,7 +2812,6 @@ static struct request *cfq_check_fifo(struct cfq_queue *cfqq)
 	if (time_before(jiffies, rq_fifo_time(rq)))
 		rq = NULL;
 
-	cfq_log_cfqq(cfqq->cfqd, cfqq, "fifo=%p", rq);
 	return rq;
 }
 
@@ -3186,6 +3185,9 @@ static bool cfq_may_dispatch(struct cfq_data *cfqd, struct cfq_queue *cfqq)
 {
 	unsigned int max_dispatch;
 
+	if (cfq_cfqq_must_dispatch(cfqq))
+		return true;
+
 	/*
 	 * Drain async requests before we start sync IO
 	 */
@@ -3277,15 +3279,20 @@ static bool cfq_dispatch_request(struct cfq_data *cfqd, struct cfq_queue *cfqq)
 
 	BUG_ON(RB_EMPTY_ROOT(&cfqq->sort_list));
 
+	rq = cfq_check_fifo(cfqq);
+	if (rq)
+		cfq_mark_cfqq_must_dispatch(cfqq);
+
 	if (!cfq_may_dispatch(cfqd, cfqq))
 		return false;
 
 	/*
 	 * follow expired path, else get first next available
 	 */
-	rq = cfq_check_fifo(cfqq);
 	if (!rq)
 		rq = cfqq->next_rq;
+	else
+		cfq_log_cfqq(cfqq->cfqd, cfqq, "fifo=%p", rq);
 
 	/*
 	 * insert request into driver dispatch list
@@ -3794,7 +3801,7 @@ cfq_should_preempt(struct cfq_data *cfqd, struct cfq_queue *new_cfqq,
 	 * if the new request is sync, but the currently running queue is
 	 * not, let the sync request have priority.
 	 */
-	if (rq_is_sync(rq) && !cfq_cfqq_sync(cfqq))
+	if (rq_is_sync(rq) && !cfq_cfqq_sync(cfqq) && !cfq_cfqq_must_dispatch(cfqq))
 		return true;
 
 	if (new_cfqq->cfqg != cfqq->cfqg)
-- 
2.8.0.rc2.1.gbe9624a

  parent reply	other threads:[~2017-02-05 19:50 UTC|newest]

Thread overview: 239+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-05 19:18 [PATCH 3.10 100/319] fix fault_in_multipages_...() on architectures with no-op access_ok() Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 101/319] fix memory leaks in tracing_buffers_splice_read() Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 102/319] arc: don't leak bits of kernel stack into coredump Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 103/319] Fix potential infoleak in older kernels Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 104/319] swapfile: fix memory corruption via malformed swapfile Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 105/319] coredump: fix unfreezable coredumping task Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 106/319] usb: dwc3: gadget: increment request->actual once Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 107/319] USB: validate wMaxPacketValue entries in endpoint descriptors Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 108/319] USB: fix typo in wMaxPacketSize validation Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 109/319] usb: xhci: Fix panic if disconnect Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 110/319] USB: serial: fix memleak in driver-registration error path Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 111/319] USB: kobil_sct: fix non-atomic allocation in write path Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 112/319] USB: serial: mos7720: " Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 113/319] USB: serial: mos7840: " Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 114/319] usb: renesas_usbhs: fix clearing the {BRDY,BEMP}STS condition Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 115/319] USB: change bInterval default to 10 ms Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 116/319] usb: gadget: fsl_qe_udc: signedness bug in qe_get_frame() Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 117/319] USB: serial: cp210x: fix hardware flow-control disable Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 118/319] usb: misc: legousbtower: Fix NULL pointer deference Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 119/319] usb: gadget: function: u_ether: don't starve tx request queue Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 120/319] USB: serial: cp210x: fix tiocmget error handling Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 121/319] usb: gadget: u_ether: remove interrupt throttling Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 122/319] usb: chipidea: move the lock initialization to core file Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 123/319] Fix USB CB/CBI storage devices with CONFIG_VMAP_STACK=y Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 124/319] ALSA: rawmidi: Fix possible deadlock with virmidi registration Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 125/319] ALSA: timer: fix NULL pointer dereference in read()/ioctl() race Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 126/319] ALSA: timer: fix division by zero after SNDRV_TIMER_IOCTL_CONTINUE Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 127/319] ALSA: timer: fix NULL pointer dereference on memory allocation failure Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 128/319] ALSA: ali5451: Fix out-of-bound position reporting Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 129/319] ALSA: pcm : Call kill_fasync() in stream lock Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 130/319] zfcp: fix fc_host port_type with NPIV Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 131/319] zfcp: fix ELS/GS request&response length for hardware data router Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 132/319] zfcp: close window with unblocked rport during rport gone Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 133/319] zfcp: retain trace level for SCSI and HBA FSF response records Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 134/319] zfcp: restore: Dont use 0 to indicate invalid LUN in rec trace Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 135/319] zfcp: trace on request for open and close of WKA port Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 136/319] zfcp: restore tracing of handle for port and LUN with HBA records Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 137/319] zfcp: fix D_ID field with actual value on tracing SAN responses Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 138/319] zfcp: fix payload trace length for SAN request&response Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 139/319] zfcp: trace full payload of all SAN records (req,resp,iels) Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 140/319] scsi: zfcp: spin_lock_irqsave() is not nestable Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 141/319] scsi: mpt3sas: Fix secure erase premature termination Willy Tarreau
2017-02-06 16:21   ` Sathya Prakash Veerichetty
2017-02-06 22:26     ` Willy Tarreau
2017-02-07  6:38       ` James Bottomley
2017-02-07  6:59         ` Willy Tarreau
2017-02-07 17:02           ` James Bottomley
2017-02-07 17:12             ` Willy Tarreau
2017-02-08  6:53               ` Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 142/319] mpt2sas: " Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 143/319] scsi: megaraid_sas: Fix data integrity failure for JBOD (passthrough) devices Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 144/319] scsi: megaraid_sas: fix macro MEGASAS_IS_LOGICAL to avoid regression Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 145/319] scsi: ibmvfc: Fix I/O hang when port is not mapped Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 146/319] scsi: Fix use-after-free Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 147/319] scsi: arcmsr: Buffer overflow in arcmsr_iop_message_xfer() Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 148/319] scsi: scsi_debug: Fix memory leak if LBP enabled and module is unloaded Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 149/319] scsi: arcmsr: Send SYNCHRONIZE_CACHE command to firmware Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 150/319] ext4: validate that metadata blocks do not overlap superblock Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 151/319] ext4: avoid modifying checksum fields directly during checksum verification Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 152/319] ext4: use __GFP_NOFAIL in ext4_free_blocks() Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 153/319] ext4: reinforce check of i_dtime when clearing high fields of uid and gid Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 154/319] ext4: allow DAX writeback for hole punch Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 155/319] ext4: sanity check the block and cluster size at mount time Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 156/319] reiserfs: fix "new_insert_key may be used uninitialized ..." Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 157/319] reiserfs: Unlock superblock before calling reiserfs_quota_on_mount() Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 158/319] xfs: fix superblock inprogress check Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 159/319] libxfs: clean up _calc_dquots_per_chunk Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 160/319] btrfs: ensure that file descriptor used with subvol ioctls is a dir Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 161/319] ocfs2/dlm: fix race between convert and migration Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 162/319] ocfs2: fix start offset to ocfs2_zero_range_for_truncate() Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 163/319] ubifs: Fix assertion in layout_in_gaps() Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 164/319] ubifs: Fix xattr_names length in exit paths Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 165/319] UBIFS: Fix possible memory leak in ubifs_readdir() Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 166/319] ubifs: Abort readdir upon error Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 167/319] ubifs: Fix regression in ubifs_readdir() Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 168/319] UBI: fastmap: scrub PEB when bitflips are detected in a free PEB EC header Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 169/319] NFSv4.x: Fix a refcount leak in nfs_callback_up_net Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 170/319] NFSD: Using free_conn free connection Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 171/319] NFS: Don't drop CB requests with invalid principals Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 172/319] NFSv4: Open state recovery must account for file permission changes Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 173/319] fs/seq_file: fix out-of-bounds read Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 174/319] fs/super.c: fix race between freeze_super() and thaw_super() Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 175/319] isofs: Do not return EACCES for unknown filesystems Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 176/319] hostfs: Freeing an ERR_PTR in hostfs_fill_sb_common() Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 177/319] driver core: Delete an unnecessary check before the function call "put_device" Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 178/319] driver core: fix race between creating/querying glue dir and its cleanup Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 179/319] drm/radeon: fix radeon_move_blit on 32bit systems Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 180/319] drm: Reject page_flip for !DRIVER_MODESET Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 181/319] drm/radeon: Ensure vblank interrupt is enabled on DPMS transition to on Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 182/319] qxl: check for kmap failures Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 183/319] Input: i8042 - break load dependency between atkbd/psmouse and i8042 Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 184/319] Input: i8042 - set up shared ps2_cmd_mutex for AUX ports Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 185/319] Input: ili210x - fix permissions on "calibrate" attribute Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 186/319] hwrng: exynos - Disable runtime PM on probe failure Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 187/319] hwrng: omap - Fix assumption that runtime_get_sync will always succeed Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 188/319] hwrng: omap - Only fail if pm_runtime_get_sync returns < 0 Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 189/319] i2c-eg20t: fix race between i2c init and interrupt enable Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 190/319] em28xx-i2c: rt_mutex_trylock() returns zero on failure Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 191/319] i2c: core: fix NULL pointer dereference under race condition Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 192/319] i2c: at91: fix write transfers by clearing pending interrupt first Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 193/319] iio: accel: kxsd9: Fix raw read return Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 194/319] iio: accel: kxsd9: Fix scaling bug Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 195/319] thermal: hwmon: Properly report critical temperature in sysfs Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 196/319] cdc-acm: fix wrong pipe type on rx interrupt xfers Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 197/319] timers: Use proper base migration in add_timer_on() Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 198/319] EDAC: Increment correct counter in edac_inc_ue_error() Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 199/319] IB/srpt: Simplify srpt_handle_tsk_mgmt() Willy Tarreau
2017-02-06  5:14   ` Bart Van Assche
2017-02-06  6:32     ` Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 200/319] IB/ipoib: Fix memory corruption in ipoib cm mode connect flow Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 201/319] IB/core: Fix use after free in send_leave function Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 202/319] IB/ipoib: Don't allow MC joins during light MC flush Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 203/319] IB/mlx4: Fix incorrect MC join state bit-masking on SR-IOV Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 204/319] IB/mlx4: Fix create CQ error flow Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 205/319] IB/uverbs: Fix leak of XRC target QPs Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 206/319] IB/cm: Mark stale CM id's whenever the mad agent was unregistered Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 207/319] mtd: blkdevs: fix potential deadlock + lockdep warnings Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 208/319] mtd: pmcmsp-flash: Allocating too much in init_msp_flash() Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 209/319] mtd: nand: davinci: Reinitialize the HW ECC engine in 4bit hwctl Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 210/319] perf symbols: Fixup symbol sizes before picking best ones Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 211/319] perf: Tighten (and fix) the grouping condition Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 212/319] tty: Prevent ldisc drivers from re-using stale tty fields Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 213/319] tty: limit terminal size to 4M chars Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 214/319] tty: vt, fix bogus division in csi_J Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 215/319] vt: clear selection before resizing Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 216/319] drivers/vfio: Rework offsetofend() Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 217/319] include/stddef.h: Move offsetofend() from vfio.h to a generic kernel header Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 218/319] stddef.h: move offsetofend inside #ifndef/#endif guard, neaten Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 219/319] ipv6: don't call fib6_run_gc() until routing is ready Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 220/319] ipv6: split duplicate address detection and router solicitation timer Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 221/319] ipv6: move DAD and addrconf_verify processing to workqueue Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 222/319] ipv6: addrconf: fix dev refcont leak when DAD failed Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 223/319] ipv6: fix rtnl locking in setsockopt for anycast and multicast Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 224/319] ip6_gre: fix flowi6_proto value in ip6gre_xmit_other() Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 225/319] ipv6: correctly add local routes when lo goes up Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 226/319] ipv6: dccp: fix out of bound access in dccp_v6_err() Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 227/319] ipv6: dccp: add missing bind_conflict to dccp_ipv6_mapped Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 228/319] ip6_tunnel: Clear IP6CB in ip6tunnel_xmit() Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 229/319] ip6_tunnel: disable caching when the traffic class is inherited Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 230/319] net/irda: handle iriap_register_lsap() allocation failure Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 231/319] tcp: fix use after free in tcp_xmit_retransmit_queue() Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 232/319] tcp: properly scale window in tcp_v[46]_reqsk_send_ack() Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 233/319] tcp: fix overflow in __tcp_retransmit_skb() Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 234/319] tcp: fix wrong checksum calculation on MTU probing Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 235/319] tcp: take care of truncations done by sk_filter() Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 236/319] bonding: Fix bonding crash Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 237/319] net: ratelimit warnings about dst entry refcount underflow or overflow Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 238/319] mISDN: Support DR6 indication in mISDNipac driver Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 239/319] mISDN: Fixing missing validation in base_sock_bind() Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 240/319] net: disable fragment reassembly if high_thresh is set to zero Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 241/319] ipvs: count pre-established TCP states as active Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 242/319] iwlwifi: pcie: fix access to scratch buffer Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 243/319] svc: Avoid garbage replies when pc_func() returns rpc_drop_reply Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 244/319] brcmsmac: Free packet if dma_mapping_error() fails in dma_rxfill Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 245/319] brcmsmac: Initialize power in brcms_c_stf_ss_algo_channel_get() Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 246/319] brcmfmac: avoid potential stack overflow in brcmf_cfg80211_start_ap() Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 247/319] pstore: Fix buffer overflow while write offset equal to buffer size Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 248/319] net/mlx4_core: Allow resetting VF admin mac to zero Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 249/319] firewire: net: guard against rx buffer overflows Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 250/319] firewire: net: fix fragmented datagram_size off-by-one Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 251/319] netfilter: fix namespace handling in nf_log_proc_dostring Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 252/319] can: bcm: fix warning in bcm_connect/proc_register Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 253/319] net: fix sk_mem_reclaim_partial() Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 254/319] net: avoid sk_forward_alloc overflows Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 255/319] ipmr, ip6mr: fix scheduling while atomic and a deadlock with ipmr_get_route Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 256/319] packet: call fanout_release, while UNREGISTERING a netdev Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 257/319] net: sctp, forbid negative length Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 258/319] sctp: validate chunk len before actually using it Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 259/319] net: clear sk_err_soft in sk_clone_lock() Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 260/319] net: mangle zero checksum in skb_checksum_help() Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 261/319] dccp: do not send reset to already closed sockets Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 262/319] dccp: fix out of bound access in dccp_v4_err() Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 263/319] sctp: assign assoc_id earlier in __sctp_connect Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 264/319] neigh: check error pointer instead of NULL for ipv4_neigh_lookup() Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 265/319] ipv4: use new_gw for redirect neigh lookup Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 266/319] mac80211: fix purging multicast PS buffer queue Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 267/319] mac80211: discard multicast and 4-addr A-MSDUs Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 268/319] cfg80211: limit scan results cache size Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 269/319] mwifiex: printk() overflow with 32-byte SSIDs Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 270/319] ipv4: Set skb->protocol properly for local output Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 271/319] net: sky2: Fix shutdown crash Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 272/319] kaweth: fix firmware download Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 273/319] tracing: Move mutex to protect against resetting of seq data Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 274/319] kernel/fork: fix CLONE_CHILD_CLEARTID regression in nscd Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 275/319] ipc: remove use of seq_printf return value Willy Tarreau
2017-02-05 19:49   ` Joe Perches
2017-02-05 20:35     ` Willy Tarreau
2017-02-06  8:06   ` Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 276/319] arch: Introduce smp_load_acquire(), smp_store_release() Willy Tarreau
2017-02-06  8:06   ` Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 277/319] kernel: Provide READ_ONCE and ASSIGN_ONCE Willy Tarreau
2017-02-06  8:06   ` Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 278/319] kernel: Change ASSIGN_ONCE(val, x) to WRITE_ONCE(x, val) Willy Tarreau
2017-02-06  8:06   ` Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 279/319] kernel: make READ_ONCE() valid on const arguments Willy Tarreau
2017-02-06  8:05   ` Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 280/319] locking: Remove atomicy checks from {READ,WRITE}_ONCE Willy Tarreau
2017-02-06  8:05   ` Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 281/319] compiler: Allow 1- and 2-byte smp_load_acquire() and smp_store_release() Willy Tarreau
2017-02-06  8:05   ` Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 282/319] ipc/sem.c: fix complex_count vs. simple op race Willy Tarreau
2017-02-06  8:04   ` Willy Tarreau
2017-02-05 19:21 ` Willy Tarreau [this message]
2017-02-05 19:21 ` [PATCH 3.10 284/319] drbd: Fix kernel_sendmsg() usage - potential NULL deref Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 285/319] lib/genalloc.c: start search from start of chunk Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 286/319] tools/vm/slabinfo: fix an unintentional printf Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 287/319] rcu: Fix soft lockup for rcu_nocb_kthread Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 288/319] ratelimit: fix bug in time interval by resetting right begin time Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 289/319] mfd: core: Fix device reference leak in mfd_clone_cell Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 290/319] PM / sleep: fix device reference leak in test_suspend Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 291/319] mmc: mxs: Initialize the spinlock prior to using it Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 292/319] mmc: block: don't use CMD23 with very old MMC cards Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 293/319] pstore/core: drop cmpxchg based updates Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 294/319] pstore/ram: Use memcpy_toio instead of memcpy Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 295/319] pstore/ram: Use memcpy_fromio() to save old buffer Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 296/319] mb86a20s: fix the locking logic Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 297/319] mb86a20s: fix demod settings Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 298/319] cx231xx: don't return error on success Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 299/319] cx231xx: fix GPIOs for Pixelview SBTVD hybrid Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 300/319] gpio: mpc8xxx: Correct irq handler function Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 301/319] uio: fix dmem_region_start computation Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 302/319] KEYS: Fix short sprintf buffer in /proc/keys show function Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 303/319] hv: do not lose pending heartbeat vmbus packets Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 304/319] staging: iio: ad5933: avoid uninitialized variable in error case Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 305/319] mei: bus: fix received data size check in NFC fixup Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 306/319] ACPI / APEI: Fix incorrect return value of ghes_proc() Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 307/319] PCI: Handle read-only BARs on AMD CS553x devices Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 308/319] tile: avoid using clocksource_cyc2ns with absolute cycle count Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 309/319] dm flakey: fix reads to be issued if drop_writes configured Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 310/319] mm,ksm: fix endless looping in allocating memory when ksm enable Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 311/319] can: dev: fix deadlock reported after bus-off Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 312/319] hwmon: (adt7411) set bit 3 in CFG1 register Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 313/319] mpi: Fix NULL ptr dereference in mpi_powm() [ver #3] Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 314/319] mfd: 88pm80x: Double shifting bug in suspend/resume Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 315/319] ASoC: omap-mcpdm: Fix irq resource handling Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 316/319] regulator: tps65910: Work around silicon erratum SWCZ010 Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 317/319] dm: mark request_queue dead before destroying the DM device Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 318/319] fbdev/efifb: Fix 16 color palette entry calculation Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 319/319] metag: Only define atomic_dec_if_positive conditionally 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=1486322541-8206-184-git-send-email-w@1wt.eu \
    --to=w@1wt.eu \
    --cc=axboe@fb.com \
    --cc=axboe@kernel.dk \
    --cc=glauber@scylladb.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=stable@vger.kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®