Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [tracecompass-dev] Race condition between CallSite analysis and UstDebugInfo analysis
  • From: Bernd Hufmann <bernd.hufmann@xxxxxxxxxxxx>
  • Date: Tue, 8 Mar 2022 18:34:39 +0000
  • Accept-language: en-CA, en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=MsH5tcDcwW+CPmpjUyi9Hpv8GCtbcbQq+/5aVveyU4U=; b=BQR9mdpZSqE2LVWZetuCAl/uYDVzM+Uwp3ons7W8wyy1wcUEb314d5r1b7v4W8J/ciZQp7wdSqAAiJf5IUUd2Ou9IlP9WPolufZQIhm1mpZjiIkJjTpkbJX3jaQ43t/MBsuVfjEfRfQBtOlFoQS0Yw+5Pse66Mp4s174bP6Qk9Nk9ktrGHBCm/CoZBJccgQoQFoR5v22Dt7V5MHm4+9Kf1xnyUA7E7VCxcy3h9sNpcwewdd3uMtHCLTnBeifoHOCW6jIyPS4XFDg47L4UF6vgF4/ZTZeeqEBCugkHiThiZW9QKMvQcL7IADuhMbu37jElnyYr5tALcXqsKNh62rsFg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WhJXLA50FYNvk2+P+F/y9qvRLXptarfbawkMQQ8S7oBZR70c62h7mMdkSZ55r6RW+MbLIvYCIekSDSZiADSIjLEyjCfJrQNSJ948jaffmRk2tw5PMQG+weDd2LjDpqNdnpj/q4ohxYWbdHJVkUiTsbOxP8FPv0ZK3y+7RZYRYHlUP977ToR/BETGClu4PrqlJygvgliM9dEYcJ9rydKYnLK2flSU3+XBD3LdvM8uvnvngzJ6qoX+I76vRxJz+ZZlnrJx7bflFKRlb4TD+CZs/tPqLW41pUJD0GZcBzCFMixAsOG9iY++Da9x5kbW8jfaKcI/zZPcGn21kgf9zKTy0w==
  • Delivered-to: tracecompass-dev@xxxxxxxxxxx
  • List-archive: <https://www.eclipse.org/mailman/private/tracecompass-dev/>
  • List-help: <mailto:tracecompass-dev-request@eclipse.org?subject=help>
  • List-subscribe: <https://www.eclipse.org/mailman/listinfo/tracecompass-dev>, <mailto:tracecompass-dev-request@eclipse.org?subject=subscribe>
  • List-unsubscribe: <https://www.eclipse.org/mailman/options/tracecompass-dev>, <mailto:tracecompass-dev-request@eclipse.org?subject=unsubscribe>
  • Suggested_attachment_session_id: 03b3361c-8473-0680-be6d-cab0eb323d1d
  • Thread-index: AQHYMmXqIYswAbo4AUG/kzCbhzhXIqy1y2bZ
  • Thread-topic: [tracecompass-dev] Race condition between CallSite analysis and UstDebugInfo analysis

Hi Arno

See below for some pointers. I'm not sure if they work or how difficult they are to implement, but I hope they give you some idea on what to try.

>Is there any mechanism to make an analysis execute before another, or
>make Trace Compass execute another state provider while we wait on the
>current one ?


An analysis module can define dependent analysis that are executed (full trace is read here!) before it is executed. However, the callsite analysis is in tmf.core and doesn't have (must not have) any direct dependencies to the lttng2.ust.core plugin. Mabye you can have a UstCallSite analysis that extends the core callsite analysis, and then the UstDebugInfo would have the UstCallSite analysis as dependent analysis.  You need to make sure that there are not 2 call site analysis executed when introducing the UstCallStie analysis.

Does the UstDebugInfo analysis need to be finished or is it enough that it is started before the callsite analysis and the current processed event of a given timestamp processed by the callsite analysis has been already processed. There is a way to test if a timestamp has already been passed for a dependent analysis. The interface method TmfStateSystemAnalysisModule#isQuerable() can be used for that. This used for example, KernelTidAspect#resolve() method. For this one, you will also need an UstCallSite analysis.

Regards,
Bernd






From: tracecompass-dev <tracecompass-dev-bounces@xxxxxxxxxxx> on behalf of Arnaud Fiorini <fiorini.arnaud@xxxxxxxxx>
Sent: March 7, 2022 3:56 PM
To: tracecompass-dev@xxxxxxxxxxx <tracecompass-dev@xxxxxxxxxxx>
Subject: [tracecompass-dev] Race condition between CallSite analysis and UstDebugInfo analysis
 
Hello,

I changed with the following patch the UstDebugInfoSourceAspect
(https://git.eclipse.org/r/c/tracecompass/org.eclipse.tracecompass/+/188654)
to make it usable with the CallSite analysis.

Unfortunately, this patch works only some of the time because if the
CallSite analysis is executed before the UstDebugInfo analysis, then the
debug information is not in the state system and the CallSite analysis
does not work.

Then I tried to do a blocking call to the aspect in the CallSite state
provider but it will result in a deadlock if it is executed first, thus
not solving the issue.

Is there any mechanism to make an analysis execute before another, or
make Trace Compass execute another state provider while we wait on the
current one ?

Thank you !

Regards,
Arnaud Fiorini

_______________________________________________
tracecompass-dev mailing list
tracecompass-dev@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/tracecompass-dev

Back to the top