linux-raid.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/16] raid acceleration and asynchronous offload api for 2.6.22
@ 2007-05-02  6:14 Dan Williams
  2007-05-02  6:55 ` Nick Piggin
  0 siblings, 1 reply; 11+ messages in thread
From: Dan Williams @ 2007-05-02  6:14 UTC (permalink / raw)
  To: neilb, akpm, christopher.leech; +Cc: linux-kernel, linux-raid

I am pleased to release this latest spin of the raid acceleration
patches for merge consideration.  This release aims to address all
pending review items including MD bug fixes and async_tx api changes
from Neil, and concerns on channel management from Chris and others.

Data integrity tests using home grown scripts and 'iozone -V' are
passing.  I am open to suggestions for additional testing criteria.  I
have also verified that git bisect is not broken by this set.

The short log below highlights the most recent changes.  The patches
will be sent as a reply to this message, and they are also available via
git:

	git pull git://lost.foo-projects.org/~dwillia2/git/iop md-accel-linus

Additional comments and feedback welcome.

Thanks,
Dan

--
01/16: dmaengine: add base support for the async_tx api
	* convert channel capabilities to a 'cpumask_t like' bitmap
02/16: dmaengine: move channel management to the client
	* this patch is new to this series
03/16: ARM: Add drivers/dma to arch/arm/Kconfig
04/16: dmaengine: add the async_tx api
	* remove the per operation type list, and distribute operation
	  capabilities evenly amongst the available channels
	* simplify async_tx_find_channel to optimize the fast path
05/16: md: add raid5_run_ops and support routines
	* explicitly handle the 2-disk raid5 case (xor becomes memcpy)
	* fix race between async engines and bi_end_io call for reads,
	  Neil Brown
	* remove unnecessary spin_lock from ops_complete_biofill
	* remove test_and_set/test_and_clear BUG_ONs, Neil Brown
	* remove explicit interrupt handling, Neil Brown
06/16: md: use raid5_run_ops for stripe cache operations
07/16: md: move write operations to raid5_run_ops
	* remove test_and_set/test_and_clear BUG_ONs, Neil Brown
08/16: md: move raid5 compute block operations to raid5_run_ops
	* remove the req_compute BUG_ON
09/16: md: move raid5 parity checks to raid5_run_ops
	* remove test_and_set/test_and_clear BUG_ONs, Neil Brown
10/16: md: satisfy raid5 read requests via raid5_run_ops
	* cleanup to_read and to_fill accounting
	* do not fail reads that have reached the cache
11/16: md: use async_tx and raid5_run_ops for raid5 expansion operations
12/16: md: move raid5 io requests to raid5_run_ops
13/16: md: remove raid5 compute_block and compute_parity5
14/16: dmaengine: driver for the iop32x, iop33x, and iop13xx raid engines
	* fix locking bug in iop_adma_alloc_chan_resources, Benjamin
	  Herrenschmidt
	* convert capabilities over to dma_cap_mask_t
15/16: iop13xx: Surface the iop13xx adma units to the iop-adma driver
16/16: iop3xx: Surface the iop3xx DMA and AAU units to the iop-adma driver

(previous release: http://marc.info/?l=linux-raid&m=117463257423193&w=2)

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

* Re: [PATCH 00/16] raid acceleration and asynchronous offload api for 2.6.22
  2007-05-02  6:14 Dan Williams
@ 2007-05-02  6:55 ` Nick Piggin
  2007-05-02 15:45   ` Williams, Dan J
  0 siblings, 1 reply; 11+ messages in thread
From: Nick Piggin @ 2007-05-02  6:55 UTC (permalink / raw)
  To: Dan Williams; +Cc: neilb, akpm, christopher.leech, linux-kernel, linux-raid

Dan Williams wrote:
> I am pleased to release this latest spin of the raid acceleration
> patches for merge consideration.  This release aims to address all
> pending review items including MD bug fixes and async_tx api changes
> from Neil, and concerns on channel management from Chris and others.
> 
> Data integrity tests using home grown scripts and 'iozone -V' are
> passing.  I am open to suggestions for additional testing criteria.

Do you have performance numbers?

-- 
SUSE Labs, Novell Inc.

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

* RE: [PATCH 00/16] raid acceleration and asynchronous offload api for 2.6.22
  2007-05-02  6:55 ` Nick Piggin
@ 2007-05-02 15:45   ` Williams, Dan J
  2007-05-02 15:55     ` Justin Piszcz
  0 siblings, 1 reply; 11+ messages in thread
From: Williams, Dan J @ 2007-05-02 15:45 UTC (permalink / raw)
  To: Nick Piggin; +Cc: neilb, akpm, Leech, Christopher, linux-kernel, linux-raid

