DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev]  In DPDK 1.7.1, the link status of the interface using virtio driver is always down.
@ 2014-12-11  7:57 Fu, Weiyi (NSN - CN/Hangzhou)
  2014-12-11  8:11 ` Ouyang, Changchun
  0 siblings, 1 reply; 10+ messages in thread
From: Fu, Weiyi (NSN - CN/Hangzhou) @ 2014-12-11  7:57 UTC (permalink / raw)
  To: dev

Hi,
We are using the l2fwd based on DPDK 1.7.1  and found out that the link status of the interface using virtio driver is always down.
Is there any precondition to let the link up?

# ./pci_unbind.py --status

Network devices using IGB_UIO driver
====================================
0000:00:04.0 'Virtio network device' drv=igb_uio unused=
0000:00:05.0 'Virtio network device' drv=igb_uio unused=

Network devices using kernel driver
===================================
0000:00:03.0 'Virtio network device' if= drv=virtio-pci unused=igb_uio

Other network devices
=====================
<none>
[root@EIPU-0(KVMCluster) /root]
# /root/l2fwd -c 1 -n 1 -- -p 1
...
Port: 0 Link is DOWN
PMD: virtio_dev_start(): nb_queues=1
PMD: virtio_dev_start(): Notified backend at initialization
PMD: rte_eth_dev_config_restore: port 0: MAC address array not supported
PMD: rte_eth_promiscuous_disable: Function not supported
PMD: rte_eth_allmulticast_disable: Function not supported
done:
PMD: rte_eth_promiscuous_enable: Function not supported
Port 0, MAC address: FF:FF:00:00:00:00

Skipping disabled port 1

Checking link statusPMD: virtio_dev_link_update(): Get link status from hw
PMD: virtio_dev_link_update(): Port 0 is down
.PMD: virtio_dev_link_update(): Get link status from hw
PMD: virtio_dev_link_update(): Port 0 is down
.PMD: virtio_dev_link_update(): Get link status from hw
PMD: virtio_dev_link_update(): Port 0 is down
...

Brs,
Fu Weiyi

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] In DPDK 1.7.1, the link status of the interface using virtio driver is always down.
  2014-12-11  7:57 [dpdk-dev] In DPDK 1.7.1, the link status of the interface using virtio driver is always down Fu, Weiyi (NSN - CN/Hangzhou)
@ 2014-12-11  8:11 ` Ouyang, Changchun
  2014-12-11  8:42   ` Fu, Weiyi (NSN - CN/Hangzhou)
  2014-12-11 11:41   ` Fu, Weiyi (NSN - CN/Hangzhou)
  0 siblings, 2 replies; 10+ messages in thread
From: Ouyang, Changchun @ 2014-12-11  8:11 UTC (permalink / raw)
  To: Fu, Weiyi (NSN - CN/Hangzhou), dev

Hi,

> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Fu, Weiyi (NSN -
> CN/Hangzhou)
> Sent: Thursday, December 11, 2014 3:57 PM
> To: dev@dpdk.org
> Subject: [dpdk-dev] In DPDK 1.7.1, the link status of the interface using virtio
> driver is always down.
> 
> Hi,
> We are using the l2fwd based on DPDK 1.7.1  and found out that the link
> status of the interface using virtio driver is always down.
> Is there any precondition to let the link up?
> 

Suggest you use testpmd to replace l2fwd, and virito need tx some packets before forwarding any packet. 
In testpmd, you can use the following cmd:
Start tx_first 

