segfaults/error with ioengine=sg

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I've encountered a segfault and error when trying to use the sg ioengine with iodepth > 1. These crashes occur with both the packaged Centos6 version (2.0.13) and one from git I built yesterday.  Perhaps iodepth is not supported with the sg ioengine? I am trying to use an sg device for asynchronous io, and setting a higher iodepth in order to increase throughput.

First, output of sg_inq of drive being tested:

# sg_inq /dev/sg6
standard INQUIRY:
  PQual=0  Device_type=0  RMB=0  version=0x05  [SPC-3]
  [AERC=0]  [TrmTsk=0]  NormACA=0  HiSUP=0  Resp_data_format=2
  SCCS=0  ACC=0  TPGS=0  3PC=0  Protect=0  [BQue=0]
  EncServ=0  MultiP=1 (VS=0)  [MChngr=0]  [ACKREQQ=0]  Addr16=0
  [RelAdr=0]  WBus16=0  Sync=0  Linked=0  [TranDis=0]  CmdQue=1
  [SPI: Clocking=0x0  QAS=0  IUS=0]
    length=164 (0xa4)   Peripheral device type: disk
 Vendor identification: ATA
 Product identification: Hitachi HDS72303
 Product revision level: AA10
 Unit serial number:       MK0371YVGT69GK

Here is the job file:

[global]
filename=/dev/sg6
size=10g
thread=1
ioengine=sg
iodepth=64

[write-phase]
bs=1M
rw=write

Program output:

write-phase: (g=0): rw=write, bs=1M-1M/1M-1M/1M-1M, ioengine=sg, iodepth=64
fio-2.1.2-21-gf7133
Starting 1 thread
Segmentation fault (core dumped)

And stack trace:

Program terminated with signal 11, Segmentation fault.
#0  dprint_io_u (td=0x7fb452426000, io_u=0x0, icd=0x7fb451a22d00) at ioengine.h:214
214     ioengine.h: No such file or directory.
        in ioengine.h
Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.80.el6_3.7.x86_64 libaio-0.3.107-10.el6.x86_64 zlib-1.2.3-27.el6.x86_64
(gdb) where
#0  dprint_io_u (td=0x7fb452426000, io_u=0x0, icd=0x7fb451a22d00) at ioengine.h:214
#1  io_completed (td=0x7fb452426000, io_u=0x0, icd=0x7fb451a22d00) at io_u.c:1436
#2  0x0000000000426030 in ios_completed (td=0x7fb452426000, min_evts=<value optimized out>, bytes=0x0) at io_u.c:1551
#3  io_u_queued_complete (td=0x7fb452426000, min_evts=<value optimized out>, bytes=0x0) at io_u.c:1611
#4  0x00000000004421b2 in cleanup_pending_aio (data=0x7fb452426000) at backend.c:267
#5  do_io (data=0x7fb452426000) at backend.c:859
#6  thread_main (data=0x7fb452426000) at backend.c:1314
#7  0x00007fb4559e8851 in start_thread () from /lib64/libpthread.so.0
#8  0x00007fb45553211d in clone () from /lib64/libc.so.6

When the 'thread' option is disabled, fio fails with an error instead of a crash:

write-phase: (g=0): rw=write, bs=1M-1M/1M-1M/1M-1M, ioengine=sg, iodepth=64
fio-2.1.2-21-gf7133
Starting 1 process
fio: pid=5701, got signal=11

write-phase: (groupid=0, jobs=1): err=33 (file:engines/sg.c:260, func=xfer, error=Numerical argument out of domain): pid=5701: Tue Sep 10 15:45:28 201
    lat (msec) : 50=5.88%, 100=5.88%
  cpu          : usr=0.00%, sys=0.00%, ctx=0, majf=0, minf=0
  IO depths    : 1=5.9%, 2=11.8%, 4=23.5%, 8=47.1%, 16=11.8%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=94.7%, 8=0.0%, 16=5.3%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued    : total=r=0/w=17/d=0, short=r=0/w=0/d=0

Run status group 0 (all jobs):
fio: file hash not empty on exit
--
To unsubscribe from this list: send the line "unsubscribe fio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux