- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Just been running my application through Intel ThreadChecker (Linux) and I'm finding an awful lot of errors emerging from libtbbmalloc.so and libtbb.
Is this normal?
cheers,
Mat
------------------------------------------------
Intel Thread Checker 3.1 command line instrumentation driver (27583) Copyright (c) 2007 Intel Corporation. All rights reserved. ID Short Description Severity Name Count Context[Best] Description 1st Access[Best] 2nd Access[Best]
1 Write -> Read data-race Error 120 [libtbb.so.2, 0x1018c] Memory read at [libtbb.so.2, 0x101bd] conflicts with a prior memory write at [libtbb.so.2, 0x10022] (flow dependence) [libtbb.so.2, 0x10022] [libtbb.so.2, 0x101bd]
2 Write -> Read data-race Error 8 [libtbbmalloc.so.2, 0x91b6] Memory read at [libtbbmalloc.so.2, 0x9283] conflicts with a prior memory write at [libtbbmalloc.so.2, 0x92ba] (flow dependence) [libtbbmalloc.so.2, 0x92ba] [libtbbmalloc.so.2, 0x9283]
3 Write -> Write data-race Error 8 [libtbbmalloc.so.2, 0x91b6] Memory write at [libtbbmalloc.so.2, 0x9283] conflicts with a prior memory write at [libtbbmalloc.so.2, 0x92ba] (output dependence) [libtbbmalloc.so.2, 0x92ba] [libtbbmalloc.so.2, 0x9283]
4 Write -> Read data-race Error 8 [libtbbmalloc.so.2, 0x91b6] Memory read at [libtbbmalloc.so.2, 0x9408] conflicts with a prior memory write at [libtbbmalloc.so.2, 0x9444] (flow dependence) [libtbbmalloc.so.2, 0x9444] [libtbbmalloc.so.2, 0x9408]
5 Write -> Write data-race Error 8 [libtbbmalloc.so.2, 0x91b6] Memory write at [libtbbmalloc.so.2, 0x9444] conflicts with a prior memory write at [libtbbmalloc.so.2, 0x9444] (output dependence) [libtbbmalloc.so.2, 0x9444] [libtbbmalloc.so.2, 0x9444]
6 Write -> Write data-race Error 20 [libtbbmalloc.so.2, 0x9ace] Memory write at [libtbbmalloc.so.2, 0x9b9f] conflicts with a prior memory write at [libtbbmalloc.so.2, 0x9b9f] (output dependence) [libtbbmalloc.so.2, 0x9b9f] [libtbbmalloc.so.2, 0x9b9f]
Is this normal?
cheers,
Mat
------------------------------------------------
Intel Thread Checker 3.1 command line instrumentation driver (27583) Copyright (c) 2007 Intel Corporation. All rights reserved. ID Short Description Severity Name Count Context[Best] Description 1st Access[Best] 2nd Access[Best]
1 Write -> Read data-race Error 120 [libtbb.so.2, 0x1018c] Memory read at [libtbb.so.2, 0x101bd] conflicts with a prior memory write at [libtbb.so.2, 0x10022] (flow dependence) [libtbb.so.2, 0x10022] [libtbb.so.2, 0x101bd]
2 Write -> Read data-race Error 8 [libtbbmalloc.so.2, 0x91b6] Memory read at [libtbbmalloc.so.2, 0x9283] conflicts with a prior memory write at [libtbbmalloc.so.2, 0x92ba] (flow dependence) [libtbbmalloc.so.2, 0x92ba] [libtbbmalloc.so.2, 0x9283]
3 Write -> Write data-race Error 8 [libtbbmalloc.so.2, 0x91b6] Memory write at [libtbbmalloc.so.2, 0x9283] conflicts with a prior memory write at [libtbbmalloc.so.2, 0x92ba] (output dependence) [libtbbmalloc.so.2, 0x92ba] [libtbbmalloc.so.2, 0x9283]
4 Write -> Read data-race Error 8 [libtbbmalloc.so.2, 0x91b6] Memory read at [libtbbmalloc.so.2, 0x9408] conflicts with a prior memory write at [libtbbmalloc.so.2, 0x9444] (flow dependence) [libtbbmalloc.so.2, 0x9444] [libtbbmalloc.so.2, 0x9408]
5 Write -> Write data-race Error 8 [libtbbmalloc.so.2, 0x91b6] Memory write at [libtbbmalloc.so.2, 0x9444] conflicts with a prior memory write at [libtbbmalloc.so.2, 0x9444] (output dependence) [libtbbmalloc.so.2, 0x9444] [libtbbmalloc.so.2, 0x9444]
6 Write -> Write data-race Error 20 [libtbbmalloc.so.2, 0x9ace] Memory write at [libtbbmalloc.so.2, 0x9b9f] conflicts with a prior memory write at [libtbbmalloc.so.2, 0x9b9f] (output dependence) [libtbbmalloc.so.2, 0x9b9f] [libtbbmalloc.so.2, 0x9b9f]
Link Copied
4 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - memaher
Just been running my application through Intel ThreadChecker (Linux) and I'm finding an awful lot of errors emerging from libtbbmalloc.so and libtbb.
Is this normal?
Is this normal?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am indeed using TBB_USE_THREADING_TOOLS when building.
I've just constructed a test application (for a seperate report to ThreadChecker tech support) which does the following:
1) create 2x tbb_threads
2) in each thread, construct a pipeline
3) each pipeline contains 5 identical filters, which do a printf()
4) terminate the pipeline after a count reaches 20
that'll be 97 errors reported...
When you say its a bug, is it a bug in TBB or a bug in ThreadChecker (or a bug in the way I'm using things)?
Mat
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
"which do a printf()"
That should be superfluous information... unless you didn't use a lock?
(Added after #4) Note to self: don't just guess...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - memaher
I am indeed using TBB_USE_THREADING_TOOLS when building.
I've just constructed a test application (for a seperate report to ThreadChecker tech support) which does the following:
1) create 2x tbb_threads
2) in each thread, construct a pipeline
3) each pipeline contains 5 identical filters, which do a printf()
4) terminate the pipeline after a count reaches 20
that'll be 97 errors reported...
When you say its a bug, is it a bug in TBB or a bug in ThreadChecker (or a bug in the way I'm using things)?
Mat
so unfortunately this is a bug in Thread Checker. It's an annoying one, but it has an easy fix. Please go to the "bin" directory of your Thread Checker install. By default it's in /opt/intel/itt/tcheck/bin/32(e). There is a file named tcheck10.ini, which is a configuration file, which, among other things, states which levels of instrumentation to use for known system and user modules. If you search for "tbb" in tcheck10.ini, you'll find the following 4 lines (under "user modules":
libtbb.so=as_api
libtbb_debug.so=as_api
libtbbmalloc.so=as_api
libtbbmalloc_debug.so=as_api
libtbb_debug.so=as_api
libtbbmalloc.so=as_api
libtbbmalloc_debug.so=as_api
The problem with these lines is that the modules names are outdated. The ones reported in your original list all end with .so.2. And so should the ones in tcheck10.ini. So go ahead and change these four lines to:
libtbb.so.2=as_api
libtbb_debug.so.2=as_api
libtbbmalloc.so.2=as_api
libtbbmalloc_debug.so.2=as_api
This is it! The next time you run Thread Checker you will not see threading errors reported for these modules.
libtbb_debug.so.2=as_api
libtbbmalloc.so.2=as_api
libtbbmalloc_debug.so.2=as_api
This is it! The next time you run Thread Checker you will not see threading errors reported for these modules.
![](/skins/images/B7BA37F9CE4B52FF7CAE1FB0388839C8/responsive_peak/images/icon_anonymous_message.png)
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page