diff mbox series

[i-g-t,04/24] i915/gem_exec_whisper: Measure total power consumed

Message ID 20190322092155.1656-4-chris@chris-wilson.co.uk (mailing list archive)
State New, archived
Headers show
Series [i-g-t,01/24] i915/gem_exec_latency: Measure the latency of context switching | expand

Commit Message

Chris Wilson March 22, 2019, 9:21 a.m. UTC
Show the total power consumed across all the whispers.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 tests/i915/gem_exec_whisper.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

Comments

Tvrtko Ursulin March 26, 2019, 8:47 a.m. UTC | #1
On 22/03/2019 09:21, Chris Wilson wrote:
> Show the total power consumed across all the whispers.
> 
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> ---
>   tests/i915/gem_exec_whisper.c | 11 ++++++++++-
>   1 file changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/i915/gem_exec_whisper.c b/tests/i915/gem_exec_whisper.c
> index 0b15fe431..6c3b53756 100644
> --- a/tests/i915/gem_exec_whisper.c
> +++ b/tests/i915/gem_exec_whisper.c
> @@ -28,8 +28,9 @@
>    */
>   
>   #include "igt.h"
> -#include "igt_gt.h"
>   #include "igt_debugfs.h"
> +#include "igt_gpu_power.h"
> +#include "igt_gt.h"
>   #include "igt_rand.h"
>   #include "igt_sysfs.h"
>   
> @@ -192,6 +193,8 @@ static void whisper(int fd, unsigned engine, unsigned flags)
>   	unsigned int reloc_migrations = 0;
>   	unsigned int reloc_interruptions = 0;
>   	unsigned int eb_migrations = 0;
> +	struct gpu_power_sample sample[2];
> +	struct gpu_power power;
>   	uint64_t old_offset;
>   	int i, n, loc;
>   	int debugfs;
> @@ -202,6 +205,7 @@ static void whisper(int fd, unsigned engine, unsigned flags)
>   	}
>   
>   	debugfs = igt_debugfs_dir(fd);
> +	gpu_power_open(&power);
>   
>   	nengine = 0;
>   	if (engine == ALL_ENGINES) {
> @@ -226,6 +230,7 @@ static void whisper(int fd, unsigned engine, unsigned flags)
>   		init_hang(&hang);
>   
>   	intel_detect_and_clear_missed_interrupts(fd);
> +	gpu_power_read(&power, &sample[0]);
>   	igt_fork(child, flags & FORKED ? sysconf(_SC_NPROCESSORS_ONLN) : 1)  {
>   		unsigned int pass;
>   
> @@ -495,6 +500,10 @@ static void whisper(int fd, unsigned engine, unsigned flags)
>   		fini_hang(&hang);
>   	else
>   		igt_assert_eq(intel_detect_and_clear_missed_interrupts(fd), 0);
> +	if (gpu_power_read(&power, &sample[1]))  {
> +		igt_info("Total energy used: %.1fmJ\n",
> +			 gpu_power_J(&power, &sample[0], &sample[1]) * 1e3);
> +	}
>   
>   	close(debugfs);
>   }
> 

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Regards,

Tvrtko
diff mbox series

Patch

diff --git a/tests/i915/gem_exec_whisper.c b/tests/i915/gem_exec_whisper.c
index 0b15fe431..6c3b53756 100644
--- a/tests/i915/gem_exec_whisper.c
+++ b/tests/i915/gem_exec_whisper.c
@@ -28,8 +28,9 @@ 
  */
 
 #include "igt.h"
-#include "igt_gt.h"
 #include "igt_debugfs.h"
+#include "igt_gpu_power.h"
+#include "igt_gt.h"
 #include "igt_rand.h"
 #include "igt_sysfs.h"
 
@@ -192,6 +193,8 @@  static void whisper(int fd, unsigned engine, unsigned flags)
 	unsigned int reloc_migrations = 0;
 	unsigned int reloc_interruptions = 0;
 	unsigned int eb_migrations = 0;
+	struct gpu_power_sample sample[2];
+	struct gpu_power power;
 	uint64_t old_offset;
 	int i, n, loc;
 	int debugfs;
@@ -202,6 +205,7 @@  static void whisper(int fd, unsigned engine, unsigned flags)
 	}
 
 	debugfs = igt_debugfs_dir(fd);
+	gpu_power_open(&power);
 
 	nengine = 0;
 	if (engine == ALL_ENGINES) {
@@ -226,6 +230,7 @@  static void whisper(int fd, unsigned engine, unsigned flags)
 		init_hang(&hang);
 
 	intel_detect_and_clear_missed_interrupts(fd);
+	gpu_power_read(&power, &sample[0]);
 	igt_fork(child, flags & FORKED ? sysconf(_SC_NPROCESSORS_ONLN) : 1)  {
 		unsigned int pass;
 
@@ -495,6 +500,10 @@  static void whisper(int fd, unsigned engine, unsigned flags)
 		fini_hang(&hang);
 	else
 		igt_assert_eq(intel_detect_and_clear_missed_interrupts(fd), 0);
+	if (gpu_power_read(&power, &sample[1]))  {
+		igt_info("Total energy used: %.1fmJ\n",
+			 gpu_power_J(&power, &sample[0], &sample[1]) * 1e3);
+	}
 
 	close(debugfs);
 }