All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] mmap backend broken
@ 2015-01-07  3:30 Yoshinori Sato
  2015-01-12 23:50 ` Jens Axboe
  0 siblings, 1 reply; 4+ messages in thread
From: Yoshinori Sato @ 2015-01-07  3:30 UTC (permalink / raw)
  To: fio

Program received signal SIGSEGV, Segmentation fault.
0x00000000004345c2 in fio_mmapio_invalidate (td=0x7fffeed6e790,
    f=0x7ffff75dc3d0) at engines/mmap.c:260
warning: Source file is more recent than executable.
260 static struct ioengine_ops ioengine = {
(gdb) bt
#0  0x00000000004345c2 in fio_mmapio_invalidate (td=0x7fffeed6e790,
    f=0x7ffff75dc3d0) at engines/mmap.c:260
#1  0x000000000041b1da in __file_invalidate_cache (td=0x7fffeed6e790,
    f=0x7ffff75dc3d0, off=0, len=1456128) at filesetup.c:402
#2  0x000000000041c465 in setup_files (td=0x7fffeed6e790) at filesetup.c:924
#3  0x0000000000443d7a in run_threads () at backend.c:1892
#4  fio_backend () at backend.c:2197
#5  0x0000003506a1ed1d in __libc_start_main (main=0x453980 <main>, argc=2,
    ubp_av=0x7fffffffe228, init=<value optimized out>,
    fini=<value optimized out>, rtld_fini=<value optimized out>,
    stack_end=0x7fffffffe218) at libc-start.c:226
#6  0x000000000040aa19 in _start ()

madvice before mmap. moved later.

Signed-off-by Yoshinori Sato <yo-satoh@sios.com>
---
 engines/mmap.c | 25 ++++++++++---------------
 1 file changed, 10 insertions(+), 15 deletions(-)

diff --git a/engines/mmap.c b/engines/mmap.c
index 8bcd42c..69add78 100644
--- a/engines/mmap.c
+++ b/engines/mmap.c
@@ -62,6 +62,16 @@ static int fio_mmap_file(struct thread_data *td,
struct fio_file *f,
  goto err;
  }
  }
+ if (posix_madvise(fmd->mmap_ptr, length, POSIX_MADV_DONTNEED) < 0) {
+ td_verror(td, errno, "madvise");
+ goto err;
+ }
+
+#ifdef FIO_MADV_FREE
+ if (f->filetype == FIO_TYPE_BD)
+ (void) posix_madvise(fmd->mmap_ptr, fmd->mmap_sz, FIO_MADV_FREE);
+#endif
+

 err:
  if (td->error && fmd->mmap_ptr)
@@ -252,20 +262,6 @@ static int fio_mmapio_close_file(struct
thread_data *td, struct fio_file *f)
  return generic_close_file(td, f);
 }

-static int fio_mmapio_invalidate(struct thread_data *td, struct fio_file *f)
-{
- struct fio_mmap_data *fmd = FILE_ENG_DATA(f);
- int ret;
-
- ret = posix_madvise(fmd->mmap_ptr, fmd->mmap_sz, POSIX_MADV_DONTNEED);
-#ifdef FIO_MADV_FREE
- if (f->filetype == FIO_TYPE_BD)
- (void) posix_madvise(fmd->mmap_ptr, fmd->mmap_sz, FIO_MADV_FREE);
-#endif
-
- return ret;
-}
-
 static struct ioengine_ops ioengine = {
  .name = "mmap",
  .version = FIO_IOOPS_VERSION,
@@ -274,7 +270,6 @@ static struct ioengine_ops ioengine = {
  .queue = fio_mmapio_queue,
  .open_file = fio_mmapio_open_file,
  .close_file = fio_mmapio_close_file,
- .invalidate = fio_mmapio_invalidate,
  .get_file_size = generic_get_file_size,
  .flags = FIO_SYNCIO | FIO_NOEXTEND,
 };
-- 
1.7.12.4

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] mmap backend broken
  2015-01-07  3:30 [PATCH] mmap backend broken Yoshinori Sato
@ 2015-01-12 23:50 ` Jens Axboe
  2015-01-13  4:51   ` Yoshinori Sato
  0 siblings, 1 reply; 4+ messages in thread
From: Jens Axboe @ 2015-01-12 23:50 UTC (permalink / raw)
  To: Yoshinori Sato, fio

On 01/06/2015 08:30 PM, Yoshinori Sato wrote:
> Program received signal SIGSEGV, Segmentation fault.
> 0x00000000004345c2 in fio_mmapio_invalidate (td=0x7fffeed6e790,
>     f=0x7ffff75dc3d0) at engines/mmap.c:260
> warning: Source file is more recent than executable.
> 260 static struct ioengine_ops ioengine = {
> (gdb) bt
> #0  0x00000000004345c2 in fio_mmapio_invalidate (td=0x7fffeed6e790,
>     f=0x7ffff75dc3d0) at engines/mmap.c:260
> #1  0x000000000041b1da in __file_invalidate_cache (td=0x7fffeed6e790,
>     f=0x7ffff75dc3d0, off=0, len=1456128) at filesetup.c:402
> #2  0x000000000041c465 in setup_files (td=0x7fffeed6e790) at filesetup.c:924
> #3  0x0000000000443d7a in run_threads () at backend.c:1892
> #4  fio_backend () at backend.c:2197
> #5  0x0000003506a1ed1d in __libc_start_main (main=0x453980 <main>, argc=2,
>     ubp_av=0x7fffffffe228, init=<value optimized out>,
>     fini=<value optimized out>, rtld_fini=<value optimized out>,
>     stack_end=0x7fffffffe218) at libc-start.c:226
> #6  0x000000000040aa19 in _start ()

Oops thanks, your patch looks correct, but unfortunately it's garbled in
the mailer. Can you resend it attached?

-- 
Jens Axboe



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] mmap backend broken
  2015-01-12 23:50 ` Jens Axboe
