From: Douglas Gilbert <dougg@torque.net>
To: "Martin W. Schlining III" <mschlining@datadirectnet.com>
Cc: linux-scsi@vger.kernel.org
Subject: Re: sgp_dd uses alot of CPU time on FC3
Date: Sat, 28 May 2005 17:13:31 +1000 [thread overview]
Message-ID: <42981A1B.9000207@torque.net> (raw)
In-Reply-To: <429762B7.5010905@datadirectnet.com>
Martin W. Schlining III wrote:
> I posted this on the Fedora Forum. I thought this was also an
> appropriate place as well.
>
> I am trying to use my Dell 2850 Server as a data pump using sgp_dd to
> perform large sequential read from my target through sg devices. One
> instance of sgp_dd uses about 50% of the CPU, so running a second only
> causes the CPU to become very busy and my read performance suffers as a
> result. A third and a fourth instance only make matters worse.
>
> I tried using sgm_dd, which is not multithreaded, to run the same test.
> Though the speed is not quite as high as sgp_dd, it only uses a small
> amount of CPU resources. That lead me to believe that either sgp_dd has
> a problem in its multi-threading or maybe the POSIX threads. I'm really
> not sure at this point what to do next.
>
> Under Windows 2003 running IOMeter, my target can be saturated at my
> expected bandwidth across 4 FC4 ports. That shows that my target and
> server are capable of delivering the speed.
>
> I tried both the SMP and non-SMP kernels with the same results.
>
> Here's my configuration using the non-SMP kernel:
>
> My target w/ 4 FC4 host ports
> Dell 2850 server Dual processor 1GB memory
> Fedora Core 3 Distro updated to kernel 2.6.11-1.27_FC3SMP and
> 2.6.11-1.27_FC3
> swap size 2GB
>
> 2 Emulex LP11000 FC4 Dual HBAs, each on independant PCI busses
> Emulex driver version: 2.6-8.0.16.6_x2 compiled and installed for the
> new kernels.
>
> uname -a
> Linux 2.6.11-1.27_FC3 #1 Tue May 17 20:27:37 EDT 2005 i686 i686 i386
> GNU/Linux
>
> gcc -v
> Reading specs from /usr/lib/gcc/i386-redhat-linux/3.4.3/specs
> Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
> --infodir=/usr/share/info --enable-shared --enable-threads=posix
> --disable-checking --with-system-zlib --enable-__cxa_atexit
> --disable-libunwind-exceptions --enable-java-awt=gtk
> --host=i386-redhat-linux
> Thread model: posix
> gcc version 3.4.3 20050227 (Red Hat 3.4.3-22.fc3)
>
> lsscsi -g
> [0:0:0:0] disk SEAGATE ST336607LC DS09 /dev/sda /dev/sg0
> [0:0:6:0] process PE/PV 1x6 SCSI BP 1.0 - /dev/sg1
> [14:0:0:0] disk E1.0 /dev/sdb /dev/sg2
> [15:0:0:0] disk E1.0 /dev/sdc /dev/sg3
> [16:0:0:0] disk E1.0 /dev/sdd /dev/sg4
> [17:0:0:0] disk E1.0 /dev/sde /dev/sg5
>
> cat /proc/scsi/sg/allow_dio
> 0
Martin,
allow_dio only comes into play when the "dio=1" option
is used in sgp_dd (and sg_dd).
> I tried using a value of 1 for allow_dio, but it had no effect.
>
> Using sg3_utils-1.14
>
> Running sgp_dd like this:
> sgp_dd if=/dev/sg2 of=/dev/null bs=512 bpt=4096 thr=6 time=1
>
> 6 threads, 2M transfers, actually gives 2M commands sizes
You didn't show what throughput you got.
I haven't done much timing on sgp_dd since lk 2.4
days. Here is one data point I just obtained with lk 2.6.11:
$ time sgp_dd if=/dev/sg20 of=. bs=512 bpt=4096 thr=6 time=1
time to transfer data was 558.082167 secs, 65.26 MB/sec
71132960+0 records in
71132960+0 records out
0.06user 23.95system 9:18.08elapsed 4%CPU
(0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+909minor)pagefaults 0swaps
That doesn't look too bad: 4% CPU utilization
Using a rebadged Seagate FC disk via a QLogic Corp.
QLA2312 Fibre Channel Adapter (qla2xxx LLD):
$ sdparm --page=co /dev/sg20
/dev/sg20: HP 36.4G ST336753FC HP00
Control mode page:
TST 0 [cha: n, def: 0, sav: 0]
TMF_ONLY 0 [cha: n, def: 0, sav: 0]
D_SENSE 0 [cha: n, def: 0, sav: 0]
GLTSD 0 [cha: y, def: 0, sav: 0]
RLEC 0 [cha: y, def: 0, sav: 0]
QAM 1 [cha: y, def: 1, sav: 1]
QERR 0 [cha: n, def: 0, sav: 0]
RAC 0 [cha: n, def: 0, sav: 0]
UA_INTLCK 0 [cha: n, def: 0, sav: 0]
SWP 0 [cha: y, def: 0, sav: 0]
ATO 0 [cha: n, def: 0, sav: 0]
TAS 0 [cha: n, def: 0, sav: 0]
AUTOLOAD 0 [cha: n, def: 0, sav: 0]
BTP 0 [cha: n, def: 0, sav: 0]
ESTCT 0 [cha: y, def: 0, sav: 0]
It is an SMP, 64 bit processor kernel:
$ cat /proc/cpuinfo
processor : 0
vendor : GenuineIntel
arch : IA-64
family : Itanium 2
model : 1
revision : 5
archrev : 0
features : branchlong
cpu number : 0
cpu regs : 4
cpu MHz : 1500.000000
itc MHz : 1500.000000
BogoMIPS : 2239.75
processor : 1
dito
On the same disk, sgm_dd is no faster but shows
an impressive 0% CPU utilization
(0.00user 0.23system 9:18.07elapsed 0%CPU).
Doug Gilbert
prev parent reply other threads:[~2005-05-28 7:13 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-05-27 18:11 sgp_dd uses alot of CPU time on FC3 Martin W. Schlining III
2005-05-28 7:13 ` Douglas Gilbert [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=42981A1B.9000207@torque.net \
--to=dougg@torque.net \
--cc=linux-scsi@vger.kernel.org \
--cc=mschlining@datadirectnet.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox