#
3998e2a0 |
| 19-Dec-2017 |
Bruce Richardson <bruce.richardson@intel.com> |
examples: use SPDX tag for Intel copyright files
Replace the BSD license header with the SPDX tag for files with only an Intel copyright on them.
Signed-off-by: Bruce Richardson <bruce.richardson@i
examples: use SPDX tag for Intel copyright files
Replace the BSD license header with the SPDX tag for files with only an Intel copyright on them.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
#
f8244c63 |
| 29-Sep-2017 |
Zhiyong Yang <zhiyong.yang@intel.com> |
ethdev: increase port id range
Extend port_id definition from uint8_t to uint16_t in lib and drivers data structures, specifically rte_eth_dev_data. Modify the APIs, drivers and app using port_id at
ethdev: increase port id range
Extend port_id definition from uint8_t to uint16_t in lib and drivers data structures, specifically rte_eth_dev_data. Modify the APIs, drivers and app using port_id at the same time.
Fix some checkpatch issues from the original code and remove some unnecessary cast operations.
release_17_11 and deprecation docs have been updated in this patch.
Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com> Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
#
60efb44f |
| 25-May-2017 |
Roman Zhukov <roman.zhukov@oktetlabs.ru> |
examples: adjust Rx and Tx descriptors to device limits
Signed-off-by: Roman Zhukov <roman.zhukov@oktetlabs.ru> Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
|
#
577329e6 |
| 05-Jun-2017 |
Jerin Jacob <jerin.jacob@caviumnetworks.com> |
eal: switch to architecture specific pause function
Remove rte_pause() definition from rte_common.h and switchover to architecture specific rte_pause.h
Signed-off-by: Jerin Jacob <jerin.jacob@caviu
eal: switch to architecture specific pause function
Remove rte_pause() definition from rte_common.h and switchover to architecture specific rte_pause.h
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
show more ...
|
#
c0583d98 |
| 13-May-2017 |
Jerin Jacob <jerin.jacob@caviumnetworks.com> |
eal: introduce macro for always inline
Different drivers use internal macros like force_inline for compiler always inline feature. Standardizing it through __rte_always_inline macro.
Verified the c
eal: introduce macro for always inline
Different drivers use internal macros like force_inline for compiler always inline feature. Standardizing it through __rte_always_inline macro.
Verified the change by comparing the output binary file. No difference found in the output binary file with this change.
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
#
fa81d3b9 |
| 16-Apr-2017 |
Gang Jiang <jiangg@mail.ustc.edu.cn> |
examples/vhost: fix socket path parsing
The return value of strnlen(s, maxlen) is never bigger than maxlen.
Fixes: 4796ad63ba1f ("examples/vhost: import userspace vhost application")
Signed-off-by
examples/vhost: fix socket path parsing
The return value of strnlen(s, maxlen) is never bigger than maxlen.
Fixes: 4796ad63ba1f ("examples/vhost: import userspace vhost application")
Signed-off-by: Gang Jiang <jiangg@mail.ustc.edu.cn>
show more ...
|
#
60da774e |
| 08-Apr-2017 |
Jeff Guo <jia.guo@intel.com> |
examples: enable HW CRC strip by default
Since VF can not disable/enable HW CRC strip for non-DPDK PF drivers, and kernel driver almost default enable that feature, if disable it in example app's rx
examples: enable HW CRC strip by default
Since VF can not disable/enable HW CRC strip for non-DPDK PF drivers, and kernel driver almost default enable that feature, if disable it in example app's rxmode, VF driver will report the VF launch failure. So this patch default to enable HW CRC strip to let VF launch successful.
Cc: stable@dpdk.org
Signed-off-by: Jeff Guo <jia.guo@intel.com> Acked-by: Jingjing Wu <jingjing.wu@intel.com>
show more ...
|
#
ca059fa5 |
| 01-Apr-2017 |
Yuanhan Liu <yuanhan.liu@linux.intel.com> |
examples/vhost: demonstrate the new generic APIs
Now DPDK vhost lib has been generic enough, that it can be used to implement any vhost-user drivers.
For example, this patch implements a very simpl
examples/vhost: demonstrate the new generic APIs
Now DPDK vhost lib has been generic enough, that it can be used to implement any vhost-user drivers.
For example, this patch implements a very simple vhost-user net driver, mainly for demonstrating how to use those generic vhost APIs.
And when the --builtin-net-driver option is used, the example virtio-net driver code will be invoked, instead of the one provided from the vhost library.
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
show more ...
|
#
a798beb4 |
| 01-Apr-2017 |
Yuanhan Liu <yuanhan.liu@linux.intel.com> |
vhost: rename header file
Rename "rte_virtio_net.h" to "rte_vhost.h", to not let it be virtio net specific.
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Reviewed-by: Maxime Coquelin <ma
vhost: rename header file
Rename "rte_virtio_net.h" to "rte_vhost.h", to not let it be virtio net specific.
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
#
af147591 |
| 01-Apr-2017 |
Yuanhan Liu <yuanhan.liu@linux.intel.com> |
vhost: introduce API to start a specific driver
We used to use rte_vhost_driver_session_start() to trigger the vhost-user session. It takes no argument, thus it's a global trigger. And it could be p
vhost: introduce API to start a specific driver
We used to use rte_vhost_driver_session_start() to trigger the vhost-user session. It takes no argument, thus it's a global trigger. And it could be problematic.
The issue is, currently, rte_vhost_driver_register(path, flags) actually tries to put it into the session loop (by fdset_add). However, it needs a set of APIs to set a vhost-user driver properly: * rte_vhost_driver_register(path, flags); * rte_vhost_driver_set_features(path, features); * rte_vhost_driver_callback_register(path, vhost_device_ops);
If a new vhost-user driver is registered after the trigger (think OVS-DPDK that could add a port dynamically from cmdline), the current code will effectively starts the session for the new driver just after the first API rte_vhost_driver_register() is invoked, leaving later calls taking no effect at all.
To handle the case properly, this patch introduce a new API, rte_vhost_driver_start(path), to trigger a specific vhost-user driver. To do that, the rte_vhost_driver_register(path, flags) is simplified to create the socket only and let rte_vhost_driver_start(path) to actually put it into the session loop.
Meanwhile, the rte_vhost_driver_session_start is removed: we could hide the session thread internally (create the thread if it has not been created). This would also simplify the application.
NOTE: the API order in prog guide is slightly adjusted for showing the correct invoke order.
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
#
7c129037 |
| 01-Apr-2017 |
Yuanhan Liu <yuanhan.liu@linux.intel.com> |
vhost: rename device ops struct
rename "virtio_net_device_ops" to "vhost_device_ops", to not let it be virtio-net specific.
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Reviewed-by: Max
vhost: rename device ops struct
rename "virtio_net_device_ops" to "vhost_device_ops", to not let it be virtio-net specific.
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
#
93433b63 |
| 01-Apr-2017 |
Yuanhan Liu <yuanhan.liu@linux.intel.com> |
vhost: make notify ops per vhost driver
Assume there is an application both support vhost-user net and vhost-user scsi, the callback should be different. Making notify ops per vhost driver allow app
vhost: make notify ops per vhost driver
Assume there is an application both support vhost-user net and vhost-user scsi, the callback should be different. Making notify ops per vhost driver allow application define different set of callbacks for different driver.
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
#
0917f9d1 |
| 01-Apr-2017 |
Yuanhan Liu <yuanhan.liu@linux.intel.com> |
vhost: use new APIs to handle features
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
|
#
b3bee7d8 |
| 11-Jan-2017 |
Yong Wang <wang.yong19@zte.com.cn> |
examples/vhost: fix lcore initialization
when "TAILQ_INIT()" was added to the loop of "for (lcore_id = 0; ...)" statement, the assignment to "lcore_ids" was removed out of the loop. It changed the o
examples/vhost: fix lcore initialization
when "TAILQ_INIT()" was added to the loop of "for (lcore_id = 0; ...)" statement, the assignment to "lcore_ids" was removed out of the loop. It changed the original initialization of "lcore_ids".
Fix it by introducing two braces.
Fixes: 45657a5c6861 ("examples/vhost: use tailq to link vhost devices") Cc: stable@dpdk.org
Signed-off-by: Yong Wang <wang.yong19@zte.com.cn> Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
show more ...
|
#
12ee45a3 |
| 12-Jan-2017 |
Yong Wang <wang.yong19@zte.com.cn> |
examples/vhost: fix calculation of mbuf count
When calculating 'nr_mbufs_per_core', 'MAX_PKT_BURST' was mutiplied twice. Fix it by removing one of them.
Fixes: bdb19b771e6f ("examples/vhost: fix mb
examples/vhost: fix calculation of mbuf count
When calculating 'nr_mbufs_per_core', 'MAX_PKT_BURST' was mutiplied twice. Fix it by removing one of them.
Fixes: bdb19b771e6f ("examples/vhost: fix mbuf allocation failure") Cc: stable@dpdk.org
Signed-off-by: Yong Wang <wang.yong19@zte.com.cn> Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
show more ...
|
#
5d8f0baf |
| 23-Nov-2016 |
Olivier Matz <olivier.matz@6wind.com> |
log: do not drop debug logs at compile time
Today, all logs whose level is lower than INFO are dropped at compile-time. This prevents from enabling debug logs at runtime using --log-level=8.
The ra
log: do not drop debug logs at compile time
Today, all logs whose level is lower than INFO are dropped at compile-time. This prevents from enabling debug logs at runtime using --log-level=8.
The rationale was to remove debug logs from the data path at compile-time, avoiding a test at run-time.
This patch changes the behavior of RTE_LOG() to avoid the compile-time optimization, and introduces the RTE_LOG_DP() macro that has the same behavior than the previous RTE_LOG(), for the rare cases where debug logs are in the data path.
So it is now possible to enable debug logs at run-time by just specifying --log-level=8. Some drivers still have special compile-time options to enable more debug log. Maintainers may consider to remove/reduce them.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
show more ...
|
#
164a601b |
| 02-Nov-2016 |
Yuanhan Liu <yuanhan.liu@linux.intel.com> |
vhost: remove references to vhost-cuse
vhost-cuse is removed, update corresponding comments that are still referencing it.
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Acked-by: John Mc
vhost: remove references to vhost-cuse
vhost-cuse is removed, update corresponding comments that are still referencing it.
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Acked-by: John McNamara <john.mcnamara@intel.com>
show more ...
|
#
00b8b706 |
| 09-Oct-2016 |
Yuanhan Liu <yuanhan.liu@linux.intel.com> |
examples/vhost: add --dequeue-zero-copy option
Add an option, --dequeue-zero-copy, to enable dequeue zero copy.
One thing worth noting while using dequeue zero copy is the nb_tx_desc has to be smal
examples/vhost: add --dequeue-zero-copy option
Add an option, --dequeue-zero-copy, to enable dequeue zero copy.
One thing worth noting while using dequeue zero copy is the nb_tx_desc has to be small enough so that the eth driver will hit the mbuf free threshold easily and thus free mbuf more frequently.
The reason behind that is, when dequeue zero copy is enabled, guest Tx used vring will be updated only when corresponding mbuf is freed. If mbuf is not freed frequently, the guest Tx vring could be starved.
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Tested-by: Qian Xu <qian.q.xu@intel.com>
show more ...
|
#
65453928 |
| 18-Aug-2016 |
Jianfeng Tan <jianfeng.tan@intel.com> |
examples/vhost: remove VLAN strip option
When VMDQ is enabled, different NICs have different behaviors for disabling VLAN strip. In detail, i40e only enables/disables it of PF's main vsi; fm10k cann
examples/vhost: remove VLAN strip option
When VMDQ is enabled, different NICs have different behaviors for disabling VLAN strip. In detail, i40e only enables/disables it of PF's main vsi; fm10k cannot disable VLAN strip, etc. We now remove this option, --vlan-strip, to reduce any confusion. And now, VLAN strip will be enabled and cannot be disabled.
Reported-by: Qian Xu <qian.q.xu@intel.com> Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
show more ...
|
#
ad0eef4d |
| 20-Aug-2016 |
Jiayu Hu <jiayu.hu@intel.com> |
examples/vhost: support multiple socket files
When examples/vhost runs in client mode, only one QEMU can be connected. This is because that examples/vhost just supports one socket file. This patch i
examples/vhost: support multiple socket files
When examples/vhost runs in client mode, only one QEMU can be connected. This is because that examples/vhost just supports one socket file. This patch is to add multiple sockets support for examples/vhost.
Signed-off-by: Jiayu Hu <jiayu.hu@intel.com> Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
show more ...
|
#
bde19a4d |
| 20-Aug-2016 |
Jiayu Hu <jiayu.hu@intel.com> |
examples/vhost: rename --dev-basename to --socket-file
In examples/vhost, "dev-basename" is a program option, which is to set the vhost-net socket used by vhost-user, or the character device used by
examples/vhost: rename --dev-basename to --socket-file
In examples/vhost, "dev-basename" is a program option, which is to set the vhost-net socket used by vhost-user, or the character device used by vhost-cuse. Since vhost-cuse should be dropped, and "dev-basename" is not a suitable name for the vhost-net socket. Therefore, this patch is to change this option name for examples/vhost.
Signed-off-by: Jiayu Hu <jiayu.hu@intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
show more ...
|
#
56c9ff8e |
| 21-Jul-2016 |
Jianfeng Tan <jianfeng.tan@intel.com> |
examples/vhost: fix performance
We find significant perfermance drop introduced by below commit, when vhost example is started with --mergeable 0 and inside vm, kernel virtio-net driver is used to d
examples/vhost: fix performance
We find significant perfermance drop introduced by below commit, when vhost example is started with --mergeable 0 and inside vm, kernel virtio-net driver is used to do ip based forwarding.
The commit, 859b480d5afd ("vhost: add guest offload setting"), adds support for VIRTIO_NET_F_GUEST_TSO4 and VIRTIO_NET_F_GUEST_TSO6, in vhost lib. But inside vhost example, the way to disable tso only excludes the direction from virtio to vhost, but not the opposite direction. When mergeable is disabled, it triggers big_packets path of virtio-net driver to prepare to receive possible big packets with size of 64K. Because mergeable is off, for each entry of avail ring, virtio driver uses 19 desc chained together, with one desc pointing to header, other 18 desc pointing to 4K-sized pages. But QEMU only creates 256 desc entries for each vq, which results in that only 13 packets can be received. VM kernel can quickly handle those packets and go to sleep (HLT).
As QEMU has no option to set the desc entries of a vq, so here, we disable VIRTIO_NET_F_GUEST_TSO4 and VIRTIO_NET_F_GUEST_TSO6 with VIRTIO_NET_F_HOST_TSO4 and VIRTIO_NET_F_HOST_TSO6 when we disable tso of vhost example, to avoid VM kernel virtio driver go into big_packets path.
Fixes: 9fd72e3cbd29 ("examples/vhost: add virtio offload")
Reported-by: Qian Xu <qian.q.xu@intel.com> Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com> Tested-by: Qian Xu <qian.q.xu@intel.com> Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
show more ...
|
#
bb7085b4 |
| 01-Jul-2016 |
Jianfeng Tan <jianfeng.tan@intel.com> |
examples/vhost: print error logs on failure
When the specified cores and memory lie on different NUMA socket with physical NIC, vhost fails to set up Rx queue, and exits without any hints. This coul
examples/vhost: print error logs on failure
When the specified cores and memory lie on different NUMA socket with physical NIC, vhost fails to set up Rx queue, and exits without any hints. This could leads to confusion of users.
This patch fixes it by adding some error messages when calling ether APIs returns errors.
Suggested-by: Yulong Pei <yulong.pei@intel.com> Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com> Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
show more ...
|
#
2345e3be |
| 07-May-2016 |
Yuanhan Liu <yuanhan.liu@linux.intel.com> |
examples/vhost: add client option
Add --client option to let vhost-switch acts as the client.
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
|
#
64ab701c |
| 06-May-2016 |
Yuanhan Liu <yuanhan.liu@linux.intel.com> |
vhost: add vhost-user client mode
Add a new paramter (flags) to rte_vhost_driver_register(). DPDK vhost-user acts as client mode when RTE_VHOST_USER_CLIENT flag is set. The flags would also allow f
vhost: add vhost-user client mode
Add a new paramter (flags) to rte_vhost_driver_register(). DPDK vhost-user acts as client mode when RTE_VHOST_USER_CLIENT flag is set. The flags would also allow future extensions without breaking the API (again).
The rest is straingfoward then: allocate a unix socket, and bind/listen for server, connect for client.
This extension is for vhost-user only, therefore we simply quit and report error when any flags are given for vhost-cuse.
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
show more ...
|