@ 2015-01-13  4:51   ` Yoshinori Sato
  2015-01-13 15:07     ` Jens Axboe
  0 siblings, 1 reply; 4+ messages in thread
From: Yoshinori Sato @ 2015-01-13  4:51 UTC (permalink / raw)
  To: Jens Axboe; +Cc: fio

[-- Attachment #1: Type: text/plain, Size: 1296 bytes --]

Oh. Sorry
Attached it.

Thanks.

2015-01-13 8:50 GMT+09:00 Jens Axboe <axboe@kernel.dk>:
> On 01/06/2015 08:30 PM, Yoshinori Sato wrote:
>> Program received signal SIGSEGV, Segmentation fault.
>> 0x00000000004345c2 in fio_mmapio_invalidate (td=0x7fffeed6e790,
>>     f=0x7ffff75dc3d0) at engines/mmap.c:260
>> warning: Source file is more recent than executable.
>> 260 static struct ioengine_ops ioengine = {
>> (gdb) bt
>> #0  0x00000000004345c2 in fio_mmapio_invalidate (td=0x7fffeed6e790,
>>     f=0x7ffff75dc3d0) at engines/mmap.c:260
>> #1  0x000000000041b1da in __file_invalidate_cache (td=0x7fffeed6e790,
>>     f=0x7ffff75dc3d0, off=0, len=1456128) at filesetup.c:402
>> #2  0x000000000041c465 in setup_files (td=0x7fffeed6e790) at filesetup.c:924
>> #3  0x0000000000443d7a in run_threads () at backend.c:1892
>> #4  fio_backend () at backend.c:2197
>> #5  0x0000003506a1ed1d in __libc_start_main (main=0x453980 <main>, argc=2,
>>     ubp_av=0x7fffffffe228, init=<value optimized out>,
>>     fini=<value optimized out>, rtld_fini=<value optimized out>,
>>     stack_end=0x7fffffffe218) at libc-start.c:226
>> #6  0x000000000040aa19 in _start ()
>
> Oops thanks, your patch looks correct, but unfortunately it's garbled in
> the mailer. Can you resend it attached?
>
> --
> Jens Axboe
>

