From: "Laguna, Lukasz" <lukasz.laguna@intel.com>
To: Marcin Bernatowicz <marcin.bernatowicz@linux.intel.com>,
<igt-dev@lists.freedesktop.org>
Cc: <kamil.konieczny@linux.intel.com>,
<adam.miszczak@linux.intel.com>, <jakub1.kolakowski@intel.com>,
<michal.wajdeczko@intel.com>, <michal.winiarski@intel.com>,
<narasimha.c.v@intel.com>, <piotr.piorkowski@intel.com>,
<satyanarayana.k.v.p@intel.com>, <tomasz.lis@intel.com>
Subject: Re: [PATCH i-g-t 1/4] lib/xe/xe_sriov_debugfs: Add debugfs get/set functions for u32, u64, bool
Date: Mon, 2 Dec 2024 14:03:43 +0100 [thread overview]
Message-ID: <ea50177f-e2dc-4451-bacc-fe8b62a3ccae@intel.com> (raw)
In-Reply-To: <20241127200302.1376594-2-marcin.bernatowicz@linux.intel.com>
On 11/27/2024 21:02, Marcin Bernatowicz wrote:
> Add helper functions to get and set SR-IOV debugfs attributes for u32,
> u64, and boolean types.
>
> Functions added:
> - __xe_sriov_pf_debugfs_get_u32
> - __xe_sriov_pf_debugfs_set_u32
> - __xe_sriov_pf_debugfs_get_u64
> - __xe_sriov_pf_debugfs_set_u64
> - __xe_sriov_pf_debugfs_get_boolean
> - __xe_sriov_pf_debugfs_set_boolean
>
> Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz@linux.intel.com>
> Cc: Adam Miszczak <adam.miszczak@linux.intel.com>
> Cc: Jakub Kolakowski <jakub1.kolakowski@intel.com>
> Cc: Lukasz Laguna <lukasz.laguna@intel.com>
> Cc: Michał Wajdeczko <michal.wajdeczko@intel.com>
> Cc: Michał Winiarski <michal.winiarski@intel.com>
> Cc: Narasimha C V <narasimha.c.v@intel.com>
> Cc: Piotr Piórkowski <piotr.piorkowski@intel.com>
> Cc: Satyanarayana K V P <satyanarayana.k.v.p@intel.com>
> Cc: Tomasz Lis <tomasz.lis@intel.com>
> ---
> lib/xe/xe_sriov_debugfs.c | 194 ++++++++++++++++++++++++++++++++++++++
> lib/xe/xe_sriov_debugfs.h | 18 ++++
> 2 files changed, 212 insertions(+)
>
> diff --git a/lib/xe/xe_sriov_debugfs.c b/lib/xe/xe_sriov_debugfs.c
> index c87f91492..038912f23 100644
> --- a/lib/xe/xe_sriov_debugfs.c
> +++ b/lib/xe/xe_sriov_debugfs.c
> @@ -9,6 +9,7 @@
> #include "drmtest.h"
> #include "igt_debugfs.h"
> #include "igt_sriov_device.h"
> +#include "igt_sysfs.h"
> #include "xe/xe_query.h"
> #include "xe/xe_sriov_debugfs.h"
> #include "xe/xe_sriov_provisioning.h"
> @@ -204,3 +205,196 @@ cleanup:
>
> return ret;
> }
> +
> +static int xe_sriov_pf_debugfs_path_open(int pf, unsigned int vf_num,
> + unsigned int gt_num)
> +{
> + char path[PATH_MAX];
> +
> + if (igt_debug_on_f(!xe_sriov_pf_debugfs_path(pf, vf_num, gt_num, path,
> + sizeof(path)),
> + "path: %s\n", path))
> + return -1;
> +
> + return open(path, O_RDONLY);
O_RDWR?
> +}
> +
> +/**
> + * __xe_sriov_pf_debugfs_get_u32:
> + * @pf: PF device file descriptor
> + * @vf_num: VF number (1-based) or 0 for PF
> + * @gt_num: GT number
> + * @attr: debugfs attribute name
> + * @value: pointer to read value
> + *
> + * Reads SR-IOV debugfs attribute @attr for given PF device @pf,
> + * VF number @vf_num on GT @gt_num.
> + *
> + * Return: 0 on success and negative error on failure.
> + */
> +int __xe_sriov_pf_debugfs_get_u32(int pf, unsigned int vf_num,
> + unsigned int gt_num, const char *attr,
> + uint32_t *value)
> +{
> + bool ret;
> + int dir;
> +
> + dir = xe_sriov_pf_debugfs_path_open(pf, vf_num, gt_num);
> + if (igt_debug_on(dir < 0))
> + return false;
return dir;
> +
> + ret = __igt_sysfs_get_u32(dir, attr, value);
> + close(dir);
> +
> + return ret ? 0 : -1;
> +}
> +
> +/**
> + * __xe_sriov_pf_debugfs_set_u32:
> + * @pf: PF device file descriptor
> + * @vf_num: VF number (1-based) or 0 for PF
> + * @gt_num: GT number
> + * @attr: debugfs attribute name
> + * @value: u32 value to be set
> + *
> + * Writes @value to SR-IOV debugfs attribute @attr for given PF device @pf,
> + * VF number @vf_num on GT @gt_num.
> + *
> + * Return: 0 on success and negative error on failure.
> + */
> +int __xe_sriov_pf_debugfs_set_u32(int pf, unsigned int vf_num,
> + unsigned int gt_num, const char *attr,
> + uint32_t value)
> +{
> + bool ret;
> + int dir;
> +
> + dir = xe_sriov_pf_debugfs_path_open(pf, vf_num, gt_num);
> + if (igt_debug_on(dir < 0))
> + return dir;
> +
> + ret = __igt_sysfs_set_u32(dir, attr, value);
> + close(dir);
> +
> + return ret ? 0 : -1;
> +}
> +
> +/**
> + * __xe_sriov_pf_debugfs_get_u64:
> + * @pf: PF device file descriptor
> + * @vf_num: VF number (1-based) or 0 for PF
> + * @gt_num: GT number
> + * @attr: debugfs attribute name
> + * @value: pointer to read value
> + *
> + * Reads SR-IOV debugfs attribute @attr for given PF device @pf,
> + * VF number @vf_num on GT @gt_num.
> + *
> + * Return: 0 on success and negative error on failure.
> + */
> +int __xe_sriov_pf_debugfs_get_u64(int pf, unsigned int vf_num,
> + unsigned int gt_num, const char *attr,
> + uint64_t *value)
> +{
> + bool ret;
> + int dir;
> +
> + dir = xe_sriov_pf_debugfs_path_open(pf, vf_num, gt_num);
> + if (igt_debug_on(dir < 0))
> + return dir;
> +
> + ret = __igt_sysfs_get_u64(dir, attr, value);
> + close(dir);
> +
> + return ret ? 0 : -1;
> +}
> +
> +/**
> + * __xe_sriov_pf_debugfs_set_u64:
> + * @pf: PF device file descriptor
> + * @vf_num: VF number (1-based) or 0 for PF
> + * @gt_num: GT number
> + * @attr: debugfs attribute name
> + * @value: u64 value to be set
> + *
> + * Writes @value to SR-IOV debugfs attribute @attr for given PF device @pf,
> + * VF number @vf_num on GT @gt_num.
> + *
> + * Return: 0 on success and negative error on failure.
> + */
> +int __xe_sriov_pf_debugfs_set_u64(int pf, unsigned int vf_num,
> + unsigned int gt_num, const char *attr,
> + uint64_t value)
> +{
> + bool ret;
> + int dir;
> +
> + dir = xe_sriov_pf_debugfs_path_open(pf, vf_num, gt_num);
> + if (igt_debug_on(dir < 0))
> + return dir;
> +
> + ret = __igt_sysfs_set_u64(dir, attr, value);
> + close(dir);
> +
> + return ret ? 0 : -1;
> +}
> +
> +/**
> + * __xe_sriov_pf_debugfs_get_boolean:
> + * @pf: PF device file descriptor
> + * @vf_num: VF number (1-based) or 0 for PF
> + * @gt_num: GT number
> + * @attr: debugfs attribute name
> + * @value: pointer to read value
> + *
> + * Reads SR-IOV debugfs attribute @attr for given PF device @pf,
> + * VF number @vf_num on GT @gt_num.
> + *
> + * Return: 0 on success and negative error on failure.
> + */
> +int __xe_sriov_pf_debugfs_get_boolean(int pf, unsigned int vf_num,
> + unsigned int gt_num, const char *attr,
> + bool *value)
> +{
> + bool ret;
> + int dir;
> +
> + dir = xe_sriov_pf_debugfs_path_open(pf, vf_num, gt_num);
> + if (igt_debug_on(dir < 0))
> + return dir;
> +
> + ret = __igt_sysfs_get_boolean(dir, attr, value);
> + close(dir);
> +
> + return ret ? 0 : -1;
> +}
> +
> +/**
> + * __xe_sriov_pf_debugfs_set_boolean:
> + * @pf: PF device file descriptor
> + * @vf_num: VF number (1-based) or 0 for PF
> + * @gt_num: GT number
> + * @attr: debugfs attribute name
> + * @value: u64 value to be set
> + *
> + * Writes @value to SR-IOV debugfs attribute @attr for given PF device @pf,
> + * VF number @vf_num on GT @gt_num.
> + *
> + * Return: 0 on success and negative error on failure.
> + */
> +int __xe_sriov_pf_debugfs_set_boolean(int pf, unsigned int vf_num,
> + unsigned int gt_num, const char *attr,
> + bool value)
> +{
> + bool ret;
> + int dir;
> +
> + dir = xe_sriov_pf_debugfs_path_open(pf, vf_num, gt_num);
> + if (igt_debug_on(dir < 0))
> + return dir;
> +
> + ret = __igt_sysfs_set_boolean(dir, attr, value);
> + close(dir);
> +
> + return ret ? 0 : -1;
> +}
> diff --git a/lib/xe/xe_sriov_debugfs.h b/lib/xe/xe_sriov_debugfs.h
> index 856445e76..2db965f9b 100644
> --- a/lib/xe/xe_sriov_debugfs.h
> +++ b/lib/xe/xe_sriov_debugfs.h
> @@ -16,5 +16,23 @@ int xe_sriov_pf_debugfs_read_provisioned_ranges(int pf_fd, enum xe_sriov_shared_
> unsigned int gt_id,
> struct xe_sriov_provisioned_range **ranges,
> unsigned int *nr_ranges);
> +int __xe_sriov_pf_debugfs_get_u32(int pf, unsigned int vf_num,
> + unsigned int gt_num, const char *attr,
> + uint32_t *value);
> +int __xe_sriov_pf_debugfs_set_u32(int pf, unsigned int vf_num,
> + unsigned int gt_num, const char *attr,
> + uint32_t value);
> +int __xe_sriov_pf_debugfs_get_u64(int pf, unsigned int vf_num,
> + unsigned int gt_num, const char *attr,
> + uint64_t *value);
> +int __xe_sriov_pf_debugfs_set_u64(int pf, unsigned int vf_num,
> + unsigned int gt_num, const char *attr,
> + uint64_t value);
> +int __xe_sriov_pf_debugfs_get_boolean(int pf, unsigned int vf_num,
> + unsigned int gt_num, const char *attr,
> + bool *value);
> +int __xe_sriov_pf_debugfs_set_boolean(int pf, unsigned int vf_num,
> + unsigned int gt_num, const char *attr,
> + bool value);
>
> #endif /* __XE_SRIOV_DEBUGFS_H__ */
next prev parent reply other threads:[~2024-12-02 13:03 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-27 20:02 [PATCH i-g-t 0/4] Subject: [PATCH i-g-t 0/4] lib/xe: Add SR-IOV debugfs and provisioning helpers Marcin Bernatowicz
2024-11-27 20:02 ` [PATCH i-g-t 1/4] lib/xe/xe_sriov_debugfs: Add debugfs get/set functions for u32, u64, bool Marcin Bernatowicz
2024-12-02 13:03 ` Laguna, Lukasz [this message]
2024-12-05 15:36 ` Bernatowicz, Marcin
2024-11-27 20:03 ` [PATCH i-g-t 2/4] lib/xe/xe_sriov_provisioning: Add scheduling attributes accessors Marcin Bernatowicz
2024-11-27 20:03 ` [PATCH i-g-t 3/4] lib/xe/xe_sriov_provisioning: Add helper to check default scheduling attributes Marcin Bernatowicz
2024-11-27 20:03 ` [PATCH i-g-t 4/4] lib/xe/xe_sriov_provisioning: Add accessors for quota/spare attributes Marcin Bernatowicz
2024-12-02 13:09 ` Laguna, Lukasz
2024-11-27 20:33 ` ✓ Xe.CI.BAT: success for Subject: [PATCH i-g-t 0/4] lib/xe: Add SR-IOV debugfs and provisioning helpers Patchwork
2024-11-27 20:45 ` ✗ i915.CI.BAT: failure " Patchwork
2024-11-27 21:28 ` ✗ Xe.CI.Full: " Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ea50177f-e2dc-4451-bacc-fe8b62a3ccae@intel.com \
--to=lukasz.laguna@intel.com \
--cc=adam.miszczak@linux.intel.com \
--cc=igt-dev@lists.freedesktop.org \
--cc=jakub1.kolakowski@intel.com \
--cc=kamil.konieczny@linux.intel.com \
--cc=marcin.bernatowicz@linux.intel.com \
--cc=michal.wajdeczko@intel.com \
--cc=michal.winiarski@intel.com \
--cc=narasimha.c.v@intel.com \
--cc=piotr.piorkowski@intel.com \
--cc=satyanarayana.k.v.p@intel.com \
--cc=tomasz.lis@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.