19 May, 2009
1 commit
-
Conflicts:
drivers/scsi/fcoe/fcoe.c
22 Apr, 2009
1 commit
-
In non-SMP mode, the variable section attribute specified by DECLARE_PER_CPU()
does not agree with that specified by DEFINE_PER_CPU(). This means that
architectures that have a small data section references relative to a base
register may throw up linkage errors due to too great a displacement between
where the base register points and the per-CPU variable.On FRV, the .h declaration says that the variable is in the .sdata section, but
the .c definition says it's actually in the .data section. The linker throws
up the following errors:kernel/built-in.o: In function `release_task':
kernel/exit.c:78: relocation truncated to fit: R_FRV_GPREL12 against symbol `per_cpu__process_counts' defined in .data section in kernel/built-in.o
kernel/exit.c:78: relocation truncated to fit: R_FRV_GPREL12 against symbol `per_cpu__process_counts' defined in .data section in kernel/built-in.oTo fix this, DECLARE_PER_CPU() should simply apply the same section attribute
as does DEFINE_PER_CPU(). However, this is made slightly more complex by
virtue of the fact that there are several variants on DEFINE, so these need to
be matched by variants on DECLARE.Signed-off-by: David Howells
Signed-off-by: Linus Torvalds
10 Apr, 2009
11 commits
-
rdma_create_id() doesn't return NULL, only ERR_PTR().
Found by smatch (http://repo.or.cz/w/smatch.git). Compile tested.
regards,
dan carpenterSigned-off-by: Dan Carpenter
Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
rdma_create_id() returns ERR_PTR() not null.
Found by smatch (http://repo.or.cz/w/smatch.git). Compile tested.
regards,
dan carpenterSigned-off-by: Dan Carpenter
Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
Use kmem_cache_zalloc instead of kmem_cache_alloc/memset.
Signed-off-by: Wei Yongjun
Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
Remove unused #include in net/rds/af_rds.c.
Signed-off-by: Huang Weiyi
Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
Use the new function that is simpler and faster.
Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
The first message to a remote node should prompt a new connection.
Even an RDMA op via CMSG. Therefore move CMSG parsing to after
connection establishment.Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
Putting the constant first is a supposed "best practice" that actually makes
the code harder to read.Thanks to Roland Dreier for finding a bug in this "simple, obviously correct"
patch.Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
Fix hack that restricts the credit advertisement to 127.
Signed-off-by: Steve Wise
Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
The RDS_LL_SEND_FULL bit should be set when we stop transmitted due to
flow control. Otherwise the send worker will keep trying as opposed to
sleeping until we unthrottle. Saves CPU.Signed-off-by: Steve Wise
Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
Had some lingering instances of _iw_ variable names from when
the listen code was centralized into rdma_transport.cSigned-off-by: Andy Grover
Signed-off-by: David S. Miller -
Currently the recv ring low water mark is 1/4 the depth. Performance
measurements show that this limits iWARP throughput by flow controlling
the rds-stress senders. Setting it to 1/2 seems to max the T3
performance. I tried even higher levels but that didn't help and it
started to increase the rds thread cpu utilization.Signed-off-by: Steve Wise
Signed-off-by: Andy Grover
Signed-off-by: David S. Miller
02 Apr, 2009
3 commits
-
We have a 64bit value that needs to be set atomically.
This is easy and quick on all 64bit archs, and can also be done
on x86/32 with set_64bit() (uses cmpxchg8b). However other
32b archs don't have this.I actually changed this to the current state in preparation for
mainline because the old way (using a spinlock on 32b) resulted in
unsightly #ifdefs in the code. But obviously, being correct takes
precedence.Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
This fixes a bug where a connection was unexpectedly
not on *any* list while being destroyed. It also
cleans up some code duplication and regularizes some
function names.* Grab appropriate lock in conn_free() and explain in comment
* Ensure via locking that a conn is never not on either
a dev's list or the nodev list
* Add rds_xx_remove_conn() to match rds_xx_add_conn()
* Make rds_xx_add_conn() return void
* Rename remove_{,nodev_}conns() to
destroy_{,nodev_}conns() and unify their implementation
in a helper function
* Document lock ordering as nodev conn_lock before
dev_conn_lockReported-by: Yosef Etigin
Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
rs_send_drop_to() is called during socket close. If it takes
m_rs_lock without disabling interrupts, then
rds_send_remove_from_sock() can run from the rx completion
handler and thus deadlock.Signed-off-by: Andy Grover
Signed-off-by: David S. Miller
04 Mar, 2009
1 commit
-
Fix RDS Infiniband dependencies for RDMA so that these
build errors won't happen:ERROR: "rdma_accept" [net/rds/rds.ko] undefined!
ERROR: "rdma_destroy_id" [net/rds/rds.ko] undefined!
ERROR: "rdma_connect" [net/rds/rds.ko] undefined!
ERROR: "rdma_destroy_qp" [net/rds/rds.ko] undefined!
ERROR: "rdma_listen" [net/rds/rds.ko] undefined!
ERROR: "rdma_notify" [net/rds/rds.ko] undefined!
ERROR: "rdma_create_id" [net/rds/rds.ko] undefined!
ERROR: "rdma_create_qp" [net/rds/rds.ko] undefined!
ERROR: "rdma_bind_addr" [net/rds/rds.ko] undefined!
ERROR: "rdma_resolve_route" [net/rds/rds.ko] undefined!
ERROR: "rdma_disconnect" [net/rds/rds.ko] undefined!
ERROR: "rdma_reject" [net/rds/rds.ko] undefined!
ERROR: "rdma_resolve_addr" [net/rds/rds.ko] undefined!Signed-off-by: Randy Dunlap
Acked-by: Andy Grover
Signed-off-by: David S. Miller
02 Mar, 2009
1 commit
-
As reported by Stephen Rothwell.
> Today's linux-next build (powerpc allyesconfig) failed like this:
>
> net/rds/cong.c: In function 'rds_cong_set_bit':
> net/rds/cong.c:284: error: implicit declaration of function 'generic___set_le_bit'
> net/rds/cong.c: In function 'rds_cong_clear_bit':
> net/rds/cong.c:298: error: implicit declaration of function 'generic___clear_le_bit'
> net/rds/cong.c: In function 'rds_cong_test_bit':
> net/rds/cong.c:309: error: implicit declaration of function 'generic_test_le_bit'Signed-off-by: David S. Miller
27 Feb, 2009
21 commits
-
Add RDS Kconfig and Makefile, and modify net/'s to add
us to the build.Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
Although most of IB and iWARP are separated from each other,
there is some common code required to handle their shared
CM listen port. This code listens for CM events and then
dispatches the event to the appropriate transport, either
IB or iWARP.Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
Support for iWARP NICs is implemented as a separate
RDS transport from IB. The code, however, is very
similar to IB (it was forked, basically.) so let's keep
it in one changeset.The reason for this duplicationis that despite its similarity
to IB, there are a number of places where it has different
semantics. iwarp zcopy support is still under development,
and giving it its own sandbox ensures that IB code isn't
disrupted while iwarp changes. Over time these transports
will re-converge.Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
IB-specific stats and sysctls.
Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
Header parsing, ring refill. It puts the incoming data into an
rds_incoming struct, which is passed up to rds-core.Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
Specific to IB is a credits-based flow control mechanism, in
addition to the expected usage of the IB API to package outgoing
data into work requests.Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
Registers as an RDS transport and an IB client, and uses IB CM
API to allocate ids, queue pairs, and the rest of that fun stuff.Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
Some transports may support RDMA features. This handles the
non-transport-specific parts, like pinning user pages and
tracking mapped regions.Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
Upon receiving a datagram from the transport, RDS parses the
headers and potentially queues an ACK.Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
This is the code to send an RDS datagram.
Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
Parsing of newly-received RDS message headers (including ext.
headers) and copy-to/from-user routines.page.c implements a per-cpu page remainder cache, to reduce the
number of allocations needed for small datagrams.Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
RDS exposes a few tunable parameters via sysctls.
Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
A simple rds transport to handle loopback connections.
Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
While arguably the fact that the underlying transport needs a
connection to convey RDS's datagrame reliably is not important
to rds proper, the transports implemented so far (IB and TCP)
have both been connection-oriented, and so the connection
state machine-related code is in the common rds code.This patch also includes several work items, to handle connecting,
sending, receiving, and shutdown.Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
RDS currently generates a lot of stats that are accessible via
the rds-info utility. This code implements the support for this.Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
RDS supports multiple transports. While this initial submission
only supports Infiniband transport, this abstraction allows others
to be added. We're working on an iWARP transport, and also see
UDP over DCB as another possibility.This code handles transport registration.
Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
RDS handles per-socket congestion by updating peers with a complete
congestion map (8KB). This code keeps track of these maps for itself
and ones received from peers.Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
RDS's main data structure definitions and exported functions.
Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
Implement the RDS (Reliable Datagram Sockets) interface.
Signed-off-by: Andy Grover
Signed-off-by: David S. Miller