<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/s390/cio/css.c, branch linux-4.4.y</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=linux-4.4.y</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=linux-4.4.y'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2020-09-03T09:19:25+00:00</updated>
<entry>
<title>s390/cio: add cond_resched() in the slow_eval_known_fn() loop</title>
<updated>2020-09-03T09:19:25+00:00</updated>
<author>
<name>Vineeth Vijayan</name>
<email>vneethv@linux.ibm.com</email>
</author>
<published>2020-06-18T14:42:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=c86b5b56fb1b356b8f71973b6ac6bd9bfb842f2c'/>
<id>urn:sha1:c86b5b56fb1b356b8f71973b6ac6bd9bfb842f2c</id>
<content type='text'>
[ Upstream commit 0b8eb2ee9da1e8c9b8082f404f3948aa82a057b2 ]

The scanning through subchannels during the time of an event could
take significant amount of time in case of platforms with lots of
known subchannels. This might result in higher scheduling latencies
for other tasks especially on systems with a single CPU. Add
cond_resched() call, as the loop in slow_eval_known_fn() can be
executed for a longer duration.

Reviewed-by: Peter Oberparleiter &lt;oberpar@linux.ibm.com&gt;
Signed-off-by: Vineeth Vijayan &lt;vneethv@linux.ibm.com&gt;
Signed-off-by: Heiko Carstens &lt;hca@linux.ibm.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>s390/cio: exclude subchannels with no parent from pseudo check</title>
<updated>2019-10-17T20:40:53+00:00</updated>
<author>
<name>Vasily Gorbik</name>
<email>gor@linux.ibm.com</email>
</author>
<published>2019-09-19T13:55:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=a179b845b9823e2c3b14c38a9da99280e8495c2f'/>
<id>urn:sha1:a179b845b9823e2c3b14c38a9da99280e8495c2f</id>
<content type='text'>
commit ab5758848039de9a4b249d46e4ab591197eebaf2 upstream.

ccw console is created early in start_kernel and used before css is
initialized or ccw console subchannel is registered. Until then console
subchannel does not have a parent. For that reason assume subchannels
with no parent are not pseudo subchannels. This fixes the following
kasan finding:

BUG: KASAN: global-out-of-bounds in sch_is_pseudo_sch+0x8e/0x98
Read of size 8 at addr 00000000000005e8 by task swapper/0/0

CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.3.0-rc8-07370-g6ac43dd12538 #2
Hardware name: IBM 2964 NC9 702 (z/VM 6.4.0)
Call Trace:
([&lt;000000000012cd76&gt;] show_stack+0x14e/0x1e0)
 [&lt;0000000001f7fb44&gt;] dump_stack+0x1a4/0x1f8
 [&lt;00000000007d7afc&gt;] print_address_description+0x64/0x3c8
 [&lt;00000000007d75f6&gt;] __kasan_report+0x14e/0x180
 [&lt;00000000018a2986&gt;] sch_is_pseudo_sch+0x8e/0x98
 [&lt;000000000189b950&gt;] cio_enable_subchannel+0x1d0/0x510
 [&lt;00000000018cac7c&gt;] ccw_device_recognition+0x12c/0x188
 [&lt;0000000002ceb1a8&gt;] ccw_device_enable_console+0x138/0x340
 [&lt;0000000002cf1cbe&gt;] con3215_init+0x25e/0x300
 [&lt;0000000002c8770a&gt;] console_init+0x68a/0x9b8
 [&lt;0000000002c6a3d6&gt;] start_kernel+0x4fe/0x728
 [&lt;0000000000100070&gt;] startup_continue+0x70/0xd0

Cc: stable@vger.kernel.org
Reviewed-by: Sebastian Ott &lt;sebott@linux.ibm.com&gt;
Signed-off-by: Vasily Gorbik &lt;gor@linux.ibm.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>s390/cio: simplify css_generate_pgid</title>
<updated>2015-11-09T08:10:48+00:00</updated>
<author>
<name>Sebastian Ott</name>
<email>sebott@linux.vnet.ibm.com</email>
</author>
<published>2015-07-16T20:40:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=cd5dead9d32423d63c802328c0563d7ff29647cd'/>
<id>urn:sha1:cd5dead9d32423d63c802328c0563d7ff29647cd</id>
<content type='text'>
Simplify the css_generate_pgid code by using stap() independent of
CONFIG_SMP. For !CONFIG_SMP builds stap() will deliver the address
of the cpu we IPL'ed from (which can be != 0).

Note: the ifdef was likely added to be compatible with _very_ old
machines which we don't support anyway.

Reviewed-by: Peter Oberparleiter &lt;oberpar@linux.vnet.ibm.com&gt;
Signed-off-by: Sebastian Ott &lt;sebott@linux.vnet.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/css: unneeded initialization in for_each_subchannel</title>
<updated>2015-11-03T13:40:49+00:00</updated>
<author>
<name>Pierre Morel</name>
<email>pmorel@linux.vnet.ibm.com</email>
</author>
<published>2015-10-26T09:45:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=8f0ba83178d4f3630687296c45d593326ec2d63d'/>
<id>urn:sha1:8f0ba83178d4f3630687296c45d593326ec2d63d</id>
<content type='text'>
The ret variable is always set by the fn function.
There is no need to initialize it.