Thanks
Changchun

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] In DPDK 1.7.1, the link status of the interface using virtio driver is always down.
  2014-12-11  8:11 ` Ouyang, Changchun
@ 2014-12-11  8:42   ` Fu, Weiyi (NSN - CN/Hangzhou)
  2014-12-11 11:41   ` Fu, Weiyi (NSN - CN/Hangzhou)
  1 sibling, 0 replies; 10+ messages in thread
From: Fu, Weiyi (NSN - CN/Hangzhou) @ 2014-12-11  8:42 UTC (permalink / raw)
  To: ext Ouyang, Changchun, dev

Hi,
The result is still the same.

[root@EIPU-0(KVMCluster) /root]
# ./testpmd  -c 3 -n 4   -- --burst=64 -i --txq=1 --rxq=1 --txqflags=0xffff
EAL: Cannot read numa node link for lcore 0 - using physical package id instead
EAL: Detected lcore 0 as core 0 on socket 0
EAL: Cannot read numa node link for lcore 1 - using physical package id instead
EAL: Detected lcore 1 as core 1 on socket 0
EAL: Cannot read numa node link for lcore 2 - using physical package id instead
EAL: Detected lcore 2 as core 2 on socket 0
EAL: Cannot read numa node link for lcore 3 - using physical package id instead
EAL: Detected lcore 3 as core 3 on socket 0
EAL: Cannot read numa node link for lcore 4 - using physical package id instead
EAL: Detected lcore 4 as core 4 on socket 0
EAL: Cannot read numa node link for lcore 5 - using physical package id instead
EAL: Detected lcore 5 as core 5 on socket 0
EAL: Cannot read numa node link for lcore 6 - using physical package id instead
EAL: Detected lcore 6 as core 6 on socket 0
EAL: Support maximum 64 logical core(s) by configuration.
EAL: Detected 7 lcore(s)
EAL: Searching for IVSHMEM devices...
EAL: No IVSHMEM configuration found!
EAL: Setting up memory...
EAL: cannot open /proc/self/numa_maps, consider that all memory is in socket_id 0
EAL: Ask a virtual area of 0x13400000 bytes
EAL: Virtual area found at 0x7fb8e2600000 (size = 0x13400000)
EAL: Ask a virtual area of 0x1f000000 bytes
EAL: Virtual area found at 0x7fb8c3400000 (size = 0x1f000000)
EAL: Ask a virtual area of 0x200000 bytes
EAL: Virtual area found at 0x7fb8c3000000 (size = 0x200000)
EAL: Ask a virtual area of 0x400000 bytes
EAL: Virtual area found at 0x7fb8c2a00000 (size = 0x400000)
EAL: Ask a virtual area of 0x200000 bytes
EAL: Virtual area found at 0x7fb8c2600000 (size = 0x200000)
EAL: Ask a virtual area of 0x200000 bytes
EAL: Virtual area found at 0x7fb8c2200000 (size = 0x200000)
EAL: Ask a virtual area of 0x400000 bytes
EAL: Virtual area found at 0x7fb8c1c00000 (size = 0x400000)
EAL: Ask a virtual area of 0x200000 bytes
EAL: Virtual area found at 0x7fb8c1800000 (size = 0x200000)
EAL: Requesting 410 pages of size 2MB from socket 0
EAL: TSC frequency is ~2792867 KHz
EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using unreliable clock cycles !
EAL: Master core 0 is ready (tid=f6998800)
EAL: Core 1 is ready (tid=c0ffe710)
EAL: PCI device 0000:00:03.0 on NUMA socket -1
EAL:   probe driver: 1af4:1000 rte_virtio_pmd
EAL:   0000:00:03.0 not managed by UIO driver, skipping
EAL: PCI device 0000:00:04.0 on NUMA socket -1
EAL:   probe driver: 1af4:1000 rte_virtio_pmd
EAL:   PCI memory mapped at 0x7fb8f6959000
PMD: eth_virtio_dev_init(): PCI Port IO found start=0xc020 with size=0x20
PMD: virtio_negotiate_features(): guest_features before negotiate = 438020
PMD: virtio_negotiate_features(): host_features before negotiate = 489f7c26
PMD: virtio_negotiate_features(): features after negotiate = 30020
PMD: eth_virtio_dev_init(): PORT MAC: FF:FF:00:00:00:00
PMD: eth_virtio_dev_init(): VIRTIO_NET_F_MQ is not supported
PMD: virtio_dev_cq_queue_setup():  >>
PMD: virtio_dev_queue_setup(): selecting queue: 2
PMD: virtio_dev_queue_setup(): vq_size: 64 nb_desc:0
PMD: virtio_dev_queue_setup(): vring_size: 4612, rounded_vring_size: 8192
PMD: virtio_dev_queue_setup(): vq->vq_ring_mem:      0x212bdd000
PMD: virtio_dev_queue_setup(): vq->vq_ring_virt_mem: 0x7fb8c31dd000
PMD: eth_virtio_dev_init(): config->max_virtqueue_pairs=1
PMD: eth_virtio_dev_init(): config->status=0
PMD: eth_virtio_dev_init(): PORT MAC: FF:FF:00:00:00:00
PMD: eth_virtio_dev_init(): hw->max_rx_queues=1   hw->max_tx_queues=1
PMD: eth_virtio_dev_init(): port 0 vendorID=0x1af4 deviceID=0x1000
EAL: PCI device 0000:00:05.0 on NUMA socket -1
EAL:   probe driver: 1af4:1000 rte_virtio_pmd
EAL:   PCI memory mapped at 0x7fb8f6958000
PMD: eth_virtio_dev_init(): PCI Port IO found start=0xc000 with size=0x20
PMD: virtio_negotiate_features(): guest_features before negotiate = 438020
PMD: virtio_negotiate_features(): host_features before negotiate = 489f7c26
PMD: virtio_negotiate_features(): features after negotiate = 30020
PMD: eth_virtio_dev_init(): PORT MAC: FF:FF:00:00:00:00
PMD: eth_virtio_dev_init(): VIRTIO_NET_F_MQ is not supported
PMD: virtio_dev_cq_queue_setup():  >>
PMD: virtio_dev_queue_setup(): selecting queue: 2
PMD: virtio_dev_queue_setup(): vq_size: 64 nb_desc:0
PMD: virtio_dev_queue_setup(): vring_size: 4612, rounded_vring_size: 8192
PMD: virtio_dev_queue_setup(): vq->vq_ring_mem:      0x212be0000
PMD: virtio_dev_queue_setup(): vq->vq_ring_virt_mem: 0x7fb8c31e0000
PMD: eth_virtio_dev_init(): config->max_virtqueue_pairs=1
PMD: eth_virtio_dev_init(): config->status=0
PMD: eth_virtio_dev_init(): PORT MAC: FF:FF:00:00:00:00
PMD: eth_virtio_dev_init(): hw->max_rx_queues=1   hw->max_tx_queues=1
PMD: eth_virtio_dev_init(): port 1 vendorID=0x1af4 deviceID=0x1000
Interactive-mode selected
Configuring Port 0 (socket 0)
PMD: virtio_dev_configure(): configure
PMD: virtio_dev_tx_queue_setup():  >>
PMD: virtio_dev_queue_setup(): selecting queue: 1
PMD: virtio_dev_queue_setup(): vq_size: 256 nb_desc:512
PMD: virtio_dev_queue_setup(): Warning: nb_desc(512) is not equal to vq size (256), fall to vq size
PMD: virtio_dev_queue_setup(): vring_size: 10244, rounded_vring_size: 12288
PMD: virtio_dev_queue_setup(): vq->vq_ring_mem:      0x212be3000
PMD: virtio_dev_queue_setup(): vq->vq_ring_virt_mem: 0x7fb8c31e3000
PMD: virtio_dev_rx_queue_setup():  >>
PMD: virtio_dev_queue_setup(): selecting queue: 0
PMD: virtio_dev_queue_setup(): vq_size: 256 nb_desc:128
PMD: virtio_dev_queue_setup(): Warning: nb_desc(128) is not equal to vq size (256), fall to vq size
PMD: virtio_dev_queue_setup(): vring_size: 10244, rounded_vring_size: 12288
PMD: virtio_dev_queue_setup(): vq->vq_ring_mem:      0x212be7000
PMD: virtio_dev_queue_setup(): vq->vq_ring_virt_mem: 0x7fb8c31e7000
PMD: virtio_dev_vring_start():  >>
PMD: virtio_dev_rxtx_start():  >>
PMD: virtio_dev_vring_start():  >>
PMD: virtio_dev_vring_start(): Allocated 256 bufs
PMD: virtio_dev_vring_start():  >>

Port: 0 Link is DOWN
PMD: virtio_dev_start(): nb_queues=1
PMD: virtio_dev_start(): Notified backend at initialization
PMD: rte_eth_dev_config_restore: port 0: MAC address array not supported
PMD: rte_eth_promiscuous_disable: Function not supported
PMD: rte_eth_allmulticast_disable: Function not supported
Port 0: FF:FF:00:00:00:00
Configuring Port 1 (socket 0)
PMD: virtio_dev_configure(): configure
PMD: virtio_dev_tx_queue_setup():  >>
PMD: virtio_dev_queue_setup(): selecting queue: 1
PMD: virtio_dev_queue_setup(): vq_size: 256 nb_desc:512
PMD: virtio_dev_queue_setup(): Warning: nb_desc(512) is not equal to vq size (256), fall to vq size
PMD: virtio_dev_queue_setup(): vring_size: 10244, rounded_vring_size: 12288
PMD: virtio_dev_queue_setup(): vq->vq_ring_mem:      0x212bea000
PMD: virtio_dev_queue_setup(): vq->vq_ring_virt_mem: 0x7fb8c31ea000
PMD: virtio_dev_rx_queue_setup():  >>
PMD: virtio_dev_queue_setup(): selecting queue: 0
PMD: virtio_dev_queue_setup(): vq_size: 256 nb_desc:128
PMD: virtio_dev_queue_setup(): Warning: nb_desc(128) is not equal to vq size (256), fall to vq size
PMD: virtio_dev_queue_setup(): vring_size: 10244, rounded_vring_size: 12288
PMD: virtio_dev_queue_setup(): vq->vq_ring_mem:      0x212bee000
PMD: virtio_dev_queue_setup(): vq->vq_ring_virt_mem: 0x7fb8c31ee000
PMD: virtio_dev_vring_start():  >>
PMD: virtio_dev_rxtx_start():  >>
PMD: virtio_dev_vring_start():  >>
PMD: virtio_dev_vring_start(): Allocated 256 bufs
PMD: virtio_dev_vring_start():  >>

Port: 1 Link is DOWN
PMD: virtio_dev_start(): nb_queues=1
PMD: virtio_dev_start(): Notified backend at initialization
PMD: rte_eth_dev_config_restore: port 1: MAC address array not supported
PMD: rte_eth_promiscuous_disable: Function not supported
PMD: rte_eth_allmulticast_disable: Function not supported
Port 1: FF:FF:00:00:00:00
Checking link statuses...
PMD: virtio_dev_link_update(): Get link status from hw
PMD: virtio_dev_link_update(): Port 0 is down
PMD: virtio_dev_link_update(): Get link status from hw
PMD: virtio_dev_link_update(): Port 0 is down
PMD: virtio_dev_link_update(): Get link status from hw
PMD: virtio_dev_link_update(): Port 0 is down
PMD: virtio_dev_link_update(): Get link status from hw
PMD: virtio_dev_link_update(): Port 0 is down
PMD: virtio_dev_link_update(): Get link status from hw
PMD: virtio_dev_link_update(): Port 0 is down
PMD: virtio_dev_link_update(): Get link status from hw
PMD: virtio_dev_link_update(): Port 0 is down
PMD: virtio_dev_link_update(): Get link status from hw
PMD: virtio_dev_link_update(): Port 0 is down
PMD: virtio_dev_link_update(): Get link status from hw
PMD: virtio_dev_link_update(): Port 0 is down
PMD: virtio_dev_link_update(): Get link status from hw
PMD: virtio_dev_link_update(): Port 0 is down
PMD: virtio_dev_link_update(): Get link status from hw
PMD: virtio_dev_link_update(): Port 0 is down
PMD: virtio_dev_link_update(): Get link status from hw
PMD: virtio_dev_link_update(): Port 0 is down
PMD: virtio_dev_link_update(): Get link status from hw
PMD: virtio_dev_link_update(): Port 0 is down
PMD: virtio_dev_link_update(): Get link status from hw
PMD: virtio_dev_link_update(): Port 0 is down
PMD: virtio_dev_link_update(): Get link status from hw
PMD: virtio_dev_link_update(): Port 0 is down

Brs,
Fu Weiyi

-----Original Message-----
From: ext Ouyang, Changchun [mailto:changchun.ouyang@intel.com] 
Sent: Thursday, December 11, 2014 4:11 PM
To: Fu, Weiyi (NSN - CN/Hangzhou); dev@dpdk.org
Cc: Ouyang, Changchun
Subject: RE: [dpdk-dev] In DPDK 1.7.1, the link status of the interface using virtio driver is always down.

Hi,

> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Fu, Weiyi (NSN -
> CN/Hangzhou)
> Sent: Thursday, December 11, 2014 3:57 PM
> To: dev@dpdk.org
> Subject: [dpdk-dev] In DPDK 1.7.1, the link status of the interface using virtio
> driver is always down.
> 
> Hi,
> We are using the l2fwd based on DPDK 1.7.1  and found out that the link
> status of the interface using virtio driver is always down.
> Is there any precondition to let the link up?
> 

Suggest you use testpmd to replace l2fwd, and virito need tx some packets before forwarding any packet. 
In testpmd, you can use the following cmd:
Start tx_first 

Thanks
Changchun

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] In DPDK 1.7.1, the link status of the interface using virtio driver is always down.
  2014-12-11  8:11 ` Ouyang, Changchun
  2014-12-11  8:42   ` Fu, Weiyi (NSN - CN/Hangzhou)
@ 2014-12-11 11:41   ` Fu, Weiyi (NSN - CN/Hangzhou)
  2014-12-11 13:41     ` Vijayakumar Muthuvel Manickam
  2014-12-12  1:00     ` Ouyang, Changchun
  1 sibling, 2 replies; 10+ messages in thread
