For the first problem, when the rules doesn't work for sockets, the error is in /usr/src/linux/kernel/ckrm/rbce/rbce_core.c (ckrm_e18_2612_single.patch line 8383):
change: if (*ptr != '\\') {
by: if (*ptr != ':') {
Only change '\\' by ':'. Its is because the old interface used 0.0.0.0\port for socket and they change for 0.0.0.0:port. But this piece remained.
The second problem: Unable to handle kernel paging request at virtual address.
The error is in /usr/src/linux/kernel/ckrm/ckrm_listenaq.c (patch2.3.Accept_queue_controller of 2005-06-02):
change: while( *p != "/" && p != c->name)
by: while( *p != '/' && p != c->name)
The only change is " by '.
It is working for me now.
Ronan
On 9/1/05, Ronan Resende <[EMAIL PROTECTED]> wrote:
I applied the patches (in the attached file) e18, 3 patches for Accept queue (from Mar/Jun 2005) and the patch for e18 that Chandra send in http://sourceforge.net/mailarchive/message.php?msg_id=12721653.
After that, I mounted rcfs and then:
(with rbce in kernel or as a module, after loading the module)
echo ipv4=0.0.0.0:81,class=/rcfs/socketclass/s1 > /rcfs/ce/rules/r1
echo ipv4=0.0.0.0:82,class=/rcfs/socketclass/s1 > /rcfs/ce/rules/r2
echo ipv4=0.0.0.0:83,class=/rcfs/socketclass/s1 > /rcfs/ce/rules/r3
# cat /rcfs/ce/rules/r1
ipv4=0.0.0.0:81,order=0,state=1,class=/rcfs/socketclass/s1
The rules are sucessfully created. I start an apache web server in port 81, but the socket 0.0.0.0:81 go to socketclass/members and not s1/members:
# cat /rcfs/socketclass/members
0.0.0.0:81
# cat /rcfs/socketclass/s1/members
No data to display
A reclassify doesnt work neither.
# echo ipv4=0.0.0.0:81 > /rcfs/socketclass/reclassify
socketclass: reclassify all not implemented yet
When I try:
# echo ipv4=0.0.0.0:81 > /rcfs/socketclass/s1/members
I get:
Sep 1 23:46:32 darkstar kernel: Unable to handle kernel paging request at virtual address 483b7dd4
Sep 1 23:46:32 darkstar kernel: printing eip:
Sep 1 23:46:32 darkstar kernel: c01316f4
Sep 1 23:46:32 darkstar kernel: *pde = 00000000
Sep 1 23:46:32 darkstar kernel: Oops: 0002 [#3]
Sep 1 23:46:32 darkstar kernel: Modules linked in: rbce
Sep 1 23:46:32 darkstar kernel: CPU: 0
Sep 1 23:46:32 darkstar kernel: EIP: 0060:[<c01316f4>] Not tainted VLI
Sep 1 23:46:32 darkstar kernel: EFLAGS: 00010246 (2.6.12.5)
Sep 1 23:46:32 darkstar kernel: EIP is at calculate_aq_ratios+0x84/0x90
Sep 1 23:46:32 darkstar kernel: eax: dfdfdfdf ebx: cfd5e09c ecx: cfd5e260
edx: fffffffe
Sep 1 23:46:32 darkstar kernel: esi: cf3add20 edi: c8bbfe58 ebp: 00000000
esp: c8bbfe3c
Sep 1 23:46:33 darkstar kernel: ds: 007b es: 007b ss: 0068
Sep 1 23:46:33 darkstar kernel: Process bash (pid: 2052, threadinfo=c8bbe000 task=c8b28a40)
Sep 1 23:46:33 darkstar kernel: Stack: c8bbfe58 cf3add20 c03e5550 00000000 c0131b2c cf3add20 c8bbfe58 00000007
Sep 1 23:46:33 darkstar kernel: 00000048 c8bbfe9c 00000000 c03e5540 c03e5540 c012ff1d caf801e0 cffedb60
Sep 1 23:46:33 darkstar kernel: cf3add20 c03e5540 c6d39ac0 caf801e0 cfd5e260 c04a6940 c01304d0 caf801e0
Sep 1 23:46:33 darkstar kernel: Call Trace:
Sep 1 23:46:33 darkstar kernel: [<c0131b2c>] laq_change_resclass+0x3c/0x90
Sep 1 23:46:33 darkstar kernel: [<c012ff1d>] ckrm_sock_set_class+0xad/0xe0
Sep 1 23:46:33 darkstar kernel: [<c01304d0>] ckrm_sock_forced_reclassify_ns+0x100/0x190
Sep 1 23:46:33 darkstar kernel: [<c01306c2>] ckrm_sock_forced_reclassify+0x102/0x180
Sep 1 23:46:33 darkstar kernel: [<c010e1cc>] do_page_fault+0x18c/0x599
Sep 1 23:46:33 darkstar kernel: [<c020f6b0>] magic_show+0x0/0x140
Sep 1 23:46:33 darkstar kernel: [<c020fc7a>] members_reclassify_write+0xba/0xf0
Sep 1 23:46:33 darkstar kernel: [<c020fd1f>] members_write+0x2f/0x40
Sep 1 23:46:33 darkstar kernel: [<c014e12f>] vfs_write+0x9f/0x120
Sep 1 23:46:33 darkstar kernel: [<c014e281>] sys_write+0x51/0x80
Sep 1 23:46:33 darkstar kernel: [<c0102ac9>] syscall_call+0x7/0xb
Sep 1 23:46:33 darkstar kernel: Code: 89 d0 31 d2 f7 76 0c 89 04 af 8b 4e 1c 8b 53 04 8d 42 fc 89 c3 8b 40 04 8d 44 20 00 8d 41 48 39 c2 75 b6 5b 5e 5f 5d c3 8b 40 28 <c7> 04 87 00 00 00 00 eb d6 8d 76 00 57 b8 ea ff ff ff 56 53 83
But it did what I asked:
# cat /rcfs/socketclass/s1/members
0.0.0.0:81
I saw that rbce_core.c in /usr/src/linux/kernel/ckrm/rbce is wrong. Should be "socketclass" and not "socket_class", right?
rbce_core.c:883:#define SOCKCLASS_NAME "socket_class"
I change this file, but the result is the same.
Thank you,
Ronan
