[DragonFlyBSD - Bug #2986] kernel panic when running fio (modified fio)

bugtracker-admin at leaf.dragonflybsd.org bugtracker-admin at leaf.dragonflybsd.org
Thu Mar 23 08:48:38 PDT 2017


Issue #2986 has been updated by dillon.


The fio program catches ^C.  You should be able to kill it by ^Z'ing it to stop it and then doing a 'killall -9 fio'.  Not sure why the low memory code couldn't kill it, though it could be that it is and the fio parent is re-forking or something like that.  Either way the program with the arguments you specify appears to try to manipulate around 32GB of memory, so if you don't have the resources to support that the machine is not going to be happy.  You can reduce the impact on the rest of the machine by setting a memoryuse resource limit (x 10 jobs).  For example, from csh/tcsh:  limit memoryuse 100m, and then run the fio job.

-Matt

----------------------------------------
Bug #2986: kernel panic when running fio (modified fio)
http://bugs.dragonflybsd.org/issues/2986#change-13086

* Author: tkusumi
* Status: New
* Priority: Normal
* Assignee: 
* Category: 
* Target version: 
----------------------------------------
After running for 1 min or so, fio threads either get killed due to oom, or vm subsystem panics.
Both can happen and neither is rare on my environment.
I'm using master.
https://leaf.dragonflybsd.org/~tkusumi/diff/fio_bs_panic.PNG

1. git clone git://git.kernel.dk/fio
2. Make following change

-----------------
# git diff
diff --git a/filesetup.c b/filesetup.c
index bcf95bd5..4579a181 100644
--- a/filesetup.c
+++ b/filesetup.c
@@ -243,6 +243,7 @@ static int pre_read_file(struct thread_data *td, struct fio_file *f)

        bs = td->o.max_bs[DDIR_READ];
        b = malloc(bs);
+       b[0] = 0xff;
        memset(b, 0, bs);

        if (lseek(f->fd, f->file_offset, SEEK_SET) < 0) {
-----------------

3. Run below. --bsrange= may need to be changed depending on ram/swap size. In this example 100000 MiB is the size of malloc in above diff.
   # ./configure
   # gmake -j8
   # rm ./xxxxx.* if exists
   # ./fio --name=xxxxx --ioengine=sync --rw=read --bs=32k --size=10m --numjobs=10 --nrfiles=10 --unlink=1 --bsrange=1k:100000m --pre_read=1



-- 
You have received this notification because you have either subscribed to it, or are involved in it.
To change your notification preferences, please click here: http://bugs.dragonflybsd.org/my/account



More information about the Bugs mailing list