Author Topic: Fail to setup infra server vm on arm64 platform  (Read 199 times)

Tang

  • Newbie
  • *
  • Posts: 15
  • Karma: +0/-0
Fail to setup infra server vm on arm64 platform
« on: February 26, 2018, 07:43:28 AM »
Hi
I'm trying to setup SPECvirt_sc2013 environment on arm64 server and looking for documents on spec.org. I have looked around the page publishing results and it seems that none of them is done on arm server. If I have missed SPECvirt results on arm server, please let me know, thanks.

Then, according to User's Guide, I setup infraserver virtual machine first and some errors occurs as follows:

/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I..   -I../include -pthread -g -O2 -Wall -MT libfcgi_la-fcgiapp.lo -MD -MP -MF .deps/libfcgi_la-fcgiapp.Tpo -c -o libfcgi_la-fcgiapp.lo `test -f 'fcgiapp.c' || echo './'`fcgiapp.c
[10734.313067] libtool: page allocation stalls for 31124ms, order:2, mode:0x17000c0(GFP_KERNEL_ACCOUNT|__GFP_NOTRACK), nodemask=(null)
[10735.049940] libtool cpuset=/ mems_allowed=0
[10735.050465] CPU: 6 PID: 20643 Comm: libtool Not tainted 4.11.0-rc5-14740-ge774fdd27b52-dirty #23
[10735.051569] Hardware name: linux,dummy-virt (DT)
[10735.052171] Call trace:
[10735.052505] [<ffff000008088af8>] dump_backtrace+0x0/0x220
[10735.053214] [<ffff000008088d2c>] show_stack+0x14/0x20
[10735.053875] [<ffff0000083f51f4>] dump_stack+0x9c/0xc0
[10735.054535] [<ffff0000081b3728>] warn_alloc+0xe0/0x168
[10735.055204] [<ffff0000081b42b4>] __alloc_pages_nodemask+0xa9c/0xe28
[10735.056016] [<ffff0000080c57a4>] copy_process.isra.7.part.8+0x134/0x1490
[10735.056881] [<ffff0000080c6c68>] _do_fork+0xa0/0x388
[10735.057533] [<ffff0000080c7018>] SyS_clone+0x18/0x20
[10735.058179] [<ffff000008082f8c>] __sys_trace_return+0x0/0x4
[10735.058924] Mem-Info:
[10735.059362] active_anon:1227140 inactive_anon:2063 isolated_anon:0
[10735.059362]  active_file:414 inactive_file:628 isolated_file:101
[10735.059362]  unevictable:0 dirty:0 writeback:0 unstable:0
[10735.059362]  slab_reclaimable:8531 slab_unreclaimable:179998
[10735.059362]  mapped:1334 shmem:2117 pagetables:242736 bounce:0
[10735.059362]  free:17986 free_pcp:30 free_cma:3584
[10735.063456] Node 0 active_anon:4908560kB inactive_anon:8252kB active_file:1656kB inactive_file:2512kB unevictable:0kB isolated(anon):0kB isolated(file):404kB mapped:5336kB dirty:0kB writeback:0kB shmem:0kB shmem_thp: 0kB shmem_pmdmapped: 12288kB anon_thp: 8468kB writeback_tmp:0kB unstable:0kB pages_scanned:0 all_unreclaimable? no
[10735.066940] Node 0 DMA free:40608kB min:16888kB low:21108kB high:25328kB active_anon:1855320kB inactive_anon:0kB active_file:460kB inactive_file:168kB unevictable:0kB writepending:0kB present:3145728kB managed:3064480kB mlocked:0kB slab_reclaimable:6016kB slab_unreclaimable:260800kB kernel_stack:193792kB pagetables:365280kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:14336kB
[10735.071123] lowmem_reserve[]: 0 4988 4988
[10735.071613] Node 0 Normal free:31336kB min:28164kB low:35204kB high:42244kB active_anon:3053396kB inactive_anon:8252kB active_file:1196kB inactive_file:2208kB unevictable:0kB writepending:0kB present:5242880kB managed:5107936kB mlocked:0kB slab_reclaimable:28108kB slab_unreclaimable:459192kB kernel_stack:325952kB pagetables:605664kB bounce:0kB free_pcp:56kB local_pcp:0kB free_cma:0kB
[10735.075797] lowmem_reserve[]: 0 0 0
[10735.076238] Node 0 DMA: 150*4kB (UM) 71*8kB (UM) 51*16kB (UM) 31*32kB (UM) 22*64kB (UM) 6*128kB (UME) 2*256kB (UM) 3*512kB (UM) 1*1024kB (M) 4*2048kB (UMEC) 6*4096kB (MC) = 40992kB
[10735.078191] Node 0 Normal: 328*4kB (UMEH) 335*8kB (UMEH) 405*16kB (UMEH) 371*32kB (UMEH) 105*64kB (UME) 35*128kB (ME) 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 33544kB
[10735.080124] Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=2048kB
[10735.081154] 3202 total pagecache pages
[10735.081650] 0 pages in swap cache
[10735.082055] Swap cache stats: add 0, delete 0, find 0/0
[10735.082685] Free swap  = 0kB
[10735.083066] Total swap = 0kB
[10735.083431] 2097152 pages RAM
[10735.083804] 0 pages HighMem/MovableOnly
[10735.084276] 54048 pages reserved
[10735.084679] 4096 pages cma reserved
[10741.663660] libtool: page allocation stalls for 38476ms, order:2, mode:0x17000c0(GFP_KERNEL_ACCOUNT|__GFP_NOTRACK), nodemask=(null)
[10741.791713] libtool cpuset=/ mems_allowed=0
[10741.792243] CPU: 7 PID: 20643 Comm: libtool Not tainted 4.11.0-rc5-14740-ge774fdd27b52-dirty #23
[10741.793322] Hardware name: linux,dummy-virt (DT)
[10741.793887] Call trace:
[10741.794201] [<ffff000008088af8>] dump_backtrace+0x0/0x220
[10741.794860] [<ffff000008088d2c>] show_stack+0x14/0x20
[10741.795526] [<ffff0000083f51f4>] dump_stack+0x9c/0xc0
[10741.796192] [<ffff0000081b3728>] warn_alloc+0xe0/0x168
[10741.796868] [<ffff0000081b42b4>] __alloc_pages_nodemask+0xa9c/0xe28
[10741.797701] [<ffff0000080c57a4>] copy_process.isra.7.part.8+0x134/0x1490
[10741.798573] [<ffff0000080c6c68>] _do_fork+0xa0/0x388
[10741.799224] [<ffff0000080c7018>] SyS_clone+0x18/0x20
[10741.799862] [<ffff000008082f8c>] __sys_trace_return+0x0/0x4
[10741.800597] Mem-Info:
[10741.800889] active_anon:1227157 inactive_anon:2063 isolated_anon:0
[10741.800889]  active_file:566 inactive_file:953 isolated_file:92
[10741.800889]  unevictable:0 dirty:0 writeback:0 unstable:0
[10741.800889]  slab_reclaimable:8531 slab_unreclaimable:180008
[10741.800889]  mapped:1637 shmem:2117 pagetables:242741 bounce:0
[10741.800889]  free:17547 free_pcp:0 free_cma:3584

