All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joe Lawrence <joe.lawrence@stratus.com>
To: Chaitra Basappa <chaitra.basappa@broadcom.com>,
	Sathya Prakash Veerichetty <sathya.prakash@broadcom.com>,
	emilne@redhat.com
Cc: linux-scsi@vger.kernel.org,
	Suganath Prabu Subramani <suganath-prabu.subramani@broadcom.com>,
	Calvin Owens <calvinowens@fb.com>
Subject: Re: [PATCH] mpt3sas - remove unused fw_event_work delayed_work
Date: Mon, 11 Apr 2016 08:08:41 -0400	[thread overview]
Message-ID: <570B93C9.3040102@stratus.com> (raw)
In-Reply-To: <c762138f15c771759b451b16d97f199e@mail.gmail.com>

Hi Chaitra, while discussing this patch with Ewan, I realized that 
cancel_pending_work is unused as well.  I can send a v2 with that and 
the associated kerneldoc update.

Do we know why f1c35e6aea579 "mpt2sas: RESCAN Barrier work is added in 
case of HBA reset" was unneeded for the mpt3 version?  If that is 
interesting, that info could be added to v2 commit message as well.

Thanks,

-- Joe


On 04/11/2016 07:13 AM, Chaitra Basappa wrote:
> Hi,
>   Please consider this patch as Ack-by: Chaitra P B
> <chaitra.basappa@broadcom.com>
>
> Thanks,
>   Chaitra
>
> -----Original Message-----
> From: Sathya Prakash [mailto:sathya.prakash@broadcom.com]
> Sent: Saturday, April 02, 2016 1:45 AM
> To: emilne@redhat.com; Joe Lawrence
> Cc: linux-scsi@vger.kernel.org; Chaitra Basappa; Suganath Prabu Subramani;
> Calvin Owens
> Subject: RE: [PATCH] mpt3sas - remove unused fw_event_work delayed_work
>
> We will look into this early next week and provide a detailed response.  On
> the first look this is ACK from Broadcom, will reconfirm.
>
> -----Original Message-----
> From: Ewan D. Milne [mailto:emilne@redhat.com]
> Sent: Friday, April 01, 2016 2:04 PM
> To: Joe Lawrence
> Cc: linux-scsi@vger.kernel.org; Sathya Prakash; Chaitra P B; Suganath Prabu
> Subramani; Calvin Owens
> Subject: Re: [PATCH] mpt3sas - remove unused fw_event_work delayed_work
>
> On Fri, 2016-04-01 at 15:13 -0400, Joe Lawrence wrote:
>> On 04/01/2016 02:51 PM, Ewan D. Milne wrote:
>>> On Fri, 2016-04-01 at 13:56 -0400, Joe Lawrence wrote:
>>>> @@ -2804,12 +2803,12 @@ _scsih_fw_event_cleanup_queue(struct
>>>> MPT3SAS_ADAPTER *ioc)
>>>>   		/*
>>>>   		 * Wait on the fw_event to complete. If this returns 1, then
>>>>   		 * the event was never executed, and we need a put for the
>>>> -		 * reference the delayed_work had on the fw_event.
>>>> +		 * reference the work had on the fw_event.
>>>>   		 *
>>>>   		 * If it did execute, we wait for it to finish, and the put will
>>>>   		 * happen from _firmware_event_work()
>>>>   		 */
>>>> -		if (cancel_delayed_work_sync(&fw_event->delayed_work))
>>>> +		if (cancel_work_sync(&fw_event->work))
>>>>   			fw_event_work_put(fw_event);
>>>>
>>>>   		fw_event_work_put(fw_event);
>>>
>>> Hmm... Fixes: 146b16c8 (mpt3sas: Refcount fw_events and fix unsafe
>>> list usage)
>>
>> This could technically go back to f92363d12359 (mpt3sas: add new
>> driver supporting 12GB SAS) ...  but will probably only apply cleanly
>> to _scsih_fw_event_cleanup_queue after 146b16c8 (mpt3sas: Refcount
>> fw_events and fix unsafe list usage), so you're right.
>>
>>> Since mpt3sas uses ->work instead of _delayed_work this would seem
>>> to be correct, however the deprecated mpt2sas driver had a commit
>>> that changed the firmware event work mechanism to use ->delayed_work
>>> instead of ->work:
>>>
>>> commit f1c35e6aea579d5bdb6dc02dfa99c67c7c3b3f67
>>> Author: Kashyap, Desai <kashyap.desai@lsi.com>
>>> Date:   Tue Mar 9 16:31:43 2010 +0530
>>
>> Okay, so this is pre-mpt3sas split.
>>
>>>      [SCSI] mpt2sas: RESCAN Barrier work is added in case of HBA reset.
>>>
>>>      Add the cancel_pending_work flag from the fw_event_work
>>> structure, and then to
>>>      set the flag during host reset, check the flag later from work
>>> threads
>>>      context and if cancel_pending_work_flag is set ingore those events.
>>
>> More unused mpt2 vestiges in the mpt3 version?
>>
>> % cd drivers/scsi/mpt3sas/
>> % grep 'cancel_pending_work' *.{c,h}
>> mpt3sas_scsih.c: * @cancel_pending_work: flag set during reset handling
>> mpt3sas_scsih.c:        u8                      cancel_pending_work;
>>
>>>      Now Rescan after host reset is changed.
>>>      Added special task MPT2SAS_RESCAN_AFTER_HOST_RESET. This task
>>> will be queued
>>>      at the time of HBA reset. this task is treated as barrier. All
>>> work after
>>>      MPT2SAS_RESCAN_AFTER_HOST_RESET will be treated as new work and
>>> will be
>>>      server by callback handle. If host_recovery is going on while
>>> running RESCAN
>>>      task, it will wait for shos_recovery_done completion which will
>>> be called
>>>      from HBA reset DONE context.
>>
>> FWIW, I don't see anything like this in today's mpt3sas driver.
>
> Well, that's the question.  Is there some functionality missing?  Were the
> changes abandoned/replaced?  mpt2sas used delayed_work for something else,
> so maybe that's why the firmware event changes initially used it (albeit
> with a 0 delay) but it's hard to know...
>
> cancel_delayed_work() will call del_timer() on delayed_work->timer, but it
> looks like kzalloc is used to allocate the fw_event_work objects so perhaps
> nothing bad will happen.  I was wondering, though, because I have seen dumps
> of hung systems with requests that should have timed out but are not on any
> timer list.
>
> -Ewan
>
>>
>> Regards,
>>
>> -- Joe

  reply	other threads:[~2016-04-11 12:08 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-01 17:56 [PATCH] mpt3sas - remove unused fw_event_work delayed_work Joe Lawrence
2016-04-01 18:04 ` Laurence Oberman
2016-04-01 18:51 ` Ewan D. Milne
2016-04-01 19:13   ` Joe Lawrence
2016-04-01 20:04     ` Ewan D. Milne
2016-04-01 20:14       ` Sathya Prakash
2016-04-11 11:13         ` Chaitra Basappa
2016-04-11 12:08           ` Joe Lawrence [this message]
2016-04-15  2:43             ` Martin K. Petersen
2016-04-15  9:57               ` Chaitra Basappa
2016-04-15 17:26                 ` Sathya Prakash Veerichetty

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=570B93C9.3040102@stratus.com \
    --to=joe.lawrence@stratus.com \
    --cc=calvinowens@fb.com \
    --cc=chaitra.basappa@broadcom.com \
    --cc=emilne@redhat.com \
    --cc=linux-scsi@vger.kernel.org \
    --cc=sathya.prakash@broadcom.com \
    --cc=suganath-prabu.subramani@broadcom.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.