> From: Nick Piggin [mailto:nickpiggin@yahoo.com.au]
> > I am pleased to release this latest spin of the raid acceleration
> > patches for merge consideration.  This release aims to address all
> > pending review items including MD bug fixes and async_tx api changes
> > from Neil, and concerns on channel management from Chris and others.
> >
> > Data integrity tests using home grown scripts and 'iozone -V' are
> > passing.  I am open to suggestions for additional testing criteria.
> 
> Do you have performance numbers?
> 
Patch #4 outlines the throughput gains as reported by tiobench.  20-30%
for sequential writes, and 40-55% for degraded reads.

Here are some recent screen captures of a resync operation with and
without offload, this is on an iop13xx platform:

mdadm --create /dev/md0 /dev/sd[abc] missing -n 4 -l 5
mdadm --add /dev/md0 /dev/sdd

---
CONFIG_DMA_ENGINE = n

top - 00:01:39 up 1 min,  1 user,  load average: 0.77, 0.20, 0.06
Tasks:  50 total,   1 running,  49 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.3% us, 47.4% sy,  0.0% ni, 49.0% id,  0.0% wa,  0.7% hi,
2.6% si
Mem:   2074836k total,    36276k used,  2038560k free,        0k buffers
Swap:        0k total,        0k used,        0k free,    16560k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1307 root      11  -5     0    0    0 S 48.0  0.0   0:14.14 md0_raid5
 1319 root      15   0  2260 1052  868 R  0.3  0.1   0:00.12 top

