lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <7555094b-350b-b4c6-47c6-507f7ce99dc5@linaro.org>
Date:   Thu, 31 Jan 2019 10:44:00 +0000
From:   Srinivas Kandagatla <srinivas.kandagatla@...aro.org>
To:     Bjorn Andersson <bjorn.andersson@...aro.org>
Cc:     andy.gross@...aro.org, david.brown@...aro.org,
        linux-arm-msm@...r.kernel.org, linux-soc@...r.kernel.org,
        linux-kernel@...r.kernel.org, bgoswami@...eaurora.org,
        rohitkr@...eaurora.org
Subject: Re: [PATCH] qcom: apr: Make apr callbacks in non-atomic context



On 31/01/2019 01:16, Bjorn Andersson wrote:
> On Thu 15 Nov 10:49 PST 2018, Srinivas Kandagatla wrote:
> 
>> APR communication with DSP is not atomic in nature.
>> Its request-response type. Trying to pretend that these are atomic
>> and invoking apr client callbacks directly under atomic/irq context has
>> endless issues with soundcard. It makes more sense to convert these
>> to nonatomic calls. This also coverts all the dais to be nonatomic.
>>
> Hi Srinivas,
> 
> Sorry for not looking at this before.
> 
NP, thanks for the review!

> Are you sure that you're meeting the latency requirements of low-latency
> audio with this change?

Low and Ultra Low Latency audio is not supported in the exiting upstream 
qdsp drivers.

Also it depends on definition of "latency", is the latency referring to 
"filling the data" or "latency between DSP command and response".

For former case as long as we have more samples in our ring buffer there 
should be no latency in filling the data.
For later case it should not really matter as long as former case is 
taken care off.

Low latency audio involves smaller sample sizes and no or minimal 
preprocessing in DSP so am guessing that we should be okay with 
responses in workqueue as long as we have good size ring buffer.

> 
> [..]
>> @@ -303,6 +363,10 @@ static int apr_remove_device(struct device *dev, void *null)
>>   
>>   static void apr_remove(struct rpmsg_device *rpdev)
>>   {
>> +	struct apr *apr = dev_get_drvdata(&rpdev->dev);
>> +
>> +	flush_workqueue(apr->rxwq);
>> +	destroy_workqueue(apr->rxwq);
> The devices may still be communicating until you remove them on the next
> line, wouldn't it make more sense to destroy the work queue after
> removing the APR devices?

Yes, that makes sense!

--srini
> 
>>   	device_for_each_child(&rpdev->dev, NULL, apr_remove_device);
>>   }
> Regards,
> Bjorn

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