For those with the same problem, I fix it in my machine. I would like the opinion of the maintainers of this project and if it is correct, add the changes as a patch.

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



Reply via email to