Andrew Kelley
63f4778827
std: add Linux perf syscall bits
Example usage:
```zig
const std = @import("std");
const PERF = std.os.linux.PERF;
const assert = std.debug.assert;
test "perf" {
var attr: std.os.linux.perf_event_attr = .{
.type = PERF.TYPE.HARDWARE,
.config = @enumToInt(PERF.COUNT.HW.INSTRUCTIONS),
.flags = .{
.disabled = true,
.exclude_kernel = true,
.exclude_hv = true,
},
};
const fd = try std.os.perf_event_open(&attr, 0, -1, -1, PERF.FLAG.FD_CLOEXEC);
defer std.os.close(fd);
_ = std.os.linux.ioctl(fd, PERF.EVENT_IOC.RESET, 0);
_ = std.os.linux.ioctl(fd, PERF.EVENT_IOC.ENABLE, 0);
long();
_ = std.os.linux.ioctl(fd, PERF.EVENT_IOC.DISABLE, 0);
var result: usize = 0;
assert((try std.os.read(fd, std.mem.asBytes(&result))) == @sizeOf(usize));
std.debug.print("instruction count: {d}\n", .{result});
}
fn long() void {
var i: usize = 0;
while (i < 100000) : (i += 1) {}
}
```
2021-11-01 14:45:05 -07:00
..
2021-10-27 16:07:48 -04:00
2021-10-21 17:03:44 -04:00
2021-10-30 18:32:26 +02:00
2021-10-04 15:31:08 -04:00
2021-10-27 16:07:48 -04:00
2021-09-01 17:54:06 -07:00
2021-10-04 23:48:55 -07:00
2021-08-24 12:25:09 -07:00
2021-10-04 23:48:55 -07:00
2021-10-27 16:07:48 -04:00
2021-10-29 19:22:24 -04:00
2021-10-27 16:07:48 -04:00
2021-08-24 12:25:09 -07:00
2021-10-29 17:49:02 -07:00
2021-09-22 12:09:16 +03:00
2021-10-29 20:02:25 +00:00
2021-10-04 23:48:55 -07:00
2021-11-01 14:45:05 -07:00
2021-10-29 19:20:31 -04:00
2021-10-29 13:37:17 -04:00
2021-08-15 23:09:55 -07:00
2021-08-24 12:25:09 -07:00
2021-10-04 23:48:55 -07:00
2021-09-14 19:02:23 +03:00
2021-10-04 23:48:55 -07:00
2021-08-24 12:25:09 -07:00
2021-10-04 23:48:55 -07:00
2021-10-26 20:12:28 -04:00
2021-10-04 23:48:55 -07:00
2021-11-01 00:57:24 -07:00
2021-08-24 12:25:09 -07:00
2021-10-04 23:48:55 -07:00
2021-08-24 12:25:09 -07:00
2021-10-01 22:32:13 -07:00
2021-08-24 12:25:09 -07:00
2021-08-24 12:25:09 -07:00
2021-08-24 12:25:09 -07:00
2021-10-29 19:18:44 -04:00
2021-10-04 23:48:55 -07:00
2021-10-04 23:48:55 -07:00
2021-10-17 16:07:51 -04:00
2021-11-01 00:57:33 -07:00
2021-08-24 12:25:09 -07:00
2021-08-24 12:25:09 -07:00
2021-10-04 23:48:55 -07:00
2021-10-04 23:48:55 -07:00
2021-10-04 23:48:55 -07:00
2021-10-04 23:48:55 -07:00
2021-10-04 23:48:55 -07:00
2021-09-19 14:02:22 +02:00
2021-08-24 12:25:09 -07:00
2021-09-01 17:54:06 -07:00
2021-09-19 13:52:56 +02:00
2021-10-17 16:06:40 -04:00
2021-10-04 23:48:55 -07:00
2021-10-27 16:07:48 -04:00
2021-08-24 12:25:09 -07:00
2021-10-20 15:34:10 -07:00
2021-10-04 23:48:55 -07:00
2021-09-19 13:52:56 +02:00
2021-09-20 01:58:18 -04:00
2021-08-24 12:25:09 -07:00
2021-10-24 15:04:29 -04:00
2021-08-31 23:05:01 +02:00
2021-10-05 12:32:26 -07:00
2021-10-04 23:48:55 -07:00
2021-10-29 20:01:59 +00:00
2021-10-26 18:55:02 -04:00
2021-10-04 23:48:55 -07:00
2021-10-04 23:48:55 -07:00
2021-11-01 14:45:05 -07:00
2021-10-09 03:15:34 -04:00
2021-10-04 23:48:55 -07:00
2021-10-27 16:07:48 -04:00
2021-10-17 17:47:43 -04:00
2021-10-04 23:48:55 -07:00
2021-10-04 23:48:55 -07:00
2021-10-29 19:20:31 -04:00
2021-08-24 12:25:09 -07:00
2021-10-27 16:07:48 -04:00
2021-08-24 12:25:09 -07:00
2021-09-22 14:14:03 -05:00
2021-10-04 23:48:55 -07:00
2021-10-05 18:19:31 -07:00
2021-10-04 23:48:55 -07:00
2021-09-24 14:06:16 -04:00
2021-10-04 23:48:55 -07:00
2021-10-04 23:48:55 -07:00
2021-08-29 11:57:32 +02:00
2021-08-24 12:25:09 -07:00
2021-08-24 12:25:09 -07:00
2021-09-07 15:08:51 -04:00