From: "Du, Fan" <fan.du@intel.com>
To: "Loftus, Ciara" <ciara.loftus@intel.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>,
"dev@openvswitch.org" <dev@openvswitch.org>
Subject: [dpdk-dev] dpdkvhostuser fail to alloc memory when receive packet from other host
Date: Wed, 17 Jun 2015 09:49:18 +0000 [thread overview]
Message-ID: <5A90DA2E42F8AE43BC4A093BF0678848E6C4D8@SHSMSX104.ccr.corp.intel.com> (raw)
Hi,
I'm playing dpdkvhostuser ports with latest DPDK and ovs master tree with iperf benchmarking.
When kvm guest1(backed up dpdkvhostuser port)siting on HOST1 is receiving packets from either other physical HOST2,
or similar kvm guest2 with dpdkvhostuser port siting on HOST2. The connectivity will break, iperf show no bandwidth and stall finally.
Other test scenario like, two kvm guest sitting on one host, or a single kvm guest send packets to a physical host works like a charm.
Swiitch debug option on, dpdk lib spit as below:
VHOST_CONFIG: read message VHOST_USER_SET_VRING_CALL
VHOST_CONFIG: vring call idx:0 file:62
VHOST_CONFIG: read message VHOST_USER_SET_VRING_CALL
VHOST_CONFIG: vring call idx:0 file:58
VHOST_DATA: F0 Failed to allocate memory for mbuf. mbuf_pool:0x7fc7411ab5c0
VHOST_DATA: F0 Failed to allocate memory for mbuf. mbuf_pool:0x7fc7411ab5c0
VHOST_DATA: F0 Failed to allocate memory for mbuf. mbuf_pool:0x7fc7411ab5c0
VHOST_DATA: F0 Failed to allocate memory for mbuf. mbuf_pool:0x7fc7411ab5c0
VHOST_DATA: F0 Failed to allocate memory for mbuf. mbuf_pool:0x7fc7411ab5c0
VHOST_DATA: F0 Failed to allocate memory for mbuf. mbuf_pool:0x7fc7411ab5c0
VHOST_DATA: F0 Failed to allocate memory for mbuf. mbuf_pool:0x7fc7411ab5c0
VHOST_DATA: F0 Failed to allocate memory for mbuf. mbuf_pool:0x7fc7411ab5c0
After some tweaks of logging code, and looks like bad things happens within below code snippet:
In lib/librte_vhost/vhost_rxtx.c function: rte_vhost_dequeue_burst
612 vb_offset = 0;
613 vb_avail = desc->len;
614 /* Allocate an mbuf and populate the structure. */
615 m = rte_pktmbuf_alloc(mbuf_pool);
616 if (unlikely(m == NULL)) {
617 RTE_LOG(ERR, VHOST_DATA,
618 "F0 Failed to allocate memory for mbuf. mbuf_pool:%p\n", mbuf_pool);
619 break;
620 }
621 seg_offset = 0;
622 seg_avail = m->buf_len - RTE_PKTMBUF_HEADROOM;
623 cpy_len = RTE_MIN(vb_avail, seg_avail);
next reply other threads:[~2015-06-17 9:52 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-17 9:49 Du, Fan [this message]
2015-06-17 11:54 ` [dpdk-dev] [ovs-dev] " gowrishankar
2015-06-18 8:47 ` Du, Fan
2015-06-17 14:58 [dpdk-dev] " Wiles, Keith
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=5A90DA2E42F8AE43BC4A093BF0678848E6C4D8@SHSMSX104.ccr.corp.intel.com \
--to=fan.du@intel.com \
--cc=ciara.loftus@intel.com \
--cc=dev@dpdk.org \
--cc=dev@openvswitch.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).