[PATCH] Add GPU_POWER sensors

Tom St Denis tom.stdenis at amd.com
Sat Feb 11 11:27:54 UTC 2017


On 11/02/17 05:56 AM, Kai Wasserbäch wrote:
> Hey Tom,
> Tom St Denis wrote on 11.02.2017 02:02:
>> On 02/10/2017 07:25 PM, Edward O'Callaghan wrote:
>>> Hey Tom,
>>>
>>> On 02/11/2017 05:10 AM, Tom St Denis wrote:
>>>> Add the ability to sample GPU_POWER sensors.  Because
>>>> the sensors have a high latency we read them from a background
>>>> thread which means we've added the requirement for pthreads.
>>>>
>>>> Signed-off-by: Tom St Denis <tom.stdenis at amd.com>
>>>> ---
>>>>  CMakeLists.txt         |  5 ++-
>>>>  README                 |  6 ++--
>>>>  src/app/top.c          | 88 +++++++++++++++++++++++++++++++++++++++++---------
>>>>  src/lib/CMakeLists.txt |  1 +
>>>>  src/lib/read_sensor.c  | 37 +++++++++++++++++++++
>>>>  src/umr.h              |  5 +++
>>>>  6 files changed, 123 insertions(+), 19 deletions(-)
>>>>  create mode 100644 src/lib/read_sensor.c
>>>>
>>>> diff --git a/CMakeLists.txt b/CMakeLists.txt
>>>> index ef78c97ad763..7b771d01919b 100644
>>>> --- a/CMakeLists.txt
>>>> +++ b/CMakeLists.txt
>>>> @@ -19,6 +19,9 @@ add_definitions(-DUMR_BUILD_REV=\"${GIT_REV}\")
>>>>  # Add local repository for FindXXX.cmake modules.
>>>>  SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules/"
>>>> ${CMAKE_MODULE_PATH})
>>>>
>>>> +find_package(Threads REQUIRED)
>>>> +include_directories(${THREADS_INCLUDE_DIRS})
>>> Do you need this include_directories() line?
>>>
>>>> +
>>>>  find_package(Curses REQUIRED)
>>>>  include_directories(${CURSES_INCLUDE_DIRS})
>>>>
>>>> @@ -37,7 +40,7 @@ set(REQUIRED_EXTERNAL_LIBS
>>>>  set(CMAKE_POSITION_INDEPENDENT_CODE ON)
>>>>
>>>>  # CFLAGS += -Wall -W -O2 -g3 -Isrc/ -DPIC -fPIC
>>>> -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -W -O2 -g3")
>>>> +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pthread -Wall -W -O2 -g3")
>>> You don't really want to have your linkage flags here, I think your
>>> looking for ${CMAKE_THREAD_LIBS_INIT} to go into the
>>> REQUIRED_EXTERNAL_LIBS list.
>>
>> How does it "go into"?  Simple '+='?
>>
>> Can you just send a quick patch I can squash into this?  The less I know about
>> cmake the more room I have in my head for useful things :-) hehehe.
>
> 1. You might want to set
>   set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
> at before the find_package() for Threads
> 2. Linking usually happens through target_link_*() calls, where you would add
> Threads::Threads (special thing created by FindThreads.cmake) to the list of
> your other variables.
>
> See <https://cmake.org/cmake/help/v3.7/module/FindThreads.html> for details on
> how FindThreads.cmake works. In your case you might want to set
> THREADS_PREFER_PTHREAD_FLAG as well.

Thanks.  I've sent v2 to the list.

Cheers,
Tom


More information about the amd-gfx mailing list