iq81340mc:~# cat /proc/mdstat
Personalities : [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md0 : active raid5 sda[0] sdd[4] sdc[2] sdb[1]
      468872448 blocks level 5, 64k chunk, algorithm 2 [4/3] [UUU_]
      [>....................]  recovery =  0.7% (1104000/156290816)
finish=108.1min speed=23919K/sec

---
CONFIG_DMA_ENGINE = y && CONFIG_INTEL_IOP_ADMA = y

top - 00:06:21 up 6 min,  1 user,  load average: 1.10, 0.68, 0.29
Tasks:  51 total,   1 running,  50 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.5% us,  7.5% sy,  0.1% ni, 85.8% id,  1.9% wa,  0.5% hi,
3.5% si
Mem:   2074776k total,    40520k used,  2034256k free,        0k buffers
Swap:        0k total,        0k used,        0k free,    19448k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1354 root      10  -5     0    0    0 S 11.6  0.0   0:29.32 md0_raid5
 1491 root      18   0  2256  964  780 R  1.9  0.0   0:00.03 top
	
iq81340mc:/mnt# cat /proc/mdstat
Personalities : [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md0 : active raid5 sdd[4] sdc[2] sdb[1] sda[0]
      468872448 blocks level 5, 64k chunk, algorithm 2 [4/3] [UUU_]
      [>....................]  recovery =  3.5% (5474916/156290816)
finish=52.2min speed=48061K/sec

Some older iozone data is available here:
https://sourceforge.net/project/showfiles.php?group_id=115074&package_id
=203776

Regards,
Dan

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

* RE: [PATCH 00/16] raid acceleration and asynchronous offload api for 2.6.22
  2007-05-02 15:45   ` Williams, Dan J
@ 2007-05-02 15:55     ` Justin Piszcz
  2007-05-02 16:17       ` Williams, Dan J
  0 siblings, 1 reply; 11+ messages in thread
From: Justin Piszcz @ 2007-05-02 15:55 UTC (permalink / raw)
  To: Williams, Dan J
  Cc: Nick Piggin, neilb, akpm, Leech, Christopher, linux-kernel,
	linux-raid



On Wed, 2 May 2007, Williams, Dan J wrote:

>> From: Nick Piggin [mailto:nickpiggin@yahoo.com.au]
>>> I am pleased to release this latest spin of the raid acceleration
>>> patches for merge consideration.  This release aims to address all
>>> pending review items including MD bug fixes and async_tx api changes
>>> from Neil, and concerns on channel management from Chris and others.
>>>
>>> Data integrity tests using home grown scripts and 'iozone -V' are
>>> passing.  I am open to suggestions for additional testing criteria.
>>
>> Do you have performance numbers?
>>
> Patch #4 outlines the throughput gains as reported by tiobench.  20-30%
> for sequential writes, and 40-55% for degraded reads.
>
> Here are some recent screen captures of a resync operation with and
> without offload, this is on an iop13xx platform:
>
> mdadm --create /dev/md0 /dev/sd[abc] missing -n 4 -l 5
> mdadm --add /dev/md0 /dev/sdd
>
> ---
> CONFIG_DMA_ENGINE = n
>
> top - 00:01:39 up 1 min,  1 user,  load average: 0.77, 0.20, 0.06
> Tasks:  50 total,   1 running,  49 sleeping,   0 stopped,   0 zombie
> Cpu(s):  0.3% us, 47.4% sy,  0.0% ni, 49.0% id,  0.0% wa,  0.7% hi,
> 2.6% si
> Mem:   2074836k total,    36276k used,  2038560k free,        0k buffers
> Swap:        0k total,        0k used,        0k free,    16560k cached
>
>  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
> 1307 root      11  -5     0    0    0 S 48.0  0.0   0:14.14 md0_raid5
> 1319 root      15   0  2260 1052  868 R  0.3  0.1   0:00.12 top
>
> iq81340mc:~# cat /proc/mdstat
> Personalities : [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
> md0 : active raid5 sda[0] sdd[4] sdc[2] sdb[1]
>      468872448 blocks level 5, 64k chunk, algorithm 2 [4/3] [UUU_]
>      [>....................]  recovery =  0.7% (1104000/156290816)
> finish=108.1min speed=23919K/sec
>
> ---
> CONFIG_DMA_ENGINE = y && CONFIG_INTEL_IOP_ADMA = y
>
> top - 00:06:21 up 6 min,  1 user,  load average: 1.10, 0.68, 0.29
> Tasks:  51 total,   1 running,  50 sleeping,   0 stopped,   0 zombie
> Cpu(s):  0.5% us,  7.5% sy,  0.1% ni, 85.8% id,  1.9% wa,  0.5% hi,
> 3.5% si
> Mem:   2074776k total,    40520k used,  2034256k free,        0k buffers
> Swap:        0k total,        0k used,        0k free,    19448k cached
>
>  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
> 1354 root      10  -5     0    0    0 S 11.6  0.0   0:29.32 md0_raid5
> 1491 root      18   0  2256  964  780 R  1.9  0.0   0:00.03 top
>
> iq81340mc:/mnt# cat /proc/mdstat
> Personalities : [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
> md0 : active raid5 sdd[4] sdc[2] sdb[1] sda[0]
>      468872448 blocks level 5, 64k chunk, algorithm 2 [4/3] [UUU_]
>      [>....................]  recovery =  3.5% (5474916/156290816)
> finish=52.2min speed=48061K/sec
>
> Some older iozone data is available here:
> https://sourceforge.net/project/showfiles.php?group_id=115074&package_id
> =203776
>
> Regards,
> Dan
> -
> To unsubscribe from this list: send the line "unsubscribe linux-raid" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

I have not been following this closely, must you have an 
CONFIG_INTEL_IOP_ADMA piece of hardware and/or chipset to use this 
feature or can regular desktop users take hold of it as well?

Justin.

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

* RE: [PATCH 00/16] raid acceleration and asynchronous offload api for 2.6.22
  2007-05-02 15:55     ` Justin Piszcz
@ 2007-05-02 16:17       ` Williams, Dan J
  2007-05-02 16:19         ` Justin Piszcz
  2007-05-02 16:36         ` Dagfinn Ilmari Mannsåker
  0 siblings, 2 replies; 11+ messages in thread
From: Williams, Dan J @ 2007-05-02 16:17 UTC (permalink / raw)
  To: Justin Piszcz
  Cc: Nick Piggin, neilb, akpm, Leech, Christopher, linux-kernel,
	linux-raid

> From: Justin Piszcz [mailto:jpiszcz@lucidpixels.com]
> I have not been following this closely, must you have an
> CONFIG_INTEL_IOP_ADMA piece of hardware and/or chipset to use this
> feature or can regular desktop users take hold of it as well?
> 
Currently this feature is available on the iop series of processors,
e.g. http://www.intel.com/design/iio/iop348.htm

And there is a driver in the works to support the 440spe platform
(http://marc.info/?l=linux-raid&m=117400143317440&w=2)

Desktops currently take advantage of architecture specific SIMD
instructions to accelerate xor calculations.

> Justin.

Dan

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

* RE: [PATCH 00/16] raid acceleration and asynchronous offload api for 2.6.22
  2007-05-02 16:17       ` Williams, Dan J
@ 2007-05-02 16:19         ` Justin Piszcz
  2007-05-02 16:36         ` Dagfinn Ilmari Mannsåker
  1 sibling, 0 replies; 11+ messages in thread
From: Justin Piszcz @ 2007-05-02 16:19 UTC (permalink / raw)
  To: Williams, Dan J
  Cc: Nick Piggin, neilb, akpm, Leech, Christopher, linux-kernel,
	linux-raid



On Wed, 2 May 2007, Williams, Dan J wrote:

>> From: Justin Piszcz [mailto:jpiszcz@lucidpixels.com]
>> I have not been following this closely, must you have an
>> CONFIG_INTEL_IOP_ADMA piece of hardware and/or chipset to use this
>> feature or can regular desktop users take hold of it as well?
>>
> Currently this feature is available on the iop series of processors,
> e.g. http://www.intel.com/design/iio/iop348.htm
>
> And there is a driver in the works to support the 440spe platform
> (http://marc.info/?l=linux-raid&m=117400143317440&w=2)
>
> Desktops currently take advantage of architecture specific SIMD
> instructions to accelerate xor calculations.
>
>> Justin.
>
> Dan
>

Ahh-- these are the family of chips in the Areca controllers (or close to 
them)-- so md/software raid will utilize the HW functions of the chip? 
If so, that is pretty slick :)

Justin.

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

* Re: [PATCH 00/16] raid acceleration and asynchronous offload api for 2.6.22
  2007-05-02 16:17       ` Williams, Dan J
  2007-05-02 16:19         ` Justin Piszcz
@ 2007-05-02 16:36         ` Dagfinn Ilmari Mannsåker
  2007-05-02 16:42           ` Williams, Dan J
  1 sibling, 1 reply; 11+ messages in thread
From: Dagfinn Ilmari Mannsåker @ 2007-05-02 16:36 UTC (permalink / raw)
  To: Williams, Dan J
  Cc: Justin Piszcz, Nick Piggin, neilb, akpm, Leech, Christopher,
	linux-kernel, linux-raid

"Williams, Dan J" <dan.j.williams@intel.com> writes:

>> From: Justin Piszcz [mailto:jpiszcz@lucidpixels.com]
>> I have not been following this closely, must you have an
>> CONFIG_INTEL_IOP_ADMA piece of hardware and/or chipset to use this
>> feature or can regular desktop users take hold of it as well?
>> 
> Currently this feature is available on the iop series of processors,
> e.g. http://www.intel.com/design/iio/iop348.htm
>
> And there is a driver in the works to support the 440spe platform
> (http://marc.info/?l=linux-raid&m=117400143317440&w=2)
>
> Desktops currently take advantage of architecture specific SIMD
> instructions to accelerate xor calculations.

How about hard drive controllers with RAID accelleration features (but
not full hardware RAID capability) such as the Promise SX4
(http://linux-ata.org/faq-sata-raid.html#sx4)?

-- 
ilmari
"A disappointingly low fraction of the human race is,
 at any given time, on fire." - Stig Sandbeck Mathisen

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

* RE: [PATCH 00/16] raid acceleration and asynchronous offload api for 2.6.22
  2007-05-02 16:36         ` Dagfinn Ilmari Mannsåker
@ 2007-05-02 16:42           ` Williams, Dan J
  0 siblings, 0 replies; 11+ messages in thread
From: Williams, Dan J @ 2007-05-02 16:42 UTC (permalink / raw)
  To: Dagfinn Ilmari Mannsåker
  Cc: Justin Piszcz, Nick Piggin, neilb, akpm, Leech, Christopher,
	linux-kernel, linux-raid

> From: Dagfinn Ilmari Mannsåker [mailto:ilmari@ilmari.org]
> How about hard drive controllers with RAID accelleration features (but
> not full hardware RAID capability) such as the Promise SX4
> (http://linux-ata.org/faq-sata-raid.html#sx4)?
> 
See this thread:
http://marc.info/?l=linux-kernel&m=116793705601271&w=2
-
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* RE: [PATCH 00/16] raid acceleration and asynchronous offload api for 2.6.22
@ 2007-05-09 12:46 Ronen Shitrit
  0 siblings, 0 replies; 11+ messages in thread
From: Ronen Shitrit @ 2007-05-09 12:46 UTC (permalink / raw)
  To: dan.j.williams; +Cc: linux-raid

Hi

The resync numbers you sent, looks very promising :)
Do you have any performance numbers that you can share for these set of
patches, which shows the Rd/Wr IO bandwidth.

Thanks
Ronen Shitrit



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

* RE: [PATCH 00/16] raid acceleration and asynchronous offload api for 2.6.22
@ 2007-05-10 14:12 Tomasz Chmielewski
  2007-05-10 15:32 ` Tomasz Chmielewski
  0 siblings, 1 reply; 11+ messages in thread
From: Tomasz Chmielewski @ 2007-05-10 14:12 UTC (permalink / raw)
  To: linux-kernel, linux-raid, rshitrit, dan.j.williams, nickpiggin,
	Justin Piszcz, ilmari

Ronen Shitrit wrote:

> The resync numbers you sent, looks very promising :)
> Do you have any performance numbers that you can share for these set of
> patches, which shows the Rd/Wr IO bandwidth.

I have some simple tests made with hdparm, with the results I don't 
understand.

We see hdparm results are fine if we access the whole device:

thecus:~# hdparm -Tt /dev/sdd

/dev/sdd:
  Timing cached reads:   392 MB in  2.00 seconds = 195.71 MB/sec
  Timing buffered disk reads:  146 MB in  3.01 seconds =  48.47 MB/sec


But are 10 times worse (Timing buffered disk reads) when we access 
partitions:

thecus:/# hdparm -Tt /dev/sdc1 /dev/sdd1

/dev/sdc1:
  Timing cached reads:   396 MB in  2.01 seconds = 197.18 MB/sec
  Timing buffered disk reads:   16 MB in  3.32 seconds =   4.83 MB/sec

/dev/sdd1:
  Timing cached reads:   394 MB in  2.00 seconds = 196.89 MB/sec
  Timing buffered disk reads:   16 MB in  3.13 seconds =   5.11 MB/sec


Why is it so much worse?


I used 2.6.21-iop1 patches from http://sf.net/projects/xscaleiop; right 
now I use 2.6.17-iop1, for which the results are ~35 MB/s when accessing 
a device (/dev/sdd) or a partition (/dev/sdd1).


In kernel config, I enabled Intel DMA engines.

The device I use is Thecus n4100, it is "Platform: IQ31244 (XScale)", 
and has 600 MHz CPU.


-- 
Tomasz Chmielewski
http://wpkg.org

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

* Re: [PATCH 00/16] raid acceleration and asynchronous offload api for 2.6.22
  2007-05-10 14:12 [PATCH 00/16] raid acceleration and asynchronous offload api for 2.6.22 Tomasz Chmielewski
@ 2007-05-10 15:32 ` Tomasz Chmielewski
  0 siblings, 0 replies; 11+ messages in thread
From: Tomasz Chmielewski @ 2007-05-10 15:32 UTC (permalink / raw)
  Cc: linux-kernel, linux-raid, rshitrit, dan.j.williams, nickpiggin,
	Justin Piszcz, ilmari

Tomasz Chmielewski schrieb:
> Ronen Shitrit wrote:
> 
>> The resync numbers you sent, looks very promising :)
>> Do you have any performance numbers that you can share for these set of
>> patches, which shows the Rd/Wr IO bandwidth.
> 
> I have some simple tests made with hdparm, with the results I don't 
> understand.
> 
> We see hdparm results are fine if we access the whole device:
> 
> thecus:~# hdparm -Tt /dev/sdd
> 
> /dev/sdd:
>  Timing cached reads:   392 MB in  2.00 seconds = 195.71 MB/sec
>  Timing buffered disk reads:  146 MB in  3.01 seconds =  48.47 MB/sec
> 
> 
> But are 10 times worse (Timing buffered disk reads) when we access 
> partitions:

There seems to be another side effect when comparing DMA engine in 
2.6.17-iop1 to 2.6.21-iop1: network performance.


For simple network tests, I use "netperf" tool to measure network 
performance.

With 2.6.17-iop1 and all DMA offloading options enabled (selectable in 
System type ---> IOP3xx Implementation Options  --->), I get nearly 25 
MB/s throughput.

With 2.6.21-iop1 and all DMA offloading optons enabled (moved to Device 
Drivers  ---> DMA Engine support  --->), I get only about 10 MB/s 
throughput.
Additionally, on 2.6.21-iop1, I get lots of "dma_cookie < 0" printed by 
the kernel.


-- 
Tomasz Chmielewski
http://wpkg.org

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

end of thread, other threads:[~2007-05-10 15:32 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-10 14:12 [PATCH 00/16] raid acceleration and asynchronous offload api for 2.6.22 Tomasz Chmielewski
2007-05-10 15:32 ` Tomasz Chmielewski
  -- strict thread matches above, loose matches on Subject: below --
2007-05-09 12:46 Ronen Shitrit
2007-05-02  6:14 Dan Williams
2007-05-02  6:55 ` Nick Piggin
2007-05-02 15:45   ` Williams, Dan J
2007-05-02 15:55     ` Justin Piszcz
2007-05-02 16:17       ` Williams, Dan J
2007-05-02 16:19         ` Justin Piszcz
2007-05-02 16:36         ` Dagfinn Ilmari Mannsåker
2007-05-02 16:42           ` Williams, Dan J

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).