From: Fu, Weiyi (NSN - CN/Hangzhou) @ 2014-12-11 11:41 UTC (permalink / raw)
  To: Fu, Weiyi (NSN - CN/Hangzhou), ext Ouyang, Changchun, dev

Hi Changchun,
I found you had done follow change to allow the virtio interface startup when the link is down.  Is there any scenario causing link down for virtio interface?

diff --git a/lib/librte_pmd_virtio/virtio_ethdev.c b/lib/librte_pmd_virtio/virtio_ethdev.c
index 78018f9..4bff0fe 100644
--- a/lib/librte_pmd_virtio/virtio_ethdev.c
+++ b/lib/librte_pmd_virtio/virtio_ethdev.c
@@ -1057,14 +1057,12 @@  virtio_dev_start(struct rte_eth_dev *dev)
 		vtpci_read_dev_config(hw,
 				offsetof(struct virtio_net_config, status),
 				&status, sizeof(status));
-		if ((status & VIRTIO_NET_S_LINK_UP) == 0) {
+		if ((status & VIRTIO_NET_S_LINK_UP) == 0)
 			PMD_INIT_LOG(ERR, "Port: %d Link is DOWN",
 				     dev->data->port_id);
-			return -EIO;
-		} else {
+		else
 			PMD_INIT_LOG(DEBUG, "Port: %d Link is UP",
 				     dev->data->port_id);
-		}
 	}
 	vtpci_reinit_complete(hw);



Brs,
Fu Weiyi

-----Original Message-----
From: Fu, Weiyi (NSN - CN/Hangzhou) 
Sent: Thursday, December 11, 2014 4:43 PM
To: 'ext Ouyang, Changchun'; dev@dpdk.org
Subject: RE: [dpdk-dev] In DPDK 1.7.1, the link status of the interface using virtio driver is always down.

Hi,
The result is still the same.