Signed-off-by: Pierre Morel &lt;pmorel@linux.vnet.ibm.com&gt;
Reviewed-By: Sascha Silbe &lt;silbe@linux.vnet.ibm.com&gt;
Acked-by: Cornelia Huck &lt;cornelia.huck@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/cio: reactivate cmf after hibernate</title>
<updated>2015-10-14T12:32:04+00:00</updated>
<author>
<name>Sebastian Ott</name>
<email>sebott@linux.vnet.ibm.com</email>
</author>
<published>2015-09-09T08:29:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=ab97d211ef1863942a90d7c93dfd563f0381ca87'/>
<id>urn:sha1:ab97d211ef1863942a90d7c93dfd563f0381ca87</id>
<content type='text'>
During resume from hibernate we already reenable measurement block
updates on a per device basis. In addition to that we also need to
activate channel measurement globally using the set channel monitor
instruction.

Signed-off-by: Sebastian Ott &lt;sebott@linux.vnet.ibm.com&gt;
Reviewed-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
Reviewed-by: Cornelia Huck &lt;cornelia.huck@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/css: Prevent unnecessary allocation in subchannel loop</title>
<updated>2013-12-16T13:37:42+00:00</updated>
<author>
<name>Peter Oberparleiter</name>
<email>oberpar@linux.vnet.ibm.com</email>
</author>
<published>2013-11-26T13:59:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=47d30674d6c79197fa7bfb0d09d5857f61e0277b'/>
<id>urn:sha1:47d30674d6c79197fa7bfb0d09d5857f61e0277b</id>
<content type='text'>
Subchannel looping function for_each_subchannel_staged() allocates a
subchannel-ID-bitmap to efficiently iterate over the list of known
and unknown subchannels. Since this function is also used to iterate
over known-subchannels only, optimize that case by not requiring the
ID-bitmap allocation and falling back to simple bus_for_each_dev()
looping.

Signed-off-by: Peter Oberparleiter &lt;oberpar@linux.vnet.ibm.com&gt;
Reviewed-by: Sebastian Ott &lt;sebott@linux.vnet.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/cio: Delay scan for newly available I/O devices</title>
<updated>2013-12-16T13:37:41+00:00</updated>
<author>
<name>Peter Oberparleiter</name>
<email>oberpar@linux.vnet.ibm.com</email>
</author>
<published>2013-11-26T13:58:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=175746eb06a8925274558793814d8c802dc48276'/>
<id>urn:sha1:175746eb06a8925274558793814d8c802dc48276</id>
<content type='text'>
The CIO layer scans for newly available I/O devices by performing a scan
of available subchannels using the Store Subchannel (STSCH) instruction.
Performing too many STSCH instructions in a tight loop can cause high
Hypervisor overhead which can negatively impact the performance of the
virtual machine as a whole.

A subchannel scan is triggered for example during a hardware event that
indicates that a channel path has become available. It is also triggered
by the DASD device driver for each device that is set online.

This patch reduces the number of STSCH instructions being performed by
delaying the start of the actual subchannel scan by 1 second. Multiple
scan requests that are scheduled during this time will be merged into a
single scan loop.

The trade-off consists of a short delay that is introduced between
the time that the event is processed and a newly available device
becoming usable. This delay should be acceptable since it only
affects devices that have not been in use before.

Signed-off-by: Peter Oberparleiter &lt;oberpar@linux.vnet.ibm.com&gt;
Reviewed-by: Sebastian Ott &lt;sebott@linux.vnet.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/cio: Relax subchannel scan loop</title>
<updated>2013-12-16T13:37:40+00:00</updated>
<author>
<name>Peter Oberparleiter</name>
<email>oberpar@linux.vnet.ibm.com</email>
</author>
<published>2013-11-26T13:57:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=b207f5a8f9a60fda4e995151af7d8670015e261d'/>
<id>urn:sha1:b207f5a8f9a60fda4e995151af7d8670015e261d</id>
<content type='text'>
The CIO layer scans for newly available I/O devices by performing a scan
of available subchannels using the Store Subchannel (STSCH) instruction.
This processing can take a significant amount of time during which no
other task can run on the same CPU (unless CONFIG_PREEMPT has been
enabled). As a result, scheduling latencies for other tasks are
increased noticeably, especially on a single-CPU system.

Fix this problem by explicitly allowing other tasks to be scheduled
each time a subchannel has been processed.

Signed-off-by: Peter Oberparleiter &lt;oberpar@linux.vnet.ibm.com&gt;
Reviewed-by: Sebastian Ott &lt;sebott@linux.vnet.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/cio: fix unlocked access of global bitmap</title>
<updated>2013-08-30T06:57:22+00:00</updated>
<author>
<name>Sebastian Ott</name>
<email>sebott@linux.vnet.ibm.com</email>
</author>
<published>2013-08-29T18:31:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=eb072a7996467937a1582d0188ed082768902a5a'/>
<id>urn:sha1:eb072a7996467937a1582d0188ed082768902a5a</id>
<content type='text'>
Access to the slow_subchannel_set has to be secured via the
slow_subchannel_lock.

Signed-off-by: Sebastian Ott &lt;sebott@linux.vnet.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390: replace strict_strtoul() with kstrtoul()</title>
<updated>2013-08-22T10:20:00+00:00</updated>
<author>
<name>Jingoo Han</name>
<email>jg1.han@samsung.com</email>
</author>
<published>2013-07-22T01:18:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=0178722be9ed575d1724f6b815b7a1eb74b1ccb7'/>
<id>urn:sha1:0178722be9ed575d1724f6b815b7a1eb74b1ccb7</id>
<content type='text'>
The usage of strict_strtoul() is not preferred, because
strict_strtoul() is obsolete. Thus, kstrtoul() should be
used.

Signed-off-by: Jingoo Han &lt;jg1.han@samsung.com&gt;
Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
</feed>
