From: Marcel Apfelbaum <marcel@redhat.com>
To: "Michael S. Tsirkin" <mst@redhat.com>,
Marcel Apfelbaum <marcel@redhat.com>
Cc: jasowang@redhat.com, Yuanhan Liu <yuanhan.liu@linux.intel.com>,
Changchun.ouyang@hotmail.com, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v11 1/7] vhost-user: use VHOST_USER_XXX macro for switch statement
Date: Thu, 24 Sep 2015 13:27:40 +0300 [thread overview]
Message-ID: <5603D01C.7000200@redhat.com> (raw)
In-Reply-To: <20150924131742-mutt-send-email-mst@redhat.com>
On 09/24/2015 01:18 PM, Michael S. Tsirkin wrote:
> On Thu, Sep 24, 2015 at 01:05:11PM +0300, Marcel Apfelbaum wrote:
>> On 09/23/2015 07:19 AM, Yuanhan Liu wrote:
>>> So that we could let vhost_user_call to handle extented requests,
>>> such as VHOST_USER_GET/SET_PROTOCOL_FEATURES, instead of invoking
>>> vhost_user_read/write and constructing the msg again by ourself.
>>>
>>> Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
>>> ---
>>> hw/virtio/vhost-user.c | 38 ++++++++++++++++++++++----------------
>>> 1 file changed, 22 insertions(+), 16 deletions(-)
>>>
>>> diff --git a/hw/virtio/vhost-user.c b/hw/virtio/vhost-user.c
>>> index e7ab829..13677ac 100644
>>> --- a/hw/virtio/vhost-user.c
>>> +++ b/hw/virtio/vhost-user.c
>>> @@ -193,27 +193,33 @@ static int vhost_user_call(struct vhost_dev *dev, unsigned long int request,
>>>
>>> assert(dev->vhost_ops->backend_type == VHOST_BACKEND_TYPE_USER);
>>>
>>> - msg_request = vhost_user_request_translate(request);
>>> + /* only translate vhost ioctl requests */
>>> + if (request > VHOST_USER_MAX) {
>>> + msg_request = vhost_user_request_translate(request);
>>> + } else {
>>> + msg_request = request;
>>> + }
>>> +
>>> msg.request = msg_request;
>>> msg.flags = VHOST_USER_VERSION;
>>> msg.size = 0;
>>>
>>> - switch (request) {
>>> - case VHOST_GET_FEATURES:
>>> + switch (msg_request) {
>>> + case VHOST_USER_GET_FEATURES:
>>> need_reply = 1;
>>> break;
>>>
>>> - case VHOST_SET_FEATURES:
>>> - case VHOST_SET_LOG_BASE:
>>> + case VHOST_USER_SET_FEATURES:
>>> + case VHOST_USER_SET_LOG_BASE:
>>> msg.u64 = *((__u64 *) arg);
>>> msg.size = sizeof(m.u64);
>>> break;
>>>
>>> - case VHOST_SET_OWNER:
>>> - case VHOST_RESET_OWNER:
>>> + case VHOST_USER_SET_OWNER:
>>> + case VHOST_USER_RESET_OWNER:
>>> break;
>>>
>>> - case VHOST_SET_MEM_TABLE:
>>> + case VHOST_USER_SET_MEM_TABLE:
>>> for (i = 0; i < dev->mem->nregions; ++i) {
>>> struct vhost_memory_region *reg = dev->mem->regions + i;
>>> ram_addr_t ram_addr;
>>> @@ -246,30 +252,30 @@ static int vhost_user_call(struct vhost_dev *dev, unsigned long int request,
>>>
>>> break;
>>>
>>> - case VHOST_SET_LOG_FD:
>>> + case VHOST_USER_SET_LOG_FD:
>>> fds[fd_num++] = *((int *) arg);
>>> break;
>>>
>>> - case VHOST_SET_VRING_NUM:
>>> - case VHOST_SET_VRING_BASE:
>>> + case VHOST_USER_SET_VRING_NUM:
>>> + case VHOST_USER_SET_VRING_BASE:
>>> memcpy(&msg.state, arg, sizeof(struct vhost_vring_state));
>>> msg.size = sizeof(m.state);
>>> break;
>>>
>>> - case VHOST_GET_VRING_BASE:
>>> + case VHOST_USER_GET_VRING_BASE:
>>> memcpy(&msg.state, arg, sizeof(struct vhost_vring_state));
>>> msg.size = sizeof(m.state);
>>> need_reply = 1;
>>> break;
>>>
>>> - case VHOST_SET_VRING_ADDR:
>>> + case VHOST_USER_SET_VRING_ADDR:
>>> memcpy(&msg.addr, arg, sizeof(struct vhost_vring_addr));
>>> msg.size = sizeof(m.addr);
>>> break;
>>>
>>> - case VHOST_SET_VRING_KICK:
>>> - case VHOST_SET_VRING_CALL:
>>> - case VHOST_SET_VRING_ERR:
>>> + case VHOST_USER_SET_VRING_KICK:
>>> + case VHOST_USER_SET_VRING_CALL:
>>> + case VHOST_USER_SET_VRING_ERR:
>>> file = arg;
>>> msg.u64 = file->index & VHOST_USER_VRING_IDX_MASK;
>>> msg.size = sizeof(m.u64);
>>>
>>
>>
>> --
>> Reviewed-by: Marcel Apfelbaum <marcel@redhat.com>
>
> The -- is the signature separator.
> Please don't put text after that - I almost missed it.
>
Ooops, I'll be more careful next time (I did it already for this series...)
Thanks,
Marcel
>
next prev parent reply other threads:[~2015-09-24 10:28 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-23 4:19 [Qemu-devel] [PATCH v11 0/7] vhost-user multiple queue support Yuanhan Liu
2015-09-23 4:19 ` [Qemu-devel] [PATCH v11 1/7] vhost-user: use VHOST_USER_XXX macro for switch statement Yuanhan Liu
2015-09-24 10:05 ` Marcel Apfelbaum
2015-09-24 10:18 ` Michael S. Tsirkin
2015-09-24 10:27 ` Marcel Apfelbaum [this message]
2015-09-23 4:19 ` [Qemu-devel] [PATCH v11 2/7] vhost-user: add protocol feature negotiation Yuanhan Liu
2015-09-24 10:13 ` Marcel Apfelbaum
2015-09-24 11:25 ` Yuanhan Liu
2015-09-24 11:29 ` Yuanhan Liu
2015-09-23 4:19 ` [Qemu-devel] [PATCH v11 3/7] vhost: rename VHOST_RESET_OWNER to VHOST_RESET_DEVICE Yuanhan Liu
2015-09-24 10:18 ` Marcel Apfelbaum
2015-09-23 4:19 ` [Qemu-devel] [PATCH v11 4/7] vhost-user: add VHOST_USER_GET_QUEUE_NUM message Yuanhan Liu
2015-09-24 10:25 ` Marcel Apfelbaum
2015-09-23 4:19 ` [Qemu-devel] [PATCH v11 5/7] vhost: introduce vhost_backend_get_vq_index method Yuanhan Liu
2015-09-23 4:20 ` [Qemu-devel] [PATCH v11 6/7] vhost-user: add multiple queue support Yuanhan Liu
2015-09-23 6:56 ` Yuanhan Liu
2015-09-24 5:34 ` Jason Wang
2015-09-24 5:57 ` Yuanhan Liu
2015-09-24 6:15 ` Jason Wang
2015-09-23 4:20 ` [Qemu-devel] [PATCH v11 7/7] vhost-user: add a new message to disable/enable a specific virt queue Yuanhan Liu
2015-09-24 5:43 ` Jason Wang
2015-09-24 10:03 ` [Qemu-devel] [PATCH v11 0/7] vhost-user multiple queue support Marcel Apfelbaum
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=5603D01C.7000200@redhat.com \
--to=marcel@redhat.com \
--cc=Changchun.ouyang@hotmail.com \
--cc=jasowang@redhat.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=yuanhan.liu@linux.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.