From: Yuanhan Liu <yuanhan.liu@linux.intel.com>
To: "Xie, Huawei" <huawei.xie@intel.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [PATCH 2/3] vhost: simplify numa_realloc
Date: Tue, 22 Dec 2015 14:52:24 +0800 [thread overview]
Message-ID: <20151222065224.GN18863@yliu-dev.sh.intel.com> (raw)
In-Reply-To: <C37D651A908B024F974696C65296B57B4C551083@SHSMSX101.ccr.corp.intel.com>
On Tue, Dec 22, 2015 at 06:46:32AM +0000, Xie, Huawei wrote:
> On 12/18/2015 3:03 PM, Yuanhan Liu wrote:
> > We could first check if we need realloc vq or not, if so,
> > reallocate it. We then do similar to vhost dev realloc.
> >
> > This could get rid of the tons of repeated "if (realloc_dev)"
> > and "if (realloc_vq)" statements, therefore, makes code
> > a bit more readable.
> >
> > Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
> > ---
> > lib/librte_vhost/virtio-net.c | 77 ++++++++++++++++++++-----------------------
> > 1 file changed, 36 insertions(+), 41 deletions(-)
> >
> > diff --git a/lib/librte_vhost/virtio-net.c b/lib/librte_vhost/virtio-net.c
> > index 2f83438..31ca4f7 100644
> > --- a/lib/librte_vhost/virtio-net.c
> > +++ b/lib/librte_vhost/virtio-net.c
> > @@ -441,64 +441,59 @@ static struct virtio_net*
> > numa_realloc(struct virtio_net *dev, int index)
> > {
> > int oldnode, newnode;
> > - struct virtio_net *old_dev, *new_dev = NULL;
> > - struct vhost_virtqueue *old_vq, *new_vq = NULL;
> > + struct virtio_net *old_dev;
> > + struct vhost_virtqueue *old_vq, *vq;
> > int ret;
> > - int realloc_dev = 0, realloc_vq = 0;
> >
> > old_dev = dev;
> > - old_vq = dev->virtqueue[index];
> > + vq = old_vq = dev->virtqueue[index];
> >
> > - ret = get_mempolicy(&newnode, NULL, 0, old_vq->desc,
> > - MPOL_F_NODE | MPOL_F_ADDR);
> > - ret = ret | get_mempolicy(&oldnode, NULL, 0, old_dev,
> > + ret = get_mempolicy(&newnode, NULL, 0, old_vq->desc,
> > MPOL_F_NODE | MPOL_F_ADDR);
> > +
> > + /* check if we need to reallocate vq */
> > + ret = get_mempolicy(&oldnode, NULL, 0, old_vq, MPOL_F_NODE | MPOL_F_ADDR);
>
> Why remove the ret = ret | ? Both get_mempolicy could fail.
Right, will fix it.
>
> > if (ret) {
> > RTE_LOG(ERR, VHOST_CONFIG,
> > - "Unable to get vring desc or dev numa information.\n");
> > + "Unable to get vq numa information.\n");
> > return dev;
> > }
> > - if (oldnode != newnode)
> > - realloc_dev = 1;
> > + if (oldnode != newnode) {
> > + RTE_LOG(INFO, VHOST_CONFIG,
> > + "reallocate vq from %d to %d node\n", oldnode, newnode);
> > + vq = rte_malloc_socket(NULL, sizeof(*vq), 0, newnode);
> > + if (!vq)
> > + return dev;
> > +
> > + memcpy(vq, old_vq, sizeof(*vq));
> > + rte_free(old_vq);
> > + }
> >
> > - ret = get_mempolicy(&oldnode, NULL, 0, old_vq,
> > - MPOL_F_NODE | MPOL_F_ADDR);
> > + /* check if we need to reallocate dev */
> > + ret = get_mempolicy(&oldnode, NULL, 0, old_dev, MPOL_F_NODE | MPOL_F_ADDR);
> > if (ret) {
> > RTE_LOG(ERR, VHOST_CONFIG,
> > - "Unable to get vq numa information.\n");
> > - return dev;
> > + "Unable to get vring desc or dev numa information.\n");
> > + goto out;
> > }
>
> Why vring desc in the err message?
Oops, no idea why I did that. Will fix it.
--yliu
next prev parent reply other threads:[~2015-12-22 6:51 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-18 7:04 [PATCH 1/3] vhost: get rid of linked list dev Yuanhan Liu
2015-12-18 7:04 ` [PATCH 2/3] vhost: simplify numa_realloc Yuanhan Liu
2015-12-22 6:46 ` Xie, Huawei
2015-12-22 6:52 ` Yuanhan Liu [this message]
2015-12-18 7:04 ` [PATCH 3/3] vhost: fix vq realloc at numa_realloc Yuanhan Liu
2015-12-22 6:56 ` Xie, Huawei
2015-12-22 3:33 ` [PATCH 1/3] vhost: get rid of linked list dev Xie, Huawei
2015-12-22 6:21 ` Xie, Huawei
2015-12-22 7:28 ` [PATCH v2 " Yuanhan Liu
2015-12-22 7:28 ` [PATCH v2 2/3] vhost: simplify numa_realloc Yuanhan Liu
2015-12-22 14:40 ` Xie, Huawei
2015-12-22 7:28 ` [PATCH v2 3/3] vhost: fix vq realloc at numa_realloc Yuanhan Liu
2016-03-07 13:49 ` Loftus, Ciara
2016-03-08 11:54 ` Yuanhan Liu
2016-03-10 4:19 ` [PATCH v3 0/3] vhost: virtio-net.c cleanups and fixes Yuanhan Liu
2016-03-10 4:19 ` [PATCH v3 1/3] vhost: get rid of linked list dev Yuanhan Liu
2016-03-10 4:20 ` [PATCH v3 2/3] vhost: simplify numa_realloc Yuanhan Liu
2016-03-10 4:20 ` [PATCH v3 3/3] vhost: fix vq realloc at numa_realloc Yuanhan Liu
2016-03-11 15:35 ` [PATCH v3 0/3] vhost: virtio-net.c cleanups and fixes Thomas Monjalon
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=20151222065224.GN18863@yliu-dev.sh.intel.com \
--to=yuanhan.liu@linux.intel.com \
--cc=dev@dpdk.org \
--cc=huawei.xie@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.