- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I tried to get the SEP drive compiled - un fortunately it seams that it doesn't compile for Linux kernel 4.10.8.
Does some updated sources exist?
/opt/intel/vtune_amplifier_xe_2017.1.0.486011/sepdk/src/vtsspp/user_vm.c: In Funktion »vtss_user_vm_page_pin«:
/opt/intel/vtune_amplifier_xe_2017.1.0.486011/sepdk/src/vtsspp/user_vm.c:290:72: Warnung: Übergabe des Arguments 4 von »get_user_pages« erzeugt Zeiger von Ganzzahl ohne Typkonvertierung [-Wint-conversion]
rc = vtss_get_user_pages(this->m_task, this->m_mm, addr, 1, 0, 1, &this->m_page, &this->m_vma);
^
/opt/intel/vtune_amplifier_xe_2017.1.0.486011/sepdk/src/vtsspp/user_vm.c:270:115: Anmerkung: in Definition des Makros »vtss_get_user_pages«
#define vtss_get_user_pages(task, mm, start,nr_pages,write,force, pages,vmas) get_user_pages(start,nr_pages,write,force, pages,vmas)
^~~~~
In file included from /opt/intel/vtune_amplifier_xe_2017.1.0.486011/sepdk/src/vtsspp/user_vm.h:34:0,
from /opt/intel/vtune_amplifier_xe_2017.1.0.486011/sepdk/src/vtsspp/user_vm.c:34:
./include/linux/mm.h:1271:6: Anmerkung: »struct page **« erwartet, aber Argument hat Typ »int«
long get_user_pages(unsigned long start, unsigned long nr_pages,
^~~~~~~~~~~~~~
/opt/intel/vtune_amplifier_xe_2017.1.0.486011/sepdk/src/vtsspp/user_vm.c:290:75: Fehler: Übergabe des Arguments 5 von »get_user_pages« von inkompatiblem Zeigertyp [-Werror=incompatible-pointer-types]
rc = vtss_get_user_pages(this->m_task, this->m_mm, addr, 1, 0, 1, &this->m_page, &this->m_vma);
^
/opt/intel/vtune_amplifier_xe_2017.1.0.486011/sepdk/src/vtsspp/user_vm.c:270:122: Anmerkung: in Definition des Makros »vtss_get_user_pages«
#define vtss_get_user_pages(task, mm, start,nr_pages,write,force, pages,vmas) get_user_pages(start,nr_pages,write,force, pages,vmas)
^~~~~
In file included from /opt/intel/vtune_amplifier_xe_2017.1.0.486011/sepdk/src/vtsspp/user_vm.h:34:0,
from /opt/intel/vtune_amplifier_xe_2017.1.0.486011/sepdk/src/vtsspp/user_vm.c:34:
./include/linux/mm.h:1271:6: Anmerkung: »struct vm_area_struct **« erwartet, aber Argument hat Typ »struct page **«
long get_user_pages(unsigned long start, unsigned long nr_pages,
^~~~~~~~~~~~~~
/opt/intel/vtune_amplifier_xe_2017.1.0.486011/sepdk/src/vtsspp/user_vm.c:270:79: Fehler: zu viele Argumente für Funktion »get_user_pages«
#define vtss_get_user_pages(task, mm, start,nr_pages,write,force, pages,vmas) get_user_pages(start,nr_pages,write,force, pages,vmas)
^
/opt/intel/vtune_amplifier_xe_2017.1.0.486011/sepdk/src/vtsspp/user_vm.c:290:14: Anmerkung: bei Substitution des Makros »vtss_get_user_pages«
rc = vtss_get_user_pages(this->m_task, this->m_mm, addr, 1, 0, 1, &this->m_page, &this->m_vma);
^~~~~~~~~~~~~~~~~~~
In file included from /opt/intel/vtune_amplifier_xe_2017.1.0.486011/sepdk/src/vtsspp/user_vm.h:34:0,
from /opt/intel/vtune_amplifier_xe_2017.1.0.486011/sepdk/src/vtsspp/user_vm.c:34:
./include/linux/mm.h:1271:6: Anmerkung: hier deklariert
long get_user_pages(unsigned long start, unsigned long nr_pages,
^~~~~~~~~~~~~~
cc1: Einige Warnungen werden als Fehler behandelt
make[3]: *** [scripts/Makefile.build:295: /opt/intel/vtune_amplifier_xe_2017.1.0.486011/sepdk/src/vtsspp/user_vm.o] Fehler 1
make[2]: *** [Makefile:1490: _module_/opt/intel/vtune_amplifier_xe_2017.1.0.486011/sepdk/src/vtsspp] Fehler 2
make[2]: Verzeichnis „/usr/lib/modules/4.10.8-1-ARCH/build“ wird verlassen
make[1]: [Makefile:236: all] Fehler 2 (ignoriert)
cp -f vtsspp.ko vtsspp-x32_64-4.10.8-1-ARCHsmp.ko
cp: der Aufruf von stat für 'vtsspp.ko' ist nicht möglich: Datei oder Verzeichnis nicht gefunden
make[1]: [Makefile:237: all] Fehler 1 (ignoriert)
make[1]: Verzeichnis „/opt/intel/vtune_amplifier_xe_2017.1.0.486011/sepdk/src/vtsspp“ wird verlassen
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Alexey,
unfortunately I get new errors (missing #if etc. - unfortuantely error descriptions are in german)
/opt/intel/vtune_amplifier_xe_2017.1.0.486011/sepdk/src/vtsspp/stack.c: In Funktion »vtss_stack_dump«:
/opt/intel/vtune_amplifier_xe_2017.1.0.486011/sepdk/src/vtsspp/stack.c:411:9: Fehler: Implizite Deklaration der Funktion »dump_trace« [-Werror=implicit-function-declaration]
dump_trace(task, regs_in, NULL, &vtss_stack_ops, &k_stk);
^~~~~~~~~~
/opt/intel/vtune_amplifier_xe_2017.1.0.486011/sepdk/src/vtsspp/stack.c:411:42: Fehler: »vtss_stack_ops« nicht deklariert (erste Benutzung in dieser Funktion)
dump_trace(task, regs_in, NULL, &vtss_stack_ops, &k_stk);
^~~~~~~~~~~~~~
/opt/intel/vtune_amplifier_xe_2017.1.0.486011/sepdk/src/vtsspp/stack.c:411:42: Anmerkung: jeder nicht deklarierte Bezeichner wird nur einmal für jede Funktion, in der er vorkommt, gemeldet
/opt/intel/vtune_amplifier_xe_2017.1.0.486011/sepdk/src/vtsspp/stack.c:427:2: Fehler: #endif ohne #if
#endif
^~~~~
cc1: Alle Warnungen werden als Fehler behandelt
make[3]: *** [scripts/Makefile.build:295: /opt/intel/vtune_amplifier_xe_2017.1.0.486011/sepdk/src/vtsspp/stack.o] Fehler 1
make[2]: *** [Makefile:1490: _module_/opt/intel/vtune_amplifier_xe_2017.1.0.486011/sepdk/src/vtsspp] Fehler 2
make[2]: Verzeichnis „/usr/lib/modules/4.10.8-1-ARCH/build“ wird verlassen
make[1]: [Makefile:236: all] Fehler 2 (ignoriert)
cp -f vtsspp.ko vtsspp-x32_64-4.10.8-1-ARCHsmp.ko
cp: der Aufruf von stat für 'vtsspp.ko' ist nicht möglich: Datei oder Verzeichnis nicht gefunden
make[1]: [Makefile:237: all] Fehler 1 (ignoriert)
make[1]: Verzeichnis „/opt/intel/vtune_amplifier_xe_2017.1.0.486011/sepdk/src/vtsspp“ wird verlassen
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I could coumpile the sources if I remove the #endif at line 428 and comment out the dump_trace() call at line 411 - but I don't know if the driver will work.
/opt/intel/vtune_amplifier_xe_2017.1.0.486011/sepdk/src/vtsspp/stack.c: In Funktion »vtss_stack_dump«:
/opt/intel/vtune_amplifier_xe_2017.1.0.486011/sepdk/src/vtsspp/stack.c:412:9: Fehler: Implizite Deklaration der Funktion »dump_trace« [-Werror=implicit-function-declaration]
dump_trace(task, regs_in, NULL, &vtss_stack_ops, &k_stk);
^~~~~~~~~~
/opt/intel/vtune_amplifier_xe_2017.1.0.486011/sepdk/src/vtsspp/stack.c:412:42: Fehler: »vtss_stack_ops« nicht deklariert (erste Benutzung in dieser Funktion)
dump_trace(task, regs_in, NULL, &vtss_stack_ops, &k_stk);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I got it working by commenting out the line dump_trace() function (stack.c:412) + removing the non-started #endif (stack.c:428).
I assume that some stack related data are not sampled/used.
Oliver
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Looks like the following "ifdef" was missed after patching of your driver sources:
#if LINUX_VERSION_CODE < KERNEL_VERSION(4,9,0)
You could put it before:
if (kernel_stack){
/* Unwind kernel stack and get user BP if possible */
kernel_stack_control_t k_stk;
Or just apply attached patch.
The patch disables kernel stacks collection for newest kernels. User stacks are not affected.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page