Re: [PATCH v1 0/7] Avoid L2CAP ERTM shutdown hung tasks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Luiz,

On 07/10/15 15:09, Luiz Augusto von Dentz wrote:
Hi Dean,

On Sat, Jun 6, 2015 at 7:13 AM, Marcel Holtmann <marcel@xxxxxxxxxxxx> wrote:
Hi Dean,

Details of the issue are described in the thread
[RFC] Bluetooth ERTM L2CAP deadlocks (hung tasks) due to l2cap_sock_shutdown()
and kernel.org Bugzilla https://bugzilla.kernel.org/show_bug.cgi?id=99301
Are you still working on this? I can still lock bluetoothd on close,
btw it seems you are not aware of the following:

        SO_LINGER
               When enabled, a close(2) or shutdown(2) will not return
until all queued messages for the socket have been successfully sent
or the linger timeout  has  been  reached.   Otherwise,  the  call
returns immediately and the closing is done in the background.

So according to the text above we should never call __l2cap_wait_ack
on l2cap_sock_shutdown since it should return immediately, only when
SO_LINGER is used it is allowed to block. Also there doesn't seems to
be anything prevent us to send a L2CAP Disconnect request while there
are unacked packets, at least I could find anything on the core about
waiting for unacked nor the test spec has any test for it.

Thanks for the information about SO_LINGER time. So it sounds like further changes to the logic of the code are needed.

Yes, we are still working on this issue. We have devised a fix for our commercial ARM kernel 3.14. and so far we have no reported failures.

In our fix, we had to ensure "L2CAP Disconnect request" took precedence over shutdown.

Note that ACKS are only used for L2CAP ERTM and so only some BT services risk getting hung such as audio media browsing over BT.

We are currently preparing a patchset for bluetooth-next of our 2nd attempt at resolving the locking issue.

Thanks,

Regards,
Dean

--
Dean Jenkins
Embedded Software Engineer
Linux Transportation Solutions
Mentor Embedded Software Division
Mentor Graphics (UK) Ltd.

--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux