review/comment/feedback.
Thanks in advance.
patchset developed on upstream dpdk commit 538020a then pulled jerin's
dependancy patches [1] on top.
[1] http://permalink.gmane.org/gmane.comp.networking.dpdk.devel/29068
[2] https://lkml.org/lkml/2014/5/10/189
Santosh Shukla (6):
virtio: Introduce
/avx targets and will work
in non-vectored virtio mode.
Signed-off-by: Santosh Shukla
---
config/common_linuxapp |1 +
drivers/net/virtio/Makefile |2 +-
drivers/net/virtio/virtio_rxtx.c |7 +++
3 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/config
i686 target config example:
config/defconfig_i686-native-linuxapp-gcc says "Vectorized PMD is not supported
on 32-bit".
So setting RTE_VIRTIO_INC_VECTOR to 'n'.
Signed-off-by: Santosh Shukla
---
config/defconfig_i686-native-linuxapp-gcc |1 +
config/defconfig_i686-native-li
access in
x86-style.
Also adding support for arm/arm64 in virtio_pci.h header file.
Signed-off-by: Santosh Shukla
---
drivers/net/virtio/virtio_pci.h| 15 ++
.../common/include/arch/arm/rte_isa_io.h | 212
2 files changed, 227 insertions
Enable RTE_LIBRTE_VIRTIO_PMD for armv7/v8 and setting RTE_VIRTIO_INC_VEC=n.
Builds successfully for armv7/v8.
Signed-off-by: Santosh Shukla
---
config/defconfig_arm-armv7a-linuxapp-gcc |6 +-
config/defconfig_arm64-armv8a-linuxapp-gcc |6 +-
2 files changed, 10 insertions
iopl() syscall not supported in linux-arm/arm64 so always return 0 value.
Signed-off-by: Santosh Shukla
---
lib/librte_eal/linuxapp/eal/eal.c |3 +++
1 file changed, 3 insertions(+)
diff --git a/lib/librte_eal/linuxapp/eal/eal.c
b/lib/librte_eal/linuxapp/eal/eal.c
index 635ec36..2617037
, then attaching all 32 interface to uio,
Verified with tespmd io_fwd application.
Signed-off-by: Santosh Shukla
Signed-off-by: Rizwan Ansari
---
drivers/net/virtio/virtio_ethdev.c| 138 -
lib/librte_eal/linuxapp/igb_uio/igb_uio.c | 80 -
2 files changed
On Mon, Dec 7, 2015 at 10:38 PM, Stephen Hemminger <
stephen at networkplumber.org> wrote:
> On Fri, 4 Dec 2015 23:05:19 +0530
> Santosh Shukla wrote:
>
> >
> > +#ifdef RTE_EXEC_ENV_LINUXAPP
> > +/* start address of first pci_iobar slot (user-space virtual
On Tue, Dec 8, 2015 at 3:17 PM, Ananyev, Konstantin <
konstantin.ananyev at intel.com> wrote:
> Hi,
>
> > -Original Message-
> > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Santosh Shukla
> > Sent: Friday, December 04, 2015 5:35 PM
> > To: d
On Mon, Dec 7, 2015 at 10:39 PM, Stephen Hemminger <
stephen at networkplumber.org> wrote:
> On Fri, 4 Dec 2015 23:05:16 +0530
> Santosh Shukla wrote:
>
> > +#if defined(RTE_ARCH_ARM64)
> > + uint64_tio_base;
> > +#else /* !ARM64 */
> >
Its encouraging.
Could you pl. post buildroot how-to patch to dpdk-dev mailing list, after
your work gets accepted in buildroot.
Thanks
On Wed, Dec 9, 2015 at 8:10 PM, Jan Viktorin
wrote:
> Hello,
>
> I've posted a new patch set with DPDK support into the Buildroot project:
>
>
On Wed, Dec 9, 2015 at 8:34 PM, Jan Viktorin wrote:
>
> On Wed, 9 Dec 2015 20:17:44 +0530
> Santosh Shukla wrote:
>
> > Its encouraging.
> >
> > Could you pl. post buildroot how-to patch to dpdk-dev mailing list, after
> > your work gets accepted in buildroo
On Tue, Dec 8, 2015 at 6:23 PM, Santosh Shukla wrote:
>
>
> On Mon, Dec 7, 2015 at 10:38 PM, Stephen Hemminger
> wrote:
>>
>> On Fri, 4 Dec 2015 23:05:19 +0530
>> Santosh Shukla wrote:
>>
>> >
>> > +#ifdef RTE_EXEC_ENV_LINUXAPP
>> >
On Thu, Dec 10, 2015 at 12:34 AM, Stephen Hemminger
wrote:
> On Thu, 10 Dec 2015 00:29:30 +0530
> Santosh Shukla wrote:
>
>> On Tue, Dec 8, 2015 at 6:23 PM, Santosh Shukla wrote:
>> >
>> >
>> > On Mon, Dec 7, 2015 at 10:38 PM, Stephen Hemminger
>>
On Tue, Dec 8, 2015 at 6:29 PM, Xie, Huawei wrote:
>
>
>> -Original Message-
>> From: Yuanhan Liu [mailto:yuanhan.liu at linux.intel.com]
>> Sent: Monday, December 07, 2015 10:12 AM
>> To: Santosh Shukla
>> Cc: dev at dpdk.org; thomas.monjalon at 6
linux kernel doesn't support
them.
- Sixth patch introduces ioport memdevice called /dev/igb_ioport by which virtio
pmd driver could able to rd/wr PCI_IOBAR.
{applicable for arm/arm64 only, tested for arm64 as of now}
Santosh Shukla (13):
virtio: Introduce config RTE_VIRTIO_INC_VECTOR
/avx targets and will work
in non-vectored virtio mode.
Signed-off-by: Santosh Shukla
---
config/common_linuxapp |1 +
drivers/net/virtio/Makefile |2 +-
drivers/net/virtio/virtio_rxtx.c |7 +++
3 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/config
i686 target config example:
config/defconfig_i686-native-linuxapp-gcc says "Vectorized PMD is not supported
on 32-bit".
So setting RTE_VIRTIO_INC_VECTOR to 'n'.
Signed-off-by: Santosh Shukla
---
config/defconfig_i686-native-linuxapp-gcc |1 +
config/defconfig_i686-native-li
successfully for armv7.
Signed-off-by: Santosh Shukla
---
lib/librte_eal/common/Makefile |1 +
lib/librte_eal/common/include/arch/arm/rte_io.h| 60
lib/librte_eal/common/include/arch/arm/rte_io_32.h | 155
lib/librte_eal/common/include/arch
Use rte_io.h for non-x86 arch.
Signed-off-by: Santosh Shukla
---
drivers/net/virtio/virtio_pci.h |4
1 file changed, 4 insertions(+)
diff --git a/drivers/net/virtio/virtio_pci.h b/drivers/net/virtio/virtio_pci.h
index 47f722a..3f4ff80 100644
--- a/drivers/net/virtio/virtio_pci.h
+++ b
In x86 case io_base to store ioport address not more than 65535 ioports. i.e..0
to but in non-x86 case in particular arm64 it need to store more than 32
bit address so changing io_base datatype from 32 to 64.
Signed-off-by: Santosh Shukla
---
drivers/net/virtio/virtio_ethdev.c |2
Enable RTE_LIBRTE_VIRTIO_PMD for armv7/v8 and setting RTE_VIRTIO_INC_VEC=n.
Builds successfully for armv7/v8.
Signed-off-by: Santosh Shukla
---
config/defconfig_arm-armv7a-linuxapp-gcc |6 +-
config/defconfig_arm64-armv8a-linuxapp-gcc |6 +-
2 files changed, 10 insertions
iopl() syscall not supported in linux-arm/arm64 so always return 0 value.
Signed-off-by: Santosh Shukla
---
lib/librte_eal/linuxapp/eal/eal.c |3 +++
1 file changed, 3 insertions(+)
diff --git a/lib/librte_eal/linuxapp/eal/eal.c
b/lib/librte_eal/linuxapp/eal/eal.c
index 635ec36..2617037
Replace sys/io.h with rte_io.h, Get rid of ifdef X86 clutter
Signed-off-by: Santosh Shukla
---
drivers/net/virtio/virtio_pci.h |4 ---
lib/librte_eal/common/include/arch/x86/rte_io.h | 42 +++
lib/librte_eal/linuxapp/eal/eal.c |4
Module maps iopci region by creating misc device file /dev/igb_ioport.
Applicable for non-x86 arch, tested for arm64/ThuderX platform.
Including three api to register/unregister ioport misc device
- igbuio_ioport_register
- igbuio_ioport_unregister
- igbuio_iomap
Signed-off-by: Santosh Shukla
including virtio_ioport header file has iopci bar page_size, bar_len and
device filename info.
Signed-off-by: Santosh Shukla
---
lib/librte_eal/linuxapp/eal/Makefile |2 +-
.../eal/include/exec-env/rte_virt_ioport.h | 81
2 files changed, 82
Introducing module to mmap iopci bar region. Applicable for linuxapp for non-x86
archs, Tested for arm64/ThunderX platform for linux. For that adding two global
api.
- virtio_ioport_init
- virtio_ioport_unmap
Signed-off-by: Santosh Shukla
Signed-off-by: Rizwan Ansari
Signed-off-by: Rakesh
that lead to below error on arm64/ThunderX
Unhandled fault: alignment fault (0x9221) at 0x007fb5040002
Signed-off-by: Santosh Shukla
Signed-off-by: Rakesh Krishnamurhty
---
drivers/net/virtio/virtio_ethdev.c |2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net
On Mon, Dec 14, 2015 at 8:04 PM, Jan Viktorin
wrote:
> I believe, I've already acked this patch. I can see no change here so I
> assume it's still the same.
>
> On Mon, 14 Dec 2015 18:30:26 +0530
> Santosh Shukla wrote:
>
> > iopl() syscall not supported in linux-arm/
On Mon, Dec 14, 2015 at 8:07 PM, Jerin Jacob
wrote:
> On Mon, Dec 14, 2015 at 06:30:26PM +0530, Santosh Shukla wrote:
>> iopl() syscall not supported in linux-arm/arm64 so always return 0 value.
>>
>> Signed-off-by: Santosh Shukla
>> ---
>> lib/librte_eal/li
On Mon, Dec 14, 2015 at 7:58 PM, Jerin Jacob
wrote:
> On Mon, Dec 14, 2015 at 06:30:23PM +0530, Santosh Shukla wrote:
>> Use rte_io.h for non-x86 arch.
>>
>> Signed-off-by: Santosh Shukla
>> ---
>> drivers/net/virtio/virtio_pci.h |4
>> 1 file ch
buf *)((char
*)rxm->buf_addr +
+ header = (struct virtio_net_hdr_mrg_rxbuf
*)(uintptr_t)((char *)rxm->buf_addr +
RTE_PKTMBUF_HEADROOM - hdr_size);
seg_num = header->num_buffers;
---
> Any other ideas are welcome.
>
> Rega
On Mon, Dec 14, 2015 at 9:26 PM, Jerin Jacob
wrote:
> On Mon, Dec 14, 2015 at 08:54:08PM +0530, Santosh Shukla wrote:
>> On Mon, Dec 14, 2015 at 8:07 PM, Jerin Jacob
>> wrote:
>> > On Mon, Dec 14, 2015 at 06:30:26PM +0530, Santosh Shukla wrote:
>> >> iopl(
On Mon, Dec 14, 2015 at 8:01 PM, Jerin Jacob
wrote:
> On Mon, Dec 14, 2015 at 06:30:25PM +0530, Santosh Shukla wrote:
>> Enable RTE_LIBRTE_VIRTIO_PMD for armv7/v8 and setting RTE_VIRTIO_INC_VEC=n.
>> Builds successfully for armv7/v8.
>>
>> Signed-off-by: Santos
On Mon, Dec 14, 2015 at 8:13 PM, Jerin Jacob
wrote:
> On Mon, Dec 14, 2015 at 06:30:29PM +0530, Santosh Shukla wrote:
>> including virtio_ioport header file has iopci bar page_size, bar_len and
>> device filename info.
>>
>> Signed-off-by: Santosh Shukla
>> --
On Mon, Dec 14, 2015 at 7:55 PM, Jerin Jacob
wrote:
> On Mon, Dec 14, 2015 at 06:30:22PM +0530, Santosh Shukla wrote:
>> Introducing rte_io.h header file to emulate x86-style of ioport rd/wr api
>> example {in,out}[bwl] and {in_p,out_p}[bwl]. Api support added for armv7 an
On Mon, Dec 14, 2015 at 6:30 PM, Santosh Shukla wrote:
> This patch set add basic infrastrucure to run virtio-net-pci pmd driver for
> arm64/arm. Tested on ThunderX platfrom. Verified for existing dpdk(s) test
> applications like:
> - ovs-dpdk-vhost-user: across the VM's, for the us
On Wed, Dec 16, 2015 at 2:17 PM, David Marchand
wrote:
> Hello Santosh,
>
> On Wed, Dec 16, 2015 at 8:48 AM, Santosh Shukla wrote:
>>
>> Hi Yuanhan, Huawei and Others.
>>
>> I got arch specific review comment from arm maintainers and I am waiting
>> for
On Wed, Dec 16, 2015 at 6:18 PM, Yuanhan Liu
wrote:
> On Wed, Dec 16, 2015 at 01:31:04PM +0100, David Marchand wrote:
>> x86 requires a special set of instructions to access ioports, but other
>> architectures let you remap io resources.
>> So let eal remap io resources by accepting IORESOURCE_IO
On Wed, Dec 16, 2015 at 7:18 PM, Yuanhan Liu
wrote:
> On Mon, Dec 14, 2015 at 06:30:24PM +0530, Santosh Shukla wrote:
>> In x86 case io_base to store ioport address not more than 65535 ioports.
>> i.e..0
>> to but in non-x86 case in particular arm64 it need to stor
On Wed, Dec 16, 2015 at 7:53 PM, Yuanhan Liu
wrote:
> On Wed, Dec 16, 2015 at 07:31:57PM +0530, Santosh Shukla wrote:
>> On Wed, Dec 16, 2015 at 7:18 PM, Yuanhan Liu
>> wrote:
>> > On Mon, Dec 14, 2015 at 06:30:24PM +0530, Santosh Shukla wrote:
>> >> In x86
On Wed, Dec 16, 2015 at 8:07 PM, Yuanhan Liu
wrote:
> On Wed, Dec 16, 2015 at 07:50:51PM +0530, Santosh Shukla wrote:
> ...
>> >> + *resource_addr = (void *)((char *)ioport_map +
>> >> (ioport_map_cnt)*offset);
>> >
>> > Redundant
On Wed, Dec 16, 2015 at 8:28 PM, Yuanhan Liu
wrote:
> On Wed, Dec 16, 2015 at 08:09:40PM +0530, Santosh Shukla wrote:
>> On Wed, Dec 16, 2015 at 7:53 PM, Yuanhan Liu
>> wrote:
>> > On Wed, Dec 16, 2015 at 07:31:57PM +0530, Santosh Shukla wrote:
>> >> On Wed,
On Thu, Dec 17, 2015 at 12:49 PM, Yuanhan Liu
wrote:
> On Wed, Dec 16, 2015 at 08:35:58PM +0530, Santosh Shukla wrote:
>> On Wed, Dec 16, 2015 at 8:28 PM, Yuanhan Liu
>> wrote:
>> > On Wed, Dec 16, 2015 at 08:09:40PM +0530, Santosh Shukla wrote:
>> >> On Wed,
On Thu, Dec 17, 2015 at 3:08 PM, Yuanhan Liu
wrote:
> On Wed, Dec 16, 2015 at 07:21:55PM +0530, Santosh Shukla wrote:
>> On Wed, Dec 16, 2015 at 6:18 PM, Yuanhan Liu
>> wrote:
>> > On Wed, Dec 16, 2015 at 01:31:04PM +0100, David Marchand wrote:
>> >> x86 re
On Thu, Dec 17, 2015 at 3:31 PM, Santosh Shukla wrote:
> On Thu, Dec 17, 2015 at 3:08 PM, Yuanhan Liu
> wrote:
>> On Wed, Dec 16, 2015 at 07:21:55PM +0530, Santosh Shukla wrote:
>>> On Wed, Dec 16, 2015 at 6:18 PM, Yuanhan Liu
>>> wrote:
>>> > On We
On Thu, Dec 17, 2015 at 3:32 PM, Santosh Shukla wrote:
> On Thu, Dec 17, 2015 at 3:31 PM, Santosh Shukla wrote:
>> On Thu, Dec 17, 2015 at 3:08 PM, Yuanhan Liu
>> wrote:
>>> On Wed, Dec 16, 2015 at 07:21:55PM +0530, Santosh Shukla wrote:
>>>> On Wed,
On Thu, Dec 17, 2015 at 3:44 PM, Thomas Monjalon
wrote:
> Hi,
>
> 2015-12-17 15:37, Santosh Shukla:
>> On Thu, Dec 17, 2015 at 3:32 PM, Santosh Shukla
>> wrote:
>> > On Thu, Dec 17, 2015 at 3:31 PM, Santosh Shukla
>> > wrote:
>> >> On Thu
On Thu, Dec 17, 2015 at 4:03 PM, Thomas Monjalon
wrote:
> 2015-12-17 15:51, Santosh Shukla:
>> On Thu, Dec 17, 2015 at 3:44 PM, Thomas Monjalon
>> wrote:
>> > Hi,
>> >
>> > 2015-12-17 15:37, Santosh Shukla:
>> >> On Thu, Dec 17, 2015 at 3:32
On Mon, Dec 14, 2015 at 6:30 PM, Santosh Shukla wrote:
> virtio_recv_pkts_vec and other virtio vector friend apis are written for
> sse/avx
> instructions. For arm64 in particular, virtio vector implementation does not
> exist(todo).
>
> So virtio pmd driver wont build for
On Mon, Dec 14, 2015 at 6:30 PM, Santosh Shukla wrote:
> i686 target config example:
> config/defconfig_i686-native-linuxapp-gcc says "Vectorized PMD is not
> supported
> on 32-bit".
>
> So setting RTE_VIRTIO_INC_VECTOR to 'n'.
>
> Signed-off-by: Santosh S
On Thu, Dec 17, 2015 at 5:33 PM, Thomas Monjalon
wrote:
> 2015-12-17 17:32, Santosh Shukla:
>> On Mon, Dec 14, 2015 at 6:30 PM, Santosh Shukla
>> wrote:
>> > virtio_recv_pkts_vec and other virtio vector friend apis are written for
>> > sse/avx
>> > ins
On Fri, Dec 18, 2015 at 11:00 AM, Yuanhan Liu
wrote:
> On Thu, Dec 17, 2015 at 04:52:00PM +0530, Santosh Shukla wrote:
>> >> >> IMO, it is worth keeping one special device file who could work across
>> >> >> archs like arm/arm64/powerpc and others, who co
On Fri, Dec 18, 2015 at 4:54 AM, Stephen Hemminger
wrote:
> On Thu, 17 Dec 2015 17:32:38 +0530
> Santosh Shukla wrote:
>
>> On Mon, Dec 14, 2015 at 6:30 PM, Santosh Shukla
>> wrote:
>> > virtio_recv_pkts_vec and other virtio vector friend apis are written for
On Fri, Dec 18, 2015 at 1:51 PM, Yuanhan Liu
wrote:
> On Fri, Dec 18, 2015 at 01:24:41PM +0530, Santosh Shukla wrote:
>> >> I guess we have done enough evaluation / investigation that suggest -
>> >> so to map iopci region to userspace in arch agnostic-way -
>> &g
On Fri, Dec 18, 2015 at 6:25 PM, Santosh Shukla wrote:
> On Fri, Dec 18, 2015 at 1:51 PM, Yuanhan Liu
> wrote:
>> On Fri, Dec 18, 2015 at 01:24:41PM +0530, Santosh Shukla wrote:
>>> >> I guess we have done enough evaluation / investigation that suggest -
&g
On Tue, Dec 29, 2015 at 3:26 PM, Burakov, Anatoly
wrote:
> Hi Santosh,
>
>> On Fri, Dec 18, 2015 at 6:25 PM, Santosh Shukla
>> wrote:
>> > On Fri, Dec 18, 2015 at 1:51 PM, Yuanhan Liu
>> > wrote:
>> >> On Fri, Dec 18, 2015 at 01:24:41PM +0530,
On Tue, Dec 29, 2015 at 4:36 PM, Burakov, Anatoly
wrote:
> Hi Santosh,
>
>> Look at kernel/resource.c, it exports two symbol ioport_resource and
>> iomem_resource and sets appropriate flag type i.e.. IORESOURCE_IO and
>> IORESOURCE_MEM. In virtio-net case; it creates both pci region i.e..
>> _io
On Tue, Dec 29, 2015 at 7:34 PM, Alex Williamson
wrote:
> On Tue, 2015-12-29 at 16:17 +0530, Santosh Shukla wrote:
>> On Tue, Dec 29, 2015 at 3:26 PM, Burakov, Anatoly
>> wrote:
>> > Hi Santosh,
>> >
>> > > On Fri, Dec 18, 2015 at 6:25 PM, Santosh S
On Tue, Dec 29, 2015 at 8:21 PM, Santosh Shukla wrote:
> On Tue, Dec 29, 2015 at 7:34 PM, Alex Williamson
> wrote:
>> On Tue, 2015-12-29 at 16:17 +0530, Santosh Shukla wrote:
>>> On Tue, Dec 29, 2015 at 3:26 PM, Burakov, Anatoly
>>> wrote:
>>> > Hi S
r
> people are having any issues with the patch.
>
I tried this patch for virtio-net pmd driver on arm64 and It worked
for me. I didn't reviewed patch, but functionally nothing broke in my
test environment, we'll review as time permit.. for now
Tested-by: Santosh Shukla
> Thanks,
> Anatoly
On Thu, Jul 28, 2016 at 03:44:57AM +0530, Alex Williamson wrote:
> Hi,
>
> I took a quick look at the dpdk vfio code and spotted an invalid
> assumption that should probably be corrected ASAP. That is:
>
> lib/librte_eal/linuxapp/eal/eal_vfio.h:
> #define VFIO_GET_REGION_ADDR(x) ((uint64_t) x
On Thu, Feb 25, 2016 at 5:00 PM, Mauricio V?squez
wrote:
> Hello,
>
> I am trying to connect two virtual machines through Open vSwitch using
> vhost-user ports, on the host side everything looks fine.
> When using the standard virtio drivers both virtual machines are able to
> exchange traffic,
to
drivers/virtio/virtio_vec_.h file.
2) Remove use_simple_rxtx flag, so that virtio/virtio_vec_.h
files to provide vectored/non-vectored rx/tx apis.
Signed-off-by: Santosh Shukla
---
- v1: This is a rework of patch [1].
Note: This patch will let non-x86 arch to use virtio pmd.
[1] http://dpdk.org/dev
On Fri, Feb 26, 2016 at 2:14 PM, Xie, Huawei wrote:
> On 2/26/2016 4:29 PM, David Marchand wrote:
>> On Fri, Feb 26, 2016 at 3:23 AM, Yuanhan Liu
>> wrote:
>>> Mauricio, thanks for the testing and report.
>>>
>>> On Thu, Feb 25, 2016 at 02:30:18PM +0100, David Marchand wrote:
>From the
On Mon, Feb 29, 2016 at 9:57 AM, Yuanhan Liu
wrote:
> On Fri, Feb 26, 2016 at 02:21:02PM +0530, Santosh Shukla wrote:
>> Check cpuflag macro before using vectored api.
>> -virtio_recv_pkts_vec() uses _sse3__ simd instruction for now so added
>> cpuflag.
>> - Also wra
virtio_recv_pkts_vec() implementation to
drivers/virtio/virtio_vec_.h file.
2) Remove use_simple_rxtx flag, so that virtio/virtio_vec_.h
files to provide vectored/non-vectored rx/tx apis.
Signed-off-by: Santosh Shukla
---
- v2: Removed VIRTIO_PMD=n from arm v7/v8
- v1: This is a rework
esource_init(dev, hw) < 0)
> + if (legacy_virtio_resource_init(dev, hw) < 0) {
> + if (dev->kdrv == RTE_KDRV_UNKNOWN) {
> + PMD_INIT_LOG(INFO,
> + "skip kernel managed virtio device.");
> + return 1;
> + }
> return -1;
> + }
>
> hw->vtpci_ops = _ops;
> hw->use_msix = legacy_virtio_has_msix(>addr);
Tested-by: Santosh Shukla
Acked-by: Santosh Shukla
> --
> 1.8.1.4
>
tio
pmd driver could able to rd/wr PCI_IOBAR.
{applicable for arm/arm64 only, tested for arm64 as of now}
[1] https://lwn.net/Articles/660745/
Anatoly Burakov (1):
vfio: Support for no-IOMMU mode
Rizwan Ansari (1):
eal: pci: vfio: fix build error
Santosh Shukla (10):
virtio:
/avx targets and will work
in non-vectored virtio mode.
Signed-off-by: Santosh Shukla
---
config/common_linuxapp |1 +
drivers/net/virtio/Makefile |2 +-
drivers/net/virtio/virtio_rxtx.c |7 +++
3 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/config
i686 target config example:
config/defconfig_i686-native-linuxapp-gcc says "Vectorized PMD is not supported
on 32-bit".
So setting RTE_VIRTIO_INC_VECTOR to 'n'.
Signed-off-by: Santosh Shukla
---
config/defconfig_i686-native-linuxapp-gcc |1 +
config/defconfig_i686-native-li
iopl() syscall not supported in linux-arm/arm64 so always return 0 value.
Signed-off-by: Santosh Shukla
Acked-by: Jan Viktorin
---
lib/librte_eal/linuxapp/eal/eal.c |3 +++
1 file changed, 3 insertions(+)
diff --git a/lib/librte_eal/linuxapp/eal/eal.c
b/lib/librte_eal/linuxapp/eal/eal.c
vfio_pci_mmap() try to map all pci bars. ioport region ar not mapped in
vfio/kernel so ignore mmaping for ioport.
Signed-off-by: Santosh Shukla
---
lib/librte_eal/linuxapp/eal/eal_pci_vfio.c | 20
1 file changed, 20 insertions(+)
diff --git a/lib/librte_eal/linuxapp/eal
make sure sys/io.h used only for x86 archs. This fixes build error
arm64/arm case.
Signed-off-by: Santosh Shukla
---
drivers/net/virtio/virtio_pci.h |2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/net/virtio/virtio_pci.h b/drivers/net/virtio/virtio_pci.h
index 47f722a..8b5b031
Introducing below api for pci bar space rd/wr. Currently used for
pci iobar rd/wr.
Api's are:
- rte_eal_pci_read_bar
- rte_eal_pci_write_bar
virtio when used for vfio-mode then virtio driver will use these api
to do rd/wr operation on ioport pci bar.
Signed-off-by: Santosh Shukla
---
lib
For vfio case - Use pread/pwrite api to access virtio
ioport space.
Signed-off-by: Santosh Shukla
Signed-off-by: Rizwan Ansari
Signed-off-by: Rakesh Krishnamurthy
---
drivers/net/virtio/virtio_vfio.h | 146 ++
1 file changed, 146 insertions(+)
create mode
- adding pci_dev member in struct virtio_hw{} to track
vfio_dev_fd per virtio interface, required for ioport
rd/wr operation.
- Masked default VIRTIO_READ/WRITE for vfio case.
Signed-off-by: Santosh Shukla
Signed-off-by: Rizwan Ansari
Signed-off-by: Rakesh Krishnamurhty
---
drivers/net
Flag required for vfio case, It helps to update vfio_dev_fd for each
virtio net interface.
Signed-off-by: Santosh Shukla
---
drivers/net/virtio/virtio_ethdev.c |4
1 file changed, 4 insertions(+)
diff --git a/drivers/net/virtio/virtio_ethdev.c
b/drivers/net/virtio/virtio_ethdev.c
Enable RTE_LIBRTE_VIRTIO_PMD for armv7/v8 and setting RTE_VIRTIO_INC_VEC=n.
Builds successfully for armv7/v8.
Signed-off-by: Santosh Shukla
---
config/defconfig_arm-armv7a-linuxapp-gcc |6 +-
config/defconfig_arm64-armv8a-linuxapp-gcc |6 +-
2 files changed, 10 insertions
From: Anatoly Burakov
This commit is adding a generic mechanism to support multiple IOMMU
types. For now, it's only type 1 (x86 IOMMU) and no-IOMMU (a special
VFIO mode that doesn't use IOMMU at all), but it's easily extended
by adding necessary definitions into
pile your code
Signed-off-by: Rizwan Ansari
Signed-off-by: Santosh Shukla
---
lib/librte_eal/linuxapp/eal/eal_pci_vfio.c |3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/librte_eal/linuxapp/eal/eal_pci_vfio.c
b/lib/librte_eal/linuxapp/eal/eal_pci_vfio.c
index c69050d
On Thu, Jan 7, 2016 at 11:49 PM, Stephen Hemminger <
stephen at networkplumber.org> wrote:
> On Thu, 7 Jan 2016 22:03:03 +0530
> Santosh Shukla wrote:
>
> >
> > +int rte_eal_pci_read_bar(const struct rte_pci_device *device
> __rte_unused,
> > +
behalf of stephen at networkplumber.org> wrote:
> >
> > >On Thu, 7 Jan 2016 22:03:03 +0530
> > >Santosh Shukla wrote:
> > >
> > >>
> > >> +int rte_eal_pci_read_bar(const struct rte_pci_device *device
> __rte
On Thu, Jan 7, 2016 at 11:46 PM, Stephen Hemminger <
stephen at networkplumber.org> wrote:
> This looks like the right thing to do. Minor nits.
>
> > diff --git a/lib/librte_eal/linuxapp/eal/eal_pci_vfio.c
> b/lib/librte_eal/linuxapp/eal/eal_pci_vfio.c
> > index 74f91ba..4077eb6 100644
> > ---
On Thu, Jan 7, 2016 at 11:50 PM, Stephen Hemminger
wrote:
> On Thu, 7 Jan 2016 22:03:06 +0530
> Santosh Shukla wrote:
>
>> +#ifdef RTE_EAL_VFIO
>> + .drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_DETACHABLE,
>> +#else
>> .d
On Thu, Jan 7, 2016 at 11:44 PM, Stephen Hemminger
wrote:
> On Thu, 7 Jan 2016 22:03:00 +0530
> Santosh Shukla wrote:
>
>> #else
>> +#if defined(RTE_ARCH_ARM) || defined(RTE_ARCH_ARM64)
>> + return 0; /* iopl syscall not supported for ARM/ARM64 */
>> +#end
On Tue, Jan 12, 2016 at 8:32 AM, Xie, Huawei wrote:
>
> On 1/5/2016 1:25 AM, Stephen Hemminger wrote:
> > On Mon, 4 Jan 2016 01:56:09 +0800
> > Huawei Xie wrote:
> >
> >> v2 changes:
> >> Remove unnecessary assignment of NULL to dev->data->mac_addrs
> >> Ajust one comment's position
> >>
On Tue, Jan 12, 2016 at 10:46 AM, Xie, Huawei wrote:
> On 1/12/2016 12:24 PM, Santosh Shukla wrote:
>> On Tue, Jan 12, 2016 at 8:32 AM, Xie, Huawei wrote:
>>> On 1/5/2016 1:25 AM, Stephen Hemminger wrote:
>>>> On Mon, 4 Jan 2016 01:56:09 +0800
>>>>
On Tue, Jan 12, 2016 at 12:44 PM, Yuanhan Liu
wrote:
> On Sat, Jan 09, 2016 at 06:08:46PM +0530, Santosh Shukla wrote:
>> On Thu, Jan 7, 2016 at 11:50 PM, Stephen Hemminger
>> wrote:
>> > On Thu, 7 Jan 2016 22:03:06 +0530
>> > Santosh Shukla wrote
without
> binding UIO (or something similar first), pci_map_device() will fail,
> which ends up with virtio pmd driver being skipped. Therefore, we can
> not set RTE_PCI_DRV_NEED_MAPPING blindly at virtio pmd driver.
>
> Therefore, this patch exports pci_map_device, and let virtio pmd
> call it when necessary.
>
> Signed-off-by: Yuanhan Liu
> ---
> v2: - export pci_unmap_device as well
>
> - Add few more comments about rte_eal_pci_map_device().
This patch tested for vfio-noIOMMU mode for arm64 platform.
Tested-By: Santosh Shukla
Thanks!.
[1] http://permalink.gmane.org/gmane.comp.networking.dpdk.devel/31117
[2] https://github.com/sshukla82/dpdk.git branch master-virtio-vfio-v4
Anatoly Burakov (1):
vfio: Support for no-IOMMU mode
Santosh Shukla (12):
virtio: Introduce config RTE_VIRTIO_INC_VECTOR
config: i686: set RTE_
/avx targets and will work
in non-vectored virtio mode.
Signed-off-by: Santosh Shukla
---
config/common_linuxapp |1 +
drivers/net/virtio/Makefile |2 +-
drivers/net/virtio/virtio_rxtx.c |7 +++
3 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/config
i686 target config example:
config/defconfig_i686-native-linuxapp-gcc says "Vectorized PMD is not supported
on 32-bit".
So setting RTE_VIRTIO_INC_VECTOR to 'n'.
Signed-off-by: Santosh Shukla
---
config/defconfig_i686-native-linuxapp-gcc |1 +
config/defconfig_i686-native-li
iopl() syscall not supported in linux-arm/arm64 so always return 0 value.
Signed-off-by: Santosh Shukla
Suggested-by: Stephen Hemminger
Acked-by: Jan Viktorin
---
v3->v4:
- moved #ifdef to elseif -> suggested by Stephen.
lib/librte_eal/linuxapp/eal/eal.c |2 ++
1 file chan
vfio_pci_mmap() try to map all pci bars. ioport region are not mapped in
vfio/kernel so ignore mmaping for ioport.
Signed-off-by: Santosh Shukla
---
v3->v4: per review comment from Stephen and Yuan.
- removed ioport_bar var declaration with in func to top of func
- rearrange log message to
make sure sys/io.h used only for x86 archs. This fixes build error
arm64/arm case.
Signed-off-by: Santosh Shukla
---
drivers/net/virtio/virtio_pci.h |2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/net/virtio/virtio_pci.h b/drivers/net/virtio/virtio_pci.h
index 47f722a..8b5b031
Introducing below api for pci bar space rd/wr. Currently used for
pci iobar rd/wr.
Api's are:
- rte_eal_pci_read_bar
- rte_eal_pci_write_bar
virtio when used for vfio-mode then virtio driver will use these api
to do rd/wr operation on ioport pci bar.
Signed-off-by: Santosh Shukla
---
v3->
For vfio case - Use pread/pwrite api to access virtio
ioport space.
Signed-off-by: Santosh Shukla
Signed-off-by: Rizwan Ansari
Signed-off-by: Rakesh Krishnamurthy
---
v3->v4:
- Corrected debug error message for oub_ class of apis
- renamed file from virtio_vfio.h to virtio_vfio_rw.h
- Remo
So far virtio handle rw access for uio / ioport interface, This patch to extend
the support for vfio interface. For that introducing private struct
virtio_vfio_dev{
- is_vfio
- pci_dev
};
Signed-off-by: Santosh Shukla
---
v3->v4:
- Removed #indef RTE_EAL_VFIO and m
Introducing api to check interface type is vfio or not, if interface is vfio
then update struct virtio_vfio_dev {}.
Those two apis are:
- virtio_chk_for_vfio
- virtio_hw_init_by_vfio
Signed-off-by: Santosh Shukla
---
v3->v4:
- Removed RTE_PCI_DRV_NEED_MAPPING drv flag (as per Review comm
1 - 100 of 212 matches
Mail list logo