[root@EIPU-0(KVMCluster) /root]
# ./testpmd  -c 3 -n 4   -- --burst=64 -i --txq=1 --rxq=1 --txqflags=0xffff
EAL: Cannot read numa node link for lcore 0 - using physical package id instead
EAL: Detected lcore 0 as core 0 on socket 0
EAL: Cannot read numa node link for lcore 1 - using physical package id instead
EAL: Detected lcore 1 as core 1 on socket 0
EAL: Cannot read numa node link for lcore 2 - using physical package id instead
EAL: Detected lcore 2 as core 2 on socket 0
EAL: Cannot read numa node link for lcore 3 - using physical package id instead
EAL: Detected lcore 3 as core 3 on socket 0
EAL: Cannot read numa node link for lcore 4 - using physical package id instead
EAL: Detected lcore 4 as core 4 on socket 0
EAL: Cannot read numa node link for lcore 5 - using physical package id instead
EAL: Detected lcore 5 as core 5 on socket 0
EAL: Cannot read numa node link for lcore 6 - using physical package id instead
EAL: Detected lcore 6 as core 6 on socket 0
EAL: Support maximum 64 logical core(s) by configuration.
EAL: Detected 7 lcore(s)
EAL: Searching for IVSHMEM devices...
EAL: No IVSHMEM configuration found!
EAL: Setting up memory...
EAL: cannot open /proc/self/numa_maps, consider that all memory is in socket_id 0
EAL: Ask a virtual area of 0x13400000 bytes
EAL: Virtual area found at 0x7fb8e2600000 (size = 0x13400000)
EAL: Ask a virtual area of 0x1f000000 bytes
EAL: Virtual area found at 0x7fb8c3400000 (size = 0x1f000000)
EAL: Ask a virtual area of 0x200000 bytes
EAL: Virtual area found at 0x7fb8c3000000 (size = 0x200000)
EAL: Ask a virtual area of 0x400000 bytes
EAL: Virtual area found at 0x7fb8c2a00000 (size = 0x400000)
EAL: Ask a virtual area of 0x200000 bytes
EAL: Virtual area found at 0x7fb8c2600000 (size = 0x200000)
EAL: Ask a virtual area of 0x200000 bytes
EAL: Virtual area found at 0x7fb8c2200000 (size = 0x200000)
EAL: Ask a virtual area of 0x400000 bytes
EAL: Virtual area found at 0x7fb8c1c00000 (size = 0x400000)
EAL: Ask a virtual area of 0x200000 bytes
EAL: Virtual area found at 0x7fb8c1800000 (size = 0x200000)
EAL: Requesting 410 pages of size 2MB from socket 0
EAL: TSC frequency is ~2792867 KHz
EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using unreliable clock cycles !
EAL: Master core 0 is ready (tid=f6998800)
EAL: Core 1 is ready (tid=c0ffe710)
EAL: PCI device 0000:00:03.0 on NUMA socket -1
EAL:   probe driver: 1af4:1000 rte_virtio_pmd
EAL:   0000:00:03.0 not managed by UIO driver, skipping
EAL: PCI device 0000:00:04.0 on NUMA socket -1
EAL:   probe driver: 1af4:1000 rte_virtio_pmd
EAL:   PCI memory mapped at 0x7fb8f6959000
PMD: eth_virtio_dev_init(): PCI Port IO found start=0xc020 with size=0x20
PMD: virtio_negotiate_features(): guest_features before negotiate = 438020
PMD: virtio_negotiate_features(): host_features before negotiate = 489f7c26
PMD: virtio_negotiate_features(): features after negotiate = 30020
PMD: eth_virtio_dev_init(): PORT MAC: FF:FF:00:00:00:00
PMD: eth_virtio_dev_init(): VIRTIO_NET_F_MQ is not supported
PMD: virtio_dev_cq_queue_setup():  >>
PMD: virtio_dev_queue_setup(): selecting queue: 2
PMD: virtio_dev_queue_setup(): vq_size: 64 nb_desc:0
PMD: virtio_dev_queue_setup(): vring_size: 4612, rounded_vring_size: 8192
PMD: virtio_dev_queue_setup(): vq->vq_ring_mem:      0x212bdd000
PMD: virtio_dev_queue_setup(): vq->vq_ring_virt_mem: 0x7fb8c31dd000
PMD: eth_virtio_dev_init(): config->max_virtqueue_pairs=1
PMD: eth_virtio_dev_init(): config->status=0
PMD: eth_virtio_dev_init(): PORT MAC: FF:FF:00:00:00:00
PMD: eth_virtio_dev_init(): hw->max_rx_queues=1   hw->max_tx_queues=1
PMD: eth_virtio_dev_init(): port 0 vendorID=0x1af4 deviceID=0x1000
EAL: PCI device 0000:00:05.0 on NUMA socket -1
EAL:   probe driver: 1af4:1000 rte_virtio_pmd
EAL:   PCI memory mapped at 0x7fb8f6958000
PMD: eth_virtio_dev_init(): PCI Port IO found start=0xc000 with size=0x20
PMD: virtio_negotiate_features(): guest_features before negotiate = 438020
PMD: virtio_negotiate_features(): host_features before negotiate = 489f7c26
PMD: virtio_negotiate_features(): features after negotiate = 30020
PMD: eth_virtio_dev_init(): PORT MAC: FF:FF:00:00:00:00
PMD: eth_virtio_dev_init(): VIRTIO_NET_F_MQ is not supported
PMD: virtio_dev_cq_queue_setup():  >>
PMD: virtio_dev_queue_setup(): selecting queue: 2
PMD: virtio_dev_queue_setup(): vq_size: 64 nb_desc:0
PMD: virtio_dev_queue_setup(): vring_size: 4612, rounded_vring_size: 8192
PMD: virtio_dev_queue_setup(): vq->vq_ring_mem:      0x212be0000
PMD: virtio_dev_queue_setup(): vq->vq_ring_virt_mem: 0x7fb8c31e0000
PMD: eth_virtio_dev_init(): config->max_virtqueue_pairs=1
PMD: eth_virtio_dev_init(): config->status=0
PMD: eth_virtio_dev_init(): PORT MAC: FF:FF:00:00:00:00
PMD: eth_virtio_dev_init(): hw->max_rx_queues=1   hw->max_tx_queues=1
PMD: eth_virtio_dev_init(): port 1 vendorID=0x1af4 deviceID=0x1000
Interactive-mode selected
Configuring Port 0 (socket 0)
PMD: virtio_dev_configure(): configure
PMD: virtio_dev_tx_queue_setup():  >>
PMD: virtio_dev_queue_setup(): selecting queue: 1
PMD: virtio_dev_queue_setup(): vq_size: 256 nb_desc:512
PMD: virtio_dev_queue_setup(): Warning: nb_desc(512) is not equal to vq size (256), fall to vq size
PMD: virtio_dev_queue_setup(): vring_size: 10244, rounded_vring_size: 12288
PMD: virtio_dev_queue_setup(): vq->vq_ring_mem:      0x212be3000
PMD: virtio_dev_queue_setup(): vq->vq_ring_virt_mem: 0x7fb8c31e3000
PMD: virtio_dev_rx_queue_setup():  >>
PMD: virtio_dev_queue_setup(): selecting queue: 0
PMD: virtio_dev_queue_setup(): vq_size: 256 nb_desc:128
PMD: virtio_dev_queue_setup(): Warning: nb_desc(128) is not equal to vq size (256), fall to vq size
PMD: virtio_dev_queue_setup(): vring_size: 10244, rounded_vring_size: 12288
PMD: virtio_dev_queue_setup(): vq->vq_ring_mem:      0x212be7000
PMD: virtio_dev_queue_setup(): vq->vq_ring_virt_mem: 0x7fb8c31e7000
PMD: virtio_dev_vring_start():  >>
PMD: virtio_dev_rxtx_start():  >>
PMD: virtio_dev_vring_start():  >>
PMD: virtio_dev_vring_start(): Allocated 256 bufs
PMD: virtio_dev_vring_start():  >>

Port: 0 Link is DOWN
PMD: virtio_dev_start(): nb_queues=1
PMD: virtio_dev_start(): Notified backend at initialization
PMD: rte_eth_dev_config_restore: port 0: MAC address array not supported
PMD: rte_eth_promiscuous_disable: Function not supported
PMD: rte_eth_allmulticast_disable: Function not supported
Port 0: FF:FF:00:00:00:00
Configuring Port 1 (socket 0)
PMD: virtio_dev_configure(): configure
PMD: virtio_dev_tx_queue_setup():  >>
PMD: virtio_dev_queue_setup(): selecting queue: 1
PMD: virtio_dev_queue_setup(): vq_size: 256 nb_desc:512
PMD: virtio_dev_queue_setup(): Warning: nb_desc(512) is not equal to vq size (256), fall to vq size
PMD: virtio_dev_queue_setup(): vring_size: 10244, rounded_vring_size: 12288
PMD: virtio_dev_queue_setup(): vq->vq_ring_mem:      0x212bea000
PMD: virtio_dev_queue_setup(): vq->vq_ring_virt_mem: 0x7fb8c31ea000
PMD: virtio_dev_rx_queue_setup():  >>
PMD: virtio_dev_queue_setup(): selecting queue: 0
PMD: virtio_dev_queue_setup(): vq_size: 256 nb_desc:128
PMD: virtio_dev_queue_setup(): Warning: nb_desc(128) is not equal to vq size (256), fall to vq size
PMD: virtio_dev_queue_setup(): vring_size: 10244, rounded_vring_size: 12288
PMD: virtio_dev_queue_setup(): vq->vq_ring_mem:      0x212bee000
PMD: virtio_dev_queue_setup(): vq->vq_ring_virt_mem: 0x7fb8c31ee000
PMD: virtio_dev_vring_start():  >>
PMD: virtio_dev_rxtx_start():  >>
PMD: virtio_dev_vring_start():  >>
PMD: virtio_dev_vring_start(): Allocated 256 bufs
PMD: virtio_dev_vring_start():  >>

Port: 1 Link is DOWN
PMD: virtio_dev_start(): nb_queues=1
PMD: virtio_dev_start(): Notified backend at initialization
PMD: rte_eth_dev_config_restore: port 1: MAC address array not supported
PMD: rte_eth_promiscuous_disable: Function not supported
PMD: rte_eth_allmulticast_disable: Function not supported
Port 1: FF:FF:00:00:00:00
Checking link statuses...
PMD: virtio_dev_link_update(): Get link status from hw
PMD: virtio_dev_link_update(): Port 0 is down
PMD: virtio_dev_link_update(): Get link status from hw
PMD: virtio_dev_link_update(): Port 0 is down
PMD: virtio_dev_link_update(): Get link status from hw
PMD: virtio_dev_link_update(): Port 0 is down
PMD: virtio_dev_link_update(): Get link status from hw
PMD: virtio_dev_link_update(): Port 0 is down
PMD: virtio_dev_link_update(): Get link status from hw
PMD: virtio_dev_link_update(): Port 0 is down
PMD: virtio_dev_link_update(): Get link status from hw
PMD: virtio_dev_link_update(): Port 0 is down
PMD: virtio_dev_link_update(): Get link status from hw
PMD: virtio_dev_link_update(): Port 0 is down
PMD: virtio_dev_link_update(): Get link status from hw
PMD: virtio_dev_link_update(): Port 0 is down
PMD: virtio_dev_link_update(): Get link status from hw
PMD: virtio_dev_link_update(): Port 0 is down
PMD: virtio_dev_link_update(): Get link status from hw
PMD: virtio_dev_link_update(): Port 0 is down
PMD: virtio_dev_link_update(): Get link status from hw
PMD: virtio_dev_link_update(): Port 0 is down
PMD: virtio_dev_link_update(): Get link status from hw
PMD: virtio_dev_link_update(): Port 0 is down
PMD: virtio_dev_link_update(): Get link status from hw
PMD: virtio_dev_link_update(): Port 0 is down
PMD: virtio_dev_link_update(): Get link status from hw
PMD: virtio_dev_link_update(): Port 0 is down

