[igt-dev] [Intel-gfx] [RFC i-g-t] intel-gpu-top: Rewrite the tool to be safe to use
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Thu Mar 29 10:49:01 UTC 2018
On 28/03/2018 21:11, Rinat Ibragimov wrote:
>
>> Среда, 28 марта 2018, 21:30 +03:00 от Tvrtko Ursulin <tursulin at ursulin.net>:
>>
>
>> +static struct engines *discover_engines(void)
>> {
>> -uint32_t devid = pci_dev->device_id;
>> -uint16_t gcfgc;
>> +const char *sysfs_root = "/sys/devices/i915/events";
>
> Just a question.
> I think, I have Linux 4.15.11 (from Debian testing) now. And there are no such files.
> Are there any estimates about when this feature is expected to be available?
4.17 I think. I could make it work with 4.16 as well, if there would be
demand, just need to ignore counters enumerated in sysfs but not
actually present in hardware.
>> -static void ring_init(struct ring *ring)
>> +static uint64_t pmu_read_multi(int fd, unsigned int num, uint64_t *val)
>> {
>> -ring->size = (((ring_read(ring, RING_LEN) & RING_NR_PAGES) >> 12) + 1) * 4096;
>> +uint64_t buf[2 + num];
>> +unsigned int i;
>> +
>> +assert(read(fd, buf, sizeof(buf)) == sizeof(buf));
>
> Will have undesired effects with NDEBUG.
>
>> -int full;
>> +uint64_t data[2];
>>
>> -if (!ring->size)
>> -return;
>> +assert(read(fd, data, sizeof(data)) == sizeof(data));
>
> Same here.
Thanks, got a bit disconnected from userspace development patterns over
the years.
>
>> +/* Get terminal size. */
>> +if (ioctl(0, TIOCGWINSZ, &ws) != -1) {
>> +con_w = ws.ws_col;
>> +con_h = ws.ws_row;
>> +}
>
> If you move this into the loop itself, the tool will adapt to changes in
> terminal width and height dynamically.
Makes sense, done in v2.
Regards,
Tvrtko
More information about the igt-dev
mailing list