* [PATCH RESEND] fs: aio: fix the increment of aio-nr and counting against aio-max-nr
@ 2017-07-05 13:53 Mauricio Faria de Oliveira
2017-07-05 13:59 ` Mauricio Faria de Oliveira
2017-07-05 19:28 ` Jeff Moyer
0 siblings, 2 replies; 8+ messages in thread
From: Mauricio Faria de Oliveira @ 2017-07-05 13:53 UTC (permalink / raw)
To: bcrl, viro; +Cc: linux-aio, linux-fsdevel, jmoyer, lekshmi.cpillai, nguyenp
Currently, aio-nr is incremented in steps of 'num_possible_cpus() * 8'
for io_setup(nr_events, ..) with 'nr_events < num_possible_cpus() * 4':
ioctx_alloc()
...
nr_events = max(nr_events, num_possible_cpus() * 4);
nr_events *= 2;
...
ctx->max_reqs = nr_events;
...
aio_nr += ctx->max_reqs;
....
This limits the number of aio contexts actually available to much less
than aio-max-nr, and is increasingly worse with greater number of CPUs.
For example, with 64 CPUs, only 256 aio contexts are actually available
(with aio-max-nr = 65536) because the increment is 512 in that scenario.
Note: 65536 [max aio contexts] / (64*4*2) [increment per aio context]
is 128, but make it 256 (double) as counting against 'aio-max-nr * 2':
ioctx_alloc()
...
if (aio_nr + nr_events > (aio_max_nr * 2UL) ||
...
goto err_ctx;
...
This patch uses the original value of nr_events (from userspace) to
increment aio-nr and count against aio-max-nr, which resolves those.
Signed-off-by: Mauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com>
Reported-by: Lekshmi C. Pillai <lekshmi.cpillai@in.ibm.com>
Tested-by: Lekshmi C. Pillai <lekshmi.cpillai@in.ibm.com>
Tested-by: Paul Nguyen <nguyenp@us.ibm.com>
---
fs/aio.c | 19 ++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-)
diff --git a/fs/aio.c b/fs/aio.c
index f52d925ee259..3908480d7ccd 100644
--- a/fs/aio.c
+++ b/fs/aio.c
@@ -441,10 +441,9 @@ static int aio_migratepage(struct address_space *mapping, struct page *new,
#endif
};
-static int aio_setup_ring(struct kioctx *ctx)
+static int aio_setup_ring(struct kioctx *ctx, unsigned int nr_events)
{
struct aio_ring *ring;
- unsigned nr_events = ctx->max_reqs;
struct mm_struct *mm = current->mm;
unsigned long size, unused;
int nr_pages;
@@ -707,6 +706,12 @@ static struct kioctx *ioctx_alloc(unsigned nr_events)
int err = -ENOMEM;
/*
+ * Store the original nr_events -- what userspace passed to io_setup(),
+ * for counting against the global limit -- before it changes.
+ */
+ unsigned int max_reqs = nr_events;
+
+ /*
* We keep track of the number of available ringbuffer slots, to prevent
* overflow (reqs_available), and we also use percpu counters for this.
*
@@ -724,14 +729,14 @@ static struct kioctx *ioctx_alloc(unsigned nr_events)
return ERR_PTR(-EINVAL);
}
- if (!nr_events || (unsigned long)nr_events > (aio_max_nr * 2UL))
+ if (!nr_events || (unsigned long)max_reqs > aio_max_nr)
return ERR_PTR(-EAGAIN);
ctx = kmem_cache_zalloc(kioctx_cachep, GFP_KERNEL);
if (!ctx)
return ERR_PTR(-ENOMEM);
- ctx->max_reqs = nr_events;
+ ctx->max_reqs = max_reqs;
spin_lock_init(&ctx->ctx_lock);
spin_lock_init(&ctx->completion_lock);
@@ -753,7 +758,7 @@ static struct kioctx *ioctx_alloc(unsigned nr_events)
if (!ctx->cpu)
goto err;
- err = aio_setup_ring(ctx);
+ err = aio_setup_ring(ctx, nr_events);
if (err < 0)
goto err;
@@ -764,8 +769,8 @@ static struct kioctx *ioctx_alloc(unsigned nr_events)
/* limit the number of system wide aios */
spin_lock(&aio_nr_lock);
- if (aio_nr + nr_events > (aio_max_nr * 2UL) ||
- aio_nr + nr_events < aio_nr) {
+ if (aio_nr + ctx->max_reqs > aio_max_nr ||
+ aio_nr + ctx->max_reqs < aio_nr) {
spin_unlock(&aio_nr_lock);
err = -EAGAIN;
goto err_ctx;
--
1.8.3.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH RESEND] fs: aio: fix the increment of aio-nr and counting against aio-max-nr
2017-07-05 13:53 [PATCH RESEND] fs: aio: fix the increment of aio-nr and counting against aio-max-nr Mauricio Faria de Oliveira
@ 2017-07-05 13:59 ` Mauricio Faria de Oliveira
2017-07-05 19:28 ` Jeff Moyer
1 sibling, 0 replies; 8+ messages in thread
From: Mauricio Faria de Oliveira @ 2017-07-05 13:59 UTC (permalink / raw)
To: bcrl, viro; +Cc: linux-aio, linux-fsdevel, jmoyer, lekshmi.cpillai, nguyenp
On 07/05/2017 10:53 AM, Mauricio Faria de Oliveira wrote:
> This patch uses the original value of nr_events (from userspace) to
> increment aio-nr and count against aio-max-nr, which resolves those.
This has been tested with v4.12+ (commit 650fc870a2ef on Linus tree).
The test-case and test-suite validation steps are included later in
this message.
Example on a system with 64 CPUs:
# cat /sys/devices/system/cpu/possible
0-63
# grep . /proc/sys/fs/aio-*
/proc/sys/fs/aio-max-nr:65536
/proc/sys/fs/aio-nr:0
test 1) number of aio contexts available with nr_events == 1
-------------------------------------------------------------
This test calls io_setup(1, ..) up to 65536 times, exiting on error.
- original kernel:
Only 256 aio contexts could be created successfully,
quickly falling into the aio-max-nr exceeded error path (-EAGAIN).
# ./io_setup 1 65536 | grep -m1 . - /proc/sys/fs/aio-nr
(standard input):io_setup(1, ): 256 calls with rc 0, last call with
rc -11.
/proc/sys/fs/aio-nr:131072
One might notice the aio-nr value is twice the aio-max-nr limit,
an effect of how the current code handles that 'nr_events *= 2'.
- patched kernel:
Almost all of the limit of aio contexts could be allocated,
eventually falling into the insufficient resources error path
(-ENOMEM):
# ./io_setup 1 65536 | grep -m1 . - /proc/sys/fs/aio-nr
(standard input):io_setup(1, ): 65516 calls with rc 0, last call
with rc -12.
/proc/sys/fs/aio-nr:65516
Notice the aio-nr value is now _under_ the aio-max-nr limit.
test 2) increment value for nr_events == 1
-------------------------------------------
This test calls io_setup(1, ..) only 1 time, to show the increment:
- original kernel:
# ./io_setup 1 1 | grep -m1 . - /proc/sys/fs/aio-nr
(standard input):io_setup(1, ) : 1 calls with rc 0, last call with
rc 0.
/proc/sys/fs/aio-nr:512
Notice the increment is 'num_online_cpus() * 8'.
- patched kernel:
# ./io_setup 1 1 | grep -m1 . - /proc/sys/fs/aio-nr
(standard input):io_setup(1, ): 1 calls with rc 0, last call with rc 0.
/proc/sys/fs/aio-nr:1
Notice the increment is exactly 1 (matches nr_events from userspace).
test 3) more aio contexts available with great-enough nr_events
----------------------------------------------------------------
The full aio-max-nr limit (65536) is available for greater nr_events.
This test calls io_setup(1024, ) exactly 64 times, without error.
- original kernel:
# ./io_setup 1024 64 | grep -m1 . - /proc/sys/fs/aio-nr
(standard input):io_setup(1024, ): 64 calls with rc 0, last call
with rc 0.
/proc/sys/fs/aio-nr:131072
Notice the aio-nr value is twice the aio-max-nr limit.
- patched kernel:
# ./io_setup 1024 64 | grep -m1 . - /proc/sys/fs/aio-nr
(standard input):io_setup(1024, ): 64 calls with rc 0, last call
with rc 0.
/proc/sys/fs/aio-nr:65536
Notice the aio-nr value is now _exactly_ the aio-max-nr limit.
Test-case: io_setup.c # gcc -o io_setup io_setup.c -laio
---------
"""
#include <libaio.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(int argc, char *argv[]) {
int nr_events, nr_calls, rc, i;
io_context_t *ioctx;
/* usage: io_setup <nr_events for io_setup()> <max calls to
io_setup()> */
if (argc != 3)
return -1;
nr_events = atoi(argv[1]);
nr_calls = atoi(argv[2]);
ioctx = calloc(nr_calls, sizeof(*ioctx));
if (!ioctx)
return -2;
for (i = 0; i < nr_calls; i++)
if (rc = io_setup(nr_events, &ioctx[i]))
break;
printf("io_setup(%d, ): %d calls with rc 0, last call with rc
%d.\n", nr_events, i, rc);
fflush(stdout);
sleep(1);
return 0;
}
"""
Test-suite: libaio
----------
# curl
https://kojipkgs.fedoraproject.org/packages/libaio/0.3.110/7.fc26/src/libaio-0.3.110-7.fc26.src.rpm
| rpm2cpio | cpio -mid
# tar xf libaio-0.3.110.tar.gz
# cd libaio-0.3.110
# make
# make check 2>&1 | grep '^test cases'
test cases/2.t completed PASSED.
test cases/3.t completed PASSED.
test cases/4.t completed PASSED.
test cases/5.t completed PASSED.
test cases/6.t completed PASSED.
test cases/7.t completed PASSED.
test cases/11.t completed PASSED.
test cases/12.t completed PASSED.
test cases/13.t completed PASSED.
test cases/14.t completed PASSED.
test cases/15.t completed PASSED.
test cases/16.t completed PASSED.
test cases/10.t completed PASSED.
test cases/8.t completed PASSED.
--
Mauricio Faria de Oliveira
IBM Linux Technology Center
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH RESEND] fs: aio: fix the increment of aio-nr and counting against aio-max-nr
2017-07-05 13:53 [PATCH RESEND] fs: aio: fix the increment of aio-nr and counting against aio-max-nr Mauricio Faria de Oliveira
2017-07-05 13:59 ` Mauricio Faria de Oliveira
@ 2017-07-05 19:28 ` Jeff Moyer
2017-07-06 21:07 ` Benjamin LaHaise
1 sibling, 1 reply; 8+ messages in thread
From: Jeff Moyer @ 2017-07-05 19:28 UTC (permalink / raw)
To: Mauricio Faria de Oliveira
Cc: bcrl, viro, linux-aio, linux-fsdevel, lekshmi.cpillai, nguyenp
Mauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com> writes:
> Currently, aio-nr is incremented in steps of 'num_possible_cpus() * 8'
> for io_setup(nr_events, ..) with 'nr_events < num_possible_cpus() * 4':
>
> ioctx_alloc()
> ...
> nr_events = max(nr_events, num_possible_cpus() * 4);
> nr_events *= 2;
> ...
> ctx->max_reqs = nr_events;
> ...
> aio_nr += ctx->max_reqs;
> ....
>
> This limits the number of aio contexts actually available to much less
> than aio-max-nr, and is increasingly worse with greater number of CPUs.
>
> For example, with 64 CPUs, only 256 aio contexts are actually available
> (with aio-max-nr = 65536) because the increment is 512 in that scenario.
>
> Note: 65536 [max aio contexts] / (64*4*2) [increment per aio context]
> is 128, but make it 256 (double) as counting against 'aio-max-nr * 2':
>
> ioctx_alloc()
> ...
> if (aio_nr + nr_events > (aio_max_nr * 2UL) ||
> ...
> goto err_ctx;
> ...
>
> This patch uses the original value of nr_events (from userspace) to
> increment aio-nr and count against aio-max-nr, which resolves those.
>
> Signed-off-by: Mauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com>
> Reported-by: Lekshmi C. Pillai <lekshmi.cpillai@in.ibm.com>
> Tested-by: Lekshmi C. Pillai <lekshmi.cpillai@in.ibm.com>
> Tested-by: Paul Nguyen <nguyenp@us.ibm.com>
Thanks for your persistence in re-posting this. The fix looks good to
me. Ben, can you queue this up?
Reviewed-by: Jeff Moyer <jmoyer@redhat.com>
> ---
> fs/aio.c | 19 ++++++++++++-------
> 1 file changed, 12 insertions(+), 7 deletions(-)
>
> diff --git a/fs/aio.c b/fs/aio.c
> index f52d925ee259..3908480d7ccd 100644
> --- a/fs/aio.c
> +++ b/fs/aio.c
> @@ -441,10 +441,9 @@ static int aio_migratepage(struct address_space *mapping, struct page *new,
> #endif
> };
>
> -static int aio_setup_ring(struct kioctx *ctx)
> +static int aio_setup_ring(struct kioctx *ctx, unsigned int nr_events)
> {
> struct aio_ring *ring;
> - unsigned nr_events = ctx->max_reqs;
> struct mm_struct *mm = current->mm;
> unsigned long size, unused;
> int nr_pages;
> @@ -707,6 +706,12 @@ static struct kioctx *ioctx_alloc(unsigned nr_events)
> int err = -ENOMEM;
>
> /*
> + * Store the original nr_events -- what userspace passed to io_setup(),
> + * for counting against the global limit -- before it changes.
> + */
> + unsigned int max_reqs = nr_events;
> +
> + /*
> * We keep track of the number of available ringbuffer slots, to prevent
> * overflow (reqs_available), and we also use percpu counters for this.
> *
> @@ -724,14 +729,14 @@ static struct kioctx *ioctx_alloc(unsigned nr_events)
> return ERR_PTR(-EINVAL);
> }
>
> - if (!nr_events || (unsigned long)nr_events > (aio_max_nr * 2UL))
> + if (!nr_events || (unsigned long)max_reqs > aio_max_nr)
> return ERR_PTR(-EAGAIN);
>
> ctx = kmem_cache_zalloc(kioctx_cachep, GFP_KERNEL);
> if (!ctx)
> return ERR_PTR(-ENOMEM);
>
> - ctx->max_reqs = nr_events;
> + ctx->max_reqs = max_reqs;
>
> spin_lock_init(&ctx->ctx_lock);
> spin_lock_init(&ctx->completion_lock);
> @@ -753,7 +758,7 @@ static struct kioctx *ioctx_alloc(unsigned nr_events)
> if (!ctx->cpu)
> goto err;
>
> - err = aio_setup_ring(ctx);
> + err = aio_setup_ring(ctx, nr_events);
> if (err < 0)
> goto err;
>
> @@ -764,8 +769,8 @@ static struct kioctx *ioctx_alloc(unsigned nr_events)
>
> /* limit the number of system wide aios */
> spin_lock(&aio_nr_lock);
> - if (aio_nr + nr_events > (aio_max_nr * 2UL) ||
> - aio_nr + nr_events < aio_nr) {
> + if (aio_nr + ctx->max_reqs > aio_max_nr ||
> + aio_nr + ctx->max_reqs < aio_nr) {
> spin_unlock(&aio_nr_lock);
> err = -EAGAIN;
> goto err_ctx;
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH RESEND] fs: aio: fix the increment of aio-nr and counting against aio-max-nr
2017-07-05 19:28 ` Jeff Moyer
@ 2017-07-06 21:07 ` Benjamin LaHaise
2017-07-06 22:25 ` Jeff Moyer
` (3 more replies)
0 siblings, 4 replies; 8+ messages in thread
From: Benjamin LaHaise @ 2017-07-06 21:07 UTC (permalink / raw)
To: Jeff Moyer
Cc: Mauricio Faria de Oliveira, viro, linux-aio, linux-fsdevel,
lekshmi.cpillai, nguyenp
On Wed, Jul 05, 2017 at 03:28:14PM -0400, Jeff Moyer wrote:
> Mauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com> writes:
>
> > Currently, aio-nr is incremented in steps of 'num_possible_cpus() * 8'
> > for io_setup(nr_events, ..) with 'nr_events < num_possible_cpus() * 4':
> >
> > ioctx_alloc()
> > ...
> > nr_events = max(nr_events, num_possible_cpus() * 4);
> > nr_events *= 2;
> > ...
> > ctx->max_reqs = nr_events;
> > ...
> > aio_nr += ctx->max_reqs;
> > ....
> >
> > This limits the number of aio contexts actually available to much less
> > than aio-max-nr, and is increasingly worse with greater number of CPUs.
> >
> > For example, with 64 CPUs, only 256 aio contexts are actually available
> > (with aio-max-nr = 65536) because the increment is 512 in that scenario.
> >
> > Note: 65536 [max aio contexts] / (64*4*2) [increment per aio context]
> > is 128, but make it 256 (double) as counting against 'aio-max-nr * 2':
> >
> > ioctx_alloc()
> > ...
> > if (aio_nr + nr_events > (aio_max_nr * 2UL) ||
> > ...
> > goto err_ctx;
> > ...
> >
> > This patch uses the original value of nr_events (from userspace) to
> > increment aio-nr and count against aio-max-nr, which resolves those.
> >
> > Signed-off-by: Mauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com>
> > Reported-by: Lekshmi C. Pillai <lekshmi.cpillai@in.ibm.com>
> > Tested-by: Lekshmi C. Pillai <lekshmi.cpillai@in.ibm.com>
> > Tested-by: Paul Nguyen <nguyenp@us.ibm.com>
>
> Thanks for your persistence in re-posting this. The fix looks good to
> me. Ben, can you queue this up?
I'm queuing this up in my aio-next and will push upstream after a few days
of soaking in linux-next.
-ben
> Reviewed-by: Jeff Moyer <jmoyer@redhat.com>
>
> > ---
> > fs/aio.c | 19 ++++++++++++-------
> > 1 file changed, 12 insertions(+), 7 deletions(-)
> >
> > diff --git a/fs/aio.c b/fs/aio.c
> > index f52d925ee259..3908480d7ccd 100644
> > --- a/fs/aio.c
> > +++ b/fs/aio.c
> > @@ -441,10 +441,9 @@ static int aio_migratepage(struct address_space *mapping, struct page *new,
> > #endif
> > };
> >
> > -static int aio_setup_ring(struct kioctx *ctx)
> > +static int aio_setup_ring(struct kioctx *ctx, unsigned int nr_events)
> > {
> > struct aio_ring *ring;
> > - unsigned nr_events = ctx->max_reqs;
> > struct mm_struct *mm = current->mm;
> > unsigned long size, unused;
> > int nr_pages;
> > @@ -707,6 +706,12 @@ static struct kioctx *ioctx_alloc(unsigned nr_events)
> > int err = -ENOMEM;
> >
> > /*
> > + * Store the original nr_events -- what userspace passed to io_setup(),
> > + * for counting against the global limit -- before it changes.
> > + */
> > + unsigned int max_reqs = nr_events;
> > +
> > + /*
> > * We keep track of the number of available ringbuffer slots, to prevent
> > * overflow (reqs_available), and we also use percpu counters for this.
> > *
> > @@ -724,14 +729,14 @@ static struct kioctx *ioctx_alloc(unsigned nr_events)
> > return ERR_PTR(-EINVAL);
> > }
> >
> > - if (!nr_events || (unsigned long)nr_events > (aio_max_nr * 2UL))
> > + if (!nr_events || (unsigned long)max_reqs > aio_max_nr)
> > return ERR_PTR(-EAGAIN);
> >
> > ctx = kmem_cache_zalloc(kioctx_cachep, GFP_KERNEL);
> > if (!ctx)
> > return ERR_PTR(-ENOMEM);
> >
> > - ctx->max_reqs = nr_events;
> > + ctx->max_reqs = max_reqs;
> >
> > spin_lock_init(&ctx->ctx_lock);
> > spin_lock_init(&ctx->completion_lock);
> > @@ -753,7 +758,7 @@ static struct kioctx *ioctx_alloc(unsigned nr_events)
> > if (!ctx->cpu)
> > goto err;
> >
> > - err = aio_setup_ring(ctx);
> > + err = aio_setup_ring(ctx, nr_events);
> > if (err < 0)
> > goto err;
> >
> > @@ -764,8 +769,8 @@ static struct kioctx *ioctx_alloc(unsigned nr_events)
> >
> > /* limit the number of system wide aios */
> > spin_lock(&aio_nr_lock);
> > - if (aio_nr + nr_events > (aio_max_nr * 2UL) ||
> > - aio_nr + nr_events < aio_nr) {
> > + if (aio_nr + ctx->max_reqs > aio_max_nr ||
> > + aio_nr + ctx->max_reqs < aio_nr) {
> > spin_unlock(&aio_nr_lock);
> > err = -EAGAIN;
> > goto err_ctx;
>
--
"Thought is the essence of where you are now."
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH RESEND] fs: aio: fix the increment of aio-nr and counting against aio-max-nr
2017-07-06 21:07 ` Benjamin LaHaise
@ 2017-07-06 22:25 ` Jeff Moyer
2017-07-07 12:44 ` Mauricio Faria de Oliveira
` (2 subsequent siblings)
3 siblings, 0 replies; 8+ messages in thread
From: Jeff Moyer @ 2017-07-06 22:25 UTC (permalink / raw)
To: Benjamin LaHaise
Cc: Mauricio Faria de Oliveira, viro, linux-aio, linux-fsdevel,
lekshmi.cpillai, nguyenp
Benjamin LaHaise <bcrl@kvack.org> writes:
> I'm queuing this up in my aio-next and will push upstream after a few days
> of soaking in linux-next.
Thanks!
-Jeff
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH RESEND] fs: aio: fix the increment of aio-nr and counting against aio-max-nr
2017-07-06 21:07 ` Benjamin LaHaise
2017-07-06 22:25 ` Jeff Moyer
@ 2017-07-07 12:44 ` Mauricio Faria de Oliveira
2017-07-14 23:58 ` Mauricio Faria de Oliveira
2017-09-07 3:04 ` Mauricio Faria de Oliveira
3 siblings, 0 replies; 8+ messages in thread
From: Mauricio Faria de Oliveira @ 2017-07-07 12:44 UTC (permalink / raw)
To: Benjamin LaHaise; +Cc: Jeff Moyer, viro, linux-aio, linux-fsdevel
On 07/06/2017 06:07 PM, Benjamin LaHaise wrote:
> I'm queuing this up in my aio-next and will push upstream after a few days
> of soaking in linux-next.
Thanks, Ben.
--
Mauricio Faria de Oliveira
IBM Linux Technology Center
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH RESEND] fs: aio: fix the increment of aio-nr and counting against aio-max-nr
2017-07-06 21:07 ` Benjamin LaHaise
2017-07-06 22:25 ` Jeff Moyer
2017-07-07 12:44 ` Mauricio Faria de Oliveira
@ 2017-07-14 23:58 ` Mauricio Faria de Oliveira
2017-09-07 3:04 ` Mauricio Faria de Oliveira
3 siblings, 0 replies; 8+ messages in thread
From: Mauricio Faria de Oliveira @ 2017-07-14 23:58 UTC (permalink / raw)
To: Benjamin LaHaise, Jeff Moyer; +Cc: viro, linux-aio, linux-fsdevel
Hi Ben,
On 07/06/2017 06:07 PM, Benjamin LaHaise wrote:
> I'm queuing this up in my aio-next and will push upstream after a few days
> of soaking in linux-next.
Apparently this patch could only make linux-next in today's tree (0714)
as seen in [1], and the merge window should close in 2 days (Jul, 16th)
according to LWN [2].
Wondering if you'd consider submitting it to the few initial v4.13-rcs ?
(after the testing period you mentioned) so that it can make v4.13, as
it can be considered a fix too, not just an improvement, IMHO :- )
Thank you.
[1] https://lkml.org/lkml/2017/7/13/888
[2] https://lwn.net/Articles/727385/
--
Mauricio Faria de Oliveira
IBM Linux Technology Center
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH RESEND] fs: aio: fix the increment of aio-nr and counting against aio-max-nr
2017-07-06 21:07 ` Benjamin LaHaise
` (2 preceding siblings ...)
2017-07-14 23:58 ` Mauricio Faria de Oliveira
@ 2017-09-07 3:04 ` Mauricio Faria de Oliveira
3 siblings, 0 replies; 8+ messages in thread
From: Mauricio Faria de Oliveira @ 2017-09-07 3:04 UTC (permalink / raw)
To: Benjamin LaHaise, Jeff Moyer
Cc: viro, linux-aio, linux-fsdevel, lekshmi.cpillai, nguyenp
Hi Benjamin,
On 07/06/2017 02:07 PM, Benjamin LaHaise wrote:
> On Wed, Jul 05, 2017 at 03:28:14PM -0400, Jeff Moyer wrote:
>> Thanks for your persistence in re-posting this. The fix looks good to
>> me. Ben, can you queue this up?
> I'm queuing this up in my aio-next and will push upstream after a few days
> of soaking in linux-next.
Do you plan to push this patch upstream in the current merge window?
cheers,
--
Mauricio Faria de Oliveira
IBM Linux Technology Center
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2017-09-07 3:05 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-07-05 13:53 [PATCH RESEND] fs: aio: fix the increment of aio-nr and counting against aio-max-nr Mauricio Faria de Oliveira
2017-07-05 13:59 ` Mauricio Faria de Oliveira
2017-07-05 19:28 ` Jeff Moyer
2017-07-06 21:07 ` Benjamin LaHaise
2017-07-06 22:25 ` Jeff Moyer
2017-07-07 12:44 ` Mauricio Faria de Oliveira
2017-07-14 23:58 ` Mauricio Faria de Oliveira
2017-09-07 3:04 ` Mauricio Faria de Oliveira
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.