From: Yuanhan Liu <yuanhan.liu@linux.intel.com>
To: Pankaj Chauhan <pankaj.chauhan@nxp.com>
Cc: "Tan, Jianfeng" <jianfeng.tan@intel.com>,
dev@dpdk.org, hemant.agrawal@nxp.com, maxime.coquelin@redhat.com
Subject: Re: [RFC][PATCH V2 1/3] examples/vhost: Add vswitch (generic switch) framework
Date: Tue, 27 Sep 2016 20:10:45 +0800 [thread overview]
Message-ID: <20160927121045.GN25823@yliu-dev.sh.intel.com> (raw)
In-Reply-To: <2d3dbd38-7dba-3af4-ab0e-52bc48f861d6@nxp.com>
On Tue, Sep 27, 2016 at 05:05:41PM +0530, Pankaj Chauhan wrote:
> >Hi Pankaj,
> >
> >Again, apologize for late response: you see I was busy ;) Besides, I
> >need some time to think about it.
> >
>
> Hi YLiu,
>
> No issues with delayed response :)
Thanks!
>
> >Generally, I think your ideal proposal looks good to me (well, I don't
> >see the need of port mask):
>
> The idea of port mask was to give ability to the caller to choose which type
> of port to do rx from, Physical port or vhost port.
What's the need of it? If you register a port, don't you need pull
packets from it?
And you don't have to distinguish whether it's a physical port or vhost
port or not. If a port is registered, just pull it. Simple, right?
> >
> > switch_worker() {
> > rx_port = vs_sched_rx_port(vswit_dev_g, core_id)
> > rx_q = rx_port->get_rxq(vs_port, vdev, code_id);
> > rx_port->do_rx(rx_port, rxq, NULL, pktss, MAX_PKT_BURST);
> >
> > vs_lookup_n_fwd(rx_port, pkts, rx_count, rxq);
> > }
> >
> >The issue is, as you stated, VMDq it's bit tricky to handle. How about
> >the following proposal then?
> >
> >We don't have to register the nic queues while VMDq is used, since a
> >phys queue is bond to a virtio queue in this mode. That means only
> >virtio queues will be scheduled.
> >
> >The virtio do_rx might look like below then:
> >
> > vmdq_rx() {
> > rte_eth_rx_burst(port, queue_bond_to_this_virtio_queue, ...);
> > rte_vhost_enqueue_burst(...) if any;
> >
> > rte_vhost_dequeue_burst(...);
> > }
> >
>
> Okay so in that case, we won't do any rte_eth_rx_burst() when
> physical_port->do_rx is called, Correct?.
The physical port do_rx will not be called at all, since it will
not registered. In the VMDq case, only virtio port will be registered
(by your vs_add_port function).
> If yes then in vmdq.c we'll
> overwrite vs_port->do_rx of physical port with a vmdq_do_rx_phys() which
> does nothing. Or we can even have an option that vmdq.c doesn't return the
> physical port when vs_sched_rx_port() is called,
As stated, if you don't register it, then vs_sched_rx_port will return no
physical port.
--yliu
> i think this later option
> is better to save some CPU cycles.
>
> I think it is possible but i would prefer to overwrite vs_port->do_rx() for
> vmdq (in vmdq.c) with the implementation that you suggested. The framework
> provides this option, i.e the switch implementation can overwrite the
> vs_port->do_rx/do_tx if required to handle any special cases for example the
> case of vmdq <> vdev boding.
>
> Thanks,
> Pankaj
> > --yliu
> >
>
next prev parent reply other threads:[~2016-09-27 12:10 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-04 10:23 [RFC][PATCH V2 0/3] example/vhost: Introduce Vswitch Framework Pankaj Chauhan
2016-09-04 10:23 ` [RFC][PATCH V2 1/3] examples/vhost: Add vswitch (generic switch) framework Pankaj Chauhan
2016-09-09 8:56 ` Tan, Jianfeng
2016-09-12 10:55 ` Pankaj Chauhan
2016-09-13 6:51 ` Tan, Jianfeng
2016-09-15 9:00 ` Pankaj Chauhan
2016-09-19 12:42 ` Tan, Jianfeng
2016-09-27 11:26 ` Pankaj Chauhan
2016-09-19 14:43 ` Yuanhan Liu
2016-09-20 8:58 ` Pankaj Chauhan
2016-09-26 3:56 ` Yuanhan Liu
2016-09-27 11:35 ` Pankaj Chauhan
2016-09-27 12:10 ` Yuanhan Liu [this message]
2016-09-11 12:21 ` Yuanhan Liu
2016-09-12 10:59 ` Pankaj Chauhan
2016-09-26 4:12 ` Yuanhan Liu
2016-09-27 11:44 ` Pankaj Chauhan
2016-09-27 12:03 ` Yuanhan Liu
2016-09-04 10:23 ` [RFC][PATCH V2 2/3] examples/vhost: Add vswitch command line options Pankaj Chauhan
2016-09-13 12:14 ` Yuanhan Liu
2016-09-15 9:11 ` Pankaj Chauhan
2016-09-04 10:24 ` [RFC][PATCH V2 3/3] examples/vhost: Add VMDQ vswitch device Pankaj Chauhan
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=20160927121045.GN25823@yliu-dev.sh.intel.com \
--to=yuanhan.liu@linux.intel.com \
--cc=dev@dpdk.org \
--cc=hemant.agrawal@nxp.com \
--cc=jianfeng.tan@intel.com \
--cc=maxime.coquelin@redhat.com \
--cc=pankaj.chauhan@nxp.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.