Skip to content

Commit

Permalink
drm/i915/uc: Extract uc usage details into separate debugfs
Browse files Browse the repository at this point in the history
It has been pointed out that information about HuC usage doesn't belong
in guc_info debugfs. Let's move "supported/used/wanted" matrix to a
separate debugfs file, keeping guc_info strictly about GuC.

Suggested-by: Daniele Ceraolo Spurio <[email protected]>
Signed-off-by: Michał Winiarski <[email protected]>
Cc: Daniele Ceraolo Spurio <[email protected]>
Cc: Lukasz Fiedorowicz <[email protected]>
Cc: Michal Wajdeczko <[email protected]>
Reviewed-by: Daniele Ceraolo Spurio <[email protected]>
Signed-off-by: Chris Wilson <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
  • Loading branch information
mwiniars authored and ickle committed Jul 8, 2020
1 parent 018532e commit 7f67dee
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 16 deletions.
23 changes: 7 additions & 16 deletions drivers/gpu/drm/i915/gt/uc/intel_guc.c
Original file line number Diff line number Diff line change
Expand Up @@ -733,28 +733,19 @@ int intel_guc_allocate_and_map_vma(struct intel_guc *guc, u32 size,
*/
void intel_guc_load_status(struct intel_guc *guc, struct drm_printer *p)
{
struct intel_uc *uc = container_of(guc, struct intel_uc, guc);
struct intel_gt *gt = guc_to_gt(guc);
struct intel_uncore *uncore = gt->uncore;
intel_wakeref_t wakeref;

drm_printf(p, "[guc] supported:%s wanted:%s used:%s\n",
yesno(intel_uc_supports_guc(uc)),
yesno(intel_uc_wants_guc(uc)),
yesno(intel_uc_uses_guc(uc)));
drm_printf(p, "[huc] supported:%s wanted:%s used:%s\n",
yesno(intel_uc_supports_huc(uc)),
yesno(intel_uc_wants_huc(uc)),
yesno(intel_uc_uses_huc(uc)));
drm_printf(p, "[submission] supported:%s wanted:%s used:%s\n",
yesno(intel_uc_supports_guc_submission(uc)),
yesno(intel_uc_wants_guc_submission(uc)),
yesno(intel_uc_uses_guc_submission(uc)));

if (!intel_guc_is_supported(guc) || !intel_guc_is_wanted(guc))
if (!intel_guc_is_supported(guc)) {
drm_printf(p, "GuC not supported\n");
return;
}

drm_puts(p, "\n");
if (!intel_guc_is_wanted(guc)) {
drm_printf(p, "GuC disabled\n");
return;
}

intel_uc_fw_dump(&guc->fw, p);

Expand Down
29 changes: 29 additions & 0 deletions drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,41 @@
*/

#include <linux/debugfs.h>
#include <drm/drm_print.h>

#include "gt/debugfs_gt.h"
#include "intel_guc_debugfs.h"
#include "intel_huc_debugfs.h"
#include "intel_uc.h"
#include "intel_uc_debugfs.h"

static int uc_usage_show(struct seq_file *m, void *data)
{
struct intel_uc *uc = m->private;
struct drm_printer p = drm_seq_file_printer(m);

drm_printf(&p, "[guc] supported:%s wanted:%s used:%s\n",
yesno(intel_uc_supports_guc(uc)),
yesno(intel_uc_wants_guc(uc)),
yesno(intel_uc_uses_guc(uc)));
drm_printf(&p, "[huc] supported:%s wanted:%s used:%s\n",
yesno(intel_uc_supports_huc(uc)),
yesno(intel_uc_wants_huc(uc)),
yesno(intel_uc_uses_huc(uc)));
drm_printf(&p, "[submission] supported:%s wanted:%s used:%s\n",
yesno(intel_uc_supports_guc_submission(uc)),
yesno(intel_uc_wants_guc_submission(uc)),
yesno(intel_uc_uses_guc_submission(uc)));

return 0;
}
DEFINE_GT_DEBUGFS_ATTRIBUTE(uc_usage);

void intel_uc_debugfs_register(struct intel_uc *uc, struct dentry *gt_root)
{
static const struct debugfs_gt_file files[] = {
{ "usage", &uc_usage_fops, NULL },
};
struct dentry *root;

if (!gt_root)
Expand All @@ -25,6 +52,8 @@ void intel_uc_debugfs_register(struct intel_uc *uc, struct dentry *gt_root)
if (IS_ERR(root))
return;

intel_gt_debugfs_register_files(root, files, ARRAY_SIZE(files), uc);

intel_guc_debugfs_register(&uc->guc, root);
intel_huc_debugfs_register(&uc->huc, root);
}

0 comments on commit 7f67dee

Please sign in to comment.