diff mbox

[dpdk-dev] vhost: Fix the vhost broken issue

Message ID 1413185980-17348-1-git-send-email-changchun.ouyang@intel.com (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Ouyang Changchun Oct. 13, 2014, 7:39 a.m. UTC
As the vhost sample is broken by the following commit,  
  commit 08b563ffb19d8baf59dd84200f25bc85031d18a7    
  Author: Olivier Matz <olivier.matz@6wind.com>    
  Date:   Thu Sep 11 14:15:35 2014 +0100      
  mbuf: replace data pointer by an offset

It leads to segment fault error in vhost when binding a virtio
device MAC address to its corresponding VMDq pool by executing
command line 'start tx-first' in test-pmd on guest.

This patch fixes that issue. 

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
---
 examples/vhost/main.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Ouyang Changchun Oct. 13, 2014, 7:48 a.m. UTC | #1
Hi Thomas,

If HuaweiXie's patch set for vhost library and new vhost sample could be applied into dpdk.org very soon,
Then this patch could be depressed/superseded, I think his patch can fix this issue.
Otherwise, this patch could be high priority as the vhost is broken in the tip code due to recent commit related to mbuf change.

Thanks and regards, 
Changchun

> -----Original Message-----
> From: Ouyang, Changchun
> Sent: Monday, October 13, 2014 3:40 PM
> To: dev@dpdk.org
> Cc: Cao, Waterman; Ouyang, Changchun
> Subject: [PATCH] vhost: Fix the vhost broken issue
> 
> As the vhost sample is broken by the following commit,
>   commit 08b563ffb19d8baf59dd84200f25bc85031d18a7
>   Author: Olivier Matz <olivier.matz@6wind.com>
>   Date:   Thu Sep 11 14:15:35 2014 +0100
>   mbuf: replace data pointer by an offset
> 
> It leads to segment fault error in vhost when binding a virtio device MAC
> address to its corresponding VMDq pool by executing command line 'start tx-
> first' in test-pmd on guest.
> 
> This patch fixes that issue.
> 
> Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
> ---
>  examples/vhost/main.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/examples/vhost/main.c b/examples/vhost/main.c index
> 9cf8e20..a6db607 100644
> --- a/examples/vhost/main.c
> +++ b/examples/vhost/main.c
> @@ -1782,6 +1782,7 @@ virtio_dev_tx(struct virtio_net* dev, struct
> rte_mempool *mbuf_pool)
>  		/* Setup dummy mbuf. This is copied to a real mbuf if
> transmitted out the physical port. */
>  		m.data_len = desc->len;
>  		m.pkt_len = desc->len;
> +		m.buf_addr = (void *)(uintptr_t)buff_addr;
>  		m.data_off = 0;
> 
>  		PRINT_PACKET(dev, (uintptr_t)buff_addr, desc->len, 0);
> --
> 1.8.4.2
Huawei Xie Oct. 15, 2014, 7:20 p.m. UTC | #2
I generated the vhost example patch based on vhost library, but find there is issue with --mergeable feature.
Only thousands of packets could be sent.
Then I tried the latest vhost example,  which is just before my vhost lib patch, I found that not only it has the issue
Which is fixed by the following patch but the --mergeable feature also doesn't work.
Haven't got the change to dig into it.

Hints here:
1. mbuf allocation failure after thousands of packets.
2. disable INC_VEC(vectore scatter receive) in configure could solve this.
3. tried sending the packets directly out after receiving from vmdq queue, it works.

Could you root cause the issue, Changchun? You could work on the most recent example.

> -----Original Message-----
> From: Ouyang, Changchun
> Sent: Monday, October 13, 2014 12:48 AM
> To: Thomas Monjalon; dev@dpdk.org
> Cc: Xie, Huawei; Cao, Waterman; Ouyang, Changchun
> Subject: RE: [PATCH] vhost: Fix the vhost broken issue
> 
> Hi Thomas,
> 
> If HuaweiXie's patch set for vhost library and new vhost sample could be applied
> into dpdk.org very soon,
> Then this patch could be depressed/superseded, I think his patch can fix this
> issue.
> Otherwise, this patch could be high priority as the vhost is broken in the tip code
> due to recent commit related to mbuf change.
> 
> Thanks and regards,
> Changchun
> 
> > -----Original Message-----
> > From: Ouyang, Changchun
> > Sent: Monday, October 13, 2014 3:40 PM
> > To: dev@dpdk.org
> > Cc: Cao, Waterman; Ouyang, Changchun
> > Subject: [PATCH] vhost: Fix the vhost broken issue
> >
> > As the vhost sample is broken by the following commit,
> >   commit 08b563ffb19d8baf59dd84200f25bc85031d18a7
> >   Author: Olivier Matz <olivier.matz@6wind.com>
> >   Date:   Thu Sep 11 14:15:35 2014 +0100
> >   mbuf: replace data pointer by an offset
> >
> > It leads to segment fault error in vhost when binding a virtio device MAC
> > address to its corresponding VMDq pool by executing command line 'start tx-
> > first' in test-pmd on guest.
> >
> > This patch fixes that issue.
> >
> > Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
> > ---
> >  examples/vhost/main.c | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/examples/vhost/main.c b/examples/vhost/main.c index
> > 9cf8e20..a6db607 100644
> > --- a/examples/vhost/main.c
> > +++ b/examples/vhost/main.c
> > @@ -1782,6 +1782,7 @@ virtio_dev_tx(struct virtio_net* dev, struct
> > rte_mempool *mbuf_pool)
> >  		/* Setup dummy mbuf. This is copied to a real mbuf if
> > transmitted out the physical port. */
> >  		m.data_len = desc->len;
> >  		m.pkt_len = desc->len;
> > +		m.buf_addr = (void *)(uintptr_t)buff_addr;
> >  		m.data_off = 0;
> >
> >  		PRINT_PACKET(dev, (uintptr_t)buff_addr, desc->len, 0);
> > --
> > 1.8.4.2
Ouyang Changchun Oct. 17, 2014, 3:15 a.m. UTC | #3
No problem, I will investigate the root cause.

But before figuring out the root cause, I think we could add check in your new sample to
Check the INC_VEC is enable or not, If it is enabled, print error message and hint user 
Disable it in config file if mergeable feature is triggered in vhost. Then this issue should not 
block you from sending out your vhost app patch.

Your vhost app patch will block my another patch about multicast feature as your vhost lib patch delete the vhost sample app totally.
So expect your vhost app patch send out soon.

Thanks and regards,
Changchun


-----Original Message-----
From: Xie, Huawei 
Sent: Thursday, October 16, 2014 3:20 AM
To: Ouyang, Changchun; Thomas Monjalon; dev@dpdk.org
Cc: Cao, Waterman; Richardson, Bruce
Subject: RE: [PATCH] vhost: Fix the vhost broken issue

I generated the vhost example patch based on vhost library, but find there is issue with --mergeable feature.
Only thousands of packets could be sent.
Then I tried the latest vhost example,  which is just before my vhost lib patch, I found that not only it has the issue Which is fixed by the following patch but the --mergeable feature also doesn't work.
Haven't got the change to dig into it.

Hints here:
1. mbuf allocation failure after thousands of packets.
2. disable INC_VEC(vectore scatter receive) in configure could solve this.
3. tried sending the packets directly out after receiving from vmdq queue, it works.

Could you root cause the issue, Changchun? You could work on the most recent example.

> -----Original Message-----
> From: Ouyang, Changchun
> Sent: Monday, October 13, 2014 12:48 AM
> To: Thomas Monjalon; dev@dpdk.org
> Cc: Xie, Huawei; Cao, Waterman; Ouyang, Changchun
> Subject: RE: [PATCH] vhost: Fix the vhost broken issue
> 
> Hi Thomas,
> 
> If HuaweiXie's patch set for vhost library and new vhost sample could 
> be applied into dpdk.org very soon, Then this patch could be 
> depressed/superseded, I think his patch can fix this issue.
> Otherwise, this patch could be high priority as the vhost is broken in 
> the tip code due to recent commit related to mbuf change.
> 
> Thanks and regards,
> Changchun
> 
> > -----Original Message-----
> > From: Ouyang, Changchun
> > Sent: Monday, October 13, 2014 3:40 PM
> > To: dev@dpdk.org
> > Cc: Cao, Waterman; Ouyang, Changchun
> > Subject: [PATCH] vhost: Fix the vhost broken issue
> >
> > As the vhost sample is broken by the following commit,
> >   commit 08b563ffb19d8baf59dd84200f25bc85031d18a7
> >   Author: Olivier Matz <olivier.matz@6wind.com>
> >   Date:   Thu Sep 11 14:15:35 2014 +0100
> >   mbuf: replace data pointer by an offset
> >
> > It leads to segment fault error in vhost when binding a virtio 
> > device MAC address to its corresponding VMDq pool by executing 
> > command line 'start tx- first' in test-pmd on guest.
> >
> > This patch fixes that issue.
> >
> > Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
> > ---
> >  examples/vhost/main.c | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/examples/vhost/main.c b/examples/vhost/main.c index
> > 9cf8e20..a6db607 100644
> > --- a/examples/vhost/main.c
> > +++ b/examples/vhost/main.c
> > @@ -1782,6 +1782,7 @@ virtio_dev_tx(struct virtio_net* dev, struct 
> > rte_mempool *mbuf_pool)
> >  		/* Setup dummy mbuf. This is copied to a real mbuf if transmitted 
> > out the physical port. */
> >  		m.data_len = desc->len;
> >  		m.pkt_len = desc->len;
> > +		m.buf_addr = (void *)(uintptr_t)buff_addr;
> >  		m.data_off = 0;
> >
> >  		PRINT_PACKET(dev, (uintptr_t)buff_addr, desc->len, 0);
> > --
> > 1.8.4.2
Huawei Xie Oct. 17, 2014, 3:19 a.m. UTC | #4
Thomas:
Thoughts about this? Could I send example patch with this walk around?

> -----Original Message-----
> From: Ouyang, Changchun
> Sent: Thursday, October 16, 2014 8:15 PM
> To: Xie, Huawei; Thomas Monjalon; dev@dpdk.org
> Cc: Cao, Waterman; Richardson, Bruce; Ouyang, Changchun
> Subject: RE: [PATCH] vhost: Fix the vhost broken issue
> 
> No problem, I will investigate the root cause.
> 
> But before figuring out the root cause, I think we could add check in your new
> sample to
> Check the INC_VEC is enable or not, If it is enabled, print error message and hint
> user
> Disable it in config file if mergeable feature is triggered in vhost. Then this issue
> should not
> block you from sending out your vhost app patch.
> 
> Your vhost app patch will block my another patch about multicast feature as
> your vhost lib patch delete the vhost sample app totally.
> So expect your vhost app patch send out soon.
> 
> Thanks and regards,
> Changchun
> 
> 
> -----Original Message-----
> From: Xie, Huawei
> Sent: Thursday, October 16, 2014 3:20 AM
> To: Ouyang, Changchun; Thomas Monjalon; dev@dpdk.org
> Cc: Cao, Waterman; Richardson, Bruce
> Subject: RE: [PATCH] vhost: Fix the vhost broken issue
> 
> I generated the vhost example patch based on vhost library, but find there is
> issue with --mergeable feature.
> Only thousands of packets could be sent.
> Then I tried the latest vhost example,  which is just before my vhost lib patch, I
> found that not only it has the issue Which is fixed by the following patch but the
> --mergeable feature also doesn't work.
> Haven't got the change to dig into it.
> 
> Hints here:
> 1. mbuf allocation failure after thousands of packets.
> 2. disable INC_VEC(vectore scatter receive) in configure could solve this.
> 3. tried sending the packets directly out after receiving from vmdq queue, it
> works.
> 
> Could you root cause the issue, Changchun? You could work on the most recent
> example.
> 
> > -----Original Message-----
> > From: Ouyang, Changchun
> > Sent: Monday, October 13, 2014 12:48 AM
> > To: Thomas Monjalon; dev@dpdk.org
> > Cc: Xie, Huawei; Cao, Waterman; Ouyang, Changchun
> > Subject: RE: [PATCH] vhost: Fix the vhost broken issue
> >
> > Hi Thomas,
> >
> > If HuaweiXie's patch set for vhost library and new vhost sample could
> > be applied into dpdk.org very soon, Then this patch could be
> > depressed/superseded, I think his patch can fix this issue.
> > Otherwise, this patch could be high priority as the vhost is broken in
> > the tip code due to recent commit related to mbuf change.
> >
> > Thanks and regards,
> > Changchun
> >
> > > -----Original Message-----
> > > From: Ouyang, Changchun
> > > Sent: Monday, October 13, 2014 3:40 PM
> > > To: dev@dpdk.org
> > > Cc: Cao, Waterman; Ouyang, Changchun
> > > Subject: [PATCH] vhost: Fix the vhost broken issue
> > >
> > > As the vhost sample is broken by the following commit,
> > >   commit 08b563ffb19d8baf59dd84200f25bc85031d18a7
> > >   Author: Olivier Matz <olivier.matz@6wind.com>
> > >   Date:   Thu Sep 11 14:15:35 2014 +0100
> > >   mbuf: replace data pointer by an offset
> > >
> > > It leads to segment fault error in vhost when binding a virtio
> > > device MAC address to its corresponding VMDq pool by executing
> > > command line 'start tx- first' in test-pmd on guest.
> > >
> > > This patch fixes that issue.
> > >
> > > Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
> > > ---
> > >  examples/vhost/main.c | 1 +
> > >  1 file changed, 1 insertion(+)
> > >
> > > diff --git a/examples/vhost/main.c b/examples/vhost/main.c index
> > > 9cf8e20..a6db607 100644
> > > --- a/examples/vhost/main.c
> > > +++ b/examples/vhost/main.c
> > > @@ -1782,6 +1782,7 @@ virtio_dev_tx(struct virtio_net* dev, struct
> > > rte_mempool *mbuf_pool)
> > >  		/* Setup dummy mbuf. This is copied to a real mbuf if
> transmitted
> > > out the physical port. */
> > >  		m.data_len = desc->len;
> > >  		m.pkt_len = desc->len;
> > > +		m.buf_addr = (void *)(uintptr_t)buff_addr;
> > >  		m.data_off = 0;
> > >
> > >  		PRINT_PACKET(dev, (uintptr_t)buff_addr, desc->len, 0);
> > > --
> > > 1.8.4.2
Thomas Monjalon Oct. 17, 2014, 7:28 a.m. UTC | #5
2014-10-17 03:19, Xie, Huawei:
> From: Ouyang, Changchun
> > From: Xie, Huawei
> > > I generated the vhost example patch based on vhost library, but find
> > > there is
> > > issue with --mergeable feature.
> > > Only thousands of packets could be sent.
> > > Then I tried the latest vhost example,  which is just before my vhost
> > > lib patch, I found that not only it has the issue Which is fixed by the
> > > following patch but the --mergeable feature also doesn't work.
> > > Haven't got the change to dig into it.
> > > 
> > > Hints here:
> > > 1. mbuf allocation failure after thousands of packets.
> > > 2. disable INC_VEC(vectore scatter receive) in configure could solve
> > > this.
> > > 3. tried sending the packets directly out after receiving from vmdq
> > > queue, it
> > > works.
> > > 
> > > Could you root cause the issue, Changchun? You could work on the most
> > > recent
> > > example.
> > 
> > No problem, I will investigate the root cause.
> > 
> > But before figuring out the root cause, I think we could add check in your new
> > sample to
> > Check the INC_VEC is enable or not, If it is enabled, print error message and hint
> > user
> > Disable it in config file if mergeable feature is triggered in vhost. Then this issue
> > should not
> > block you from sending out your vhost app patch.
> > 
> > Your vhost app patch will block my another patch about multicast feature as
> > your vhost lib patch delete the vhost sample app totally.
> > So expect your vhost app patch send out soon.
> 
> Thomas:
> Thoughts about this? Could I send example patch with this walk around?

Yes, please send the new example with this small workaround.
It's better than nothing.
diff mbox

Patch

diff --git a/examples/vhost/main.c b/examples/vhost/main.c
index 9cf8e20..a6db607 100644
--- a/examples/vhost/main.c
+++ b/examples/vhost/main.c
@@ -1782,6 +1782,7 @@  virtio_dev_tx(struct virtio_net* dev, struct rte_mempool *mbuf_pool)
 		/* Setup dummy mbuf. This is copied to a real mbuf if transmitted out the physical port. */
 		m.data_len = desc->len;
 		m.pkt_len = desc->len;
+		m.buf_addr = (void *)(uintptr_t)buff_addr;
 		m.data_off = 0;
 
 		PRINT_PACKET(dev, (uintptr_t)buff_addr, desc->len, 0);