2016-03-01 06:52:53

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [PATCH] eata: Convert eata driver as normal PCI and platform device drivers

Hi Jiang.

I'd love to see this patch in and abuse of the old PCI API gone.

Did you resolve the problems Arthur saw with the previous iteratons
of the patch?


2016-03-01 17:27:24

by Arthur Marsh

[permalink] [raw]
Subject: Re: [PATCH] eata: Convert eata driver as normal PCI and platform device drivers



Christoph Hellwig wrote on 01/03/16 17:22:
> Hi Jiang.
>
> I'd love to see this patch in and abuse of the old PCI API gone.
>
> Did you resolve the problems Arthur saw with the previous iteratons
> of the patch?
>

I applied Jiang Liu's patch of 1st March 2016 to a clean kernel
4.5.0-rc6 source, removed my workaround of removing and re-adding the
eata module before mounting file-systems that are on disks attached to
the DPT SCSI card using the eata driver, and was able to kexec from the
new kernel successfully.

Arthur.

2016-03-01 21:36:36

by Arthur Marsh

[permalink] [raw]
Subject: Re: [PATCH] eata: Convert eata driver as normal PCI and platform device drivers



Arthur Marsh wrote on 02/03/16 03:57:
>
>
> Christoph Hellwig wrote on 01/03/16 17:22:
>> Hi Jiang.
>>
>> I'd love to see this patch in and abuse of the old PCI API gone.
>>
>> Did you resolve the problems Arthur saw with the previous iteratons
>> of the patch?
>>
>
> I applied Jiang Liu's patch of 1st March 2016 to a clean kernel
> 4.5.0-rc6 source, removed my workaround of removing and re-adding the
> eata module before mounting file-systems that are on disks attached to
> the DPT SCSI card using the eata driver, and was able to kexec from the
> new kernel successfully.
>
> Arthur.

I spoke too soon, without removing and re-inserting the eata module
before any filesystems on disks attached to the DPT controller were
mounted, I'd get the following messages, similar to ones previously
reported:

sd 0:0:6:0: tag#0 abort, mbox 1.
EATA0: abort, mbox 1 is in use.
sd 0:0:6:0: tag#0 reset, enter.
EATA0: reset, mbox 1 in reset.
EATA0: reset, board reset done, enabling interrupts.
EATA0: reset, interrupts disabled, loops 100415.
EATA0, reset, mbox 1 locked, DID_RESET, done.
EATA0: reset, exit, done.


and so on, finally hanging after printing "kexec_core: Starting new
kernel" (I have a photo of the messages if they're needed).

So I'm still using the new patch but have to continue to remove and
reinsert eata at start-up before any attempts to mount disks attatched
to the DPT SCSI controller.

Arthur.

2016-03-02 03:20:28

by Jiang Liu

[permalink] [raw]
Subject: Re: [PATCH] eata: Convert eata driver as normal PCI and platform device drivers

On 2016/3/2 5:36, Arthur Marsh wrote:
>
>
> Arthur Marsh wrote on 02/03/16 03:57:
>>
>>
>> Christoph Hellwig wrote on 01/03/16 17:22:
>>> Hi Jiang.
>>>
>>> I'd love to see this patch in and abuse of the old PCI API gone.
>>>
>>> Did you resolve the problems Arthur saw with the previous iteratons
>>> of the patch?
>>>
>>
>> I applied Jiang Liu's patch of 1st March 2016 to a clean kernel
>> 4.5.0-rc6 source, removed my workaround of removing and re-adding the
>> eata module before mounting file-systems that are on disks attached to
>> the DPT SCSI card using the eata driver, and was able to kexec from the
>> new kernel successfully.
>>
>> Arthur.
>
> I spoke too soon, without removing and re-inserting the eata module
> before any filesystems on disks attached to the DPT controller were
> mounted, I'd get the following messages, similar to ones previously
> reported:
>
> sd 0:0:6:0: tag#0 abort, mbox 1.
> EATA0: abort, mbox 1 is in use.
> sd 0:0:6:0: tag#0 reset, enter.
> EATA0: reset, mbox 1 in reset.
> EATA0: reset, board reset done, enabling interrupts.
> EATA0: reset, interrupts disabled, loops 100415.
> EATA0, reset, mbox 1 locked, DID_RESET, done.
> EATA0: reset, exit, done.
>
>
> and so on, finally hanging after printing "kexec_core: Starting new
> kernel" (I have a photo of the messages if they're needed).
>
> So I'm still using the new patch but have to continue to remove and
> reinsert eata at start-up before any attempts to mount disks attatched
> to the DPT SCSI controller.
Hi Authur,
Thanks for testing. So current situation is that we have
a working driver for normal case, but still have issues during kexec.
Per my understanding, we need to implement a PCI device driver shutdown
callback to reset the RAID controller. I have once tried to implement
the shutdown callback, but it doesn't work. And I have no deep
understanding of the RAID controller and have no hardware for
experiment too, so have no idea about next step.
Maybe one acceptable way is to merge this patch first, so
we get a basic working driver, and then ask help from expert to
solve the kexec issue.
Thanks!
Gerry

>
> Arthur.

2016-03-02 06:52:36

by Arthur Marsh

[permalink] [raw]
Subject: Re: [PATCH] eata: Convert eata driver as normal PCI and platform device drivers



Jiang Liu wrote on 02/03/16 13:50:

>> I spoke too soon, without removing and re-inserting the eata module
>> before any filesystems on disks attached to the DPT controller were
>> mounted, I'd get the following messages, similar to ones previously
>> reported:
>>
>> sd 0:0:6:0: tag#0 abort, mbox 1.
>> EATA0: abort, mbox 1 is in use.
>> sd 0:0:6:0: tag#0 reset, enter.
>> EATA0: reset, mbox 1 in reset.
>> EATA0: reset, board reset done, enabling interrupts.
>> EATA0: reset, interrupts disabled, loops 100415.
>> EATA0, reset, mbox 1 locked, DID_RESET, done.
>> EATA0: reset, exit, done.
>>
>>
>> and so on, finally hanging after printing "kexec_core: Starting new
>> kernel" (I have a photo of the messages if they're needed).
>>
>> So I'm still using the new patch but have to continue to remove and
>> reinsert eata at start-up before any attempts to mount disks attatched
>> to the DPT SCSI controller.
> Hi Authur,
> Thanks for testing. So current situation is that we have
> a working driver for normal case, but still have issues during kexec.
> Per my understanding, we need to implement a PCI device driver shutdown
> callback to reset the RAID controller. I have once tried to implement
> the shutdown callback, but it doesn't work. And I have no deep
> understanding of the RAID controller and have no hardware for
> experiment too, so have no idea about next step.
> Maybe one acceptable way is to merge this patch first, so
> we get a basic working driver, and then ask help from expert to
> solve the kexec issue.
> Thanks!
> Gerry

My controller is a DPT2044W, it does not provide any hardware RAID
capabilities.

I'm not sure where responsibility lies in driver development but I'm
still using the DPT2044W controller which worked on the 4.2.0 kernels
and earlier and this problem has been around for nearly 5 months now.

I can do builds and tests of any patches that people can provide, but am
not a C programmer, much less a Linux driver developer.

Regards,

Arthur.