Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1685608

Re: [PATCH v3 1/7] libsas: Use static sas event pool to appease sas event lost

From John Garry <john.garry@huawei.com>
Newsgroups linux.kernel
Subject Re: [PATCH v3 1/7] libsas: Use static sas event pool to appease sas event lost
Date 2017-07-12 10:20 +0200
Message-ID <u2l2h-5IN-1@gated-at.bofh.it> (permalink)
References <u1AZr-1Sl-3@gated-at.bofh.it> <u1AZs-1Sl-17@gated-at.bofh.it> <u25qy-454-45@gated-at.bofh.it> <u2fgd-1TD-7@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On 12/07/2017 03:06, wangyijing wrote:
>>> -    unsigned long port_events_pending;
>>> -    unsigned long phy_events_pending;
>>> +    struct asd_sas_event   port_events[PORT_POOL_SIZE];
>>> +    struct asd_sas_event   phy_events[PHY_POOL_SIZE];
>>>
>>>      int error;
>>
>> Hi Yijing,
>>
>> So now we are creating a static pool of events per PHY/port, instead of having 1 static work struct per event per PHY/port. So, for sure, this avoids the dynamic event issue of system memory exhaustion which we discussed in v1+v2 series. And it seems to possibly remove issue of losing SAS events.
>>
>> But how did you determine the pool size for a PHY/port? It would seem to be 5 * #phy events or #port events (which is also 5, I figure by coincidence). How does this deal with flutter of >25 events?
>
> There is no special meaning for the pool size, if flutter of > 25 events, notify sas events will return error, and the further step work is depending on LLDD drivers.
> I hope libsas could do more work in this case, but now it seems a little difficult, this patch may be a interim fix, until we find a perfect solution.

The principal of having a fixed-sized pool is ok, even though the pool 
size needs more consideration.

However my issue is how to handle pool exhaustion. For a start, relaying 
info to the LLDD that the event notification failed is probably not the 
way to go. I only now noticed "scsi: sas: scsi_queue_work can fail, so 
make callers aware" made it into the kernel; as I mentioned in response 
to this patch, the LLDD does not know how to handle this (and no LLDDs 
do actually handle this).

I would say it is better to shut down the PHY from libsas (As Dan 
mentioned in the v1 series) when the pool exhausts, under the assumption 
that the PHY has gone into some erroneous state. The user can later 
re-enable the PHY from sysfs, if required.

Much appreciated,
John

>
> Thanks!
> Yijing.
>
>>
>> Thanks,
>> John
>>
>>
>> .
>>
>
>
> .
>

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v3 1/7] libsas: Use static sas event pool to appease sas event lost Yijing Wang <wangyijing@huawei.com> - 2017-07-10 09:10 +0200
  Re: [PATCH v3 1/7] libsas: Use static sas event pool to appease sas  event lost John Garry <john.garry@huawei.com> - 2017-07-11 17:40 +0200
    Re: [PATCH v3 1/7] libsas: Use static sas event pool to appease sas  event lost wangyijing <wangyijing@huawei.com> - 2017-07-12 04:10 +0200
      Re: [PATCH v3 1/7] libsas: Use static sas event pool to appease sas  event lost John Garry <john.garry@huawei.com> - 2017-07-12 10:20 +0200
        Re: [PATCH v3 1/7] libsas: Use static sas event pool to appease sas  event lost wangyijing <wangyijing@huawei.com> - 2017-07-12 10:50 +0200
          Re: [PATCH v3 1/7] libsas: Use static sas event pool to appease sas  event lost John Garry <john.garry@huawei.com> - 2017-07-12 12:20 +0200
            Re: [PATCH v3 1/7] libsas: Use static sas event pool to appease sas  event lost wangyijing <wangyijing@huawei.com> - 2017-07-13 04:20 +0200
  Re: [PATCH v3 1/7] libsas: Use static sas event pool to appease sas  event lost Hannes Reinecke <hare@suse.de> - 2017-07-14 08:50 +0200

csiph-web