Compatibility of VTune 9.1 with Linux Kernel 2.6.28

Compatibility of VTune 9.1 with Linux Kernel 2.6.28

hari_tadepalli's picture

I have downloaded the eval version of VTune 9.1 and began duly installing the RDC + Driver on the latest kernel 2.6.28, which I downloaded and compiled from kernel.org. (This kernel was in use in our environment for a while now, with no issues).

However, install VDK script bails out with the following diagnostics:

====================
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.28/source ]

checking for template makefile ... Makefile.in
checking for kernel headers ... /lib/modules/2.6.28/source/include
checking if C compiler is working ... yes
checking if C compiler supports anonymous structs and unions ... yes
checking architecture ... x86_64
checking kernel version ... 2.6.28
checking whether kernel modules can be built ... no
**
** ERROR: unable to build kernel module
**
** The kernel headers in /lib/modules/2.6.28/source
** are either inaccessible or not (properly) configured.
**
** The kernel headers must be accessible and configured prior
** to building the sampling driver (or any kernel module).
**
** Please see VDK doc/HOWTO-BUILD-VTUNE-DRIVER for help in
** preparing a kernel environment suitable for building the
** sampling driver.
**
** For details on the specific failure, please see configure log file,
** /opt/intel/vtune/vdk/src/build_driver_log.txt .
**
-----------------------------------------------------------------------------

I wanted to attach the "build_driver_log.txt" file, but find that thismessageeditor does not allow me attach files from my local drive. I will share it here as needed.

A closer examination of these diagnostics shows that the corresponding Makefile is unable to set the Include directory for the files in the /usr/src/linux/arch/x86/include/asm/directory - all of which are defintely present, to my knowledge. (But this is one of the problems. It appears that there are undefined symbols in some source files).

All of which brings the question: Has this release of VTune been tested for compatibility with kernel release of 2.6.28 for x86_64 platforms (& the Nehalem/ Tylersburg) in particular?

Thanks,
Hari

13 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.
Tim Prince's picture

You've posted a lot of confusing stuff, but some of that leads to the suspicion that you didn't install kernel source. You're eliminating about 90% of the people who might help by expecting people to identify your installation details by kernel identification. If you did install kernel source, and the VTune driver build still finds that you failed to configure the kernel source properly (as is likely on SuSE), there are README files in the doc directory which should be helpful.

hari_tadepalli's picture
Quoting - tim18 You've posted a lot of confusing stuff, but some of that leads to the suspicion that you didn't install kernel source. You're eliminating about 90% of the people who might help by expecting people to identify your installation details by kernel identification. If you did install kernel source, and the VTune driver build still finds that you failed to configure the kernel source properly (as is likely on SuSE), there are README files in the doc directory which should be helpful.

I have no pleasure in copying 10 sceenfuls of diagnostics in an email messge. I looked everywhere in this _visual_message_editor_ on attaching a file. The pop up that came after clicking "ADD FILES" did not allow me to add anything from my local drive. Hence the clutter. I will go back & delete that part & post it as needed.

I have actually gone through the doucmentation for installation over 2.6 kernels & indeed worked through the steps identified there in. In a sad testimony to the quality of this documentation, I have actually ended up deleting all of my existing header files in my kernel sources - this is because the documentation instructs one to do a "make mrproper". In my eagerness to get vtune running, I have overlooked what it will do to my original source tree.

I will keep my question simple: here are my platform parameters:

Nehalem/Tylersburg/PDK with B3 stepping from Intel
Red Hat Enterprise Linux Server release 5.3 Beta (Tikanga)
Linux kernel 2.6.28, x64 build

Asking simplistically, has any been successful in building Vtune RDC in the above configuration?

I have used Vtune extensively over years under Linux & I must say that I have rarely ever encountered a build issue when compiling the RDC for Linux.

In order to cross check my build procedure, I have actually compiled for a default kernel install (2.6.18) that was on the same platform. To my pleasant surprise, the RDC actually built without _any intervention_ & I was able to run a sampling exercise for Nehalem (for the first time ever).

Appreciate any help on this. At this point, whether it runs on Nehalem is not of much concern. Whether RDC driver can be built for 2.6.28 (x64 version) kernel is my main concern.

Thanks,
Hari

hari_tadepalli's picture
Quoting - tim18 You've posted a lot of confusing stuff, but some of that leads to the suspicion that you didn't install kernel source. You're eliminating about 90% of the people who might help by expecting people to identify your installation details by kernel identification. If you did install kernel source, and the VTune driver build still finds that you failed to configure the kernel source properly (as is likely on SuSE), there are README files in the doc directory which should be helpful.

