Agree should added ARMv8 in the makefile, does the workaround work if you 
manually put those parameters into the file?

-----Original Message-----
From: Brian Brooks [mailto:brian.bro...@arm.com] 
Sent: Tuesday, August 22, 2017 9:31 PM
To: George Zhao
Cc: Damjan Marion (damarion); discuss; csit-dev; vpp-dev
Subject: Re: [vpp-dev] [discuss] Question about VPP support for ARM 64

Hi Damjan, George,

I just pulled lastest source and tried native build (platforms/vpp.mk) on ARMv8:

  cat: '/sys/bus/pci/devices/0000:00:01.0/uevent': No such file or directory

From dpdk/Makefile,

  ##############################################################################
  # Intel x86
  ##############################################################################
  ifeq ($(MACHINE),$(filter $(MACHINE),x86_64 i686))
  DPDK_TARGET           ?= $(MACHINE)-native-linuxapp-$(DPDK_CC)
  DPDK_MACHINE          ?= nhm
  DPDK_TUNE             ?= core-avx2
  ##############################################################################
  # Cavium ThunderX
  ##############################################################################
  else ifneq (,$(findstring thunder,$(shell cat 
/sys/bus/pci/devices/0000:00:01.0/uevent | grep cavium)))
  export CROSS=""
  DPDK_TARGET           ?= arm64-thunderx-linuxapp-$(DPDK_CC)
  DPDK_MACHINE          ?= thunderx
  DPDK_TUNE             ?= generic

So, I am thinking we need to modify this to support MACHINE=aarch64 and possibly
rework thunder detection to not fail hard on non-thunder machines.

Regards,
Brian

