Analyzers
Talk to fellow users of Intel Analyzer tools (Intel VTune™ Profiler, Intel Advisor)

Fail to build sepdk driver on Linux-2.6.39.3/x86_64

Jie_Jiang
Beginner
1,103 Views
I tried to install Vtune Amplifier XE 2011 on linux-2.6.39.3/X5670.
When building the sepdk driver module, I got some errors and the build process failed.
The following is the detailed context:

[root@cn0%debuger src]# ./build-driver

Options in brackets "[ ... ]" indicate default values
that will be used when only the ENTER key is pressed.

C compiler to use: [ /usr/bin/gcc ]

Make command to use: [ /usr/bin/make ]

Kernel source directory: [ /lib/modules/2.6.39.3/build ] /vol6/home/jiangjie/linux-2.6.39.3
rm -f *.o .*.o.cmd .*.o.d .*.ko.cmd .*.ko.unsigned.cmd
rm -f sep3_1.ko sep3_1.ko.unsigned sep3_1-x32_64-2.6.39.3smp.ko
rm -f Module.symvers Modules.symvers *.mod.c modules.order Module.markers
rm -rf .tmp_versions
make[1]: Entering directory `/vol6/lib/intel/vtune_amplifier_xe_2011/sepdk/src/pax'
rm -f *.o .*.o.cmd .*.o.d .*.ko.cmd .*.ko.unsigned.cmd
rm -f pax.ko pax.ko.unsigned pax-x32_64-2.6.39.3smp.ko
rm -f Module.symvers Modules.symvers *.mod.c modules.order Module.markers
rm -rf .tmp_versions
make[1]: Leaving directory `/vol6/lib/intel/vtune_amplifier_xe_2011/sepdk/src/pax'
/usr/bin/make -C /vol6/home/jiangjie/linux-2.6.39.3 M=/vol6/lib/intel/vtune_amplifier_xe_2011/sepdk/src LDDINCDIR=/vol6/lib/intel/vtune_amplifier_xe_2011/sepdk/src/../include LDDINCDIR1=/vol6/lib/intel/vtune_amplifier_xe_2011/sepdk/src/inc modules PWD=/vol6/lib/intel/vtune_amplifier_xe_2011/sepdk/src
make[1]: Entering directory `/vol6/home/jiangjie/linux-2.6.39.3'
CC /vol6/lib/intel/vtune_amplifier_xe_2011/sepdk/src/lwpmudrv.o
/vol6/lib/intel/vtune_amplifier_xe_2011/sepdk/src/lwpmudrv.c:2212: error: unknown field ioctl specified in initializer
/vol6/lib/intel/vtune_amplifier_xe_2011/sepdk/src/lwpmudrv.c:2212: warning: initialization from incompatible pointer type
/vol6/lib/intel/vtune_amplifier_xe_2011/sepdk/src/lwpmudrv.c:2224: error: unknown field ioctl specified in initializer
/vol6/lib/intel/vtune_amplifier_xe_2011/sepdk/src/lwpmudrv.c:2236: error: unknown field ioctl specified in initializer
/vol6/lib/intel/vtune_amplifier_xe_2011/sepdk/src/lwpmudrv.c:2249: error: unknown field ioctl specified in initializer
make[2]: *** [/vol6/lib/intel/vtune_amplifier_xe_2011/sepdk/src/lwpmudrv.o] Error 1
make[1]: *** [_module_/vol6/lib/intel/vtune_amplifier_xe_2011/sepdk/src] Error 2
make[1]: Leaving directory `/vol6/home/jiangjie/linux-2.6.39.3'
make: *** [default] Error 2


In Linux kernel 2.6.39, the structure "file_operations" doesn't contain "ioctl" field anymore.
Instead, it has been replaced with unlocked_ioctl.
Seems that this problem can be fixed by replacing ioctl with unlocked_ioctl in file lwpmudrv.c.

Does Intel provide new update of Vtune Amplifier XE that works around this problem?

Jie Jiang
0 Kudos
8 Replies
Peter_W_Intel
Employee
1,103 Views
Hi Jie,

Based on installation message "rm -f sep3_1.ko sep3_1.ko.unsigned sep3_1-x32_64-2.6.39.3smp.ko" - you have to upgrade to latest version Update 4. Please download the package from https://registrationcenter.intel.com/RegCenter/Download.aspx?productid=1384

What is Linux* OS you work on? Please check supported OSs in release notes of the product, under installation_dir/documentation/en

I tested on kernel 2.6.38.7, it works, but not sure for 2.6.39.3 - what is OS vendor name?