Brs,
Fu Weiyi

-----Original Message-----
From: ext Ouyang, Changchun [mailto:changchun.ouyang@intel.com] 
Sent: Thursday, December 11, 2014 4:11 PM
To: Fu, Weiyi (NSN - CN/Hangzhou); dev@dpdk.org
Cc: Ouyang, Changchun
Subject: RE: [dpdk-dev] In DPDK 1.7.1, the link status of the interface using virtio driver is always down.

Hi,

> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Fu, Weiyi (NSN -
> CN/Hangzhou)
> Sent: Thursday, December 11, 2014 3:57 PM
> To: dev@dpdk.org
> Subject: [dpdk-dev] In DPDK 1.7.1, the link status of the interface using virtio
> driver is always down.
> 
> Hi,
> We are using the l2fwd based on DPDK 1.7.1  and found out that the link
> status of the interface using virtio driver is always down.
> Is there any precondition to let the link up?
> 

Suggest you use testpmd to replace l2fwd, and virito need tx some packets before forwarding any packet. 
In testpmd, you can use the following cmd:
Start tx_first 

Thanks
Changchun

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] In DPDK 1.7.1, the link status of the interface using virtio driver is always down.
  2014-12-11 11:41   ` Fu, Weiyi (NSN - CN/Hangzhou)
@ 2014-12-11 13:41     ` Vijayakumar Muthuvel Manickam
  2014-12-12  1:00     ` Ouyang, Changchun
  1 sibling, 0 replies; 10+ messages in thread
From: Vijayakumar Muthuvel Manickam @ 2014-12-11 13:41 UTC (permalink / raw)
  To: Fu, Weiyi (NSN - CN/Hangzhou); +Cc: dev

Hi,

I have seen this issue happen on older kernels like 2.6.32-220.el6.x86_64
while it works with no issues on a recent kernel like 3.10.x.

Further, I found this issue was happening due to
/sys/bus/pci/devices/<virtio_nic_dev>/msi_irqs dir not being enumerated in
older kernels resulting in
hw->use_msix=0. This causes VIRTIO_PCI_CONFIG() offset to change and hence
the Link status issue shows up.

Setting hw->use_msix=1 helped me get past this issue on
2.6.32-220.el6.x86_64

Thanks,
Vijay

On Thu, Dec 11, 2014 at 3:41 AM, Fu, Weiyi (NSN - CN/Hangzhou) <
weiyi.fu@nsn.com> wrote:

> Hi Changchun,
> I found you had done follow change to allow the virtio interface startup
> when the link is down.  Is there any scenario causing link down for virtio
> interface?
>
> diff --git a/lib/librte_pmd_virtio/virtio_ethdev.c
> b/lib/librte_pmd_virtio/virtio_ethdev.c
> index 78018f9..4bff0fe 100644
> --- a/lib/librte_pmd_virtio/virtio_ethdev.c
> +++ b/lib/librte_pmd_virtio/virtio_ethdev.c
> @@ -1057,14 +1057,12 @@  virtio_dev_start(struct rte_eth_dev *dev)
>                 vtpci_read_dev_config(hw,
>                                 offsetof(struct virtio_net_config, status),
>                                 &status, sizeof(status));
> -               if ((status & VIRTIO_NET_S_LINK_UP) == 0) {
> +               if ((status & VIRTIO_NET_S_LINK_UP) == 0)
>                         PMD_INIT_LOG(ERR, "Port: %d Link is DOWN",
>                                      dev->data->port_id);
> -                       return -EIO;
> -               } else {
> +               else
>                         PMD_INIT_LOG(DEBUG, "Port: %d Link is UP",
>                                      dev->data->port_id);
> -               }
>         }
>         vtpci_reinit_complete(hw);
>
>
>
> Brs,
> Fu Weiyi
>
> -----Original Message-----
> From: Fu, Weiyi (NSN - CN/Hangzhou)
> Sent: Thursday, December 11, 2014 4:43 PM
> To: 'ext Ouyang, Changchun'; dev@dpdk.org
> Subject: RE: [dpdk-dev] In DPDK 1.7.1, the link status of the interface
> using virtio driver is always down.
>
> Hi,
> The result is still the same.
>
> [root@EIPU-0(KVMCluster) /root]
> # ./testpmd  -c 3 -n 4   -- --burst=64 -i --txq=1 --rxq=1 --txqflags=0xffff
> EAL: Cannot read numa node link for lcore 0 - using physical package id
> instead
> EAL: Detected lcore 0 as core 0 on socket 0
> EAL: Cannot read numa node link for lcore 1 - using physical package id
> instead
> EAL: Detected lcore 1 as core 1 on socket 0
> EAL: Cannot read numa node link for lcore 2 - using physical package id
> instead
> EAL: Detected lcore 2 as core 2 on socket 0
> EAL: Cannot read numa node link for lcore 3 - using physical package id
> instead
> EAL: Detected lcore 3 as core 3 on socket 0
> EAL: Cannot read numa node link for lcore 4 - using physical package id
> instead
> EAL: Detected lcore 4 as core 4 on socket 0
> EAL: Cannot read numa node link for lcore 5 - using physical package id
> instead
> EAL: Detected lcore 5 as core 5 on socket 0
> EAL: Cannot read numa node link for lcore 6 - using physical package id
> instead
> EAL: Detected lcore 6 as core 6 on socket 0
> EAL: Support maximum 64 logical core(s) by configuration.
> EAL: Detected 7 lcore(s)
> EAL: Searching for IVSHMEM devices...
> EAL: No IVSHMEM configuration found!
> EAL: Setting up memory...
> EAL: cannot open /proc/self/numa_maps, consider that all memory is in
> socket_id 0
> EAL: Ask a virtual area of 0x13400000 bytes
> EAL: Virtual area found at 0x7fb8e2600000 (size = 0x13400000)
> EAL: Ask a virtual area of 0x1f000000 bytes
> EAL: Virtual area found at 0x7fb8c3400000 (size = 0x1f000000)
> EAL: Ask a virtual area of 0x200000 bytes
> EAL: Virtual area found at 0x7fb8c3000000 (size = 0x200000)
> EAL: Ask a virtual area of 0x400000 bytes
> EAL: Virtual area found at 0x7fb8c2a00000 (size = 0x400000)
> EAL: Ask a virtual area of 0x200000 bytes
> EAL: Virtual area found at 0x7fb8c2600000 (size = 0x200000)
> EAL: Ask a virtual area of 0x200000 bytes
> EAL: Virtual area found at 0x7fb8c2200000 (size = 0x200000)
> EAL: Ask a virtual area of 0x400000 bytes
> EAL: Virtual area found at 0x7fb8c1c00000 (size = 0x400000)
> EAL: Ask a virtual area of 0x200000 bytes
> EAL: Virtual area found at 0x7fb8c1800000 (size = 0x200000)
> EAL: Requesting 410 pages of size 2MB from socket 0
> EAL: TSC frequency is ~2792867 KHz
> EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using
> unreliable clock cycles !
> EAL: Master core 0 is ready (tid=f6998800)
> EAL: Core 1 is ready (tid=c0ffe710)
> EAL: PCI device 0000:00:03.0 on NUMA socket -1
> EAL:   probe driver: 1af4:1000 rte_virtio_pmd
> EAL:   0000:00:03.0 not managed by UIO driver, skipping
> EAL: PCI device 0000:00:04.0 on NUMA socket -1
> EAL:   probe driver: 1af4:1000 rte_virtio_pmd
> EAL:   PCI memory mapped at 0x7fb8f6959000
> PMD: eth_virtio_dev_init(): PCI Port IO found start=0xc020 with size=0x20
> PMD: virtio_negotiate_features(): guest_features before negotiate = 438020
> PMD: virtio_negotiate_features(): host_features before negotiate = 489f7c26
> PMD: virtio_negotiate_features(): features after negotiate = 30020
> PMD: eth_virtio_dev_init(): PORT MAC: FF:FF:00:00:00:00
> PMD: eth_virtio_dev_init(): VIRTIO_NET_F_MQ is not supported
> PMD: virtio_dev_cq_queue_setup():  >>
> PMD: virtio_dev_queue_setup(): selecting queue: 2
> PMD: virtio_dev_queue_setup(): vq_size: 64 nb_desc:0
> PMD: virtio_dev_queue_setup(): vring_size: 4612, rounded_vring_size: 8192
> PMD: virtio_dev_queue_setup(): vq->vq_ring_mem:      0x212bdd000
> PMD: virtio_dev_queue_setup(): vq->vq_ring_virt_mem: 0x7fb8c31dd000
> PMD: eth_virtio_dev_init(): config->max_virtqueue_pairs=1
> PMD: eth_virtio_dev_init(): config->status=0
> PMD: eth_virtio_dev_init(): PORT MAC: FF:FF:00:00:00:00
> PMD: eth_virtio_dev_init(): hw->max_rx_queues=1   hw->max_tx_queues=1
> PMD: eth_virtio_dev_init(): port 0 vendorID=0x1af4 deviceID=0x1000
> EAL: PCI device 0000:00:05.0 on NUMA socket -1
> EAL:   probe driver: 1af4:1000 rte_virtio_pmd
> EAL:   PCI memory mapped at 0x7fb8f6958000
> PMD: eth_virtio_dev_init(): PCI Port IO found start=0xc000 with size=0x20
> PMD: virtio_negotiate_features(): guest_features before negotiate = 438020
> PMD: virtio_negotiate_features(): host_features before negotiate = 489f7c26
> PMD: virtio_negotiate_features(): features after negotiate = 30020
> PMD: eth_virtio_dev_init(): PORT MAC: FF:FF:00:00:00:00
> PMD: eth_virtio_dev_init(): VIRTIO_NET_F_MQ is not supported
> PMD: virtio_dev_cq_queue_setup():  >>
> PMD: virtio_dev_queue_setup(): selecting queue: 2
> PMD: virtio_dev_queue_setup(): vq_size: 64 nb_desc:0
> PMD: virtio_dev_queue_setup(): vring_size: 4612, rounded_vring_size: 8192
> PMD: virtio_dev_queue_setup(): vq->vq_ring_mem:      0x212be0000
> PMD: virtio_dev_queue_setup(): vq->vq_ring_virt_mem: 0x7fb8c31e0000
> PMD: eth_virtio_dev_init(): config->max_virtqueue_pairs=1
> PMD: eth_virtio_dev_init(): config->status=0
> PMD: eth_virtio_dev_init(): PORT MAC: FF:FF:00:00:00:00
> PMD: eth_virtio_dev_init(): hw->max_rx_queues=1   hw->max_tx_queues=1
> PMD: eth_virtio_dev_init(): port 1 vendorID=0x1af4 deviceID=0x1000
> Interactive-mode selected
> Configuring Port 0 (socket 0)
> PMD: virtio_dev_configure(): configure
> PMD: virtio_dev_tx_queue_setup():  >>
> PMD: virtio_dev_queue_setup(): selecting queue: 1
> PMD: virtio_dev_queue_setup(): vq_size: 256 nb_desc:512
> PMD: virtio_dev_queue_setup(): Warning: nb_desc(512) is not equal to vq
> size (256), fall to vq size
> PMD: virtio_dev_queue_setup(): vring_size: 10244, rounded_vring_size: 12288
> PMD: virtio_dev_queue_setup(): vq->vq_ring_mem:      0x212be3000
> PMD: virtio_dev_queue_setup(): vq->vq_ring_virt_mem: 0x7fb8c31e3000
> PMD: virtio_dev_rx_queue_setup():  >>
> PMD: virtio_dev_queue_setup(): selecting queue: 0
> PMD: virtio_dev_queue_setup(): vq_size: 256 nb_desc:128
> PMD: virtio_dev_queue_setup(): Warning: nb_desc(128) is not equal to vq
> size (256), fall to vq size
> PMD: virtio_dev_queue_setup(): vring_size: 10244, rounded_vring_size: 12288
> PMD: virtio_dev_queue_setup(): vq->vq_ring_mem:      0x212be7000
> PMD: virtio_dev_queue_setup(): vq->vq_ring_virt_mem: 0x7fb8c31e7000
> PMD: virtio_dev_vring_start():  >>
> PMD: virtio_dev_rxtx_start():  >>
> PMD: virtio_dev_vring_start():  >>
> PMD: virtio_dev_vring_start(): Allocated 256 bufs
> PMD: virtio_dev_vring_start():  >>
>
> Port: 0 Link is DOWN
> PMD: virtio_dev_start(): nb_queues=1
> PMD: virtio_dev_start(): Notified backend at initialization
> PMD: rte_eth_dev_config_restore: port 0: MAC address array not supported
> PMD: rte_eth_promiscuous_disable: Function not supported
> PMD: rte_eth_allmulticast_disable: Function not supported
> Port 0: FF:FF:00:00:00:00
> Configuring Port 1 (socket 0)
> PMD: virtio_dev_configure(): configure
> PMD: virtio_dev_tx_queue_setup():  >>
> PMD: virtio_dev_queue_setup(): selecting queue: 1
> PMD: virtio_dev_queue_setup(): vq_size: 256 nb_desc:512
> PMD: virtio_dev_queue_setup(): Warning: nb_desc(512) is not equal to vq
> size (256), fall to vq size
> PMD: virtio_dev_queue_setup(): vring_size: 10244, rounded_vring_size: 12288
> PMD: virtio_dev_queue_setup(): vq->vq_ring_mem:      0x212bea000
> PMD: virtio_dev_queue_setup(): vq->vq_ring_virt_mem: 0x7fb8c31ea000
> PMD: virtio_dev_rx_queue_setup():  >>
> PMD: virtio_dev_queue_setup(): selecting queue: 0
> PMD: virtio_dev_queue_setup(): vq_size: 256 nb_desc:128
> PMD: virtio_dev_queue_setup(): Warning: nb_desc(128) is not equal to vq
> size (256), fall to vq size
> PMD: virtio_dev_queue_setup(): vring_size: 10244, rounded_vring_size: 12288
> PMD: virtio_dev_queue_setup(): vq->vq_ring_mem:      0x212bee000
> PMD: virtio_dev_queue_setup(): vq->vq_ring_virt_mem: 0x7fb8c31ee000
> PMD: virtio_dev_vring_start():  >>
> PMD: virtio_dev_rxtx_start():  >>
> PMD: virtio_dev_vring_start():  >>
> PMD: virtio_dev_vring_start(): Allocated 256 bufs
> PMD: virtio_dev_vring_start():  >>
>
> Port: 1 Link is DOWN
> PMD: virtio_dev_start(): nb_queues=1
> PMD: virtio_dev_start(): Notified backend at initialization
> PMD: rte_eth_dev_config_restore: port 1: MAC address array not supported
> PMD: rte_eth_promiscuous_disable: Function not supported
> PMD: rte_eth_allmulticast_disable: Function not supported
> Port 1: FF:FF:00:00:00:00
> Checking link statuses...
> PMD: virtio_dev_link_update(): Get link status from hw
> PMD: virtio_dev_link_update(): Port 0 is down
> PMD: virtio_dev_link_update(): Get link status from hw
> PMD: virtio_dev_link_update(): Port 0 is down
> PMD: virtio_dev_link_update(): Get link status from hw
> PMD: virtio_dev_link_update(): Port 0 is down
> PMD: virtio_dev_link_update(): Get link status from hw
> PMD: virtio_dev_link_update(): Port 0 is down
> PMD: virtio_dev_link_update(): Get link status from hw
> PMD: virtio_dev_link_update(): Port 0 is down
> PMD: virtio_dev_link_update(): Get link status from hw
> PMD: virtio_dev_link_update(): Port 0 is down
> PMD: virtio_dev_link_update(): Get link status from hw
> PMD: virtio_dev_link_update(): Port 0 is down
> PMD: virtio_dev_link_update(): Get link status from hw
> PMD: virtio_dev_link_update(): Port 0 is down
> PMD: virtio_dev_link_update(): Get link status from hw
> PMD: virtio_dev_link_update(): Port 0 is down
> PMD: virtio_dev_link_update(): Get link status from hw
> PMD: virtio_dev_link_update(): Port 0 is down
> PMD: virtio_dev_link_update(): Get link status from hw
> PMD: virtio_dev_link_update(): Port 0 is down
> PMD: virtio_dev_link_update(): Get link status from hw
> PMD: virtio_dev_link_update(): Port 0 is down
> PMD: virtio_dev_link_update(): Get link status from hw
> PMD: virtio_dev_link_update(): Port 0 is down
> PMD: virtio_dev_link_update(): Get link status from hw
> PMD: virtio_dev_link_update(): Port 0 is down
>
> Brs,
> Fu Weiyi
>
> -----Original Message-----
> From: ext Ouyang, Changchun [mailto:changchun.ouyang@intel.com]
> Sent: Thursday, December 11, 2014 4:11 PM
> To: Fu, Weiyi (NSN - CN/Hangzhou); dev@dpdk.org
> Cc: Ouyang, Changchun
> Subject: RE: [dpdk-dev] In DPDK 1.7.1, the link status of the interface
> using virtio driver is always down.
>
> Hi,
>
> > -----Original Message-----
> > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Fu, Weiyi (NSN -
> > CN/Hangzhou)
> > Sent: Thursday, December 11, 2014 3:57 PM
> > To: dev@dpdk.org
> > Subject: [dpdk-dev] In DPDK 1.7.1, the link status of the interface
> using virtio
> > driver is always down.
> >
> > Hi,
> > We are using the l2fwd based on DPDK 1.7.1  and found out that the link
> > status of the interface using virtio driver is always down.
> > Is there any precondition to let the link up?
> >
>
> Suggest you use testpmd to replace l2fwd, and virito need tx some packets
> before forwarding any packet.
> In testpmd, you can use the following cmd:
> Start tx_first
>
> Thanks
> Changchun
>
>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] In DPDK 1.7.1, the link status of the interface using virtio driver is always down.
  2014-12-11 11:41   ` Fu, Weiyi (NSN - CN/Hangzhou)
  2014-12-11 13:41     ` Vijayakumar Muthuvel Manickam
@ 2014-12-12  1:00     ` Ouyang, Changchun
  2014-12-12  1:57       ` Fu, Weiyi (NSN - CN/Hangzhou)
  2014-12-15  2:55       ` Fu, Weiyi (NSN - CN/Hangzhou)
  1 sibling, 2 replies; 10+ messages in thread
