Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1646532
| From | wangyijing <wangyijing@huawei.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH 1/2] libsas: Don't process sas events in static works |
| Date | 2017-05-22 08:00 +0200 |
| Message-ID | <tJOxR-1ty-23@gated-at.bofh.it> (permalink) |
| References | <tJ6dr-5Nj-3@gated-at.bofh.it> <tJ6dr-5Nj-15@gated-at.bofh.it> <tJq2t-2b3-11@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Hi Dan, thanks for your review and comments! 在 2017/5/21 11:44, Dan Williams 写道: > On Fri, May 19, 2017 at 11:39 PM, Yijing Wang <wangyijing@huawei.com> 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 work[PORTE_BYTES_DMAED] --> |[PHYE_LOSS_OF_SIGNAL][PORTE_BYTES_DMAED] -> processing >> |<-------wait worker to process-------->| >> In this case, a new PORTE_BYTES_DMAED event coming, libsas try to queue it >> to shost->work_q, but this work is already pending, so it would be lost. >> Finally, libsas delete the related sas port and sas devices, but LLDD driver >> expect libsas add the sas port and devices(last sas event). >> >> This patch remove the static defined hotplug work, and use dynamic work to >> avoid missing hotplug events. > > If we go this route we don't even need: > > sas_port_event_fns > sas_phy_event_fns > sas_ha_event_fns Yes, these three fns are not necessary, just for avoid lots kfree in phy/port/ha event fns. > > ...just specify the target routine directly to INIT_WORK() and remove > the indirection. > > I also think for safety this should use a mempool that guarantees that > events can continue to be processed under system memory pressure. What I am worried about is it's would still fail if the mempool is used empty during memory pressure. > Also, have you considered the case when a broken phy starts throwing a > constant stream of events? Is there a point at which libsas should > stop queuing events and disable the phy? Not yet, I didn't find this issue in real case, but I agree, it's really a problem in some broken hardware, I think it's not a easy problem, we could improve it step by step. Thanks! Yijing. > > . >
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH 1/2] libsas: Don't process sas events in static works Yijing Wang <wangyijing@huawei.com> - 2017-05-20 08:40 +0200
Re: [PATCH 1/2] libsas: Don't process sas events in static works Dan Williams <dan.j.williams@intel.com> - 2017-05-21 05:50 +0200
Re: [PATCH 1/2] libsas: Don't process sas events in static works wangyijing <wangyijing@huawei.com> - 2017-05-22 08:00 +0200
Re: [PATCH 1/2] libsas: Don't process sas events in static works John Garry <john.garry@huawei.com> - 2017-05-22 11:30 +0200
Re: [PATCH 1/2] libsas: Don't process sas events in static works wangyijing <wangyijing@huawei.com> - 2017-05-23 08:50 +0200
csiph-web