Top |
const char * | igt_debugfs_mount () |
char * | igt_debugfs_path () |
int | igt_debugfs_dir () |
int | igt_debugfs_connector_dir () |
int | igt_debugfs_pipe_dir () |
int | igt_debugfs_open () |
bool | igt_debugfs_exists () |
int | igt_debugfs_simple_read () |
bool | igt_debugfs_search () |
int | igt_debugfs_gt_dir () |
int | igt_debugfs_gt_open () |
#define | igt_debugfs_read() |
#define | igt_debugfs_write() |
void | igt_hpd_storm_set_threshold () |
void | igt_hpd_storm_reset () |
bool | igt_hpd_storm_detected () |
void | igt_require_hpd_storm_ctl () |
bool | igt_ignore_long_hpd () |
void | igt_reset_fifo_underrun_reporting () |
bool | igt_drop_caches_has () |
void | igt_drop_caches_set () |
int | igt_get_stable_obj_count () |
#define | igt_debugfs_dump() |
#define | DROP_UNBOUND |
#define | DROP_BOUND |
#define | DROP_RETIRE |
#define | DROP_ACTIVE |
#define | DROP_FREED |
#define | DROP_SHRINK_ALL |
#define | DROP_IDLE |
#define | DROP_RESET_ACTIVE |
#define | DROP_RESET_SEQNO |
#define | DROP_RCU |
#define | DROP_ALL |
This library provides helpers to access debugfs features. On top of some
basic functions to access debugfs files with e.g. igt_debugfs_open()
it also
provides higher-level wrappers for some debugfs features.
This covers the miscellaneous debugfs interface wrappers:
drm/i915 supports interfaces to evict certain classes of gem buffer
objects, see igt_drop_caches_set()
.
const char *
igt_debugfs_mount (void
);
This attempts to locate where debugfs is mounted on the filesystem, and if not found, will then try to mount debugfs at /sys/kernel/debug.
char * igt_debugfs_path (int device
,char *path
,int pathlen
);
This finds the debugfs directory corresponding to device
.
int
igt_debugfs_dir (int device
);
This opens the debugfs directory corresponding to device for use
with igt_sysfs_get()
and related functions.
int igt_debugfs_connector_dir (int device
,char *conn_name
,int mode
);
This opens the debugfs directory corresponding to connector on the device
for use with igt_sysfs_get()
and related functions.
int igt_debugfs_pipe_dir (int device
,int pipe
,int mode
);
This opens the debugfs directory corresponding to the pipe index on the
device for use with igt_sysfs_get()
and related functions. This is just
syntax sugar for igt_debugfs_open()
.
int igt_debugfs_open (int fd
,const char *filename
,int mode
);
This opens a debugfs file as a Unix file descriptor. The filename should be relative to the drm device's root, i.e. without "drm/$minor".
bool igt_debugfs_exists (int fd
,const char *filename
,int mode
);
Test that the specified debugfs file exists and can be opened with the requested mode.
int igt_debugfs_simple_read (int dir
,const char *filename
,char *buf
,int size
);
This function is similar to __igt_debugfs_read, the difference is that it expects the debugfs directory to be open and it's descriptor passed as the first argument.
bool igt_debugfs_search (int fd
,const char *filename
,const char *substring
);
Searches each line in filename
for the substring specified in substring
.
int igt_debugfs_gt_dir (int device
,unsigned int gt
);
This opens the debugfs directory corresponding to device for use
with igt_sysfs_get()
and related functions.
int igt_debugfs_gt_open (int device
,unsigned int gt
,const char *filename
,int mode
);
This opens a debugfs file as a Unix file descriptor. The filename should be relative to the drm device's root, i.e. without "drm/$minor".
#define igt_debugfs_read(fd, filename, buf)
This is just a convenience wrapper for __igt_debugfs_read. See its documentation.
#define igt_debugfs_write(fd, filename, buf)
This is just a convenience wrapper for __igt_debugfs_write. See its documentation.
void igt_hpd_storm_set_threshold (int fd
,unsigned int threshold
);
Convienence helper to configure the HPD storm detection threshold for i915 through debugfs. Useful for hotplugging tests where HPD storm detection might get in the way and slow things down.
If the system does not support HPD storm detection, this function does nothing.
See: https://01.org/linuxgraphics/gfx-docs/drm/gpu/i915.htmlhotplug
void
igt_hpd_storm_reset (int fd
);
Convienence helper to reset HPD storm detection to it's default settings. If hotplug detection was disabled on any ports due to an HPD storm, it will be immediately re-enabled. Always called on exit if the HPD storm detection threshold was modified during any tests.
If the system does not support HPD storm detection, this function does nothing.
See: https://01.org/linuxgraphics/gfx-docs/drm/gpu/i915.htmlhotplug
bool
igt_hpd_storm_detected (int fd
);
Checks whether or not i915 has detected an HPD interrupt storm on any of the system's ports.
This function always returns false on systems that do not support HPD storm detection.
See: https://01.org/linuxgraphics/gfx-docs/drm/gpu/i915.htmlhotplug
void
igt_require_hpd_storm_ctl (int fd
);
Skips the current test if the system does not have HPD storm detection.
See: https://01.org/linuxgraphics/gfx-docs/drm/gpu/i915.htmlhotplug
bool igt_ignore_long_hpd (int fd
,bool enable
);
Set / unset ignore long HPD events from the panels. Some panels generate long HPDs even while connected to the ports causing unexpected CI execution issues. Set this to ignore such unexpected long HPDs where we dont expect to disconnect the displays.
void
igt_reset_fifo_underrun_reporting (int drm_fd
);
Resets fifo underrun reporting, if supported by the device. Useful since fifo underrun reporting tends to be one-shot, so good to reset it before the actual functional test again in case there's been a separate issue happening while preparing the test setup.
bool igt_drop_caches_has (int fd
,uint64_t val
);
This queries the debugfs to see if it supports the full set of desired operations.
void igt_drop_caches_set (int fd
,uint64_t val
);
This calls the debugfs interface the drm/i915 GEM driver exposes to drop or evict certain classes of gem buffer objects.
int
igt_get_stable_obj_count (int driver
);
This puts the driver into a stable (quiescent) state and then returns the current number of gem buffer objects as reported in the i915_gem_objects debugFS interface.
#define DROP_BOUND 0x2
Drop all inactive objects which are bound into some gpu address space.
#define DROP_RETIRE 0x4
Wait for all outstanding gpu commands to complete, but do not take any further actions.
#define DROP_SHRINK_ALL 0x20
Force all unpinned buffers to be evicted from their GTT and returned to the system.
#define DROP_IDLE 0x40
Flush the driver's idle_worker, releasing internal caches and wakerefs.
#define DROP_RESET_ACTIVE 0x80
Cancel all outstanding requests by forcing a gpu reset
#define DROP_RCU 0x200
Performs rcu_barrier()
and waits for an RCU grace period to complete,
which will flush any RCU callbacks and deferred tasks.