Sorry I forgot to mention. I have installed & built this kernel myself. (This might be apparent, since there is no official RHEL5.x release with 2.6.28 kernel version). So, TTBoMKaA, the kernel sources are present where they belong. I have successfully built several other kernel modules a posteriori with these same kernel sources. (Check a transcript below of mycompilation of the ixgbe driver that I just finished on this platform):

- Hari

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[root@dhcp-10-13-127-100 ixgbe-1.3.56.11]# cd src/

[root@dhcp-10-13-127-100 src]# ls
ixgbe_82598.c ixgbe_common.c ixgbe_dcb_82598.h ixgbe_dcb_nl.c ixgbe_main.c ixgbe_phy.c ixgbe_type.h kcompat.h
ixgbe_api.c ixgbe_common.h ixgbe_dcb.c ixgbe_ethtool.c ixgbe_osdep.h ixgbe_phy.h kcompat.c Makefile
ixgbe_api.h ixgbe_dcb_82598.c ixgbe_dcb.h ixgbe.h ixgbe_param.c ixgbe_sysfs.c kcompat_ethtool.c

[root@dhcp-10-13-127-100 src]# make
make -C /lib/modules/2.6.28.8/build SUBDIRS=/root/drivers/ixgbe-1.3.56.11/src modules
make[1]: Entering directory `/usr/src/kernels/linux-2.6.28.8'
CC [M] /root/drivers/ixgbe-1.3.56.11/src/ixgbe_main.o
CC [M] /root/drivers/ixgbe-1.3.56.11/src/ixgbe_common.o
CC [M] /root/drivers/ixgbe-1.3.56.11/src/ixgbe_api.o
CC [M] /root/drivers/ixgbe-1.3.56.11/src/ixgbe_param.o
CC [M] /root/drivers/ixgbe-1.3.56.11/src/ixgbe_ethtool.o
CC [M] /root/drivers/ixgbe-1.3.56.11/src/kcompat.o
CC [M] /root/drivers/ixgbe-1.3.56.11/src/ixgbe_82598.o
CC [M] /root/drivers/ixgbe-1.3.56.11/src/ixgbe_dcb.o
CC [M] /root/drivers/ixgbe-1.3.56.11/src/ixgbe_dcb_82598.o
CC [M] /root/drivers/ixgbe-1.3.56.11/src/ixgbe_phy.o
CC [M] /root/drivers/ixgbe-1.3.56.11/src/ixgbe_dcb_nl.o
CC [M] /root/drivers/ixgbe-1.3.56.11/src/ixgbe_sysfs.o
LD [M] /root/drivers/ixgbe-1.3.56.11/src/ixgbe.o
Building modules, stage 2.
MODPOST 1 modules
CC /root/drivers/ixgbe-1.3.56.11/src/ixgbe.mod.o
LD [M] /root/drivers/ixgbe-1.3.56.11/src/ixgbe.ko
make[1]: Leaving directory `/usr/src/kernels/linux-2.6.28.8'

[root@dhcp-10-13-127-100 src]# ls -lt
total 9976
-rw-r--r-- 1 root root 3085496 Mar 19 18:13 ixgbe.ko

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

srimks's picture
Quoting - hari_tadepalli
Sorry I forgot to mention. I have installed & built this kernel myself. (This might be apparent, since there is no official RHEL5.x release with 2.6.28 kernel version). So, TTBoMKaA, the kernel sources are present where they belong. I have successfully built several other kernel modules a posteriori with these same kernel sources. (Check a transcript below of my compilation of the ixgbe driver that I just finished on this platform):

- Hari

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[root@dhcp-10-13-127-100 ixgbe-1.3.56.11]# cd src/

[root@dhcp-10-13-127-100 src]# ls
ixgbe_82598.c ixgbe_common.c ixgbe_dcb_82598.h ixgbe_dcb_nl.c ixgbe_main.c ixgbe_phy.c ixgbe_type.h kcompat.h
ixgbe_api.c ixgbe_common.h ixgbe_dcb.c ixgbe_ethtool.c ixgbe_osdep.h ixgbe_phy.h kcompat.c Makefile
ixgbe_api.h ixgbe_dcb_82598.c ixgbe_dcb.h ixgbe.h ixgbe_param.c ixgbe_sysfs.c kcompat_ethtool.c

