Displaying 11 results from an estimated 11 matches for "ifcvf_start_datapath".
2023 Mar 31
1
[PATCH 3/5] retire ifcvf_start_datapath and ifcvf_add_status
Rather than former lazy-initialization mechanism,
now the virtqueue operations and driver_features related
ops access the virtio registers directly to take
immediate actions. So ifcvf_start_datapath() should
retire.
ifcvf_add_status() is retierd because we should not change
device status by a vendor driver's decision, this driver should
only set device status which is from virito drivers
upon vdpa_ops.set_status()
Signed-off-by: Zhu Lingshan <lingshan.zhu at intel.com>
---
drivers...
2020 May 12
1
[PATCH] ifcvf: move IRQ request/free to status change handlers
...get this.
>>
>>
>>
>>> +
>>> +??????????? return ret;
>>> +??????? }
>>> +
>>> +??????? vf->vring[i].irq = irq;
>>> +??? }
>>> +
>>> +??? return 0;
>>> +}
>>> +
>>> ? static int ifcvf_start_datapath(void *private)
>>> ? {
>>> ????? struct ifcvf_hw *vf = ifcvf_private_to_vf(private);
>>> @@ -118,9 +172,12 @@ static void ifcvf_vdpa_set_status(struct
>>> vdpa_device *vdpa_dev, u8 status)
>>> ? {
>>> ????? struct ifcvf_adapter *adapter;
>&g...
2023 Mar 31
7
[PATCH 0/5] vDPA/ifcvf: implement immediate initialization mechanism
...mer store-load process, the virtio operations like vq ops
would take immediate actions by access the virtio registers.
This series also implement irq synchronization in the reset
routine
Zhu Lingshan (5):
virt queue ops take immediate actions
get_driver_features from virito registers
retire ifcvf_start_datapath and ifcvf_add_status
synchronize irqs in the reset routine
a vendor driver should not set _CONFIG_S_FAILED
drivers/vdpa/ifcvf/ifcvf_base.c | 162 +++++++++++++++++++-------------
drivers/vdpa/ifcvf/ifcvf_base.h | 16 ++--
drivers/vdpa/ifcvf/ifcvf_main.c | 97 ++++---------------
3 files cha...
2023 May 08
6
[PATCH V2 0/5] vDPA/ifcvf: implement immediate initialization mechanism
...n the reset
routine
Changes from V1:
1)pull device status in devce_reset (Jason)
2)simplify the procedure which sycn irqs (Jason)
3)fix typos(Michael)
Zhu Lingshan (5):
vDPA/ifcvf: virt queue ops take immediate actions
vDPA/ifcvf: get_driver_features from virtio registers
vDPA/ifcvf: retire ifcvf_start_datapath and ifcvf_add_status
vDPA/ifcvf: synchronize irqs in the reset routine
vDPA/ifcvf: a vendor driver should not set _CONFIG_S_FAILED
drivers/vdpa/ifcvf/ifcvf_base.c | 146 ++++++++++++++++++--------------
drivers/vdpa/ifcvf/ifcvf_base.h | 17 ++--
drivers/vdpa/ifcvf/ifcvf_main.c | 98 ++++----...
2020 May 13
0
[PATCH V2] ifcvf: move IRQ request/free to status change handlers
...ring[i]);
> + if (ret) {
> + IFCVF_ERR(pdev,
> + "Failed to request irq for vq %d\n", i);
> + ifcvf_free_irq(adapter, i);
> +
> + return ret;
> + }
> +
> + vf->vring[i].irq = irq;
> + }
> +
> + return 0;
> +}
> +
> static int ifcvf_start_datapath(void *private)
> {
> struct ifcvf_hw *vf = ifcvf_private_to_vf(private);
> @@ -118,17 +172,34 @@ static void ifcvf_vdpa_set_status(struct vdpa_device *vdpa_dev, u8 status)
> {
> struct ifcvf_adapter *adapter;
> struct ifcvf_hw *vf;
> + u8 status_old;
> + int ret...
2020 May 11
0
[PATCH] ifcvf: move IRQ request/free to status change handlers
...ifcvf_free_irq(adapter, i);
I'm not sure this unwind is correct. It looks like we should loop and
call devm_free_irq() for virtqueue [0, i);
> +
> + return ret;
> + }
> +
> + vf->vring[i].irq = irq;
> + }
> +
> + return 0;
> +}
> +
> static int ifcvf_start_datapath(void *private)
> {
> struct ifcvf_hw *vf = ifcvf_private_to_vf(private);
> @@ -118,9 +172,12 @@ static void ifcvf_vdpa_set_status(struct vdpa_device *vdpa_dev, u8 status)
> {
> struct ifcvf_adapter *adapter;
> struct ifcvf_hw *vf;
> + u8 status_old;
> + int ret;...
2019 Oct 21
0
[RFC 2/2] vhost: IFC VF vdpa layer
...v_device *mdev)
>>> +{
>>> +??? return IFCVF_VENDOR_ID;
>>> +}
>>> +
>>> +static u16 ifcvf_mdev_get_vq_align(struct mdev_device *mdev)
>>> +{
>>> +??? return IFCVF_QUEUE_ALIGNMENT;
>>> +}
>>> +
>>> +static int ifcvf_start_datapath(void *private)
>>> +{
>>> +??? int i, ret;
>>> +??? struct ifcvf_hw *vf = IFC_PRIVATE_TO_VF(private);
>>> +
>>> +??? for (i = 0; i < (IFCVF_MAX_QUEUE_PAIRS * 2); i++) {
>>> +??????? if (!vf->vring[i].ready)
>>> +??????????? break;...
2020 Apr 02
0
[PATCH v2 -next] vdpa: remove unused variables 'ifcvf' and 'ifcvf_lm'
...t;msix_config);
diff --git a/drivers/vdpa/ifcvf/ifcvf_main.c b/drivers/vdpa/ifcvf/ifcvf_main.c
index 8d54dc5b08d2..28d9e5de5675 100644
--- a/drivers/vdpa/ifcvf/ifcvf_main.c
+++ b/drivers/vdpa/ifcvf/ifcvf_main.c
@@ -31,11 +31,9 @@ static irqreturn_t ifcvf_intr_handler(int irq, void *arg)
static int ifcvf_start_datapath(void *private)
{
struct ifcvf_hw *vf = ifcvf_private_to_vf(private);
- struct ifcvf_adapter *ifcvf;
u8 status;
int ret;
- ifcvf = vf_to_adapter(vf);
vf->nr_vring = IFCVF_MAX_QUEUE_PAIRS * 2;
ret = ifcvf_start_hw(vf);
if (ret < 0) {
--
2.17.1
2019 Oct 16
0
[RFC 2/2] vhost: IFC VF vdpa layer
...n IFCVF_DEVICE_ID;
> +}
> +
> +static u32 ifcvf_mdev_get_vendor_id(struct mdev_device *mdev)
> +{
> + return IFCVF_VENDOR_ID;
> +}
> +
> +static u16 ifcvf_mdev_get_vq_align(struct mdev_device *mdev)
> +{
> + return IFCVF_QUEUE_ALIGNMENT;
> +}
> +
> +static int ifcvf_start_datapath(void *private)
> +{
> + int i, ret;
> + struct ifcvf_hw *vf = IFC_PRIVATE_TO_VF(private);
> +
> + for (i = 0; i < (IFCVF_MAX_QUEUE_PAIRS * 2); i++) {
> + if (!vf->vring[i].ready)
> + break;
Looks like error should be returned here?
> +
> + if (!vf->vring[...
2019 Nov 06
0
[PATCH 2/2] IFC VDPA layer
...ifcvf_mdev_get_vq_align(struct mdev_device *mdev)
> +{
> + return IFCVF_QUEUE_ALIGNMENT;
> +}
> +
> +static u64 ifcvf_mdev_get_mdev_features(struct mdev_device *mdev)
> +{
> + return VIRTIO_MDEV_F_VERSION_1;
> +}
We've decide to remove this API.
> +
> +static int ifcvf_start_datapath(void *private)
> +{
> + struct ifcvf_hw *vf = IFC_PRIVATE_TO_VF(private);
> + struct ifcvf_adapter *ifcvf;
> + int i, ret = 0;
> +
> + ifcvf = container_of(vf, struct ifcvf_adapter, vf);
> +
> + for (i = 0; i < IFCVF_MAX_QUEUE_PAIRS * 2; i++) {
> + if (!vf->vring[i...
2023 Jul 03
1
[GIT PULL] virtio: features, fixes, cleanups
...e free unused buffs
virtio_bt: call scheduler when we free unused buffs
vhost: Make parameter name match of vhost_get_vq_desc()
Zhu Lingshan (8):
vDPA/ifcvf: virt queue ops take immediate actions
vDPA/ifcvf: get_driver_features from virtio registers
vDPA/ifcvf: retire ifcvf_start_datapath and ifcvf_add_status
vDPA/ifcvf: synchronize irqs in the reset routine
vDPA/ifcvf: a vendor driver should not set _CONFIG_S_FAILED
vDPA/ifcvf: dynamic allocate vq data stores
vDPA/ifcvf: detect and report max allowed vq size
vDPA/ifcvf: implement new accessors for vq_s...