From: Ouyang, Changchun @ 2014-12-12  1:00 UTC (permalink / raw)
  To: Fu, Weiyi (NSN - CN/Hangzhou), dev

Hi 

> -----Original Message-----
> From: Fu, Weiyi (NSN - CN/Hangzhou) [mailto:weiyi.fu@nsn.com]
> Sent: Thursday, December 11, 2014 7:42 PM
> To: Fu, Weiyi (NSN - CN/Hangzhou); Ouyang, Changchun; dev@dpdk.org
> Subject: RE: [dpdk-dev] In DPDK 1.7.1, the link status of the interface using
> virtio driver is always down.
> 
> Hi Changchun,
> I found you had done follow change to allow the virtio interface startup
> when the link is down.  Is there any scenario causing link down for virtio
> interface?
> 
Not really in my environment, those codes are RFC codes from Brocade,
Not merged into mainline yet. 

You can apply this patch and ignore the link state to see if rx and tx still works.

Thanks
Changchun

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] In DPDK 1.7.1, the link status of the interface using virtio driver is always down.
  2014-12-12  1:00     ` Ouyang, Changchun
@ 2014-12-12  1:57       ` Fu, Weiyi (NSN - CN/Hangzhou)
  2014-12-15  2:55       ` Fu, Weiyi (NSN - CN/Hangzhou)
  1 sibling, 0 replies; 10+ messages in thread
From: Fu, Weiyi (NSN - CN/Hangzhou) @ 2014-12-12  1:57 UTC (permalink / raw)
  To: ext Ouyang, Changchun, dev

Hi,
I have ingnored the link status. Rx and tx can't work.
I will try the methods Vijay suggested to have a try. Thanks! 

Brs,
Fu Weiyi

-----Original Message-----
From: ext Ouyang, Changchun [mailto:changchun.ouyang@intel.com] 
Sent: Friday, December 12, 2014 9:00 AM
To: Fu, Weiyi (NSN - CN/Hangzhou); dev@dpdk.org
Cc: Ouyang, Changchun
Subject: RE: [dpdk-dev] In DPDK 1.7.1, the link status of the interface using virtio driver is always down.

Hi 

> -----Original Message-----
> From: Fu, Weiyi (NSN - CN/Hangzhou) [mailto:weiyi.fu@nsn.com]
> Sent: Thursday, December 11, 2014 7:42 PM
> To: Fu, Weiyi (NSN - CN/Hangzhou); Ouyang, Changchun; dev@dpdk.org
> Subject: RE: [dpdk-dev] In DPDK 1.7.1, the link status of the interface using
> virtio driver is always down.
> 
> Hi Changchun,
> I found you had done follow change to allow the virtio interface startup
> when the link is down.  Is there any scenario causing link down for virtio
> interface?
> 
Not really in my environment, those codes are RFC codes from Brocade,
Not merged into mainline yet. 

You can apply this patch and ignore the link state to see if rx and tx still works.

Thanks
Changchun

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] In DPDK 1.7.1, the link status of the interface using virtio driver is always down.
  2014-12-12  1:00     ` Ouyang, Changchun
  2014-12-12  1:57       ` Fu, Weiyi (NSN - CN/Hangzhou)
@ 2014-12-15  2:55       ` Fu, Weiyi (NSN - CN/Hangzhou)
  2014-12-15  3:25         ` Ouyang, Changchun
  1 sibling, 1 reply; 10+ messages in thread
From: Fu, Weiyi (NSN - CN/Hangzhou) @ 2014-12-15  2:55 UTC (permalink / raw)
  To: Fu, Weiyi (NSN - CN/Hangzhou), ext Ouyang, Changchun, dev

Hi,
With follow changes, the link is UP and interface can receive and send traffic. Thanks a lot:)

diff --git a/lib/librte_pmd_virtio/virtio_ethdev.c b/lib/librte_pmd_virtio/virtio_ethdev.c
index 3344ffb..43d1c19 100644
--- a/lib/librte_pmd_virtio/virtio_ethdev.c
+++ b/lib/librte_pmd_virtio/virtio_ethdev.c
@@ -784,6 +784,7 @@ eth_virtio_dev_init(__rte_unused struct eth_driver *eth_drv,
        }
 #endif
        hw->use_msix = virtio_has_msix(&pci_dev->addr);
+       hw->use_msix  = 1;
        hw->io_base = (uint32_t)(uintptr_t)pci_dev->mem_resource[0].addr;

        /* Reset the device although not necessary at startup */

Brs,
Fu Weiyi

-----Original Message-----
From: Fu, Weiyi (NSN - CN/Hangzhou) 
Sent: Friday, December 12, 2014 9:57 AM
To: 'ext Ouyang, Changchun'; dev@dpdk.org
Cc: 'mmvijay@gmail.com'
Subject: RE: [dpdk-dev] In DPDK 1.7.1, the link status of the interface using virtio driver is always down.

Hi,
I have ingnored the link status. Rx and tx can't work.
I will try the methods Vijay suggested to have a try. Thanks! 

Brs,
Fu Weiyi

-----Original Message-----
From: ext Ouyang, Changchun [mailto:changchun.ouyang@intel.com] 
Sent: Friday, December 12, 2014 9:00 AM
To: Fu, Weiyi (NSN - CN/Hangzhou); dev@dpdk.org
Cc: Ouyang, Changchun
Subject: RE: [dpdk-dev] In DPDK 1.7.1, the link status of the interface using virtio driver is always down.

Hi 

> -----Original Message-----
> From: Fu, Weiyi (NSN - CN/Hangzhou) [mailto:weiyi.fu@nsn.com]
> Sent: Thursday, December 11, 2014 7:42 PM
> To: Fu, Weiyi (NSN - CN/Hangzhou); Ouyang, Changchun; dev@dpdk.org
> Subject: RE: [dpdk-dev] In DPDK 1.7.1, the link status of the interface using
> virtio driver is always down.
> 
> Hi Changchun,
> I found you had done follow change to allow the virtio interface startup
> when the link is down.  Is there any scenario causing link down for virtio
> interface?
> 
Not really in my environment, those codes are RFC codes from Brocade,
Not merged into mainline yet. 

You can apply this patch and ignore the link state to see if rx and tx still works.

Thanks
Changchun

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] In DPDK 1.7.1, the link status of the interface using virtio driver is always down.
  2014-12-15  2:55       ` Fu, Weiyi (NSN - CN/Hangzhou)
