DET/DAPL on Fedora 13

DET/DAPL on Fedora 13

rveldema的头像

The kernel driver OOPs-es on Fedora 13.
I've had to patch the kernel driver slightly to get it to compile at all:
- 'breakpoint' now does BUG() which causes the trace below.
- proc_fs's entries were changed slightly in kernel 2.4.33,
I removed the non-compiling bits.
Cheers,
Ronald.
=============

Intel Direct Ethernet Transport (det) V1.1 - Aug 18 2010 17:10:32
Copyright (c) 2004-2008 Intel Corporation
Physical page limit: 498350 of 996702 pages [50%]
Memops method: 4 (memcpy)
Timer period: 20 msec
ACK timeout: 60 sec
Window size: 40
BUG: unable to handle kernel paging request at ffffeba400000000
IP: [] virt_to_head_page+0x1e/0x2a
PGD 0
Oops: 0000 [#1] SMP
last sysfs file: /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
CPU 1
Pid: 4874, comm: dapl_perf Tainted: P 2.6.33.6-147.2.4.fc13.x86_64 #1 27523KG/27523KG
RIP: 0010:[] [] virt_to_head_page+0x1e/0x2a
RSP: 0018:ffff88013b2dfde8 EFLAGS: 00010286
RAX: ffffeba400000000 RBX: 0000000000000000 RCX: 000000000000001a
RDX: ffffea0000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: ffff88013b2dfde8 R08: 0000000000000000 R09: ffff88013b2dfdc0
R10: 00000000000157c0 R11: 0000000000000001 R12: ffff88015bc20000
R13: ffff88013b2dfe84 R14: 0000000000000005 R15: ffff8801519da970
FS: 00007fa0c0777710(0000) GS:ffff880005a80000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: ffffeba400000000 CR3: 000000013b2ca000 CR4: 00000000000406e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process dapl_perf (pid: 4874, threadinfo ffff88013b2de000, task ffff8801370645f0)
Stack:
ffff88013b2dfe18 ffffffff810f4fb0 ffff88013b2dfe08 ffff880152867c48
<0> ffff88013b2dfe28 ffff88013b2dfe84 ffff88013b2dfe68 ffffffff811fb82e
<0> 0000000000000000 ffff880152867c48 ffff88013b2dfe84 ffff880152867c40
Call Trace:
[] kmem_cache_free+0x1b/0xaf
[] idr_remove+0x16b/0x17a
[] ? idr_get_new+0x13/0x32
[] det_idr_free+0x5e/0x82 [det]
[] det_close+0x7c/0x96 [det]
[] __fput+0x125/0x1d7
[] fput+0x15/0x17
[] fput_light+0xd/0xf
[] sys_write+0x5c/0x69
[] system_call_fastpath+0x16/0x1b
Code: 02 00 00 3d 00 02 00 00 0f 4f c2 c9 c3 55 48 89 e5 e8 78 e9 f3 ff 48 c1 e8 0c 48 ba 00 00 00 00 00 ea ff ff 48 6b c0 38 48 01 d0 <66> 83 38 00 79 04 48 8b 40 10 c9 c3 55 48 89 e5 41 54 49 89 f4
RIP [] virt_to_head_page+0x1e/0x2a
RSP
CR2: ffffeba400000000
---[ end trace 9e9f57eff36b63ef ]---
BUG: sleeping function called from invalid context at kernel/rwsem.c:21
in_atomic(): 0, irqs_disabled(): 1, pid: 4874, name: dapl_perf
Pid: 4874, comm: dapl_perf Tainted: P D 2.6.33.6-147.2.4.fc13.x86_64 #1
Call Trace:
[] __might_sleep+0xe8/0xea
[] down_read+0x1f/0x36
[] acct_collect+0x3f/0x17e
[] do_exit+0x1e3/0x71a
[] ? printk+0x3c/0x3f
[] oops_end+0xba/0xc2
[] no_context+0x1f7/0x206
[] __bad_area_nosemaphore+0x17f/0x1a2
[] bad_area_nosemaphore+0xe/0x10
[] do_page_fault+0x19c/0x2ed
[] page_fault+0x25/0x30
[] ? virt_to_head_page+0x1e/0x2a
[] ? virt_to_head_page+0x9/0x2a
[] kmem_cache_free+0x1b/0xaf
[] idr_remove+0x16b/0x17a
[] ? idr_get_new+0x13/0x32
[] det_idr_free+0x5e/0x82 [det]
[] det_close+0x7c/0x96 [det]
[] __fput+0x125/0x1d7
[] fput+0x15/0x17
[] fput_light+0xd/0xf
[] sys_write+0x5c/0x69
[] system_call_fastpath+0x16/0x1b

6 帖子 / 0 new
最新文章
如需更全面地了解编译器优化,请参阅优化注意事项
Roy Larsen (Intel)的头像

Hello Ronald,

I'll install Fedora 13 and take a look at this. Can you post a diff of the chanages you made as well as the conditions in place when the kernel crashes.

Thanks,
Roy

rveldema的头像

It crashes already when doing a simple 'dapltest -S'
Diff

Roy Larsen (Intel)的头像

I've attached a patch file that will bring the det driver up to date with 2.6.33 kernels. I've built and run it on Fedora 13 without experiencing any problems. There were some changes made related to idr, the way we dealt with skb deallocation's, and the procfs changes you already discovered. These patches will lable the driver as version 1.2

附件: 

附件尺寸
下载 det-1.2-patch.txt7.32 KB
rveldema的头像

patch applies OK, however, there's still the
#define BREAK breakpoint
line at det_debug.h line 38
which should read:
#define BREAK kgdb_breakpoint
Cheers,
R.

Roy Larsen (Intel)的头像

I've updated the patch fileaboveto include the det_debug.h patches. My thinking was that you already had them, but of course the next person who takes the patch file wouldn't. Duh...

登陆并发表评论。