Re: [PATCH v1 00/23] ata: sata_dwc_460ex: make it working again

From: Julian Margetson
Date: Sat Apr 23 2016 - 08:03:00 EST


On 4/22/2016 7:06 AM, Christian Lamparter wrote:
On Friday, April 22, 2016 06:50:44 AM Julian Margetson wrote:
On 4/21/2016 4:25 PM, Christian Lamparter wrote:
On Thursday, April 21, 2016 09:15:21 PM Andy Shevchenko wrote:
The last approach in the commit 8b3444852a2b ("sata_dwc_460ex: move to generic
DMA driver") to switch to generic DMA engine API wasn't tested on bare metal.
Besides that we expecting new board support coming with the same SATA IP but
with different DMA.

The driver has been tested myself on Sam460ex and WD MyBookLive (apollo3g)
boards. In any case I ask Christian, Måns, and Julian to independently test and
provide Tested-by tag or error report.
I did a test run on my WD MyBook Live. I applied all the patches in
this series on top of the topic/dw branch of Vinod Koul:
<https://git.kernel.org/cgit/linux/kernel/git/vkoul/slave-dma.git/>

Tested-by: Christian Lamparter<chunkeey@xxxxxxxxxxxxxx>
---
results for my old ST3808110AS HDD. filesystem is ext4.

# hdparm -t /dev/sda

/dev/sda:
Timing buffered disk reads: 204 MB in 3.02 seconds = 67.51 MB/sec

# bonnie++ -u mbl
Using uid:1000, gid:1000.
Writing a byte at a time...done
Writing intelligently...done
Rewriting...done
Reading a byte at a time...done
Reading intelligently...done
start 'em...done...done...done...done...done...
Create files in sequential order...done.
Stat files in sequential order...done.
Delete files in sequential order...done.
Create files in random order...done.
Stat files in random order...done.
Delete files in random order...done.
Version 1.97 ------Sequential Output------ --Sequential Input- --Random-
Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
mbl 496M 98 99 26011 21 17589 20 538 99 80138 39 208.9 8
Latency 95267us 1409ms 295ms 26947us 9644us 1787ms
Version 1.97 ------Sequential Create------ --------Random Create--------
mbl -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 6959 78 +++++ +++ 5197 40 7250 79 +++++ +++ 4718 37
Latency 149ms 6742us 212ms 177ms 767us 217ms
1.97,1.97,mbl,1,1461269771,496M,,98,99,26011,21,17589,20,538,99,80138,39,208.9,8,16,,,,,6959,78,+++++,+++,5197,40,7250,79,+++++,+++,4718,37,95267us,1409ms,295ms,26947us,9644us,1787ms,149ms,6742us,212ms,177ms,767us,217ms

Again on copy partitions .
Ok, here's the copy from my mail off-list.

Well, a unrelated driver "m41t80" caused a crash:
[ 12.912739] Oops: Kernel access of bad area, sig: 11 [#3]
[ 12.912743] PREEMPT Canyonlands
[ 12.912753] CPU: 0 PID: 1413 Comm: irq/45-m41t80 Tainted: G D 4.6.0-rc4-next-20160421-sam460ex-jm #1
[ 12.912757] task: ea9834e0 ti: eea6c000 task.ti: eea6c000
[ 12.912760] NIP: c0224480 LR: c0023494 CTR: c0042508
[ 12.912764] REGS: eea6daf0 TRAP: 0300 Tainted: G D (4.6.0-rc4-next-20160421-sam460ex-jm)
[ 12.912774] MSR: 00029000 <CE,EE,ME> CR: 24008282 XER: 00000000
[ 12.912825] DEAR: 00000008 ESR: 00000000
[...]
[ 12.912927] --- interrupt: 300 at mutex_lock+0x0/0x1c
[ 12.912927] LR = m41t80_handle_irq+0x28/0xac
[ 12.912932] [eea6de40] [00000000] (null) (unreliable)
[ 12.912938] [eea6de60] [c004ffac] irq_thread_fn+0x2c/0x48
[ 12.912944] [eea6de80] [c00501cc] irq_thread+0xc4/0x160
[ 12.912951] [eea6ded0] [c003a3f8] kthread+0xc8/0xcc
[ 12.912957] [eea6df40] [c000aee8] ret_from_kernel_thread+0x5c/0x64
[ 12.912960] Instruction dump:
[ 12.912974] 80010014 7fc3f378 bbc10008 7c0803a6 38210010 4be24ca8 9421ffd0 7c0802a6
[ 12.912987] bf210014 90010034 3b4302d8 812302ec <83890008> 812302d8 7f9a4840 419e011c
[ 12.912995] Fixing recursive fault but reboot is needed!
^^^ "reboot is needed!"

Another thing that came to my mind: Have you checked if your hard drive
and the cables are ok? Are there any pending sectors or suspicious smart
values? Has the drive passed the extended offline test?
Otherwise, I can't reproduce the error with my MyBook system. I've tested
your kernel and it worked on the device without crashing. (I copied/dd'ed
80GB from and back to the hard-drive. It was long and boring, but I didn't
encounter any issues and the crc32 matched).

Sorry, but I can't help you if I can't reproduce it... And short of sending
your box to test, I see no efficient way to debug it. However, what I can
do, if you are interested: I have a few "build your own" My Book Live kits.
It just needs a 3.5" hard-drive and 12v power adapter. If you are interested
PM me off-list, this way you can verify that the kernels you build do work,
just in case this error is due to a hardware issue (zapped controller,
bad ram/drive/cable?) with your sam460ex box.

Regards,
Christian


My Hardware seems ok.
I have swapped cables and drives between the SII3512 pci controller and the DWC controller.
No issues when connected to the SII3512 pci controller .
The DWC controller works ok under AmigaOS 4.1FE so that does not appear to be a problem.

Regards
Julian