[root@dhcp-10-13-127-100 src]# make
make -C /lib/modules/2.6.28.8/build SUBDIRS=/root/drivers/ixgbe-1.3.56.11/src modules
make[1]: Entering directory `/usr/src/kernels/linux-2.6.28.8'
CC [M] /root/drivers/ixgbe-1.3.56.11/src/ixgbe_main.o
CC [M] /root/drivers/ixgbe-1.3.56.11/src/ixgbe_common.o
CC [M] /root/drivers/ixgbe-1.3.56.11/src/ixgbe_api.o
CC [M] /root/drivers/ixgbe-1.3.56.11/src/ixgbe_param.o
CC [M] /root/drivers/ixgbe-1.3.56.11/src/ixgbe_ethtool.o
CC [M] /root/drivers/ixgbe-1.3.56.11/src/kcompat.o
CC [M] /root/drivers/ixgbe-1.3.56.11/src/ixgbe_82598.o
CC [M] /root/drivers/ixgbe-1.3.56.11/src/ixgbe_dcb.o
CC [M] /root/drivers/ixgbe-1.3.56.11/src/ixgbe_dcb_82598.o
CC [M] /root/drivers/ixgbe-1.3.56.11/src/ixgbe_phy.o
CC [M] /root/drivers/ixgbe-1.3.56.11/src/ixgbe_dcb_nl.o
CC [M] /root/drivers/ixgbe-1.3.56.11/src/ixgbe_sysfs.o
LD [M] /root/drivers/ixgbe-1.3.56.11/src/ixgbe.o
Building modules, stage 2.
MODPOST 1 modules
CC /root/drivers/ixgbe-1.3.56.11/src/ixgbe.mod.o
LD [M] /root/drivers/ixgbe-1.3.56.11/src/ixgbe.ko
make[1]: Leaving directory `/usr/src/kernels/linux-2.6.28.8'

[root@dhcp-10-13-127-100 src]# ls -lt
total 9976
-rw-r--r-- 1 root root 3085496 Mar 19 18:13 ixgbe.ko

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

I think what TIM has suggested, you need to check the proper build of new kernel as extended. Did you run some analysis to check your kernel is being build 100% sucessfully?

Could you also try with older versions of kernel, somewhat 2.6.26 or somewhat lower (2.6.18), can you share your conclusion?

Could you also try with "Intel VTune Performance Analyzer 9.1 Update 2(Build update 9.1Update2-226) for Linux", the latest one.

I have "Intel VTune Performance Analyzer 9.1 Update 2(Build update 9.1Update2-226) for Linux" succesfully installed for kernel v-2.6.18, with "gcc version 4.1.2 (Red Hat 4.1.2-44)" on Nehalem.

Good that you have raised the compatibility of VTune with latest kernels on Core i7.

~BR

nspattak's picture

Hi,

I am having the same problems as of the first post while trying to build vtune kernel module.

I downloaded the latest vtune and I am running ubuntu x86_64 / kernel 2.6.28 on a core2duo laptop.

I also intend to try it on an itanium2 based SMP machine. The problem is that if it is so difficult to install it on my personal computer then I am afraid I will not be able to ask our IT department to isntall it on the itanium2 machine. It strikes to me that vtune is a very usefull tool and I want to evaluate it and probably suggest we bought it dor our cluster, but I am now stuck with this problem.

Any help will be appreciated.

hari_tadepalli's picture

>> Did you run some analysis to check your kernel is being build 100% sucessfully?

What kind of analysis? I am no familiar with this step in the past with building vdk driver. The kernel is functional in other respects I am familiar with.

>> Could you also try with older versions of kernel, somewhat 2.6.26 or somewhat
>> lower (2.6.18), can you share your conclusion?

Yes. I would point to reply #2 in this thread (my response):

"In order to cross check my build procedure, I have actually compiled for a default kernel install (2.6.18) that was on the same platform. To my pleasant surprise, the RDC actually built without _any intervention_ & I was able to run a sampling exercise for Nehalem (for the first time ever)."

>> Could you also try with "Intel VTune Performance Analyzer 9.1 Update 2
>> (Build update 9.1Update2-226) for Linux", the latest one.

What I have downloaded is build 210 (no update) of release 9.1. I would appreciate knowing where to get update2-226 from. The premier site, perhpas?

>> I have "Intel VTune Performance Analyzer 9.1 Update 2(Build update 9.1Update2-226) for Linux"
>> succesfully installed for kernel v-2.6.18, with "gcc version 4.1.2 (Red Hat 4.1.2-44)" on Nehalem.

I concur with this observation. We are good on 2.6.18 kernel.

>> Good that you have raised the compatibility of VTune with latest kernels on Core i7.

