On 5/31/17, 6:38 AM, "[email protected] on behalf of Kavanagh, 
Mark B" <[email protected] on behalf of 
[email protected]> wrote:

    >From: Chandran, Sugesh
    >Sent: Friday, May 26, 2017 8:06 PM
    >To: Kavanagh, Mark B <[email protected]>; [email protected]; 
[email protected]
    >Subject: RE: [ovs-dev] [RFC PATCH v2 0/1] netdev-dpdk: multi-segment mbuf 
jumbo frame support
    >
    >Hi Mark,
    >
    >
    >Thank you for working on this!
    >For some reason it was failing for me while trying to apply the first set 
of patches from
    >Michael.
    >I tried the latest patches from the patchwork.
    
    Thanks Sugesh - I've relayed this back to Michael, and asked him to rebase 
his patchset.
    
    Responses to your comments are inline - please let me know if you have any 
other questions.
    
    Thanks,
    Mark 
    
    >
    >Here are few high level comments as below.
    >
    >
    >Regards
    >_Sugesh
    >
    >
    >> -----Original Message-----
    >> From: [email protected] [mailto:ovs-dev-
    >> [email protected]] On Behalf Of Mark Kavanagh
    >> Sent: Monday, May 15, 2017 11:17 AM
    >> To: [email protected]; [email protected]
    >> Subject: [ovs-dev] [RFC PATCH v2 0/1] netdev-dpdk: multi-segment mbuf
    >> jumbo frame support
    >>
    >> This RFC introduces an approach for implementing jumbo frame support for
    >> OvS-DPDK with multi-segment mbufs.
    >>
    >> == Overview ==
    >> Currently, jumbo frame support for OvS-DPDK is implemented by increasing
    >> the size of mbufs within a mempool, such that each mbuf within the pool 
is
    >> large enough to contain an entire jumbo frame of a user-defined size.
    >> Typically, for each user-defined MTU 'requested_mtu', a new mempool is
    >> created, containing mbufs of size ~requested_mtu.
    >>
    >> With the multi-segment approach, all ports share the same mempool, in
    >> which each mbuf is of standard/default size (~2k MB). To accommodate
    >> jumbo frames, mbufs may be chained together, each mbuf storing a portion
    >> of the jumbo frame; each mbuf in the chain is termed a segment, hence the
    >> name.
    >>
    >>
    >> == Enabling multi-segment mbufs ==
    >> Multi-segment and single-segment mbufs are mutually exclusive, and the
    >> user must decide on which approach to adopt on init. The introduction of 
a
    >> new optional OVSDB field, 'dpdk-multi-seg-mbufs', facilitates this; this 
is a
    >> boolean field, which defaults to false. Setting the field is identical 
to setting
    >> existing DPDPK-specific OVSDB fields:
    >>
    >>     sudo $OVS_DIR/utilities/ovs-vsctl --no-wait set Open_vSwitch .
    >> other_config:dpdk-init=true
    >>     sudo $OVS_DIR/utilities/ovs-vsctl --no-wait set Open_vSwitch .
    >> other_config:dpdk-lcore-mask=0x10
    >>     sudo $OVS_DIR/utilities/ovs-vsctl --no-wait set Open_vSwitch .
    >> other_config:dpdk-socket-mem=4096,0
    >> ==> sudo $OVS_DIR/utilities/ovs-vsctl --no-wait set Open_vSwitch .
    >> other_config:dpdk-multi-seg-mbufs=true
    >>
    >[Sugesh] May be I am missing something here. Why do we need configuration 
option to
    >enable the multi segment. If the MTU is larger than the mbuf size, it will 
automatically
    >create
    >chained mbufs.
    
    True; however, in order to allow jumbo frames to traverse a given port, 
that port's MTU needs to be increased. As it stands currently, when the user 
specifies a larger-than-standard MTU for a DPDK port (say 9000B), the size of 
each mbuf in that port's mempool is increased to accommodate a packet of that 
size. In that case, since the 9000B packet can fit into a single mbuf, there is 
no need to use multi-segment mbufs. So, this implementation offers the user the 
flexibility to choose how they would like jumbo frames to be represented in 
OvS-DPDK.      
     Otherwise it uses the normal single mbufs. We will keep it enable by 
default.

Single buffer by default makes sense


    >Are you going to support jumbo frames with larger mbuf (when 
dpdk-multi-seg-mbufs=false)
    >and also with chained mbufs(dpdk-multi-seg-mbufs = True).
    
    Yes. Chained mbufs may be advantageous on low-memory systems where the 
