From: Si-Wei Liu <si-wei.liu@oracle.com>
To: Steven Sistare <steven.sistare@oracle.com>,
virtualization@lists.linux-foundation.org,
linux-kernel@vger.kernel.org
Cc: Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
Eugenio Perez Martin <eperezma@redhat.com>,
Eli Cohen <elic@nvidia.com>
Subject: Re: [RFC] vdpa/mlx5: preserve CVQ vringh index
Date: Thu, 26 Oct 2023 13:33:00 -0700 [thread overview]
Message-ID: <6ccc182f-5b1f-43ee-aa61-db0bc9a3d1ab@oracle.com> (raw)
In-Reply-To: <389942ac-962f-4198-b87a-14bd6dd3e188@oracle.com>
Steve, I think this is a loose end that I myself am not sure if worth
fixing, copy Eugenio for his awareness. Reason is that when CVQ is in
place it always has to cope with device state saving and restoration
using shadowed virtqueue for a lot of cases not just migration, and
that's the reason why SVQ is always enabled for CVQ in the latest QEMU.
But I agree this is a nice to have, possibly there could be value to
support vDPA VM instances without solely depending on SVQ for e.g. for
use case like memory encrypted VM. Thanks for posting the fix and lets
see what other people think about it.
-Siwei
On 10/26/2023 1:13 PM, Steven Sistare wrote:
> On 10/26/2023 4:11 PM, Steve Sistare wrote:
>> mlx5_vdpa does not preserve userland's view of vring base for the control
>> queue in the following sequence:
>>
>> ioctl VHOST_SET_VRING_BASE
>> ioctl VHOST_VDPA_SET_STATUS VIRTIO_CONFIG_S_DRIVER_OK
>> mlx5_vdpa_set_status()
>> setup_cvq_vring()
>> vringh_init_iotlb()
>> vringh_init_kern()
>> vrh->last_avail_idx = 0;
>> ioctl VHOST_GET_VRING_BASE
>>
>> To fix, restore the value of cvq->vring.last_avail_idx after calling
>> vringh_init_iotlb.
>>
>> Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
> This is a resend, I forgot to cc myself the first time.
>
> I don't know if we expect vring_base to be preserved after reset, because the
> uapi comments say nothing about it. mlx5 *does* preserve base across reset
> for the the data vq's, but perhaps that is an accident of the implementation.
>
> I posted this patch to perhaps avoid future problems. The bug(?) bit me while
> developing with an older version of qemu, and I can work around it in qemu
> code. Further, the latest version of qemu always enables svq for the cvq
> and is not affected by this behavior AFAICT.
>
> - Steve
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization
next prev parent reply other threads:[~2023-10-26 20:33 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-26 20:11 [RFC] vdpa/mlx5: preserve CVQ vringh index Steve Sistare
2023-10-26 20:13 ` Steven Sistare
2023-10-26 20:33 ` Si-Wei Liu [this message]
-- strict thread matches above, loose matches on Subject: below --
2023-10-26 20:07 Steve Sistare
2023-10-27 6:31 ` Jason Wang
2023-10-30 14:05 ` Steven Sistare
2023-10-31 1:25 ` Jason Wang
[not found] ` <CAJaqyWc59oRS86sygnUR-D-wQ-N2TbofsG1hxAmCiGwkb4y42A@mail.gmail.com>
2023-10-30 17:55 ` Steven Sistare
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=6ccc182f-5b1f-43ee-aa61-db0bc9a3d1ab@oracle.com \
--to=si-wei.liu@oracle.com \
--cc=elic@nvidia.com \
--cc=eperezma@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mst@redhat.com \
--cc=steven.sistare@oracle.com \
--cc=virtualization@lists.linux-foundation.org \
--cc=xuanzhuo@linux.alibaba.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox