#
08b563ff |
| 11-Sep-2014 |
Olivier Matz <olivier.matz@6wind.com> |
mbuf: replace data pointer by an offset
The mbuf structure already contains a pointer to the beginning of the buffer (m->buf_addr). It is not needed to use 8 bytes again to store another pointer to
mbuf: replace data pointer by an offset
The mbuf structure already contains a pointer to the beginning of the buffer (m->buf_addr). It is not needed to use 8 bytes again to store another pointer to the beginning of the data.
Using a 16 bits unsigned integer is enough as we know that a mbuf is never longer than 64KB. We gain 6 bytes in the structure thanks to this modification.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
* Updated to apply to latest on mainline. * Disabled vector PMD in config as it relies heavily on the mbuf layout This will be re-enabled in a subsequent commit once vPMD has been reworked to take account of mbuf changes.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Olivier Matz <olivier.matz@6wind.com>
show more ...
|
#
7869536f |
| 09-Sep-2014 |
Bruce Richardson <bruce.richardson@intel.com> |
mbuf: flatten struct vlan_macip
The vlan_macip structure combined a vlan tag id with l2 and l3 headers lengths for tracking offloads. However, this structure was only used as a unit by the e1000 and
mbuf: flatten struct vlan_macip
The vlan_macip structure combined a vlan tag id with l2 and l3 headers lengths for tracking offloads. However, this structure was only used as a unit by the e1000 and ixgbe drivers, not generally.
This patch removes the structure from the mbuf header and places the fields into the mbuf structure directly at the required point, without any net effect on the structure layout. This allows us to treat the vlan tags and header length fields as separate for future mbuf changes. The drivers which were written to use the combined structure still do so, using a driver-local definition of it.
Reduce perf regression caused by splitting vlan_macip field. This is done by providing a single uint16_t value to allow writing/clearing the l2 and l3 lengths together. There is still a small perf hit to the slow path TX due to the reads from vlan_tci and l2/l3 lengths being separated. (<5% in my tests with testpmd with no extra params). Unfortunately, this cannot be eliminated, without restoring the vlan tags and l2/l3 lengths as a combined 32-bit field. This would prevent us from ever looking to move those fields about and is an artificial tie that applies only for performance in igb and ixgbe drivers. Therefore, this patch keeps the vlan_tci field separate from the lengths as the best solution going forward.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Olivier Matz <olivier.matz@6wind.com> Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
show more ...
|
#
ea672a8b |
| 28-Aug-2014 |
Olivier Matz <olivier.matz@6wind.com> |
mbuf: remove the rte_pktmbuf structure
The rte_pktmbuf structure was initially included in the rte_mbuf structure. This was needed when there was 2 types of mbuf (ctrl and packet). As the control mb
mbuf: remove the rte_pktmbuf structure
The rte_pktmbuf structure was initially included in the rte_mbuf structure. This was needed when there was 2 types of mbuf (ctrl and packet). As the control mbuf has been removed, we can merge the rte_pktmbuf into the rte_mbuf structure.
Advantages of doing this: - the access to mbuf fields is easier (ex: m->data instead of m->pkt.data) - make the structure more consistent: for instance, there was no reason to have the ol_flags field in rte_mbuf - it will allow a deeper reorganization of the rte_mbuf structure in the next commits, allowing to gain several bytes in it
Signed-off-by: Olivier Matz <olivier.matz@6wind.com> [Bruce: updated for latest code and new example apps] Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
show more ...
|
#
62814bc2 |
| 28-Aug-2014 |
Olivier Matz <olivier.matz@6wind.com> |
mbuf: rename RTE_MBUF_SCATTER_GATHER into RTE_MBUF_REFCNT
It seems that RTE_MBUF_SCATTER_GATHER is not the proper name for the feature it provides. "Scatter gather" means that data is stored using s
mbuf: rename RTE_MBUF_SCATTER_GATHER into RTE_MBUF_REFCNT
It seems that RTE_MBUF_SCATTER_GATHER is not the proper name for the feature it provides. "Scatter gather" means that data is stored using several buffers. RTE_MBUF_REFCNT seems to be a better name for that feature as it provides a reference counter for mbufs.
The macro RTE_MBUF_SCATTER_GATHER is poisoned to ensure this modification is seen by drivers or applications using it.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
show more ...
|
#
2bbb8119 |
| 15-Aug-2014 |
Ouyang Changchun <changchun.ouyang@intel.com> |
examples/vhost: support jumbo frame
This patch support mergeable RX feature and thus support jumbo frame RX and TX in user space vhost(as virtio backend).
On RX, it secures enough room from vring t
examples/vhost: support jumbo frame
This patch support mergeable RX feature and thus support jumbo frame RX and TX in user space vhost(as virtio backend).
On RX, it secures enough room from vring to accommodate one complete scattered packet which is received by PMD from physical port, and then copy data from mbuf to vring buffer, possibly across a few vring entries and descriptors.
On TX, it gets a jumbo frame, possibly described by a few vring descriptors which are chained together with the flags of 'NEXT', and then copy them into one scattered packet and TX it to physical port through PMD.
Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com> Acked-by: Huawei Xie <huawei.xie@intel.com>
show more ...
|
#
6f41fe75 |
| 24-Jun-2014 |
Stephen Hemminger <stephen@networkplumber.org> |
eal: deprecate rte_snprintf
The function rte_snprintf serves no useful purpose. It is the same as snprintf() for all valid inputs. Deprecate it and replace all uses in current code.
Leave the tests
eal: deprecate rte_snprintf
The function rte_snprintf serves no useful purpose. It is the same as snprintf() for all valid inputs. Deprecate it and replace all uses in current code.
Leave the tests for the deprecated function in place.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
show more ...
|
#
7b79b271 |
| 16-Jun-2014 |
Thomas Monjalon <thomas.monjalon@6wind.com> |
examples/vhost: restrict log type namespace
RTE_LOGTYPE_CONFIG, RTE_LOGTYPE_DATA and RTE_LOGTYPE_PORT are renamed by adding VHOST prefix. It prevents from conflict with new RTE_LOGTYPE_PORT of packe
examples/vhost: restrict log type namespace
RTE_LOGTYPE_CONFIG, RTE_LOGTYPE_DATA and RTE_LOGTYPE_PORT are renamed by adding VHOST prefix. It prevents from conflict with new RTE_LOGTYPE_PORT of packet framework.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
show more ...
|
#
3031749c |
| 03-Jun-2014 |
Bruce Richardson <bruce.richardson@intel.com> |
remove trailing whitespaces
This commit removes trailing whitespace from lines in files. Almost all files are affected, as the BSD license copyright header had trailing whitespace on 4 lines in it [
remove trailing whitespaces
This commit removes trailing whitespace from lines in files. Almost all files are affected, as the BSD license copyright header had trailing whitespace on 4 lines in it [hence the number of files reporting 8 lines changed in the diffstat].
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Neil Horman <nhorman@tuxdriver.com> [Thomas: remove spaces before tabs in libs] [Thomas: remove more trailing spaces in non-C files] Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
show more ...
|
#
c3dfe188 |
| 28-May-2014 |
Ouyang Changchun <changchun.ouyang@intel.com> |
examples/vhost: zero copy mode
This patch supports user space vhost zero copy. It removes packets copying between host and guest in RX/TX. It introduces an extra ring to store the detached mbufs. At
examples/vhost: zero copy mode
This patch supports user space vhost zero copy. It removes packets copying between host and guest in RX/TX. It introduces an extra ring to store the detached mbufs. At initialization stage all mbufs will put into this ring; when one guest starts, vhost gets the available buffer address allocated by guest for RX and translates them into host space addresses, then attaches them to mbufs and puts the attached mbufs into mempool. Queue starting and DMA refilling will get mbufs from mempool and use them to set the DMA addresses.
For TX, it gets the buffer addresses of available packets to be transmitted from guest and translates them to host space addresses, then attaches them to mbufs and puts them to TX queues. After TX finishes, it pulls mbufs out from mempool, detaches them and puts them back into the extra ring.
Signed-off-by: Ouyang Changchun <changchun.ouyang@intel.com> Tested-by: Waterman Cao <waterman.cao@intel.com> Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
show more ...
|
#
e5ffdd14 |
| 21-Apr-2014 |
Neil Horman <nhorman@tuxdriver.com> |
ethdev: remove rte_pmd_init_all function
Now that we've converted all the pmds in dpdk to use the driver registration macro, rte_pmd_init_all has become empty. As theres no reason to keep it around
ethdev: remove rte_pmd_init_all function
Now that we've converted all the pmds in dpdk to use the driver registration macro, rte_pmd_init_all has become empty. As theres no reason to keep it around anymore, just remove it and fix up all the eample callers.
Signed-off-by: Neil Horman <nhorman@tuxdriver.com> Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
show more ...
|
#
4796ad63 |
| 10-Feb-2014 |
Bruce Richardson <bruce.richardson@intel.com> |
examples/vhost: import userspace vhost application
The vhost sample application demonstrates integration of the Intel(R) Data Plane Development Kit (Intel(R) DPDK) with the Linux KVM hypervisor by i
examples/vhost: import userspace vhost application
The vhost sample application demonstrates integration of the Intel(R) Data Plane Development Kit (Intel(R) DPDK) with the Linux KVM hypervisor by implementing the vhost-net offload API. The sample application performs simple packet switching between virtual machines based on Media Access Control (MAC) address or Virtual Local Area Network (VLAN) tag. The splitting of ethernet traffic from an external switch is performed in hardware by the Virtual Machine Device Queues (VMDQ) and Data Center Bridging (DCB) features of the Intel(R) 82599 10 Gigabit Ethernet Controller.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|