[-- Attachment #2: 0001-mmap-backend-invalidate-fix.patch --]
[-- Type: application/octet-stream, Size: 1817 bytes --]

From 0a336af035d42ae3c63ab4bd03b5f27bf0cc9a9d Mon Sep 17 00:00:00 2001
From: Yoshinori Sato <yo-satoh@sios.com>
Date: Wed, 7 Jan 2015 12:16:36 +0900
Subject: [PATCH] mmap backend invalidate fix

madvice before mmap. moved later.

Signed-off-by Yoshinori Sato <yo-satoh@sios.com>
---
 engines/mmap.c | 25 ++++++++++---------------
 1 file changed, 10 insertions(+), 15 deletions(-)

diff --git a/engines/mmap.c b/engines/mmap.c
index 8bcd42c..69add78 100644
--- a/engines/mmap.c
+++ b/engines/mmap.c
@@ -62,6 +62,16 @@ static int fio_mmap_file(struct thread_data *td, struct fio_file *f,
 			goto err;
 		}
 	}
+	if (posix_madvise(fmd->mmap_ptr, length, POSIX_MADV_DONTNEED) < 0) {
+		td_verror(td, errno, "madvise");
+		goto err;
+	}
+
+#ifdef FIO_MADV_FREE
+	if (f->filetype == FIO_TYPE_BD)
+		(void) posix_madvise(fmd->mmap_ptr, fmd->mmap_sz, FIO_MADV_FREE);
+#endif
+
 
 err:
 	if (td->error && fmd->mmap_ptr)
@@ -252,20 +262,6 @@ static int fio_mmapio_close_file(struct thread_data *td, struct fio_file *f)
 	return generic_close_file(td, f);
 }
 
-static int fio_mmapio_invalidate(struct thread_data *td, struct fio_file *f)
-{
-	struct fio_mmap_data *fmd = FILE_ENG_DATA(f);
-	int ret;
-
-	ret = posix_madvise(fmd->mmap_ptr, fmd->mmap_sz, POSIX_MADV_DONTNEED);
-#ifdef FIO_MADV_FREE
-	if (f->filetype == FIO_TYPE_BD)
-		(void) posix_madvise(fmd->mmap_ptr, fmd->mmap_sz, FIO_MADV_FREE);
-#endif
-
-	return ret;
-}
-
 static struct ioengine_ops ioengine = {
 	.name		= "mmap",
 	.version	= FIO_IOOPS_VERSION,
@@ -274,7 +270,6 @@ static struct ioengine_ops ioengine = {
 	.queue		= fio_mmapio_queue,
 	.open_file	= fio_mmapio_open_file,
 	.close_file	= fio_mmapio_close_file,
-	.invalidate	= fio_mmapio_invalidate,
 	.get_file_size	= generic_get_file_size,
 	.flags		= FIO_SYNCIO | FIO_NOEXTEND,
 };
-- 
1.7.12.4


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] mmap backend broken
  2015-01-13  4:51   ` Yoshinori Sato
@ 2015-01-13 15:07     ` Jens Axboe
  0 siblings, 0 replies; 4+ messages in thread
From: Jens Axboe @ 2015-01-13 15:07 UTC (permalink / raw)
  To: Yoshinori Sato; +Cc: fio

On 01/12/2015 09:51 PM, Yoshinori Sato wrote:
> Oh. Sorry
> Attached it.

Thanks, applied.

-- 
Jens Axboe



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-01-13 15:07 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-07  3:30 [PATCH] mmap backend broken Yoshinori Sato
2015-01-12 23:50 ` Jens Axboe
2015-01-13  4:51   ` Yoshinori Sato
2015-01-13 15:07     ` Jens Axboe

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.