@ 2014-12-15  3:25         ` Ouyang, Changchun
  2014-12-15  7:00           ` Fu, Weiyi (NSN - CN/Hangzhou)
  0 siblings, 1 reply; 10+ messages in thread
From: Ouyang, Changchun @ 2014-12-15  3:25 UTC (permalink / raw)
  To: Fu, Weiyi (NSN - CN/Hangzhou), dev

Hi Weiyi,
Thanks for updating.

> -----Original Message-----
> From: Fu, Weiyi (NSN - CN/Hangzhou) [mailto:weiyi.fu@nsn.com]
> Sent: Monday, December 15, 2014 10:56 AM
> To: Fu, Weiyi (NSN - CN/Hangzhou); Ouyang, Changchun; dev@dpdk.org
> Cc: mmvijay@gmail.com
> Subject: RE: [dpdk-dev] In DPDK 1.7.1, the link status of the interface using
> virtio driver is always down.
> 
> Hi,
> With follow changes, the link is UP and interface can receive and send traffic.
> Thanks a lot:)
> 
> diff --git a/lib/librte_pmd_virtio/virtio_ethdev.c
> b/lib/librte_pmd_virtio/virtio_ethdev.c
> index 3344ffb..43d1c19 100644
> --- a/lib/librte_pmd_virtio/virtio_ethdev.c
> +++ b/lib/librte_pmd_virtio/virtio_ethdev.c
> @@ -784,6 +784,7 @@ eth_virtio_dev_init(__rte_unused struct eth_driver
> *eth_drv,
>         }
>  #endif
>         hw->use_msix = virtio_has_msix(&pci_dev->addr);
> +       hw->use_msix  = 1;