Please let me know if you need other assistance.

Regards, Peter
0 Kudos
Najeeb_A_
Beginner
1,103 Views

Hi,

I am trying to build VTUNE driver and when I try to build it, I get the following errors:

:> /opt/intel/vtune_amplifier/sepdk/src$ sudo ./build-driver

Options in brackets "[ ... ]" indicate default values

that will be used when only the ENTER key is pressed.

C compiler to use: [ /usr/bin//gcc ]

Make command to use: [ /usr/bin//make ]

Kernel source directory: [ /lib/modules/4.13.0-32-generic/build ]
rm -f *.o .*.o.cmd .*.o.d .*.ko.cmd .*.ko.unsigned.cmd *.gcno
rm -f sep4_1.ko sep4_1.ko.unsigned
rm -f sep4_1*x32_64-4.13.0-32-genericsmp.ko
rm -f Module.symvers Modules.symvers *.mod.c modules.order Module.markers
rm -rf .tmp_versions
make[1]: Entering directory '/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/pax'
rm -f *.o .*.o.cmd .*.o.d .*.ko.cmd .*.ko.unsigned.cmd *.gcno
rm -f pax.ko pax.ko.unsigned pax-x32_64-4.13.0-32-genericsmp.ko
rm -f Module.symvers Modules.symvers *.mod.c modules.order Module.markers
rm -rf .tmp_versions
make[1]: Leaving directory '/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/pax'
make[1]: Entering directory '/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src'
rm -f *.o .*.o.cmd .*.o.d .*.ko.cmd .*.ko.unsigned.cmd *.gcno
rm -f socperf2_0.ko socperf2_0.ko.unsigned
rm -f socperf2_0*x32_64-4.13.0-32-genericsmp.ko
rm -f Module.symvers Modules.symvers *.mod.c modules.order Module.markers
rm -rf .tmp_versions
make[1]: Leaving directory '/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src'
make[1]: Entering directory '/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/vtsspp'
rm -f *.o .*.o.cmd .*.o.d .*.ko.cmd .*.ko.unsigned.cmd *.gcno
rm -f Module.symvers Modules.symvers *.mod.c modules.order Module.markers
rm -rf .tmp_versions
rm -f /opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/vtsspp/vtss_autoconf.h
rm -f vtsspp.ko vtsspp.ko.unsigned vtsspp-x32_64-4.13.0-32-genericsmp.ko
make[1]: Leaving directory '/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/vtsspp'
make[1]: Entering directory '/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src'
/usr/bin//make -C /lib/modules/4.13.0-32-generic/build M=/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src LDDINCDIR=/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src/../include LDDINCDIR1=/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src/inc modules PWD=/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src -j4
make[2]: Entering directory '/usr/src/linux-headers-4.13.0-32-generic'
  CC   /opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src/socperfdrv.o
  CC   /opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src/control.o
  CC   /opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src/utility.o
  CC   /opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src/pci.o
  CC   /opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src/soc_uncore.o
  CC   /opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src/haswellunc_sa.o
  CC   /opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src/axi_uncore.o
  CC   /opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src/npk_uncore.o
  LD   /opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src/socperf2_0.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src/socperf2_0.mod.o
  LD   /opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src/socperf2_0.ko
make[2]: Leaving directory '/usr/src/linux-headers-4.13.0-32-generic'
cp socperf2_0.ko socperf2_0-x32_64-4.13.0-32-genericsmp.ko
make[1]: Leaving directory '/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src'
/usr/bin//make -C /lib/modules/4.13.0-32-generic/build M=/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src LDDINCDIR=/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/../include LDDINCDIR1=/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/inc modules PWD=/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src
make[1]: Entering directory '/usr/src/linux-headers-4.13.0-32-generic'
***************************************************************
NOTE: NMI Interrupt Mode is set on 4.13.0-32-generic kernel
***************************************************************
  CC   /opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/lwpmudrv.o
/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/lwpmudrv.c: In function ‘lwpmudrv_Get_Drv_Setup_Info’:
/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/lwpmudrv.c:4380:9: error: ‘x86_hyper’ undeclared (first use in this function)
     if (x86_hyper && x86_hyper->name) {
         ^
/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/lwpmudrv.c:4380:9: note: each undeclared identifier is reported only once for each function it appears in
scripts/Makefile.build:308: recipe for target '/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/lwpmudrv.o' failed
make[2]: *** [/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/lwpmudrv.o] Error 1
Makefile:1550: recipe for target '_module_/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src' failed
make[1]: *** [_module_/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.13.0-32-generic'
Makefile:224: recipe for target 'default' failed
make: *** [default] Error 2

 

Any help is appreciated.

0 Kudos
kotewar__sankalp
Beginner
1,103 Views

I got similar error on UBUNTU 18.10

 

C compiler to use: [ /usr/bin/gcc ] 
Make command to use: [ /usr/bin/make ] 
Kernel source directory: [ /lib/modules/4.13.0-32-generic/build ] 
rm -f *.o .*.o.cmd .*.o.d .*.ko.cmd .*.ko.unsigned.cmd *.gcno
rm -f sep4_1.ko sep4_1.ko.unsigned
rm -f sep4_1*x32_64-4.13.0-32-genericsmp.ko
rm -f Module.symvers Modules.symvers *.mod.c modules.order Module.markers
rm -rf .tmp_versions
make[1]: Entering directory '/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/pax'
rm -f *.o .*.o.cmd .*.o.d .*.ko.cmd .*.ko.unsigned.cmd *.gcno
rm -f pax.ko pax.ko.unsigned pax-x32_64-4.13.0-32-genericsmp.ko
rm -f Module.symvers Modules.symvers *.mod.c modules.order Module.markers
rm -rf .tmp_versions
make[1]: Leaving directory '/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/pax'
make[1]: Entering directory '/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src'
rm -f *.o .*.o.cmd .*.o.d .*.ko.cmd .*.ko.unsigned.cmd *.gcno
rm -f socperf2_0.ko socperf2_0.ko.unsigned
rm -f socperf2_0*x32_64-4.13.0-32-genericsmp.ko
rm -f Module.symvers Modules.symvers *.mod.c modules.order Module.markers
rm -rf .tmp_versions
make[1]: Leaving directory '/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src'
make[1]: Entering directory '/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/vtsspp'
rm -f *.o .*.o.cmd .*.o.d .*.ko.cmd .*.ko.unsigned.cmd *.gcno
rm -f Module.symvers Modules.symvers *.mod.c modules.order Module.markers
rm -rf .tmp_versions
rm -f /opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/vtsspp/vtss_autoconf.h
rm -f vtsspp.ko vtsspp.ko.unsigned vtsspp-x32_64-4.13.0-32-genericsmp.ko
make[1]: Leaving directory '/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/vtsspp'
make[1]: Entering directory '/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src'
/usr/bin/make -C /lib/modules/4.13.0-32-generic/build M=/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src LDDINCDIR=/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src/../include LDDINCDIR1=/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src/inc modules PWD=/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src -j4
make[2]: Entering directory '/usr/src/linux-headers-4.13.0-32-generic'
  CC   /opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src/socperfdrv.o
  CC   /opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src/control.o
  CC   /opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src/utility.o
  CC   /opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src/pci.o
  CC   /opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src/soc_uncore.o
  CC   /opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src/haswellunc_sa.o
  CC   /opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src/axi_uncore.o
  CC   /opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src/npk_uncore.o
  LD   /opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src/socperf2_0.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src/socperf2_0.mod.o
  LD   /opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src/socperf2_0.ko
make[2]: Leaving directory '/usr/src/linux-headers-4.13.0-32-generic'
cp socperf2_0.ko socperf2_0-x32_64-4.13.0-32-genericsmp.ko
make[1]: Leaving directory '/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/socperf/src'
/usr/bin/make -C /lib/modules/4.13.0-32-generic/build M=/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src LDDINCDIR=/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/../include LDDINCDIR1=/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/inc modules PWD=/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src
make[1]: Entering directory '/usr/src/linux-headers-4.13.0-32-generic'
***************************************************************
NOTE: NMI Interrupt Mode is set on 4.13.0-32-generic kernel
***************************************************************
  CC   /opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/lwpmudrv.o
/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/lwpmudrv.c: In function ‘lwpmudrv_Get_Drv_Setup_Info’:
/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/lwpmudrv.c:4380:9: error: ‘x86_hyper’ undeclared (first use in this function); did you mean ‘x86_hyper_type’?
     if (x86_hyper && x86_hyper->name) {
         ^~~~~~~~~
         x86_hyper_type
/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/lwpmudrv.c:4380:9: note: each undeclared identifier is reported only once for each function it appears in
scripts/Makefile.build:308: recipe for target '/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/lwpmudrv.o' failed
make[2]: *** [/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src/lwpmudrv.o] Error 1
Makefile:1550: recipe for target '_module_/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src' failed
make[1]: *** [_module_/opt/intel/vtune_amplifier_2018.1.0.535340/sepdk/src] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.13.0-32-generic'
Makefile:224: recipe for target 'default' failed
make: *** [default] Error 2

 

 

Please help

0 Kudos
Benden__Joseph
Beginner
1,103 Views

I am getting the message above, about x86_hyper undeclared on Ubuntu 16.04

Linux wrkstn-xps-8920 4.13.0-32-generic #35~16.04.1-Ubuntu SMP Thu Jan 25 10:13:43 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Additionally, during VTune HPC and Micro-analysis, VTune locks up resolving symbols.

Please advise,
-Joe

0 Kudos
Dave_B_1
Beginner
1,103 Views

The following patch makes the intel vtune drivers build on Ubuntu's 17.10 4.13 kernel.  Note that the kernel version checks are incorrect, since Cannonical has backported some 4.15 changes into their 4.13 kernel.

 

diff --git a/src/lwpmudrv.c b/src/lwpmudrv.c
index 083efdc..c3ebb96 100644
--- a/src/lwpmudrv.c
+++ b/src/lwpmudrv.c
@@ -4376,7 +4376,29 @@ lwpmudrv_Get_Drv_Setup_Info (
 #endif

 #if defined(CONFIG_HYPERVISOR_GUEST)
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,34)
+#if LINUX_VERSION_CODE > KERNEL_VERSION(4,13,0)
+    if (!hypervisor_is_type(X86_HYPER_NATIVE)) {
+        DRV_SETUP_INFO_vmm_mode(&req_drv_setup_info) = 1;
+        if (hypervisor_is_type(X86_HYPER_KVM)) {
+            DRV_SETUP_INFO_vmm_vendor(&req_drv_setup_info) = DRV_VMM_KVM;
+            DRV_SETUP_INFO_vmm_guest_vm(&req_drv_setup_info) = 1;
+            KVM_guest_mode = TRUE;
+        } else if (hypervisor_is_type(X86_HYPER_XEN_PV) ||
+				   hypervisor_is_type(X86_HYPER_XEN_HVM)) {
+            DRV_SETUP_INFO_vmm_vendor(&req_drv_setup_info) = DRV_VMM_XEN;
+            if (!xen_initial_domain()) {
+                DRV_SETUP_INFO_vmm_guest_vm(&req_drv_setup_info) = 1;
+            }
+       } else if (hypervisor_is_type(X86_HYPER_MS_HYPERV)) {
+            DRV_SETUP_INFO_vmm_vendor(&req_drv_setup_info) = DRV_VMM_HYPERV;
+            DRV_SETUP_INFO_vmm_guest_vm(&req_drv_setup_info) = 1;
+        } else if (hypervisor_is_type(X86_HYPER_VMWARE)) {
+            DRV_SETUP_INFO_vmm_vendor(&req_drv_setup_info) = DRV_VMM_VMWARE;
+        } else {
+            DRV_SETUP_INFO_vmm_vendor(&req_drv_setup_info) = DRV_VMM_UNKNOWN;
+        }
+    }
+#elif LINUX_VERSION_CODE > KERNEL_VERSION(2,6,34)
     if (x86_hyper && x86_hyper->name) {
         DRV_SETUP_INFO_vmm_mode(&req_drv_setup_info) = 1;
         if (!strncmp(x86_hyper->name, "KVM", 3)) {
diff --git a/src/vtsspp/collector.c b/src/vtsspp/collector.c
index c8fde79..64ec3b2 100644
--- a/src/vtsspp/collector.c
+++ b/src/vtsspp/collector.c
@@ -61,6 +61,9 @@
 #include <linux/sched/mm.h>
 #include <linux/sched/signal.h>
 #endif
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,13,0)
+#include <linux/sched/task_stack.h>
+#endif
 #include <asm/kexec.h>
 #include <asm/pgtable.h>
 #include <asm/fixmap.h>         /* VSYSCALL_START */

 

0 Kudos
Shailen_Sobhee
Employee
1,103 Views

Thanks for reporting this issues guys. I filed an internal ticket so that we make sure the issue is fixed in the upcoming releases. 
 

0 Kudos
Ekaterina_L_Intel
1,103 Views

 

UPDATE: Intel® VTune™ Amplifier 2018 Update 2 released and available for download from Intel Registration Center. It includes fixes for the issues described above. If you continue to experience issues after installing this version, please submit a ticket at https://supporttickets.intel.com.

0 Kudos
Saad__M_
Beginner
1,103 Views
0 Kudos
Reply