Thanks. Kernel 2.6.28 enables "TSS" or transmit side scaling, viewed critical for 10 GbE networking.

- Hari

srimks's picture
Quoting - hari_tadepalli
>> Did you run some analysis to check your kernel is being build 100% sucessfully?

What kind of analysis? I am no familiar with this step in the past with building vdk driver. The kernel is functional in other respects I am familiar with.

>> Could you also try with older versions of kernel, somewhat 2.6.26 or somewhat
>> lower (2.6.18), can you share your conclusion?

Yes. I would point to reply #2 in this thread (my response):

"In order to cross check my build procedure, I have actually compiled for a default kernel install (2.6.18) that was on the same platform. To my pleasant surprise, the RDC actually built without _any intervention_ & I was able to run a sampling exercise for Nehalem (for the first time ever)."

>> Could you also try with "Intel VTune Performance Analyzer 9.1 Update 2
>> (Build update 9.1Update2-226) for Linux", the latest one.

What I have downloaded is build 210 (no update) of release 9.1. I would appreciate knowing where to get update2-226 from. The premier site, perhpas?

>> I have "Intel VTune Performance Analyzer 9.1 Update 2(Build update 9.1Update2-226) for Linux"
>> succesfully installed for kernel v-2.6.18, with "gcc version 4.1.2 (Red Hat 4.1.2-44)" on Nehalem.

I concur with this observation. We are good on 2.6.18 kernel.

>> Good that you have raised the compatibility of VTune with latest kernels on Core i7.

Thanks. Kernel 2.6.28 enables "TSS" or transmit side scaling, viewed critical for 10 GbE networking.

- Hari

As asked "What I have downloaded is build 210 (no update) of release 9.1. I would appreciate knowing where to get update2-226 from. The premier site, perhpas?"

Check http://www.intel.com/cd/software/products/asmo-na/eng/239145.htm

Please choose the button such that it displays "Update 2(Build update 9.1Update2-226)" finally.

~BR

hari_tadepalli's picture
Quoting - srimks
As asked "What I have downloaded is build 210 (no update) of release 9.1. I would appreciate knowing where to get update2-226 from. The premier site, perhpas?"

Check http://www.intel.com/cd/software/products/asmo-na/eng/239145.htm

Please choose the button such that it displays "Update 2(Build update 9.1Update2-226)" finally.

~BR

I can not see this (update2-226) update (in the drop down menu) when I go to the download page specific to my customer account. Could this because I am using an Eval version?

Thanks,
Hari

srimks's picture
Quoting - hari_tadepalli
I can not see this (update2-226) update (in the drop down menu) when I go to the download page specific to my customer account. Could this because I am using an Eval version?

Thanks,
Hari

Please check again carefully, there are atleast 3 drops and then wait for update to happen for each drop atleast 3 - 5 min.

i tried yesterday, it was there? OR please ask from Intel Customer support.

I have both EVAL & License version.

~BR

geoffrey-burling (Intel)'s picture
Okay, it looks as if people are getting frustrated here, and people are no longer listening to what's being said. Let me try to sort things out and answer some questions.

First, Hari's problem with the Intel VTune analyzer driver on his Linux system. What's happening is that make reports that it is unable to build a driver for his system due to issues with the kernel. This is not that unusual, and is caused by a number of things. First, the source configuration on the system needs to match the kernel the operating system is currently using; second, the driver needs to be built with a version of the kernel with symbols, so the VTune analyzer can match its data to the function calls when the user wants to drill down into the kernel functions during analysis; lastly, the driver should be built against a supported kernel -- this doesn't mean a driver can't be built, just that the folks who support VTune analyzer don't know if it can be.

What Tim18 meant in his response was that we need information that will help us determine if all of these needs have been addressed. At this point, Hari has supplied some of the information needed. If I read him correctly, this is a user-built kernel, so it may be that the kernel wasn't compiled and installed in a way which will allow make to build the driver. He can verify that the source and kernel versions match either with "uname -a" or comparing the kernel file in /usr/src/linux against the image being loaded. (I believe that is stored in /boot.) The fact that make complains about the header files in /lib/modules/2.6.28/source suggests this: if I remember correctly, this directory is a symbolic link to a subdirectory under /usr/src/linux, and if this is not updated, the link will be to the wrong subdirectory. Another thing to determine if the kernel was compiled with symbols, or is uncompressed; a stripped, compressed kernel (which can be the case if the kernel is name "vmlinuz") will cause make to fail. You can also determine if there are symbols in the kernel by using "file". Further, running mrproper likely deleted the object files that matched the kernel which make needs to build the driver. The simplest solution at this point may be to re-install the kernel and source files from the distribution you are using.

