[rds-devel] getting rds to work under mainline kernel

Or Gerlitz ogerlitz at voltaire.com
Tue Jul 15 06:08:25 PDT 2008


Hi Olaf,

I am trying to get rds to work with mainline kernel to carry some
tests, currently using 2.6.26.rcX where the rds code I use is :

code-drop-20080711 branch of git://git.openfabrics.org/~okir/ofed_1_4/linux-2.6.git
code-drop-20080703 branch or git://git.openfabrics.org/~okir/ofed_1_3/rds-tools.git

I can't get rds-info to work -

# rds-info
rds-generic-tool: Unable get statistics: Protocol not available


it seems to fail on the first call to getsockopt with 10007 (RDS_INFO_TCP_SOCKETS),
see the strace output below (28 is the correct PF as I see a "NET: Registered protocol
family 28" print in the dmesg whe the rds module gets loaded)

As for rds-stress - it does not work either, with the child process failing to bind its rds socket


# rds-stress -r 192.168.99.2 -s 192.168.99.1 -p 4001
connecting to 192.168.99.1:4001
connected to 192.168.99.1:4001
negotiated options, tasks will start in 2 seconds
bind() failed, errno: 99 (Cannot assign requested address)
child 0 (pid 6569) exited


see below the strace for process 6569

any idea what's the problem/s and how to get it to work?

Or.

# strace rds-info
...
open("/proc/sys/net/rds/pf_rds", O_RDONLY) = 3
read(3, "28\n", 4096)                   = 3
read(3, "", 4093)                       = 0
close(3)                                = 0
socket(0x1c /* PF_??? */, SOCK_SEQPACKET, 0) = 3
open("/proc/sys/net/rds/sol_rds", O_RDONLY) = 4
read(4, "272\n", 4096)                  = 4
read(4, "", 4092)                       = 0
close(4)                                = 0
getsockopt(3, 0x110 /* SOL_??? */, 10007, 0, 0x7fff1f0887ec) = -1 ENOPROTOOPT (Protocol not available)
write(2, "rds-generic-tool: Unable get sta"..., 64rds-generic-tool: Unable get statistics: Protocol not available) = 64
...


# strace -ff -o /tmp/rds-stress-c rds-stress -r 192.168.99.2 -s 192.168.99.1 -p 4001

connecting to 192.168.99.1:4001
connected to 192.168.99.1:4001
negotiated options, tasks will start in 2 seconds
bind() failed, errno: 99 (Cannot assign requested address)
child 0 (pid 6569) exited

# cat /tmp/rds-stress-c.6569

socket(0x1c /* PF_??? */, SOCK_SEQPACKET, 0) = 4
setsockopt(4, SOL_SOCKET, SO_REUSEADDR, [1], 4)           = 0
bind(4, {sa_family=AF_INET, sin_port=htons(4002), sin_addr=inet_addr("192.168.99.2")}, 16) = -1 EADDRNOTAVAIL (Cannot assign requested address)
write(2, "bind() failed, errno: 99 (Cannot"..., 59) = 59
exit_group(1)                           = ?




More information about the rds-devel mailing list