From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1bon0145.outbound.protection.outlook.com [157.56.111.145]) by dpdk.org (Postfix) with ESMTP id 75A7D5A69 for ; Mon, 25 Jan 2016 23:46:33 +0100 (CET) Received: from BY2PR07MB057.namprd07.prod.outlook.com (10.255.240.149) by BY2PR07MB059.namprd07.prod.outlook.com (10.255.240.151) with Microsoft SMTP Server (TLS) id 15.1.365.19; Mon, 25 Jan 2016 22:46:29 +0000 Received: from BY2PR07MB057.namprd07.prod.outlook.com ([169.254.11.152]) by BY2PR07MB057.namprd07.prod.outlook.com ([169.254.11.152]) with mapi id 15.01.0365.024; Mon, 25 Jan 2016 22:46:29 +0000 From: Alain Gautherot To: Alain Gautherot , Sergio Gonzalez Monroy , "users@dpdk.org" Thread-Topic: [dpdk-users] Using DPDK for contiguous physical memory allocation Thread-Index: AQHRV8I6qN4KETeE+0e5Q8/2OEYVlg== Date: Mon, 25 Jan 2016 22:46:29 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=alain@edicogenome.com; x-originating-ip: [70.167.8.242] x-microsoft-exchange-diagnostics: 1; BY2PR07MB059; 5:jVSz/sv8lT86rbCfbelB9j/n2IXmKHlRpTa74cM+eWuXNTLApV4aPfuYC7xMMWgzRw8e/dQpgIHFjXsvCMS6c7U0sdSGkXeDGANTd6wdMelAKMrkJ78r6NnnxI3CDw0LoiuUtkgfupI4tKrnuBme+Q==; 24:dUIbrN7erEpC0s+T317dQz3yl0dhYfx/WVtfmJ8HowfcFYgeJ+NCUdZwGxb7MRub6POP8QiOdqixS2/ATlwgJ2vYsz0eKfWf8zU7MIzWLb4= x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR07MB059; x-ms-office365-filtering-correlation-id: 5ec856d2-331f-4dd8-06da-08d325d95daf x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(2401047)(520078)(8121501046)(5005006)(3002001)(10201501046); SRVR:BY2PR07MB059; BCL:0; PCL:0; RULEID:; SRVR:BY2PR07MB059; x-forefront-prvs: 083289FD26 x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(377454003)(189002)(164054003)(24454002)(13464003)(199003)(24434003)(69234005)(479174004)(10400500002)(87936001)(19580405001)(122556002)(2906002)(5890100001)(92566002)(575784001)(86362001)(40100003)(2501003)(15395725005)(5004730100002)(1220700001)(102836003)(1096002)(76576001)(11100500001)(107886002)(2900100001)(54356999)(74316001)(5001960100002)(15975445007)(3846002)(2950100001)(1720100001)(97736004)(3280700002)(33656002)(5001770100001)(6116002)(81156007)(19580395003)(189998001)(101416001)(99286002)(66066001)(50986999)(106356001)(105586002)(5008740100001)(106116001)(5003600100002)(586003)(76176999)(5002640100001)(579004); DIR:OUT; SFP:1102; SCL:1; SRVR:BY2PR07MB059; H:BY2PR07MB057.namprd07.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; received-spf: None (protection.outlook.com: edicogenome.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:23 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: edicogenome.com X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jan 2016 22:46:29.5978 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 715cf729-d8ae-46d7-a6f6-5d36941a1b6c X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR07MB059 Subject: Re: [dpdk-users] Using DPDK for contiguous physical memory allocation X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2016 22:46:34 -0000 Hola Sergio, Actually, that may just have been a bug in DPDK 2.0.0. I realized there is = a newer DPDK 2.2.0 so I tried it and SIGSEGV error is gone. So issue closed! FYI, I just had to workaround a compilation issue in VIRTIO lib (I'm on my = centos6.6/kernel 2.6.32-504 currently): =3D=3D Build lib/librte_vhost CC virtio-net.o In file included from /home/alaing/INTEL/dpdk-2.2.0/lib/librte_vhost/virti= o-net.c:35: /usr/include/linux/virtio_net.h:171: error: expected specifier-qualifier-l= ist before 'u16' make[4]: *** [virtio-net.o] Error 1 make[3]: *** [librte_vhost] Error 2 make[2]: *** [lib] Error 2 make[1]: *** [all] Error 2 make: *** [all] Error 2 I bypassed VIRTIO and was able to build. Using 10k x 2MB huge page tables, it seems I can allocate up to 18GB of the= se 20GB, which is very hopeful for what I intend to do. $ ./build/helloworld EAL: Detected lcore 0 as core 0 on socket 0 EAL: Detected lcore 1 as core 1 on socket 0 EAL: Detected lcore 2 as core 2 on socket 0 EAL: Detected lcore 3 as core 3 on socket 0 EAL: Detected lcore 4 as core 4 on socket 0 EAL: Detected lcore 5 as core 5 on socket 0 EAL: Detected lcore 6 as core 0 on socket 0 EAL: Detected lcore 7 as core 1 on socket 0 EAL: Detected lcore 8 as core 2 on socket 0 EAL: Detected lcore 9 as core 3 on socket 0 EAL: Detected lcore 10 as core 4 on socket 0 EAL: Detected lcore 11 as core 5 on socket 0 EAL: Support maximum 128 logical core(s) by configuration. EAL: Detected 12 lcore(s) EAL: Setting up physically contiguous memory... EAL: Ask a virtual area of 0x200000 bytes EAL: Virtual area found at 0x7f1b9a600000 (size =3D 0x200000) EAL: Ask a virtual area of 0x483400000 bytes EAL: Virtual area found at 0x7f1717000000 (size =3D 0x483400000) EAL: Ask a virtual area of 0x8800000 bytes EAL: Virtual area found at 0x7f170e600000 (size =3D 0x8800000) EAL: Ask a virtual area of 0x400000 bytes EAL: Virtual area found at 0x7f170e000000 (size =3D 0x400000) EAL: Ask a virtual area of 0x400000 bytes EAL: Virtual area found at 0x7f170da00000 (size =3D 0x400000) EAL: Ask a virtual area of 0x400000 bytes EAL: Virtual area found at 0x7f170d400000 (size =3D 0x400000) EAL: Ask a virtual area of 0x3000000 bytes EAL: Virtual area found at 0x7f170a200000 (size =3D 0x3000000) EAL: Ask a virtual area of 0x1000000 bytes EAL: Virtual area found at 0x7f1709000000 (size =3D 0x1000000) EAL: Ask a virtual area of 0xc00000 bytes EAL: Virtual area found at 0x7f1708200000 (size =3D 0xc00000) EAL: Ask a virtual area of 0x400000 bytes EAL: Virtual area found at 0x7f1707c00000 (size =3D 0x400000) EAL: Ask a virtual area of 0x400000 bytes EAL: Virtual area found at 0x7f1707600000 (size =3D 0x400000) EAL: Ask a virtual area of 0x400000 bytes EAL: Virtual area found at 0x7f1707000000 (size =3D 0x400000) EAL: Ask a virtual area of 0x400000 bytes EAL: Virtual area found at 0x7f1706a00000 (size =3D 0x400000) EAL: Ask a virtual area of 0x400000 bytes EAL: Virtual area found at 0x7f1706400000 (size =3D 0x400000) EAL: Ask a virtual area of 0x1400000 bytes EAL: Virtual area found at 0x7f1704e00000 (size =3D 0x1400000) EAL: Ask a virtual area of 0x1000000 bytes EAL: Virtual area found at 0x7f1703c00000 (size =3D 0x1000000) EAL: Ask a virtual area of 0x800000 bytes EAL: Virtual area found at 0x7f1703200000 (size =3D 0x800000) EAL: Ask a virtual area of 0x1c00000 bytes EAL: Virtual area found at 0x7f1701400000 (size =3D 0x1c00000) EAL: Ask a virtual area of 0x400000 bytes EAL: Virtual area found at 0x7f1700e00000 (size =3D 0x400000) EAL: Ask a virtual area of 0x400000 bytes EAL: Virtual area found at 0x7f1700800000 (size =3D 0x400000) EAL: Ask a virtual area of 0xc00000 bytes EAL: Virtual area found at 0x7f16ffa00000 (size =3D 0xc00000) EAL: Ask a virtual area of 0x400000 bytes EAL: Virtual area found at 0x7f16ff400000 (size =3D 0x400000) EAL: Ask a virtual area of 0x4800000 bytes EAL: Virtual area found at 0x7f16faa00000 (size =3D 0x4800000) EAL: Ask a virtual area of 0xc00000 bytes EAL: Virtual area found at 0x7f16f9c00000 (size =3D 0xc00000) EAL: Ask a virtual area of 0x400000 bytes EAL: Virtual area found at 0x7f16f9600000 (size =3D 0x400000) EAL: Ask a virtual area of 0xc00000 bytes EAL: Virtual area found at 0x7f16f8800000 (size =3D 0xc00000) EAL: Ask a virtual area of 0x400000 bytes EAL: Virtual area found at 0x7f16f8200000 (size =3D 0x400000) EAL: Ask a virtual area of 0x1000000 bytes EAL: Virtual area found at 0x7f16f7000000 (size =3D 0x1000000) EAL: Ask a virtual area of 0x1400000 bytes EAL: Virtual area found at 0x7f16f5a00000 (size =3D 0x1400000) EAL: Ask a virtual area of 0x800000 bytes EAL: Virtual area found at 0x7f16f5000000 (size =3D 0x800000) EAL: Ask a virtual area of 0x400000 bytes EAL: Virtual area found at 0x7f16f4a00000 (size =3D 0x400000) EAL: Ask a virtual area of 0x400000 bytes EAL: Virtual area found at 0x7f16f4400000 (size =3D 0x400000) EAL: Ask a virtual area of 0x800000 bytes EAL: Virtual area found at 0x7f16f3a00000 (size =3D 0x800000) EAL: Ask a virtual area of 0x400000 bytes EAL: Virtual area found at 0x7f16f3400000 (size =3D 0x400000) EAL: Ask a virtual area of 0x200000 bytes EAL: Virtual area found at 0x7f16f3000000 (size =3D 0x200000) EAL: Ask a virtual area of 0x400000 bytes EAL: Virtual area found at 0x7f16f2a00000 (size =3D 0x400000) EAL: Ask a virtual area of 0x200000 bytes EAL: Virtual area found at 0x7f16f2600000 (size =3D 0x200000) EAL: Ask a virtual area of 0x200000 bytes EAL: Virtual area found at 0x7f16f2200000 (size =3D 0x200000) EAL: Ask a virtual area of 0x400000 bytes EAL: Virtual area found at 0x7f16f1c00000 (size =3D 0x400000) EAL: Ask a virtual area of 0x200000 bytes EAL: Virtual area found at 0x7f16f1800000 (size =3D 0x200000) EAL: Ask a virtual area of 0x35800000 bytes EAL: Virtual area found at 0x7f16bbe00000 (size =3D 0x35800000) EAL: Requesting 9933 pages of size 2MB from socket 0 EAL: TSC frequency is ~2399945 KHz EAL: Master lcore 0 is ready (tid=3D9d146880;cpuset=3D[0]) EAL: lcore 6 is ready (tid=3Db82bb700;cpuset=3D[6]) EAL: lcore 3 is ready (tid=3D9b30f700;cpuset=3D[3]) EAL: lcore 8 is ready (tid=3Db6eb9700;cpuset=3D[8]) EAL: lcore 7 is ready (tid=3Db78ba700;cpuset=3D[7]) EAL: lcore 11 is ready (tid=3Db50b6700;cpuset=3D[11]) EAL: lcore 9 is ready (tid=3Db64b8700;cpuset=3D[9]) EAL: lcore 4 is ready (tid=3Db96bd700;cpuset=3D[4]) EAL: lcore 2 is ready (tid=3D9bd10700;cpuset=3D[2]) EAL: lcore 10 is ready (tid=3Db5ab7700;cpuset=3D[10]) EAL: lcore 1 is ready (tid=3D9c711700;cpuset=3D[1]) EAL: lcore 5 is ready (tid=3Db8cbc700;cpuset=3D[5]) EAL: PCI device 0000:01:00.0 on NUMA socket 0 EAL: probe driver: 8086:1521 rte_igb_pmd EAL: Not managed by a supported kernel driver, skipped EAL: PCI device 0000:01:00.1 on NUMA socket 0 EAL: probe driver: 8086:1521 rte_igb_pmd EAL: Not managed by a supported kernel driver, skipped EAL: PCI device 0000:03:00.0 on NUMA socket 0 EAL: probe driver: 8086:10fb rte_ixgbe_pmd EAL: Not managed by a supported kernel driver, skipped EAL: PCI device 0000:03:00.1 on NUMA socket 0 EAL: probe driver: 8086:10fb rte_ixgbe_pmd EAL: Not managed by a supported kernel driver, skipped Allocating 0.1GB: PASS Allocating 0.2GB: PASS Allocating 0.3GB: PASS Allocating 0.4GB: PASS Allocating 0.5GB: PASS Allocating 0.6GB: PASS Allocating 0.7GB: PASS Allocating 0.8GB: PASS Allocating 0.9GB: PASS Allocating 1.0GB: PASS Allocating 1.1GB: PASS Allocating 1.2GB: PASS Allocating 1.3GB: PASS Allocating 1.4GB: PASS Allocating 1.5GB: PASS Allocating 1.6GB: PASS Allocating 1.7GB: PASS Allocating 1.8GB: PASS Allocating 1.9GB: PASS Allocating 2.0GB: PASS Allocating 2.1GB: PASS Allocating 2.2GB: PASS Allocating 2.3GB: PASS Allocating 2.4GB: PASS Allocating 2.5GB: PASS Allocating 2.6GB: PASS Allocating 2.7GB: PASS Allocating 2.8GB: PASS Allocating 2.9GB: PASS Allocating 3.0GB: PASS Allocating 3.1GB: PASS Allocating 3.2GB: PASS Allocating 3.3GB: PASS Allocating 3.4GB: PASS Allocating 3.5GB: PASS Allocating 3.6GB: PASS Allocating 3.7GB: PASS Allocating 3.8GB: PASS Allocating 3.9GB: PASS Allocating 4.0GB: PASS Allocating 4.1GB: PASS Allocating 4.2GB: PASS Allocating 4.3GB: PASS Allocating 4.4GB: PASS Allocating 4.5GB: PASS Allocating 4.6GB: PASS Allocating 4.7GB: PASS Allocating 4.8GB: PASS Allocating 4.9GB: PASS Allocating 5.0GB: PASS Allocating 5.1GB: PASS Allocating 5.2GB: PASS Allocating 5.3GB: PASS Allocating 5.4GB: PASS Allocating 5.5GB: PASS Allocating 5.6GB: PASS Allocating 5.7GB: PASS Allocating 5.8GB: PASS Allocating 5.9GB: PASS Allocating 6.0GB: PASS Allocating 6.1GB: PASS Allocating 6.2GB: PASS Allocating 6.3GB: PASS Allocating 6.4GB: PASS Allocating 6.5GB: PASS Allocating 6.6GB: PASS Allocating 6.7GB: PASS Allocating 6.8GB: PASS Allocating 6.9GB: PASS Allocating 7.0GB: PASS Allocating 7.1GB: PASS Allocating 7.2GB: PASS Allocating 7.3GB: PASS Allocating 7.4GB: PASS Allocating 7.5GB: PASS Allocating 7.6GB: PASS Allocating 7.7GB: PASS Allocating 7.8GB: PASS Allocating 7.9GB: PASS Allocating 8.0GB: PASS Allocating 8.1GB: PASS Allocating 8.2GB: PASS Allocating 8.3GB: PASS Allocating 8.4GB: PASS Allocating 8.5GB: PASS Allocating 8.6GB: PASS Allocating 8.7GB: PASS Allocating 8.8GB: PASS Allocating 8.9GB: PASS Allocating 9.0GB: PASS Allocating 9.1GB: PASS Allocating 9.2GB: PASS Allocating 9.3GB: PASS Allocating 9.4GB: PASS Allocating 9.5GB: PASS Allocating 9.6GB: PASS Allocating 9.7GB: PASS Allocating 9.8GB: PASS Allocating 9.9GB: PASS Allocating 10.0GB: PASS Allocating 10.1GB: PASS Allocating 10.2GB: PASS Allocating 10.3GB: PASS Allocating 10.4GB: PASS Allocating 10.5GB: PASS Allocating 10.6GB: PASS Allocating 10.7GB: PASS Allocating 10.8GB: PASS Allocating 10.9GB: PASS Allocating 11.0GB: PASS Allocating 11.1GB: PASS Allocating 11.2GB: PASS Allocating 11.3GB: PASS Allocating 11.4GB: PASS Allocating 11.5GB: PASS Allocating 11.6GB: PASS Allocating 11.7GB: PASS Allocating 11.8GB: PASS Allocating 11.9GB: PASS Allocating 12.0GB: PASS Allocating 12.1GB: PASS Allocating 12.2GB: PASS Allocating 12.3GB: PASS Allocating 12.4GB: PASS Allocating 12.5GB: PASS Allocating 12.6GB: PASS Allocating 12.7GB: PASS Allocating 12.8GB: PASS Allocating 12.9GB: PASS Allocating 13.0GB: PASS Allocating 13.1GB: PASS Allocating 13.2GB: PASS Allocating 13.3GB: PASS Allocating 13.4GB: PASS Allocating 13.5GB: PASS Allocating 13.6GB: PASS Allocating 13.7GB: PASS Allocating 13.8GB: PASS Allocating 13.9GB: PASS Allocating 14.0GB: PASS Allocating 14.1GB: PASS Allocating 14.2GB: PASS Allocating 14.3GB: PASS Allocating 14.4GB: PASS Allocating 14.5GB: PASS Allocating 14.6GB: PASS Allocating 14.7GB: PASS Allocating 14.8GB: PASS Allocating 14.9GB: PASS Allocating 15.0GB: PASS Allocating 15.1GB: PASS Allocating 15.2GB: PASS Allocating 15.3GB: PASS Allocating 15.4GB: PASS Allocating 15.5GB: PASS Allocating 15.6GB: PASS Allocating 15.7GB: PASS Allocating 15.8GB: PASS Allocating 15.9GB: PASS Allocating 16.0GB: PASS Allocating 16.1GB: PASS Allocating 16.2GB: PASS Allocating 16.3GB: PASS Allocating 16.4GB: PASS Allocating 16.5GB: PASS Allocating 16.6GB: PASS Allocating 16.7GB: PASS Allocating 16.8GB: PASS Allocating 16.9GB: PASS Allocating 17.0GB: PASS Allocating 17.1GB: PASS Allocating 17.2GB: PASS Allocating 17.3GB: PASS Allocating 17.4GB: PASS Allocating 17.5GB: PASS Allocating 17.6GB: PASS Allocating 17.7GB: PASS Allocating 17.8GB: PASS Allocating 17.9GB: PASS Allocating 18.0GB: PASS Allocating 18.1GB: fail Allocating 18.2GB: fail Allocating 18.3GB: fail Allocating 18.4GB: fail Allocating 18.5GB: fail Allocating 18.6GB: fail Allocating 18.7GB: fail Allocating 18.8GB: fail Allocating 18.9GB: fail Allocating 19.0GB: fail Allocating 19.1GB: fail Allocating 19.2GB: fail Allocating 19.3GB: fail Allocating 19.4GB: fail Allocating 19.5GB: fail Allocating 19.6GB: fail Allocating 19.7GB: fail Allocating 19.8GB: fail Allocating 19.9GB: fail Allocating 20.0GB: fail Done Thanks, Alain -----Original Message----- From: users [mailto:users-bounces@dpdk.org] On Behalf Of Alain Gautherot Sent: Monday, January 25, 2016 1:03 PM To: Sergio Gonzalez Monroy ; users@dpdk.o= rg Subject: Re: [dpdk-users] Using DPDK for contiguous physical memory allocat= ion [resend with enclosed log instead of attachment] Hello Sergio, I'm running the following command $ ./build/helloworld -c fff -n 1 And get the attached log (hope it goes through). Using "-n 2" (I'm not sure= how many channels) gives the same SIGSEGV error. Here's the configuration: $ numactl -H =20 available: 1 nodes (0) =20 node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 =20 node 0 size: 65431 MB =20 node 0 free: 62040 MB =20 node distances: =20 node 0 =20 0: 10 =20 $ cat /proc/meminfo MemTotal: 65867360 kB MemFree: 63529276 kB Buffers: 93996 kB Cached: 562160 kB SwapCached: 0 kB Active: 314816 kB Inactive: 483752 kB Active(anon): 144372 kB Inactive(anon): 28 kB Active(file): 170444 kB Inactive(file): 483724 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 12 kB Writeback: 0 kB AnonPages: 144184 kB Mapped: 49004 kB Shmem: 280 kB Slab: 77572 kB SReclaimable: 31580 kB SUnreclaim: 45992 kB KernelStack: 2904 kB PageTables: 7744 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 32421680 kB Committed_AS: 383316 kB VmallocTotal: 34359738367 kB VmallocUsed: 378992 kB VmallocChunk: 34359352736 kB HardwareCorrupted: 0 kB AnonHugePages: 73728 kB HugePa ges_Total: 500 HugePages_Free: 9 HugePages_Rsvd: 9 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 4096 kB DirectMap2M: 2027520 kB DirectMap1G: 65011712 kB Log: EAL: Detected lcore 0 as core 0 on socket 0 EAL: Detected lcore 1 as core 1 on socket 0 EAL: Detected lcore 2 as core 2 on socket 0 EAL: Detected lcore 3 as core 3 on socket 0 EAL: Detected lcore 4 as core 4 on socket 0 EAL: Detected lcore 5 as core 5 on socket 0 EAL: Detected lcore 6 as core 0 on socket 0 EAL: Detected lcore 7 as core 1 on socket 0 EAL: Detected lcore 8 as core 2 on socket 0 EAL: Detected lcore 9 as core 3 on socket 0 EAL: Detected lcore 10 as core 4 on socket 0 EAL: Detected lcore 11 as core 5 on socket 0 EAL: Support maximum 128 logical core(s) by configuration. EAL: Detected 12 lcore(s) EAL: Setting up memory... EAL: Ask a virtual area of 0x200000 bytes EAL: Virtual area found at 0x7fd26c800000 (size =3D 0x200000) EAL: Ask a virtual area of 0x35800000 bytes EAL: Virtual area found at 0x7fd236e00000 (size =3D 0x35800000) EAL: Requesting 429 pages of size 2MB from socket 0 EAL: TSC frequency is ~2400001 KHz EAL: Master lcore 0 is ready (tid=3D6cd40880;cpuset=3D[0]) PMD: ENICPMD trace: rte_enic_pmd_init EAL: lcore 6 is ready (tid=3D331f7700;cpuset=3D[6]) EAL: lcore 5 is ready (tid=3D33bf8700;cpuset=3D[5]) EAL: lcore 9 is ready (tid=3D313f4700;cpuset=3D[9]) EAL: lcore 11 is ready (tid=3D2fff2700;cpuset=3D[11]) EAL: lcore 4 is ready (tid=3D345f9700;cpuset=3D[4]) EAL: lcore 8 is ready (tid=3D31df5700;cpuset=3D[8]) EAL: lcore 1 is ready (tid=3D363fc700;cpuset=3D[1]) EAL: lcore 10 is ready (tid=3D309f3700;cpuset=3D[10]) EAL: lcore 3 is ready (tid=3D34ffa700;cpuset=3D[3]) EAL: lcore 2 is ready (tid=3D359fb700;cpuset=3D[2]) EAL: lcore 7 is ready (tid=3D327f6700;cpuset=3D[7]) EAL: PCI device 0000:01:00.0 on NUMA socket 0 EAL: probe driver: 8086:1521 rte_igb_pmd EAL: Not managed by a supported kernel driver, skipped EAL: PCI device 0000:01:00.1 on NUMA socket 0 EAL: probe driver: 8086:1521 rte_igb_pmd EAL: Not managed by a supported kernel driver, skipped EAL: PCI device 0000:03:00.0 on NUMA socket 0 EAL: probe driver: 8086:10fb rte_ixgbe_pmd EAL: Not managed by a supported kernel driver, skipped EAL: PCI device 0000:03:00.1 on NUMA socket 0 EAL: probe driver: 8086:10fb rte_ixgbe_pmd EAL: Not managed by a supported kernel driver, skipped Allocating 0.1GB: PASS Allocating 0.2GB: PASS Allocating 0.3GB: PASS Allocating 0.4GB: fail Allocating 0.5GB: fail Allocating 0.6GB: fail Allocating 0.7GB: fail Allocating 0.8GB: fail Allocating 0.9GB: fail Allocating 1.0GB: fail Allocating 1.1GB: fail Allocating 1.2GB: fail Allocating 1.3GB: fail Allocating 1.4GB: fail Allocating 1.5GB: fail Allocating 1.6GB: fail Allocating 1.7GB: fail Allocating 1.8GB: fail Allocating 1.9GB: fail Allocating 2.0GB: fail Allocating 2.1GB: fail Allocating 2.2GB: Thanks, Alain -----Original Message----- From: Sergio Gonzalez Monroy [mailto:sergio.gonzalez.monroy@intel.com]=20 Sent: Monday, January 25, 2016 5:50 AM To: Alain Gautherot ; users@dpdk.org Subject: Re: [dpdk-users] Using DPDK for contiguous physical memory allocat= ion On 23/01/2016 00:20, Alain Gautherot wrote: > Hello, > > I came across DPDK in a thread @ http://stackoverflow.com/questions/44019= 12/linux-contiguous-physical-memory-from-userspace (bottom reply from mrsmi= th) and wanted to see if I can use rte_malloc() to allocate large blocks of= contiguous physical memory (16GB or even 32GB at some point). > > The platform I'm working on has an FPGA that shares host memory with the = x86_64 cores via a QPI link. > The FPGA crunches data directly from host memory and uses physical addres= ses (mostly a QPI limitation, but it is also dictated by performance consid= erations and the ability to make the best possible use of multiple memory c= ontrollers). > The data shared is 16GB or up to 32GB and could be provided as multiple d= escriptors to the FPGA, but that still means that each descriptor is in the= order of several GBytes each. > I understand that allocation may fail, but is ok for now, since I'm still= in the proof-of-concept stage, trying to rule things out. > > My sample application attempts to allocate memory by chunks of 100MB like= so: > > int main(int argc, char **argv) > { > int ret; > > ret =3D rte_eal_init(argc, argv); > if (ret < 0) { > rte_panic("Cannot init EAL\n"); > } > > int i; > for (i =3D 1; i <=3D 100; ++i) { > size_t allocsize =3D i * 100*1000*1000; > > printf(" Allocating %3.1fGB: ", ((float )i)/10.0f); > fflush(stdout); > void* ptr =3D rte_malloc(NULL, allocsize, 0U); > if (ptr !=3D NULL) { > printf("PASS\n"); > rte_free(ptr); > } else { > printf("fail\n"); > } > } > > printf("Done\n"); > return 0; > } > > I get a consistent crash @ the 2.2GB mark: > (gdb) r -c f -n 4 > ... > EAL: PCI device 0000:06:00.1 on NUMA socket 0 > EAL: probe driver: 8086:1521 rte_igb_pmd > EAL: Not managed by a supported kernel driver, skipped > Allocating 0.1GB: fail > Allocating 0.2GB: fail > ... > Allocating 2.0GB: fail > Allocating 2.1GB: fail > Allocating 2.2GB: > Program received signal SIGSEGV, Segmentation fault. > 0x00000000004c6770 in malloc_elem_init (elem=3D0x800070eaa880, heap=3D0x7= ffff7fe561c, mz=3D0x7ffff7fb2c1c, size=3D2200000064) > at /home/alaing/INTEL/dpdk-2.0.0/lib/librte_malloc/malloc_elem.c:61 > 61 elem->heap =3D heap; > Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.149.el6_= 6.5.x86_64 > (gdb) bt > ... > #0 0x00000000004c6770 in malloc_elem_init (elem=3D0x800070eaa880, heap= =3D0x7ffff7fe561c, mz=3D0x7ffff7fb2c1c, size=3D2200000064) > at /home/alaing/INTEL/dpdk-2.0.0/lib/librte_malloc/malloc_elem.c:61 > #1 0x00000000004c694e in split_elem (elem=3D0x7ffff3e00000, split_pt=3D0= x800070eaa880) at /home/alaing/INTEL/dpdk-2.0.0/lib/librte_malloc/malloc_el= em.c:121 > #2 0x00000000004c6bda in malloc_elem_alloc (elem=3D0x7ffff3e00000, size= =3D18446744071614584320, align=3D64) > at /home/alaing/INTEL/dpdk-2.0.0/lib/librte_malloc/malloc_elem.c:223 > #3 0x00000000004c736e in malloc_heap_alloc (heap=3D0x7ffff7fe561c, type= =3D0x0, size=3D18446744071614584320, align=3D64) > at /home/alaing/INTEL/dpdk-2.0.0/lib/librte_malloc/malloc_heap.c:167 > #4 0x00000000004c0aa1 in rte_malloc_socket (type=3D0x0, size=3D184467440= 71614584320, align=3D0, socket_arg=3D-1) > at /home/alaing/INTEL/dpdk-2.0.0/lib/librte_malloc/rte_malloc.c:89 > #5 0x00000000004c0b5b in rte_malloc (type=3D0x0, size=3D1844674407161458= 4320, align=3D0) at /home/alaing/INTEL/dpdk-2.0.0/lib/librte_malloc/rte_mal= loc.c:115 > #6 0x000000000041ca6e in main (argc=3D5, argv=3D0x7fffffffdd48) at /home= /alaing/INTEL/dpdk-2.0.0/examples/hugephymem/main.c:66 > > > Has anybody seen such an issue? > Could I be misusing RTE somehow? > What options are you running your DPDK app with? Can you also provide the full initialization log and hugepage info? Sergio > Thanks for your time, > Alain > > > -- > Alain Gautherot > Edico Genome > -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: dpdk_log.txt URL: