Amir Vadai [Wed, 23 Jul 2008 11:30:31 +0000 (14:30 +0300)]
SDP: Don't allow destruct socket when having sdp_destroy_work in workqueue
in error flow, sdp_destroy_work is placed in workqueue and sometimes the
user application call close() that destruct the socket before sdp_destroy_work
is called.
Amir Vadai [Thu, 10 Jul 2008 08:53:53 +0000 (01:53 -0700)]
SDP: do gracefull close instead of always doing abortive close.
Main changes:
1. when a close/shutdown syscall is called, instead of sending a DREQ, put
last socket ref count and go to TCP_CLOSE state do:
- take a socket reference count
- set state to TCP_TIME_WAIT
- start infiniband tear down
- wait till got RDMA_CM_EVENT_TIMEWAIT_EXIT
- set socket state to TCP_CLOSE
- put last socket ref count - this will call sdp_destruct()
2. No need for sdp_time_wait
3. Abortive close will immedietly start infiniband teardown - will finilize the
socket closing when CM finish.
Jim Mott [Wed, 5 Dec 2007 09:02:11 +0000 (11:02 +0200)]
SDP: various bzcopy fixes V2
The Mellanox regression tests posted a number of failures when
multiple threads were accessing the same sockets concurrently. In
addition to test failures, there were log messages of the form:
sdp_sock(54386:19002): Could not reap -5 in-flight sends
This fix handles all these failures and errors.
The V2 is a fix to handle 2.6.22+ kernels where sk_buffs have
changed.
Jim Mott [Sun, 11 Nov 2007 17:20:02 +0000 (19:20 +0200)]
sdp: Fix data corretness regression test failure.
Mellanox regression testing for data correctness started failing
after the recent addition of bzcopy. This was because sdp_sendmsg
returned before all in-flight RC transfers completed.
This allowed user space to modify buffers that had not been sent.
A big oops.
This fixes that bug. Small frame bandwidth is even worse
now, but small frame latency is lower which is good. The
default transfer size that triggers bzcopy has been
increased to the bandwidth crossover point found in
MLX4-MLX4 tests. More work will be required to find the
best value for the release.
Jim Mott [Tue, 6 Nov 2007 22:28:05 +0000 (14:28 -0800)]
SDP - Fix reference count locking bug
Add code to fix a problem found by the Mellanox regression group. When
mlx4_ib driver is unloaded while SDP connections are active, the system
would hang.
The original fix for this problem called an rdma_cm service that can block
with 2 spin locks held.
Jim Mott [Sat, 3 Nov 2007 02:50:31 +0000 (19:50 -0700)]
SDP - Make bzcopy defualt for 2K and larger transfer size
In order to be sure we test the new bzcopy code it will be enabled by
default. The 2K threshold is what my testing shows to be the lowest
value that always wins. We may have to adjust this upward if other
hardware has worse performance.
Jim Mott [Tue, 23 Oct 2007 17:59:13 +0000 (10:59 -0700)]
SDP - Zero copy bcopy support
This patch adds zero copy send support to SDP. Below 2K transfer size,
it is better to bcopy. With larger transfers, this is a net win on
bandwidth. Latency testing is yet to be done.
Performance work still remains. Open issues include correct setsockopt
defines (use previous SDP values?), code cleanup, performance tuning,
rigorous regression testing, and multi-OS build+test. Simple testing to
date includes netperf and iperf, ^C recovery, unload/load, and checking
for gross memory leaks on Rhat4u4.
Jim Mott [Tue, 23 Oct 2007 17:58:27 +0000 (10:58 -0700)]
SDP - Method used to allocate socket buffers may cause node to hang
The problem we are seeing is that if a node is under load, and
a memory allocation fails (say in sock_sendmsg()), the kernel will
use the allocation policy to decide how to proceed with the allocation.
If GFP_KERNEL is specified, then the kernel may attempt to free pages
through the iSCSI block device that is making the socket call, which
would result in a deadlock. Use of GFP_NOIO should prevent the kernel
from using the IO backend to free memory resources.
Each kernel level socket has an allocation flag to specify the
memory allocation policy for socket buffers, the default is GFP_ATOMIC
(or GFP_KERNEL for SDP). If the caller creates a socket with the
policy set to GFP_NOFS or GFP_NOIO this should be the allocation
policy used by the SDP layer.
Jim Mott [Tue, 23 Oct 2007 17:57:33 +0000 (10:57 -0700)]
SDP bug647 - Validate ChRcvBuf range and add comments
Clean up the buffer resize code to comply with CA4-83:
Upon receipt of ChRcvBuf message, the remote peer shall not
change the buffer size in the direction opposite of that
requested.
Jim Mott [Tue, 23 Oct 2007 17:51:30 +0000 (10:51 -0700)]
SDP bug646 - Do not send DisConn if there is only 1 credit
Compliance with CA4-82:
If one credit is available, an implementation shall only send SDP
messages that provide additional credits and also do not contain ULP
payload.
Linus Torvalds [Sat, 20 Jun 2015 20:54:22 +0000 (13:54 -0700)]
Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux
Pull drm fixes from Dave Airlie:
"A smattering of fixes,
mgag200:
don't accept modes that aren't aligned properly as hw can't do it
i915:
two regression fixes
radeon:
one query to allow userspace fixes
one oops fixer for older hw with new options enabled"
* 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
drm/radeon: don't probe MST on hw we don't support it on
drm/radeon: Add RADEON_INFO_VA_UNMAP_WORKING query
drm/mgag200: Reject non-character-cell-aligned mode widths
Revert "drm/i915: Don't skip request retirement if the active list is empty"
drm/i915: Always reset vma->ggtt_view.pages cache on unbinding
Linus Torvalds [Fri, 19 Jun 2015 17:34:14 +0000 (07:34 -1000)]
Merge tag 'sound-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound fixes from Takashi Iwai:
"Nothing looks scary, just a few usual HD-audio regression fixes and
fixup, in addition to a minor Kconfig dependency fix for the old MIPS
drivers"
* tag 'sound-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
ALSA: hda - Fix unused label skip_i915
ALSA: hda - Fix noisy outputs on Dell XPS13 (2015 model)
ALSA: mips: let SND_SGI_O2 select SND_PCM
ALSA: hda - Fix audio crackles on Dell Latitude E7x40
ALSA: hda - adding a DAC/pin preference map for a HP Envy TS machine