Re: [PATCH v2 1/2] libsas: Don't process sas events in static works

2017-06-15 Thread wangyijing
在 2017/6/15 16:00, John Garry 写道: > On 15/06/2017 08:37, wangyijing wrote: >> >> >> 在 2017/6/14 21:08, John Garry 写道: >>> On 14/06/2017 10:04, wangyijing wrote: >> static void notify_ha_event(struct sas_ha_struct *sas_ha, enum ha_event >> event) { +struct

Re: [PATCH v2 1/2] libsas: Don't process sas events in static works

2017-06-15 Thread wangyijing
在 2017/6/15 16:00, John Garry 写道: > On 15/06/2017 08:37, wangyijing wrote: >> >> >> 在 2017/6/14 21:08, John Garry 写道: >>> On 14/06/2017 10:04, wangyijing wrote: >> static void notify_ha_event(struct sas_ha_struct *sas_ha, enum ha_event >> event) { +struct

Re: [PATCH v2 1/2] libsas: Don't process sas events in static works

2017-06-15 Thread John Garry
On 15/06/2017 08:37, wangyijing wrote: 在 2017/6/14 21:08, John Garry 写道: On 14/06/2017 10:04, wangyijing wrote: static void notify_ha_event(struct sas_ha_struct *sas_ha, enum ha_event event) { +struct sas_ha_event *ev; + BUG_ON(event >= HA_NUM_EVENTS); -

Re: [PATCH v2 1/2] libsas: Don't process sas events in static works

2017-06-15 Thread John Garry
On 15/06/2017 08:37, wangyijing wrote: 在 2017/6/14 21:08, John Garry 写道: On 14/06/2017 10:04, wangyijing wrote: static void notify_ha_event(struct sas_ha_struct *sas_ha, enum ha_event event) { +struct sas_ha_event *ev; + BUG_ON(event >= HA_NUM_EVENTS); -

Re: [PATCH v2 1/2] libsas: Don't process sas events in static works

2017-06-15 Thread wangyijing
在 2017/6/14 21:08, John Garry 写道: > On 14/06/2017 10:04, wangyijing wrote: static void notify_ha_event(struct sas_ha_struct *sas_ha, enum ha_event event) >> { >> +struct sas_ha_event *ev; >> + >> BUG_ON(event >= HA_NUM_EVENTS); >> >> -

Re: [PATCH v2 1/2] libsas: Don't process sas events in static works

2017-06-15 Thread wangyijing
在 2017/6/14 21:08, John Garry 写道: > On 14/06/2017 10:04, wangyijing wrote: static void notify_ha_event(struct sas_ha_struct *sas_ha, enum ha_event event) >> { >> +struct sas_ha_event *ev; >> + >> BUG_ON(event >= HA_NUM_EVENTS); >> >> -

Re: [PATCH v2 1/2] libsas: Don't process sas events in static works

2017-06-14 Thread John Garry
On 14/06/2017 10:04, wangyijing wrote: static void notify_ha_event(struct sas_ha_struct *sas_ha, enum ha_event event) >> { >> + struct sas_ha_event *ev; >> + >>BUG_ON(event >= HA_NUM_EVENTS); >> >> - sas_queue_event(event, _ha->pending, >> -

Re: [PATCH v2 1/2] libsas: Don't process sas events in static works

2017-06-14 Thread John Garry
On 14/06/2017 10:04, wangyijing wrote: static void notify_ha_event(struct sas_ha_struct *sas_ha, enum ha_event event) >> { >> + struct sas_ha_event *ev; >> + >>BUG_ON(event >= HA_NUM_EVENTS); >> >> - sas_queue_event(event, _ha->pending, >> -

Re: [PATCH v2 1/2] libsas: Don't process sas events in static works

2017-06-14 Thread wangyijing
在 2017/6/14 17:18, Johannes Thumshirn 写道: > On 06/14/2017 11:04 AM, wangyijing wrote: static void notify_ha_event(struct sas_ha_struct *sas_ha, enum ha_event event) { + struct sas_ha_event *ev; + BUG_ON(event >= HA_NUM_EVENTS); -

Re: [PATCH v2 1/2] libsas: Don't process sas events in static works

2017-06-14 Thread wangyijing
在 2017/6/14 17:18, Johannes Thumshirn 写道: > On 06/14/2017 11:04 AM, wangyijing wrote: static void notify_ha_event(struct sas_ha_struct *sas_ha, enum ha_event event) { + struct sas_ha_event *ev; + BUG_ON(event >= HA_NUM_EVENTS); -

Re: [PATCH v2 1/2] libsas: Don't process sas events in static works

2017-06-14 Thread Johannes Thumshirn
On 06/14/2017 11:04 AM, wangyijing wrote: >>> static void notify_ha_event(struct sas_ha_struct *sas_ha, enum ha_event >>> event) >>> { >>> + struct sas_ha_event *ev; >>> + >>> BUG_ON(event >= HA_NUM_EVENTS); >>> >>> - sas_queue_event(event, _ha->pending, >>> -

Re: [PATCH v2 1/2] libsas: Don't process sas events in static works

2017-06-14 Thread Johannes Thumshirn
On 06/14/2017 11:04 AM, wangyijing wrote: >>> static void notify_ha_event(struct sas_ha_struct *sas_ha, enum ha_event >>> event) >>> { >>> + struct sas_ha_event *ev; >>> + >>> BUG_ON(event >= HA_NUM_EVENTS); >>> >>> - sas_queue_event(event, _ha->pending, >>> -

Re: [PATCH v2 1/2] libsas: Don't process sas events in static works

2017-06-14 Thread wangyijing
>> static void notify_ha_event(struct sas_ha_struct *sas_ha, enum ha_event >> event) >> { >> +struct sas_ha_event *ev; >> + >> BUG_ON(event >= HA_NUM_EVENTS); >> >> -sas_queue_event(event, _ha->pending, >> -_ha->ha_events[event].work, sas_ha); >> +ev =

Re: [PATCH v2 1/2] libsas: Don't process sas events in static works

2017-06-14 Thread wangyijing
>> static void notify_ha_event(struct sas_ha_struct *sas_ha, enum ha_event >> event) >> { >> +struct sas_ha_event *ev; >> + >> BUG_ON(event >= HA_NUM_EVENTS); >> >> -sas_queue_event(event, _ha->pending, >> -_ha->ha_events[event].work, sas_ha); >> +ev =

Re: [PATCH v2 1/2] libsas: Don't process sas events in static works

2017-06-14 Thread Johannes Thumshirn
On 06/14/2017 09:33 AM, Yijing Wang wrote: > Now libsas hotplug work is static, LLDD driver queue > the hotplug work into shost->work_q. If LLDD driver > burst post lots hotplug events to libsas, the hotplug > events may pending in the workqueue like > > shost->work_q > new

Re: [PATCH v2 1/2] libsas: Don't process sas events in static works

2017-06-14 Thread Johannes Thumshirn
On 06/14/2017 09:33 AM, Yijing Wang wrote: > Now libsas hotplug work is static, LLDD driver queue > the hotplug work into shost->work_q. If LLDD driver > burst post lots hotplug events to libsas, the hotplug > events may pending in the workqueue like > > shost->work_q > new

[Resend][PATCH v2 1/2] libsas: Don't process sas events in static works

2017-06-14 Thread Yijing Wang
Now libsas hotplug work is static, LLDD driver queue the hotplug work into shost->work_q. If LLDD driver burst post lots hotplug events to libsas, the hotplug events may pending in the workqueue like shost->work_q new work[PORTE_BYTES_DMAED] --> |[PHYE_LOSS_OF_SIGNAL][PORTE_BYTES_DMAED] ->

[Resend][PATCH v2 1/2] libsas: Don't process sas events in static works

2017-06-14 Thread Yijing Wang
Now libsas hotplug work is static, LLDD driver queue the hotplug work into shost->work_q. If LLDD driver burst post lots hotplug events to libsas, the hotplug events may pending in the workqueue like shost->work_q new work[PORTE_BYTES_DMAED] --> |[PHYE_LOSS_OF_SIGNAL][PORTE_BYTES_DMAED] ->

[PATCH v2 1/2] libsas: Don't process sas events in static works

2017-06-14 Thread Yijing Wang
Now libsas hotplug work is static, LLDD driver queue the hotplug work into shost->work_q. If LLDD driver burst post lots hotplug events to libsas, the hotplug events may pending in the workqueue like shost->work_q new work[PORTE_BYTES_DMAED] --> |[PHYE_LOSS_OF_SIGNAL][PORTE_BYTES_DMAED] ->

[PATCH v2 1/2] libsas: Don't process sas events in static works

2017-06-14 Thread Yijing Wang
Now libsas hotplug work is static, LLDD driver queue the hotplug work into shost->work_q. If LLDD driver burst post lots hotplug events to libsas, the hotplug events may pending in the workqueue like shost->work_q new work[PORTE_BYTES_DMAED] --> |[PHYE_LOSS_OF_SIGNAL][PORTE_BYTES_DMAED] ->