Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
AMDGPU power monitoring
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Gentoo Chat
View previous topic :: View next topic  
Author Message
The_Document
Apprentice
Apprentice


Joined: 03 Feb 2018
Posts: 275

PostPosted: Tue Mar 20, 2018 5:30 am    Post subject: AMDGPU power monitoring Reply with quote

Does anybody know of an app which can output gpu power usage in watts for AMDGPU hardware? LM-Sensors only returns CPU power usage.
Back to top
View user's profile Send private message
audiodef
Watchman
Watchman


Joined: 06 Jul 2005
Posts: 6656
Location: The soundosphere

PostPosted: Tue Mar 20, 2018 12:55 pm    Post subject: Reply with quote

I wonder if there's a Gkrellm module for this. I know it has a module for giving you the GPU temp, maybe it can give you power usage as well.
_________________
decibel Linux: https://decibellinux.org
Github: https://github.com/Gentoo-Music-and-Audio-Technology
Facebook: https://www.facebook.com/decibellinux
Discord: https://discord.gg/73XV24dNPN
Back to top
View user's profile Send private message
Zucca
Moderator
Moderator


Joined: 14 Jun 2007
Posts: 3743
Location: Rasi, Finland

PostPosted: Tue Mar 20, 2018 1:03 pm    Post subject: Reply with quote

I doubt it has the capability (yet).
But it seems that ROCm may give us that.
_________________
..: Zucca :..

My gentoo installs:
init=/sbin/openrc-init
-systemd -logind -elogind seatd

Quote:
I am NaN! I am a man!
Back to top
View user's profile Send private message
The_Document
Apprentice
Apprentice


Joined: 03 Feb 2018
Posts: 275

PostPosted: Tue Mar 20, 2018 8:53 pm    Post subject: Reply with quote

audiodef wrote:
I wonder if there's a Gkrellm module for this. I know it has a module for giving you the GPU temp, maybe it can give you power usage as well.


I found out how it is in
/sys/kernel/debug/dri/0/amdgpu_pm_info
but cannot find out how to grant ordinary users permission to read it. Can it even be done?

What is sad is apparently nobody on stack exchange knows how also, my question:
https://unix.stackexchange.com/questions/432255/grant-user-read-write-permissions-for-files-in-sys

perhaps "gentoo people" are more knowledgeable then they.
Back to top
View user's profile Send private message
Zucca
Moderator
Moderator


Joined: 14 Jun 2007
Posts: 3743
Location: Rasi, Finland

PostPosted: Tue Mar 20, 2018 10:05 pm    Post subject: Reply with quote

Well... You can bind-mount the /sys/kernel/debug/dri/0 directory to somewhere else. And then read the files by regular user. I think it poses a security risk as you open some content of debugfs as world readable. Safer would be to first create a subdirectory where only one, otherwise unpriviliged, user can access. Then create the mount point inside that directory. Then it sould be possible to access the data only by root or the newly created user. But please, consider this as a dirty hack.
_________________
..: Zucca :..

My gentoo installs:
init=/sbin/openrc-init
-systemd -logind -elogind seatd

Quote:
I am NaN! I am a man!
Back to top
View user's profile Send private message
The_Document
Apprentice
Apprentice


Joined: 03 Feb 2018
Posts: 275

PostPosted: Tue Mar 20, 2018 10:11 pm    Post subject: Reply with quote

Zucca wrote:
Well... You can bind-mount the /sys/kernel/debug/dri/0 directory to somewhere else. And then read the files by regular user. I think it poses a security risk as you open some content of debugfs as world readable. Safer would be to first create a subdirectory where only one, otherwise unpriviliged, user can access. Then create the mount point inside that directory. Then it sould be possible to access the data only by root or the newly created user. But please, consider this as a dirty hack.


Not concerned with security and "gentoo people" turned out more knowledgeable. Will certainly give it a shot.
Back to top
View user's profile Send private message
Zucca
Moderator
Moderator


Joined: 14 Jun 2007
Posts: 3743
Location: Rasi, Finland