Much of this is explained in the HOWTO-BUILD-LINUX[32|64]-KERNEL FOR VTUNE files in the /opt/intel/vtune/vdk/src/doc subdirectory. (That's its home by default.) The best place for Hari to start now would be with reading that file.

As for my third point, the Release Notes lists the latest kernel which is supported -- 2.6.27 for Fedora 9 and 10, and Ubuntu Linux 8.04 and 8.10. The problem here is that 2.6.28 is not supported. If Hari (and this applies to nspattak as well) owns a Vtune analyzer license, what he should do is open an issue there so the support team can help him in case he needs a patch to make the driver work.

As for the latest release of Intel VTune analyzer, it *is* 9.1 update2-226. I just verified this is the case. If you have a registered copy, you should have received an email announcing this release, with a link to the Registration Center where you can download that version. If you are using an evaluation copy, you may not have received that email or have access to that version yet.

Does this answer everyone's questions?

Geoff

srimks's picture
Quoting - Geoffrey Burling (Intel) Okay, it looks as if people are getting frustrated here, and people are no longer listening to what's being said. Let me try to sort things out and answer some questions.

First, Hari's problem with the Intel VTune analyzer driver on his Linux system. What's happening is that make reports that it is unable to build a driver for his system due to issues with the kernel. This is not that unusual, and is caused by a number of things. First, the source configuration on the system needs to match the kernel the operating system is currently using; second, the driver needs to be built with a version of the kernel with symbols, so the VTune analyzer can match its data to the function calls when the user wants to drill down into the kernel functions during analysis; lastly, the driver should be built against a supported kernel -- this doesn't mean a driver can't be built, just that the folks who support VTune analyzer don't know if it can be.

What Tim18 meant in his response was that we need information that will help us determine if all of these needs have been addressed. At this point, Hari has supplied some of the information needed. If I read him correctly, this is a user-built kernel, so it may be that the kernel wasn't compiled and installed in a way which will allow make to build the driver. He can verify that the source and kernel versions match either with "uname -a" or comparing the kernel file in /usr/src/linux against the image being loaded. (I believe that is stored in /boot.) The fact that make complains about the header files in /lib/modules/2.6.28/source suggests this: if I remember correctly, this directory is a symbolic link to a subdirectory under /usr/src/linux, and if this is not updated, the link will be to the wrong subdirectory. Another thing to determine if the kernel was compiled with symbols, or is uncompressed; a stripped, compressed kernel (which can be the case if the kernel is name "vmlinuz") will cause make to fail. You can also determine if there are symbols in the kernel by using "file". Further, running mrproper likely deleted the object files that matched the kernel which make needs to build the driver. The simplest solution at this point may be to re-install the kernel and source files from the distribution you are using.

Much of this is explained in the HOWTO-BUILD-LINUX[32|64]-KERNEL FOR VTUNE files in the /opt/intel/vtune/vdk/src/doc subdirectory. (That's its home by default.) The best place for Hari to start now would be with reading that file.

As for my third point, the Release Notes lists the latest kernel which is supported -- 2.6.27 for Fedora 9 and 10, and Ubuntu Linux 8.04 and 8.10. The problem here is that 2.6.28 is not supported. If Hari (and this applies to nspattak as well) owns a Vtune analyzer license, what he should do is open an issue there so the support team can help him in case he needs a patch to make the driver work.

As for the latest release of Intel VTune analyzer, it *is* 9.1 update2-226. I just verified this is the case. If you have a registered copy, you should have received an email announcing this release, with a link to the Registration Center where you can download that version. If you are using an evaluation copy, you may not have received that email or have access to that version yet.

Does this answer everyone's questions?

Geoff

Your answer pretty much resolves the awaited issue, but it seems that Hari did claim having a good experience in various kernel builds.

Probably, hemissed checking the VTune Release Notes before concluding anything for kernel v-2.6.28.

But, I would also like to again add as done above that one should also tunein trying with immediate lower version of kernels when v2.6.28 was failing before concluding finally?

~BR

skibbi's picture

I managed to compile the VTune kernel module for the stock Ubuntu 2.6.28 kernel by changing kernel_includes in vdk/src/configure:

[shell]kernel_includes="-I${kernel_include_dir} -I${kernel_source_dir}/arch/x86/include -include ${kernel_include_dir}/linux/autoconf.h"[/shell]

Login to leave a comment.