02 Nov, 2017
1 commit
-
Many source files in the tree are missing licensing information, which
makes it harder for compliance tools to determine the correct license.By default all files without license information are under the default
license of the kernel, which is GPL version 2.Update the files which contain no license information with the 'GPL-2.0'
SPDX license identifier. The SPDX identifier is a legally binding
shorthand, which can be used instead of the full boiler plate text.This patch is based on work done by Thomas Gleixner and Kate Stewart and
Philippe Ombredanne.How this work was done:
Patches were generated and checked against linux-4.14-rc6 for a subset of
the use cases:
- file had no licensing information it it.
- file was a */uapi/* one with no licensing information in it,
- file was a */uapi/* one with existing licensing information,Further patches will be generated in subsequent months to fix up cases
where non-standard license headers were used, and references to license
had to be inferred by heuristics based on keywords.The analysis to determine which SPDX License Identifier to be applied to
a file was done in a spreadsheet of side by side results from of the
output of two independent scanners (ScanCode & Windriver) producing SPDX
tag:value files created by Philippe Ombredanne. Philippe prepared the
base worksheet, and did an initial spot review of a few 1000 files.The 4.13 kernel was the starting point of the analysis with 60,537 files
assessed. Kate Stewart did a file by file comparison of the scanner
results in the spreadsheet to determine which SPDX license identifier(s)
to be applied to the file. She confirmed any determination that was not
immediately clear with lawyers working with the Linux Foundation.Criteria used to select files for SPDX license identifier tagging was:
- Files considered eligible had to be source code files.
- Make and config files were included as candidates if they contained >5
lines of source
- File already had some variant of a license header in it (even if
Reviewed-by: Philippe Ombredanne
Reviewed-by: Thomas Gleixner
Signed-off-by: Greg Kroah-Hartman
22 Sep, 2017
1 commit
-
The number of outstanding work requests is limited. If all work
requests are in use, tx processing is postponed to another scheduling
of the tx worker. Switch to a delayed worker to have a gap for tx
completion queue events before the next retry.Signed-off-by: Ursula Braun
Signed-off-by: David S. Miller
12 Apr, 2017
1 commit
-
Several state changes occur during SMC socket closing. Currently
state changes triggered locally occur in process context with
lock_sock() taken while state changes triggered by peer occur in
tasklet context with bh_lock_sock() taken. bh_lock_sock() does not
wait till a lock_sock(() task in process context is finished. This
may lead to races in socket state transitions resulting in dangling
SMC-sockets, or it may lead to duplicate SMC socket freeing.
This patch introduces a closing worker to run all state changes under
lock_sock().Signed-off-by: Ursula Braun
Reviewed-by: Thomas Richter
Reported-by: Dave Jones
Signed-off-by: David S. Miller
10 Jan, 2017
12 commits
-
Support for SMC socket monitoring via netlink sockets of protocol
NETLINK_SOCK_DIAG.Signed-off-by: Ursula Braun
Signed-off-by: David S. Miller -
smc_shutdown() and smc_release() handling
delayed linkgroup cleanup for linkgroups without connectionsSigned-off-by: Ursula Braun
Signed-off-by: David S. Miller -
move RMBE data into user space buffer and update managing cursors
Signed-off-by: Ursula Braun
Signed-off-by: David S. Miller -
copy data to kernel send buffer, and trigger RDMA write
Signed-off-by: Ursula Braun
Signed-off-by: David S. Miller -
send and receive CDC messages (via IB message send and CQE)
Signed-off-by: Ursula Braun
Signed-off-by: David S. Miller -
Prepare the link for RDMA transport:
Create a queue pair (QP) and move it into the state Ready-To-Receive (RTR).Signed-off-by: Ursula Braun
Signed-off-by: David S. Miller -
The base containers for RDMA transport are work requests and completion
queue entries processed through Infiniband verbs:
* allocate and initialize these areas
* map these areas to DMA
* implement the basic communication consisting of work request posting
and receival of completion queue eventsSigned-off-by: Ursula Braun
Signed-off-by: David S. Miller -
* allocate data RMB memory for sending and receiving
* size depends on the maximum socket send and receive buffers
* allocated RMBs are kept during life time of the owning link group
* map the allocated RMBs to DMASigned-off-by: Ursula Braun
Signed-off-by: David S. Miller -
* create smc_connection for SMC-sockets
* determine suitable link group for a connection
* create a new link group if necessarySigned-off-by: Ursula Braun
Signed-off-by: David S. Miller -
* CLC (Connection Layer Control) handshake
Signed-off-by: Ursula Braun
Signed-off-by: David S. Miller -
* create a list of SMC IB-devices
Signed-off-by: Ursula Braun
Signed-off-by: David S. Miller -
* enable smc module loading and unloading
* register new socket family
* basic smc socket creation and deletion
* use backing TCP socket to run CLC (Connection Layer Control)
handshake of SMC protocol
* Setup for infiniband traffic is implemented in follow-on patches.
For now fallback to TCP socket is always used.Signed-off-by: Ursula Braun
Reviewed-by: Utz Bacher
Signed-off-by: David S. Miller