Use constant is not a good fix, maybe you can have a solid fix for this,
Check how it can find the msix information on your environment, and then
You may change some codes inside function virtio_has_msix to let it also
Work in your environment even without " hw->use_msix  = 1".

Thanks
Changchun

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] In DPDK 1.7.1, the link status of the interface using virtio driver is always down.
  2014-12-15  3:25         ` Ouyang, Changchun
@ 2014-12-15  7:00           ` Fu, Weiyi (NSN - CN/Hangzhou)
  0 siblings, 0 replies; 10+ messages in thread
From: Fu, Weiyi (NSN - CN/Hangzhou) @ 2014-12-15  7:00 UTC (permalink / raw)
  To: ext Ouyang, Changchun, dev

Hi Changchun,
Yes, we are trying add some startup parameter when we create VM. But unfortunately our Guest OS kernel version is too low, it can't work.

# uname -r
2.6.34.13-WR4.3.fp_x86_64_standard-00027-g76285ab
 

Brs,
Fu Weiyi

-----Original Message-----
From: ext Ouyang, Changchun [mailto:changchun.ouyang@intel.com] 
Sent: Monday, December 15, 2014 11:25 AM
To: Fu, Weiyi (NSN - CN/Hangzhou); dev@dpdk.org
Cc: mmvijay@gmail.com; Ouyang, Changchun
Subject: RE: [dpdk-dev] In DPDK 1.7.1, the link status of the interface using virtio driver is always down.

Hi Weiyi,
Thanks for updating.

> -----Original Message-----
> From: Fu, Weiyi (NSN - CN/Hangzhou) [mailto:weiyi.fu@nsn.com]
> Sent: Monday, December 15, 2014 10:56 AM
> To: Fu, Weiyi (NSN - CN/Hangzhou); Ouyang, Changchun; dev@dpdk.org
> Cc: mmvijay@gmail.com
> Subject: RE: [dpdk-dev] In DPDK 1.7.1, the link status of the interface using
> virtio driver is always down.
> 
> Hi,
> With follow changes, the link is UP and interface can receive and send traffic.
> Thanks a lot:)
> 
> diff --git a/lib/librte_pmd_virtio/virtio_ethdev.c
> b/lib/librte_pmd_virtio/virtio_ethdev.c
> index 3344ffb..43d1c19 100644
> --- a/lib/librte_pmd_virtio/virtio_ethdev.c
> +++ b/lib/librte_pmd_virtio/virtio_ethdev.c
> @@ -784,6 +784,7 @@ eth_virtio_dev_init(__rte_unused struct eth_driver
> *eth_drv,
>         }
>  #endif
>         hw->use_msix = virtio_has_msix(&pci_dev->addr);
> +       hw->use_msix  = 1;

Use constant is not a good fix, maybe you can have a solid fix for this,
Check how it can find the msix information on your environment, and then
You may change some codes inside function virtio_has_msix to let it also
Work in your environment even without " hw->use_msix  = 1".

Thanks
Changchun

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2014-12-15  7:01 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-12-11  7:57 [dpdk-dev] In DPDK 1.7.1, the link status of the interface using virtio driver is always down Fu, Weiyi (NSN - CN/Hangzhou)
2014-12-11  8:11 ` Ouyang, Changchun
2014-12-11  8:42   ` Fu, Weiyi (NSN - CN/Hangzhou)
2014-12-11 11:41   ` Fu, Weiyi (NSN - CN/Hangzhou)
2014-12-11 13:41     ` Vijayakumar Muthuvel Manickam
2014-12-12  1:00     ` Ouyang, Changchun
2014-12-12  1:57       ` Fu, Weiyi (NSN - CN/Hangzhou)
2014-12-15  2:55       ` Fu, Weiyi (NSN - CN/Hangzhou)
2014-12-15  3:25         ` Ouyang, Changchun
2014-12-15  7:00           ` Fu, Weiyi (NSN - CN/Hangzhou)

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).