On 12/08/2017 10:42 AM, Jason Yan wrote:
> Now all libsas works are queued to scsi host workqueue,
> include sas event work post by LLDD and sas discovery
> work, and a sas hotplug flow may be divided into several
> works, e.g libsas receive a PORTE_BYTES_DMAED event,
> currently we process it as following steps:
> sas_form_port  --- run in work in shost workq
>       sas_discover_domain  --- run in another work in shost workq
>               ...
>               sas_probe_devices  --- run in new work in shost workq
> We found during hot-add a device, libsas may need run several
> works in same workqueue to add device in system, the process is
> not atomic, it may interrupt by other sas event works, like
> PHYE_LOSS_OF_SIGNAL.
> 
> This patch is preparation of execute libsas sas event in sync. We need
> to use different workqueue to run sas event and disco event. Otherwise
> the work will be blocked for waiting another chained work in the same
> workqueue.
> 
> Signed-off-by: Yijing Wang <[email protected]>
> CC: John Garry <[email protected]>
> CC: Johannes Thumshirn <[email protected]>
> CC: Ewan Milne <[email protected]>
> CC: Christoph Hellwig <[email protected]>
> CC: Tomas Henzl <[email protected]>
> CC: Dan Williams <[email protected]>
> Signed-off-by: Jason Yan <[email protected]>
> ---
>  drivers/scsi/libsas/sas_discover.c |  2 +-
>  drivers/scsi/libsas/sas_event.c    |  6 +++---
>  drivers/scsi/libsas/sas_init.c     | 18 ++++++++++++++++++
>  include/scsi/libsas.h              |  3 +++
>  4 files changed, 25 insertions(+), 4 deletions(-)
> 
Reviewed-by: Hannes Reinecke <[email protected]>

Cheers,

Hannes
-- 
Dr. Hannes Reinecke                Teamlead Storage & Networking
[email protected]                                   +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)

Reply via email to