PostPosted: Tue Mar 20, 2018 10:55 pm    Post subject: Reply with quote

If you want to read just one value, I'd probably just poll the file using grep etc on root account and update a file which anyone can read with the value.

If there was a way to "bind-mount" a file it would be maybe the best "hack" I could think of.
_________________
..: Zucca :..

My gentoo installs:
init=/sbin/openrc-init
-systemd -logind -elogind seatd

Quote:
I am NaN! I am a man!
Back to top
View user's profile Send private message
The_Document
Apprentice
Apprentice


Joined: 03 Feb 2018
Posts: 275

PostPosted: Wed Mar 21, 2018 12:35 am    Post subject: Reply with quote

Zucca wrote:
If you want to read just one value, I'd probably just poll the file using grep etc on root account and update a file which anyone can read with the value.

If there was a way to "bind-mount" a file it would be maybe the best "hack" I could think of.


I consider it a great workaround because it is doing exactly what I tried to do and I then tried to write an script but failed rc-config list does not list my script which resides in /etc/init.d/ as "apu-monitor" script:

https://paste.pound-python.org/show/stMGb3Tfpi5yxO5xnwSE/

would be neat to get this working. Here is a pic of what I want this for, its a KDE plasmoid on the desktop:
https://image.ibb.co/jGja4c/dd.png
Back to top
View user's profile Send private message
Zucca
Moderator
Moderator


Joined: 14 Jun 2007
Posts: 3743
Location: Rasi, Finland

PostPosted: Wed Mar 21, 2018 12:52 am    Post subject: Reply with quote

I haven't had a need to write any OpenRC scripts (yet), so I can only guess...
Have you chmod +x it?
Code:
depend() {
#  (Dependency information)
}
... might not be correct in syntax. I think functions need to have at least one command inside them or the code isn't valid.
Code:
depend() {
    true
#  (Dependency information)
}
... might then help. Maybe best to just comment the whole function?

But why don't you just put it in /etc/fstab? ;)

Also I just read mount man page...
Code:
man mount
wrote:
Code:
       Note  that  the  filesystem  mount  options  will remain the same as those on the original mount
       point.

       mount(8) since v2.27 allows to change the mount options by passing the  relevant  options  along
       with --bind.  For example:

              mount -o bind,ro foo foo

       This  feature  is  not supported by the Linux kernel; it is implemented in userspace by an addi‐
       tional mount(2) remounting system call.  This solution is not atomic.

       The alternative (classic) way to create a read-only bind mount is to use the remount  operation,
       for example:

              mount --bind olddir newdir
              mount -o remount,bind,ro olddir newdir

       Note  that  a  read-only  bind  will create a read-only mountpoint (VFS entry), but the original
       filesystem superblock will still be writable, meaning that the olddir will be writable, but  the
       newdir will be read-only.
You learn something new every day. I didn't knew bind mounts can have different options. You should then consider making yours ro.
_________________
..: Zucca :..

My gentoo installs:
init=/sbin/openrc-init
-systemd -logind -elogind seatd

Quote:
I am NaN! I am a man!
Back to top
View user's profile Send private message
Ant P.
Watchman
Watchman


Joined: 18 Apr 2009
Posts: 6920

PostPosted: Wed Mar 21, 2018 1:00 am    Post subject: Reply with quote

