Sent: Friday, February 16, 2007 3:01 AM
To: Ananiev, Leonid I
Cc: Ken Chen; [EMAIL PROTECTED]; Andrew Morton;
linux-kernel@vger.kernel.org; linux-aio; Chris Mason
Subject: Re: [PATCH] aio: fix kernel bug when page is temporally busy
On Feb 15, 2007, at 3:32 PM, Ananiev, Leonid I wrote:
>>
On Feb 15, 2007, at 3:32 PM, Ananiev, Leonid I wrote:
If EIOCBRETRY then generic_file_aio_write() will be recalled for the
same iocb.
Only if kick_iocb() is called. It won't be called if i_i_p2_r() was
the only thing to return -EIOCBRETRY.
It is not need to call kick_iocb()
for generic_file_
o_run_iocb() during 5 hours aiostress running.
Does it mean that EIOCBQUEUED is always reset and never returned?
Leonid
-Original Message-
From: Zach Brown [mailto:[EMAIL PROTECTED]
Sent: Thursday, February 15, 2007 10:23 PM
To: Ananiev, Leonid I
Cc: Ken Chen; [EMAIL PROTECTED]; Andrew
-Original Message-
From: Zach Brown [mailto:[EMAIL PROTECTED]
Sent: Thursday, February 15, 2007 10:23 PM
To: Ananiev, Leonid I
Cc: Ken Chen; [EMAIL PROTECTED]; Andrew Morton;
linux-kernel@vger.kernel.org; linux-aio; Chris Mason
Subject: Re: [PATCH] aio: fix kernel bug when page is
On Feb 15, 2007, at 11:11 AM, Ananiev, Leonid I wrote:
It returns -EIOCBRETRY without guaranteeing that kick_iocb() will be
called. This can lead to operations hanging
If EIOCBRETRY then generic_file_aio_write() will be recalled for the
same iocb.
Only if kick_iocb() is called. It won't b
t it?
Leonid
-Original Message-
From: Zach Brown [mailto:[EMAIL PROTECTED]
Sent: Thursday, February 15, 2007 9:25 PM
To: Ananiev, Leonid I
Cc: Ken Chen; [EMAIL PROTECTED]; Andrew Morton;
linux-kernel@vger.kernel.org; linux-aio; Chris Mason
Subject: Re: [PATCH] aio: fix kernel bug when p
If invalidate_inode_pages2_range() will return EIOCBRETRY as the patch
"aio: fix kernel bug when page is temporally busy"
Sorry Leonid, this patch is not safe.
It returns -EIOCBRETRY without guaranteeing that kick_iocb() will be
called. This can lead to operations hanging, both AIO and calls
Ken Chen wrote
> It might shut up kernel
> panic by eliminate double calls to aio_complete(), but it will
> silently introduce data corruption.
I had got kernel panic after an hour of aiostress running.
After patching I have not got aiostress massage
"verify error, file %s offset %Lu contents (of
l.org
Subject: Re: [PATCH] aio: fix kernel bug when page is temporally busy
On Wed, 14 Feb 2007 20:51:33 +0300 "Ananiev, Leonid I"
<[EMAIL PROTECTED]> wrote:
> Fix kernel bug when IO page is temporally busy:
> invalidate_inode_pages2_range() returns EIOCBRETRY but not EIO.
>
On Wed, 14 Feb 2007 20:51:33 +0300 "Ananiev, Leonid I" <[EMAIL PROTECTED]>
wrote:
> Fix kernel bug when IO page is temporally busy:
> invalidate_inode_pages2_range() returns EIOCBRETRY but not EIO.
> invalidate_inode_pages2() returns EIO as earlier.
>
> Signed-off-by: Leonid Ananiev <[EMAIL PRO
Andrew,
You wrote on Friday, February 09, 2007 8:53 AM
> invalidate_inode_pages2() has other callers. I suspect with this
change
> we'll end up leaking EIOCBRETRY back to userspace.
The path is modified so that invalidate_inode_pages2() returns EIO as
earlier.
could you consider modified patch
Th
Andrew,
You wrote on Friday, February 09, 2007 8:53 AM
> invalidate_inode_pages2() has other callers. I suspect with this
change
> we'll end up leaking EIOCBRETRY back to userspace.
The path is modified so that invalidate_inode_pages2() returns EIO as
earlier.
could you consider modified patch
Th
Ken Chen writes:
> So any error value returned from invalidate_inode_pages2_range() has
> to be taken seriously in the direct IO submit path instead of dropping
> it to the floor.
If invalidate_inode_pages2_range() will return EIOCBRETRY as the patch
"aio: fix kernel bug when page is temporally b
> If invalidate_inode_pages2_range() says it can not invalidate pages,
> while dio to the same file offset range is in flight, something is
> really wrong there.
If invalidate_inode_pages2_range() says it can not invalidate pages
It means that soft_irq does completing IO now on other cpu.
Next ret
Pulavarty
Subject: Re: [PATCH] aio: fix kernel bug when page is temporally busy
On 2/9/07, Ananiev, Leonid I <[EMAIL PROTECTED]> wrote:
> I have used EIOCBRETRY in the patch to minimize source code
modification
> only.
> [...]
> A lot of errno's have different meaning in different
PM
To: Ananiev, Leonid I
Cc: [EMAIL PROTECTED]; Andrew Morton; linux-kernel@vger.kernel.org;
linux-aio; Zach Brown; Chris Mason; Badari Pulavarty
Subject: Re: [PATCH] aio: fix kernel bug when page is temporally busy
On 2/9/07, Ananiev, Leonid I <[EMAIL PROTECTED]> wrote:
> I have used E
On 2/9/07, Ananiev, Leonid I <[EMAIL PROTECTED]> wrote:
I have used EIOCBRETRY in the patch to minimize source code modification
only.
[...]
A lot of errno's have different meaning in different functions or
contexts. EAGAIN could be used instated of EIOCBRETRY for irredundant
set.
I also think
On Feb 9, 2007, at 6:05 AM, Suparna Bhattacharya wrote:
On Fri, Feb 09, 2007 at 11:40:27AM +0100, Jiri Kosina wrote:
On Fri, 9 Feb 2007, Andrew Morton wrote:
@@ -1204,7 +1204,7 @@ generic_file_aio_read(struct kiocb *iocb,
const struct iovec *iov,
do_generic_file_rea
Leonid
-Original Message-
From: Suparna Bhattacharya [mailto:[EMAIL PROTECTED]
Sent: Friday, February 09, 2007 2:06 PM
To: Jiri Kosina
Cc: Andrew Morton; Ananiev, Leonid I; linux-kernel@vger.kernel.org;
linux-aio; Zach Brown; Chris Mason; Badari Pulavarty; Jan Kara
Subject: Re: [PATCH] ai
On Fri, Feb 09, 2007 at 11:40:27AM +0100, Jiri Kosina wrote:
> On Fri, 9 Feb 2007, Andrew Morton wrote:
>
> > > @@ -1204,7 +1204,7 @@ generic_file_aio_read(struct kiocb *iocb, const
> > > struct iovec *iov,
> > > do_generic_file_read(filp,ppos,&desc,file_read_actor);
> > >
On Fri, 9 Feb 2007, Andrew Morton wrote:
> > @@ -1204,7 +1204,7 @@ generic_file_aio_read(struct kiocb *iocb, const
> > struct iovec *iov,
> > do_generic_file_read(filp,ppos,&desc,file_read_actor);
> > retval += desc.written;
> > if (desc
On Fri, 9 Feb 2007 10:54:36 +0100 (CET) Jiri Kosina <[EMAIL PROTECTED]> wrote:
> @@ -1204,7 +1204,7 @@ generic_file_aio_read(struct kiocb *iocb, const struct
> iovec *iov,
> do_generic_file_read(filp,ppos,&desc,file_read_actor);
> retval += desc.written
On Fri, 9 Feb 2007, Ananiev, Leonid I wrote:
> I have used EIOCBRETRY in the patch to minimize source code modification
> only. It is notable that EIOCBRETRY is never set in kernel, but tested
> only.
There is indeed something strange in aio in 2.6.20 (and maybe older) - for
example do_generic
On Fri, 9 Feb 2007, Ananiev, Leonid I wrote:
> Fix "Kernel BUG at fs/aio.c:509". Return EIOCBRETRY but not EIO if page
> is busy.
I am currently also hunting in this area, and I think there is something
strange in generic_file_aio_read(). This seems strange:
for (seg = 0; seg < nr_segs
: fix kernel bug when page is temporally busy
On Fri, Feb 09, 2007 at 08:41:41AM +0300, Ananiev, Leonid I wrote:
> > invalidate_inode_pages2() has other callers. I suspect with this
> change
> > we'll end up leaking EIOCBRETRY back to userspace.
>
> EIOCBRETR
On Fri, Feb 09, 2007 at 08:41:41AM +0300, Ananiev, Leonid I wrote:
> > invalidate_inode_pages2() has other callers. I suspect with this
> change
> > we'll end up leaking EIOCBRETRY back to userspace.
>
> EIOCBRETRY is used and caught already in do_sync_read() and
> do_sync_readv_writev().
>
>
On Fri, 9 Feb 2007 08:41:41 +0300 "Ananiev, Leonid I" <[EMAIL PROTECTED]> wrote:
>
> > invalidate_inode_pages2() has other callers. I suspect with this
> change
> > we'll end up leaking EIOCBRETRY back to userspace.
>
> EIOCBRETRY is used and caught already in do_sync_read() and
> do_sync_readv
> invalidate_inode_pages2() has other callers. I suspect with this
change
> we'll end up leaking EIOCBRETRY back to userspace.
EIOCBRETRY is used and caught already in do_sync_read() and
do_sync_readv_writev().
Below fixed patch against kernel 2.6.20.
>From Leonid Ananiev
Fix kernel bug when
On Fri, 9 Feb 2007 07:29:31 +0300 "Ananiev, Leonid I" <[EMAIL PROTECTED]> wrote:
> >From Leonid Ananiev
>
> Fix "Kernel BUG at fs/aio.c:509". Return EIOCBRETRY but not EIO if page
> is busy.
>
> Signed-off-by: Leonid Ananiev <[EMAIL PROTECTED]>
>
> "Kernel BUG at fs/aio.c:509"
> http://marc.th
29 matches
Mail list logo