On 08/22 17:55:20, George Zhao wrote:
> Thanks Demjan,
> 
> Confirmed that your patches worked on our system as well.
> 
> George
> 
> From: Damjan Marion (damarion) [mailto:damar...@cisco.com]
> Sent: Tuesday, August 22, 2017 5:03 AM
> To: George Zhao
> Cc: Dave Barach (dbarach); discuss; csit-dev; vpp-dev
> Subject: Re: [vpp-dev] [discuss] Question about VPP support for ARM 64
> 
> Dear George,
> 
> I tried on my Cavium ThunderX system with latest Ubuntu and after fixing few 
> minor issues (all patches submitted to master) I got VPP running.
> I use latest Ubuntu devel (17.10, mainly as I upgraded to new kernel in my 
> attempts to get system working)
> 
> For me it is hard to help you with your particular system, as I don’t have 
> access to similar one, but my guess is that it shouldn’’t be too hard to get 
> it working.
> 
> Thanks,
> 
> Damjan
> 
> On 20 Aug 2017, at 23:12, George Zhao 
> <george.y.z...@huawei.com<mailto:george.y.z...@huawei.com>> wrote:
> 
> Hi Damian,
> 
> IT is Applied Micro overdrive 1000, here are the uname -a output:
> 
> $>> uname -a
> Linux OD1K 4.4.0-92-generic #115-Ubuntu SMP Thu Aug 10 09:10:33 UTC 2017 
> aarch64 aarch64 aarch64 GNU/Linux
> 
> thanks
> George
> 发件人:Damjan Marion (damarion)
> 收件人:George Zhao
> 抄送:dbarach,discuss,csit-dev,vpp-dev
> 时间:2017-08-20 10:03:27
> 主题:Re: [vpp-dev] [discuss] Question about VPP support for ARM 64
> 
> 
> 
> George, are you using ThunderX platform?
> 
> I spent few hours today trying to install latest ubuntu on my ThunderX system 
> but no luck, kernel hangs at some point, both ubuntu provided and manually 
> compiled.
> 
> Can you share about more details about your system?
> 
> Thanks,
> 
> Damjan
> 
> 
> 
> > On 19 Aug 2017, at 22:48, George Zhao 
> > <george.y.z...@huawei.com<mailto:george.y.z...@huawei.com>> wrote:
> >
> > If a bug is filed, may I have the bug number, I would be love to trace this 
> > patch.
> >
> > BTW, how do I file a bug for VPP, I did a quick wiki search with no luck.
> >
> > Thanks,
> > George
> >
> > -----Original Message-----
> > From: Dave Barach (dbarach) [mailto:dbar...@cisco.com]
> > Sent: Saturday, August 19, 2017 7:42 AM
> > To: George Zhao <george.y.z...@huawei.com<mailto:george.y.z...@huawei.com>>
> > Cc: vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io>; 
> > disc...@lists.fd.io<mailto:disc...@lists.fd.io>; 
> > csit-...@lists.fd.io<mailto:csit-...@lists.fd.io>; Damjan Marion (damarion) 
> > <damar...@cisco.com<mailto:damar...@cisco.com>>
> > Subject: RE: [discuss] Question about VPP support for ARM 64
> >
> > +1, pls add the typedef...
> >
> > Thanks… Dave
> >
> > -----Original Message-----
> > From: Damjan Marion (damarion)
> > Sent: Saturday, August 19, 2017 9:09 AM
> > To: Dave Barach (dbarach) <dbar...@cisco.com<mailto:dbar...@cisco.com>>
> > Cc: George Zhao 
> > <george.y.z...@huawei.com<mailto:george.y.z...@huawei.com>>; 
> > vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io>; 
> > disc...@lists.fd.io<mailto:disc...@lists.fd.io>; 
> > csit-...@lists.fd.io<mailto:csit-...@lists.fd.io>
> > Subject: Re: [discuss] Question about VPP support for ARM 64
> >
> >
> > GCC is able to compile ARM64 code with 256-bit vectors even if target 
> > platform have only 128-bit registers.
> >
> > I.e. for the u8x32 version of that function it generates:
> >
> > ARM64:
> > dpdk_buffer_init_from_template(void*, void*, void*, void*, void*):
> >        ld1     {v0.16b - v1.16b}, [x4], 32
> >        st1     {v0.16b - v1.16b}, [x3], 32
> >        st1     {v0.16b - v1.16b}, [x2], 32
> >        st1     {v0.16b - v1.16b}, [x1], 32
> >        st1     {v0.16b - v1.16b}, [x0], 32
> >        ld1     {v0.16b - v1.16b}, [x4]
> >        st1     {v0.16b - v1.16b}, [x3]
> >        st1     {v0.16b - v1.16b}, [x2]
> >        st1     {v0.16b - v1.16b}, [x1]
> >        st1     {v0.16b - v1.16b}, [x0]
> >        ret
> >
> > intel x86-64 without AVX2:
> >
> > dpdk_buffer_init_from_template(void*, void*, void*, void*, void*):
> > push   %rbp
> > mov    %rsp,%rbp
> > and    $0xffffffffffffffe0,%rsp
> > lea    0x10(%rsp),%rsp
> > movdqa (%r8),%xmm1
> > movdqa 0x10(%r8),%xmm0
> > movdqa %xmm0,0x10(%rcx)
> > movdqa %xmm1,(%rcx)
> > movdqa %xmm1,(%rdx)
> > movdqa %xmm0,0x10(%rdx)
> > movdqa %xmm1,(%rsi)
> > movdqa %xmm0,0x10(%rsi)
> > movdqa %xmm1,(%rdi)
> > movdqa %xmm0,0x10(%rdi)
> > movdqa 0x20(%r8),%xmm1
> > movdqa 0x30(%r8),%xmm0
> > movdqa %xmm0,0x30(%rcx)
> > movdqa %xmm1,0x20(%rcx)
> > movdqa %xmm1,0x20(%rdx)
> > movdqa %xmm0,0x30(%rdx)
> > movdqa %xmm1,0x20(%rsi)
> > movdqa %xmm0,0x30(%rsi)
> > movdqa %xmm1,0x20(%rdi)
> > movdqa %xmm0,0x30(%rdi)
> > leaveq
> > retq
> >
> >
> > So i think here it is only about missing typedef….
> >
> >
> >> On 19 Aug 2017, at 14:51, Dave Barach (dbarach) 
> >> <dbar...@cisco.com<mailto:dbar...@cisco.com>> wrote:
> >>
> >> Dear George,
> >>
> >> This specific issue isn’t anywhere near as bad as you might think. As 
> >> given, the code confuses 128-bit vectors with 256-bit vectors, and 64-bit 
> >> vectors with 128-bit vectors.
> >>
> >> Question: does the hardware involved support 256-bit vectors? Probably 
> >> not... It almost certainly does support 128-bit vectors.
> >>
> >> To make progress, use the known-good u8x16 / 128-bit vector code:
> >>
> >> static_always_inline void
> >> dpdk_buffer_init_from_template (void *d0, void *d1, void *d2, void *d3,
> >>                      void *s)
> >> {
> >> #if defined(CLIB_HAVE_VEC128)
> >>  int i;
> >>  for (i = 0; i < 4; i++)
> >>    {
> >>      *(u8x16 *) (((u8 *) d0) + i * 16) =
> >>     *(u8x16 *) (((u8 *) d1) + i * 16) =
> >>     *(u8x16 *) (((u8 *) d2) + i * 16) =
> >>     *(u8x16 *) (((u8 *) d3) + i * 16) = *(u8x16 *) (((u8 *) s) + i * 16);
> >>    }
> >> #else
> >> #error "CLIB_HAVE_VEC128 has to be defined"
> >> #endif
> >> }
> >>
> >> Responsible parties - they know who they are - will be back from PTO 
> >> shortly. We need to clean up / create CLIB_HAVE_VEC_256 and move the 
> >> 256-bit vector engine code...
> >>
> >> You could also try adding “typedef u8 u8x32 _vector_size(32)” but I 
> >> somehow doubt that will produce anything other than a compiler error.
> >>
> >> HTH… Dave
> >>
> >> From: vpp-dev-boun...@lists.fd.io<mailto:vpp-dev-boun...@lists.fd.io> 
> >> [mailto:vpp-dev-boun...@lists.fd.io] On Behalf Of George Zhao
> >> Sent: Friday, August 18, 2017 7:32 PM
> >> To: 'vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io>' 
> >> <vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io>>; 
> >> 'disc...@lists.fd.io<mailto:disc...@lists.fd.io>' 
> >> <disc...@lists.fd.io<mailto:disc...@lists.fd.io>>; 
> >> 'csit-...@lists.fd.io<mailto:csit-...@lists.fd.io>' 
> >> <csit-...@lists.fd.io<mailto:csit-...@lists.fd.io>>
> >> Subject: [vpp-dev] Question about VPP support for ARM 64
> >>
> >> We encounter following issues while trying to build VPP over ARM 64. It 
> >> seems right now only ARM32 are supported in the code. I list the steps we 
> >> tried and hope VPP folks can help us work around this issue.
> >>
> >> Steps:
> >> 1. install Ubuntu 16.04 on OD1K
> >> $>> uname -a
> >> Linux OD1K 4.4.0-92-generic #115-Ubuntu SMP Thu Aug 10 09:10:33 UTC 2017 
> >> aarch64 aarch64 aarch64 GNU/Linux
> >>
> >> 2. git clone VPP 17.04 and build VPP
> >> ## Error:
> >> make[2]: Entering directory '/home/huawei/GIT/vpp.1704/dpdk'
> >> cat: '/sys/bus/pci/devices/0000:00:01.0/uevent': No such file or directory
> >>
> >> **Work around to bypass MakeFile:
> >> ##############################################################################
> >> # Cavium ThunderX
> >> ##############################################################################
> >> #else ifneq (,$(findstring thunder,$(shell cat 
> >> /sys/bus/pci/devices/0000:00:01.0/uevent | grep cavium)))
> >> else
> >> export CROSS=""
> >> DPDK_TARGET           ?= arm64-thunderx-linuxapp-$(DPDK_CC)
> >> DPDK_MACHINE          ?= thunderx
> >> DPDK_TUNE             ?= generic
> >>
> >> 3. Then,  make build and failed following:
> >> /home/huawei/GIT/vpp.1704/build-data/../src/plugins/dpdk/device/node.c:276:9:
> >>  error: `u8x32' undeclared (first use in this function)
> >>       *(u8x32 *) (((u8 *) d0) + i * 32) =
> >>
> >> ** Check vppinfra/vppinfra/vector.h   and don’t find u8x32 with “aarch64”
> >> #if defined (__aarch64__) || defined (__arm__)
> >> typedef unsigned int u32x4 _vector_size (16);
> >> typedef u8 u8x16 _vector_size (16);
> >> typedef u16 u16x8 _vector_size (16);
> >> typedef u32 u32x4 _vector_size (16);
> >> typedef u64 u64x2 _vector_size (16);
> >> #endif
> >>
> >> 4. According  https://wiki.fd.io/view/VPP/Alternative_builds
> >> The VPP seems to support arm32 only .
> >> export PLATFORM=arm32
> >>
> >>
> >> *Questions:
> >> Did I miss some steps or should include other header files that defines 
> >> u8x32?
> >>
> >>
> >> Thanks,
> >> George
> >>
> >> _______________________________________________
> >> discuss mailing list
> >> disc...@lists.fd.io<mailto:disc...@lists.fd.io>
> >> https://lists.fd.io/mailman/listinfo/discuss
> >
> > _______________________________________________
> > vpp-dev mailing list
> > vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io>
> > https://lists.fd.io/mailman/listinfo/vpp-dev
> 

> _______________________________________________
> vpp-dev mailing list
> vpp-dev@lists.fd.io
> https://lists.fd.io/mailman/listinfo/vpp-dev

_______________________________________________
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev

Reply via email to