My infraserver is CentOS7

Thanks a lot.

ChrisFloyd

  • Moderator
  • Newbie
  • *****
  • Posts: 39
  • Karma: +2/-0
Re: Fail to setup infra server vm on arm64 platform
« Reply #1 on: February 28, 2018, 10:21:29 AM »
Tang,

You are correct that there are not any published SPECvirt_sc2013 results that use arm architecture. 

Can you please provide a bit more detail on your infra server configuration (Version of CentOS7.x, memory, #vCPUs, ...), as well as the steps leading up to that error message?

The fcgi code is quite old, so it's possible that building the besim app may require some additional steps.

Tang

  • Newbie
  • *
  • Posts: 15
  • Karma: +0/-0
Re: Fail to setup infra server vm on arm64 platform
« Reply #2 on: March 01, 2018, 12:54:37 AM »
Hi,ChrisFloyd

The configuration of infra server virtual machine:
filesystem: CentOS Linux 7 (AltArch) , downloaded on http://mirror.centos.org/altarch/7/isos/aarch64/
linux kernel 4.11.0-rc5
memory size: 8G byte
vcpus: 32

I first configured in fcgi-2.4.0 with "./configure --libdir=/lib64", but it can't recognize aarch64. Then I specify build type arm-linux. I have tried both arm64-linux and aarch64-linux but it can't recognize. Then "make" and "make install" and errors posted come. Fcgi may be not installed successfully on arm64 platform. How can I install fcgi on arm64 or is there any alternative software?

Setup steps:
chkconfig httpd on
chkconfig nfs on
tar xvf infra_opt.tgz
cp -r opt/* /opt/
cp sysctl.conf /etc/
cp rc.local /etc/rc.d/
echo "ulimit -n 100000 > /dev/null 2>&1 " >> /etc/bashrc

cd /opt/SPECweb2005/Besim/fcgi-2.4.0/
chmod a+x configure
./configure --libdir=/lib64 --build=arm-linux
cp /usr/bin/libtool /opt/SPECweb2005/Besim/fcgi-2.4.0/
make
make install

Thanks.

steved

  • Newbie
  • *
  • Posts: 2
  • Karma: +0/-0
Re: Fail to setup infra server vm on arm64 platform
« Reply #3 on: March 01, 2018, 04:54:41 PM »
Hi, Tang.

I crawled through the ./configure code and noticed that it expects the --build option to be in the form <cpu>-<vendor>-<os>.  So the option should be --build=arm-<vendor>-linux

That said, there is no guarantee that will work.  I don't see any cases in .configure where it checks if the <cpu> is "arm".  Maybe there aren't any special cases needed for ARM.  The code is very old.  Although it was written shortly after the ARM processor came out and there is a comment in the ./configure file that refers to ARM, the developers may not have written the code needed to support ARM that early on.

Let us know how it goes with the new setting for the --build option.

Tang

  • Newbie
  • *
  • Posts: 15
  • Karma: +0/-0
Re: Fail to setup infra server vm on arm64 platform
« Reply #4 on: March 01, 2018, 10:59:43 PM »
Hi, steved

I have tried --bulid=arm-CentOS-linux but it's still not installed successfully followed by the same errors posted above. Also I have set <vendor> to be a random string that is not a correct vendor and it doesn't lead to any mistake in configure process. Maybe .configure doesn't check the <vendor> option.

steved

  • Newbie
  • *
  • Posts: 2
  • Karma: +0/-0
Re: Fail to setup infra server vm on arm64 platform
« Reply #5 on: March 02, 2018, 11:56:29 AM »
Hi, Tang.

Thanks for trying the correct format for the --build option.  The ./configure script doesn't do much with the vendor field.  It does parse the second string after the first dash as the vendor and the third string after the second dash as the os, which means your string of "arm-linux' got parsed as the vendor being "linux" and the os being "".  That definitely won't work if the os is not set correctly.

Still, I'm not surprised that it still doesn't work.  I don't see any support for the "arm" cpu in the script.

You may need to look around for a newer or different version of FastCGI.  Unfortunately, development of FastCGI stopped a long time ago, and the original web site, http://www.fastcgi.com, is gone.  Some folks have archived its contents, but even if you find them they may not build for ARM if they are too old.  I am no fcgi expert, but I know we use a newer version of fcgi than the one that comes in the kit, so I know it's possible to use a different version.  You will have to find a different implementation of FastCGI that will build and install on ARM.  Since I don't know that much about FastCGI I don't have any good pointers on where to go.  Perhaps someone else watching this forum does.