amount of contiguous memory required for a single-segment jumbo frame mempool 
is an issue. Furthermore, intuitively, single-segment jumbo frames may 
out-perform their multi-segment counterparts on account of the increased 
data-to-overhead ratio that they provide.


Yes, not just bcoz of buffer overhead though.

    
    >
    >
    >>
    >> == Code base ==
    >> This patch is dependent on the multi-segment mbuf patch submitted by
    >> Michael Qiu (currently V2): 
https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.openvswitch.org_pipermail_ovs-2D&d=DwICAg&c=uilaK90D4TOVoH58JNXRgQ&r=BVhFA09CGX7JQ5Ih-uZnsw&m=qqzZ1f8cOadqxB51jt93R9_mMOfCMtdYfKkKGZtAHkQ&s=TvFVQ9rN_wDXYPXtotPyL3d9eJxlyq7zFotit21q15c&e=
 
    >> dev/2017-May/331792.html.
    >> The upstream base commit against which this patch was generated is
    >> 1e96502; to test this patch, check out that branch, apply Michael's 
patchset,
    >> and then apply this patch:
    >>
    >>     3.  netdev-dpdk: enable multi-segment jumbo frames
    >>     2.  DPDK multi-segment mbuf support (Michael Qiu)
    >>     1.  1e96502 tests: Only run python SSL test if SSL support is 
configur... (OvS
    >> upstream)
    >>
    >> The DPDK version used during testing is v17.02, although v16.11 should 
work
    >> equally well.
    >>
    >>
    >> == Testing ==
    >> As this is an RFC, only a subset of the total traffic paths/vSwitch
    >> configurations/actions have been tested - a summary of traffic paths 
tested
    >> thus far is included below. The action tested in all cases is OUTPUT. 
Tests in
    >> which issues were observed are summarized beneath the table.
    >>
    >> 
+-------------------------------------------------------------------------------------+
    >> |  Traffic Path                                                          
             |
    >> 
+-------------------------------------------------------------------------------------+
    >> | DPDK Phy 0   -> OvS -> DPDK Phy 1                                      
             |
    >> | DPDK Phy 0   -> OvS -> Kernel Phy 0                                    
         [1] |
    >> | Kernel Phy 0 -> OvS -> DPDK Phy 0                                      
             |
    >> |                                                                        
             |
    >> | DPDK Phy 0   -> OvS -> vHost User 0 -> vHost User 1 -> OvS -> DPDK Phy 
1 *
    >> |
    >> | DPDK Phy 0   -> OvS -> vHost User 0 -> vHost User 1 -> OvS -> Kernel 
Phy 0 *
    >> [1] |
    >> | Kernel Phy 0 -> OvS -> vHost User 1 -> vHost User 0 -> OvS -> -> DPDK 
Phy 0
    >> *   [2] |
    >> |                                                                        
             |
    >> | vHost0       -> OvS -> vHost1                                          
             |
    >> 
+-------------------------------------------------------------------------------------+
    >>
    >>   * = guest kernel IP forwarding
    >> [1] = incorrect L4 checksum
    >> [2] = traffic not forwarded in guest kernel. This behaviour is also 
observed on
    >> OvS master.
    >>
    >> _______________________________________________
    >> dev mailing list
    >> [email protected]
    >> 
https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.openvswitch.org_mailman_listinfo_ovs-2Ddev&d=DwICAg&c=uilaK90D4TOVoH58JNXRgQ&r=BVhFA09CGX7JQ5Ih-uZnsw&m=qqzZ1f8cOadqxB51jt93R9_mMOfCMtdYfKkKGZtAHkQ&s=MIE-OMQyz7BiWT0cuBmPbODfaG-CNs9NJ7jSL8ra-1s&e=
 
    _______________________________________________
    dev mailing list
    [email protected]
    
https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.openvswitch.org_mailman_listinfo_ovs-2Ddev&d=DwICAg&c=uilaK90D4TOVoH58JNXRgQ&r=BVhFA09CGX7JQ5Ih-uZnsw&m=qqzZ1f8cOadqxB51jt93R9_mMOfCMtdYfKkKGZtAHkQ&s=MIE-OMQyz7BiWT0cuBmPbODfaG-CNs9NJ7jSL8ra-1s&e=
 
    

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to