That works for me:
Code:
$ cat /sys/kernel/debug/dri/0/amdgpu_pm_info
cat: /sys/kernel/debug/dri/0/amdgpu_pm_info: Permission denied
# touch /tmp/amdgpu_pm_info
# mount --bind -o ro /sys/kernel/debug/dri/0/amdgpu_pm_info /tmp/amdgpu_pm_info
$ cat /tmp/amdgpu_pm_info
Clock Gating Flags Mask: 0x37bcf
        Graphics Medium Grain Clock Gating: On
        Graphics Medium Grain memory Light Sleep: On
        Graphics Coarse Grain Clock Gating: On
        Graphics Coarse Grain memory Light Sleep: On
        Graphics Coarse Grain Tree Shader Clock Gating: Off
        Graphics Coarse Grain Tree Shader Light Sleep: Off
        Graphics Command Processor Light Sleep: On
        Graphics Run List Controller Light Sleep: On
        Graphics 3D Coarse Grain Clock Gating: Off
        Graphics 3D Coarse Grain memory Light Sleep: Off
        Memory Controller Light Sleep: On
        Memory Controller Medium Grain Clock Gating: On
        System Direct Memory Access Light Sleep: Off
        System Direct Memory Access Medium Grain Clock Gating: On
        Bus Interface Medium Grain Clock Gating: Off
        Bus Interface Light Sleep: On
        Unified Video Decoder Medium Grain Clock Gating: On
        Video Compression Engine Medium Grain Clock Gating: On
        Host Data Path Light Sleep: Off
        Host Data Path Medium Grain Clock Gating: On
        Digital Right Management Medium Grain Clock Gating: Off
        Digital Right Management Light Sleep: Off
        Rom Medium Grain Clock Gating: On
        Data Fabric Medium Grain Clock Gating: Off

GFX Clocks and Power:
        1500 MHz (MCLK)
        228 MHz (SCLK)
        4.170 W (VDDC)
        4.72 W (VDDCI)
        10.124 W (max GPU)
        11.115 W (average GPU)

GPU Temperature: 44 C
GPU Load: 94 %

UVD: Enabled

VCE: Disabled

Seems like this stuff should be accessible in /sys/class/drm/card0/device/hwmon/hwmon*/ though. All I get there is fan speed and temp. I know lm_sensors can handle power meters on the CPU, so that's no excuse for leaving it out.
Back to top
View user's profile Send private message
The_Document
Apprentice
Apprentice


Joined: 03 Feb 2018
Posts: 275

PostPosted: Wed Mar 21, 2018 1:23 am    Post subject: Reply with quote

Ant P. wrote:
That works for me:

...

Seems like this stuff should be accessible in /sys/class/drm/card0/device/hwmon/hwmon*/ though. All I get there is fan speed and temp. I know lm_sensors can handle power meters on the CPU, so that's no excuse for leaving it out.


Someone should tell lmsensor people about this. However my initscript still isn't listed.
Back to top
View user's profile Send private message
Hu
Administrator
Administrator


Joined: 06 Mar 2007
Posts: 22725

PostPosted: Wed Mar 21, 2018 1:31 am    Post subject: Reply with quote

Zucca wrote:
You learn something new every day.
You should wait until tomorrow to read the rest of this post.

Still here? Good:
Zucca wrote:
If there was a way to "bind-mount" a file it would be maybe the best "hack" I could think of.
Code:
mount --bind /etc/passwd /etc/issue ; cat -n /etc/issue ; umount /etc/issue
Back to top
View user's profile Send private message
The_Document
Apprentice
Apprentice


Joined: 03 Feb 2018
Posts: 275

PostPosted: Wed Mar 21, 2018 1:49 am    Post subject: Reply with quote

Hu wrote:
Zucca wrote:
You learn something new every day.
You should wait until tomorrow to read the rest of this post.

Still here? Good:
Zucca wrote:
If there was a way to "bind-mount" a file it would be maybe the best "hack" I could think of.
Code:
mount --bind /etc/passwd /etc/issue ; cat -n /etc/issue ; umount /etc/issue


I don't need fancy mount options, what I have is just fine, all I needed to do was to make the script executable. However its not mounting because Im sure I didn't adhere to rc syntax. Weird because it doesn't output any errors when doing rc-config start apu-monitor
Back to top
View user's profile Send private message
Zucca
Moderator
Moderator


Joined: 14 Jun 2007
Posts: 3743
Location: Rasi, Finland

PostPosted: Wed Mar 21, 2018 7:34 am    Post subject: Reply with quote

Oooh... I'm having a steep learning curve at the moment.

:D
_________________
..: Zucca :..

My gentoo installs:
init=/sbin/openrc-init
-systemd -logind -elogind seatd

Quote:
I am NaN! I am a man!
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Gentoo Chat All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum