mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-07 21:53:44 +00:00
vdpa_sim: support vendor statistics
This patch adds a new config ops callback to allow individual simulator to implement the vendor stats callback. Acked-by: Eugenio Pérez <eperezma@redhat.com> Signed-off-by: Jason Wang <jasowang@redhat.com> Message-Id: <20221223055548.27810-4-jasowang@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
This commit is contained in:
parent
bb105d514a
commit
5dbb063a3e
@ -432,6 +432,18 @@ static int vdpasim_get_vq_state(struct vdpa_device *vdpa, u16 idx,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int vdpasim_get_vq_stats(struct vdpa_device *vdpa, u16 idx,
|
||||
struct sk_buff *msg,
|
||||
struct netlink_ext_ack *extack)
|
||||
{
|
||||
struct vdpasim *vdpasim = vdpa_to_sim(vdpa);
|
||||
|
||||
if (vdpasim->dev_attr.get_stats)
|
||||
return vdpasim->dev_attr.get_stats(vdpasim, idx,
|
||||
msg, extack);
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
static u32 vdpasim_get_vq_align(struct vdpa_device *vdpa)
|
||||
{
|
||||
return VDPASIM_QUEUE_ALIGN;
|
||||
@ -739,6 +751,7 @@ static const struct vdpa_config_ops vdpasim_config_ops = {
|
||||
.set_vq_ready = vdpasim_set_vq_ready,
|
||||
.get_vq_ready = vdpasim_get_vq_ready,
|
||||
.set_vq_state = vdpasim_set_vq_state,
|
||||
.get_vendor_vq_stats = vdpasim_get_vq_stats,
|
||||
.get_vq_state = vdpasim_get_vq_state,
|
||||
.get_vq_align = vdpasim_get_vq_align,
|
||||
.get_vq_group = vdpasim_get_vq_group,
|
||||
@ -773,6 +786,7 @@ static const struct vdpa_config_ops vdpasim_batch_config_ops = {
|
||||
.set_vq_ready = vdpasim_set_vq_ready,
|
||||
.get_vq_ready = vdpasim_get_vq_ready,
|
||||
.set_vq_state = vdpasim_set_vq_state,
|
||||
.get_vendor_vq_stats = vdpasim_get_vq_stats,
|
||||
.get_vq_state = vdpasim_get_vq_state,
|
||||
.get_vq_align = vdpasim_get_vq_align,
|
||||
.get_vq_group = vdpasim_get_vq_group,
|
||||
|
@ -48,6 +48,9 @@ struct vdpasim_dev_attr {
|
||||
work_func_t work_fn;
|
||||
void (*get_config)(struct vdpasim *vdpasim, void *config);
|
||||
void (*set_config)(struct vdpasim *vdpasim, const void *config);
|
||||
int (*get_stats)(struct vdpasim *vdpasim, u16 idx,
|
||||
struct sk_buff *msg,
|
||||
struct netlink_ext_ack *extack);
|
||||
};
|
||||
|
||||
/* State of each vdpasim device */
|
||||
|
Loading…
Reference in New Issue
Block a user