<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/s390/kernel/early.c, branch linux-3.19.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.19.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.19.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2014-10-27T12:27:27Z</updated>
<entry>
<title>s390/ftrace,kprobes: allow to patch first instruction</title>
<updated>2014-10-27T12:27:27Z</updated>
<author>
<name>Heiko Carstens</name>
</author>
<published>2014-10-15T10:17:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c933146a5e41e42ea3eb4f34fa02e201da3f068e'/>
<id>urn:sha1:c933146a5e41e42ea3eb4f34fa02e201da3f068e</id>
<content type='text'>
If the function tracer is enabled, allow to set kprobes on the first
instruction of a function (which is the function trace caller):

If no kprobe is set handling of enabling and disabling function tracing
of a function simply patches the first instruction. Either it is a nop
(right now it's an unconditional branch, which skips the mcount block),
or it's a branch to the ftrace_caller() function.

If a kprobe is being placed on a function tracer calling instruction
we encode if we actually have a nop or branch in the remaining bytes
after the breakpoint instruction (illegal opcode).
This is possible, since the size of the instruction used for the nop
and branch is six bytes, while the size of the breakpoint is only
two bytes.
Therefore the first two bytes contain the illegal opcode and the last
four bytes contain either "0" for nop or "1" for branch. The kprobes
code will then execute/simulate the correct instruction.

Instruction patching for kprobes and function tracer is always done
with stop_machine(). Therefore we don't have any races where an
instruction is patched concurrently on a different cpu.
Besides that also the program check handler which executes the function
trace caller instruction won't be executed concurrently to any
stop_machine() execution.

This allows to keep full fault based kprobes handling which generates
correct pt_regs contents automatically.

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>
<entry>
<title>s390: add support for vector extension</title>
<updated>2014-10-09T07:14:13Z</updated>
<author>
<name>Martin Schwidefsky</name>
</author>
<published>2014-10-06T15:53:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8070361799ae1e3f4ef347bd10f0a508ac10acfb'/>
<id>urn:sha1:8070361799ae1e3f4ef347bd10f0a508ac10acfb</id>
<content type='text'>
The vector extension introduces 32 128-bit vector registers and a set of
instruction to operate on the vector registers.

The kernel can control the use of vector registers for the problem state
program with a bit in control register 0. Once enabled for a process the
kernel needs to retain the content of the vector registers on context
switch. The signal frame is extended to include the vector registers.
Two new register sets NT_S390_VXRS_LOW and NT_S390_VXRS_HIGH are added
to the regset interface for the debugger and core dumps.

Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390: remove unused MACHINE_FLAG_RRBM</title>
<updated>2014-09-09T06:53:26Z</updated>
<author>
<name>Heiko Carstens</name>
</author>
<published>2014-08-27T05:35:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b7d5006de1afab266175288f41e5dc70e69cce33'/>
<id>urn:sha1:b7d5006de1afab266175288f41e5dc70e69cce33</id>
<content type='text'>
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>
<entry>
<title>s390/mm: Convert bootmem to memblock</title>
<updated>2014-05-20T06:58:40Z</updated>
<author>
<name>Philipp Hachtmann</name>
</author>
<published>2014-01-29T17:16:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=50be634507284eea38df78154d22615d21200b42'/>
<id>urn:sha1:50be634507284eea38df78154d22615d21200b42</id>
<content type='text'>
The original bootmem allocator is getting replaced by memblock. To
cover the needs of the s390 kdump implementation the physical memory
list is used.
With this patch the bootmem allocator and its bitmaps are completely
removed from s390.

Signed-off-by: Philipp Hachtmann &lt;phacht@linux.vnet.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/mm,tlb: optimize TLB flushing for zEC12</title>
<updated>2014-04-03T12:31:00Z</updated>
<author>
<name>Martin Schwidefsky</name>
</author>
<published>2014-04-03T11:55:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1b948d6caec4f28e3524244ca0f77c6ae8ddceef'/>
<id>urn:sha1:1b948d6caec4f28e3524244ca0f77c6ae8ddceef</id>
<content type='text'>
The zEC12 machines introduced the local-clearing control for the IDTE
and IPTE instruction. If the control is set only the TLB of the local
CPU is cleared of entries, either all entries of a single address space
for IDTE, or the entry for a single page-table entry for IPTE.
Without the local-clearing control the TLB flush is broadcasted to all
CPUs in the configuration, which is expensive.

The reset of the bit mask of the CPUs that need flushing after a
non-local IDTE is tricky. As TLB entries for an address space remain
in the TLB even if the address space is detached a new bit field is
required to keep track of attached CPUs vs. CPUs in the need of a
flush. After a non-local flush with IDTE the bit-field of attached CPUs
is copied to the bit-field of CPUs in need of a flush. The ordering
of operations on cpu_attach_mask, attach_count and mm_cpumask(mm) is
such that an underindication in mm_cpumask(mm) is prevented but an
overindication in mm_cpumask(mm) is possible.

Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/setup: get rid of MACHINE_HAS_MVCOS machine flag</title>
<updated>2014-02-21T07:50:15Z</updated>
<author>
<name>Heiko Carstens</name>
</author>
<published>2014-01-24T12:03:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ca04ddbf537d30b25f6e240b70f19be35fac4313'/>
<id>urn:sha1:ca04ddbf537d30b25f6e240b70f19be35fac4313</id>
<content type='text'>
MACHINE_HAS_MVCOS is used exactly once when the machine is brought up.
There is no need to cache the flag in the machine_flags.

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>
<entry>
<title>s390/sclp: Consolidate early sclp init calls to sclp_early_detect()</title>
<updated>2013-11-15T13:08:41Z</updated>
<author>
<name>Michael Holzheu</name>
</author>
<published>2013-11-13T09:38:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7b50da53f6ad2048241bef232bfc22a132a40283'/>
<id>urn:sha1:7b50da53f6ad2048241bef232bfc22a132a40283</id>
<content type='text'>
The new function calls the old ones. The sclp_event_mask_early() is removed
and replaced by one invocation of sclp_set_event_mask(0, 0).

Reviewed-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Michael Holzheu &lt;holzheu@linux.vnet.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/sclp: Determine HSA size dynamically for zfcpdump</title>
<updated>2013-11-15T13:08:40Z</updated>
<author>
<name>Michael Holzheu</name>
</author>
<published>2013-11-13T09:38:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e657d8fe2faf49ed5d35e2325bd0f1712b8058cd'/>
<id>urn:sha1:e657d8fe2faf49ed5d35e2325bd0f1712b8058cd</id>
<content type='text'>
Currently we have hardcoded the HSA size to 32 MiB. With this patch the
HSA size is determined dynamically via SCLP in early.c.

Reviewed-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Michael Holzheu &lt;holzheu@linux.vnet.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/mm: do not initialize storage keys</title>
<updated>2013-10-24T15:17:00Z</updated>
<author>
<name>Martin Schwidefsky</name>
</author>
<published>2013-10-07T10:12:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=127c1feffff8078400f01372712c600d0f9eef51'/>
<id>urn:sha1:127c1feffff8078400f01372712c600d0f9eef51</id>
<content type='text'>
With dirty and referenced bits implemented in software it is unnecessary
to initialize the storage key for every page. With this patch not a single
storage key operation is done for a system that does not use KVM.
For KVM set_pte_at/pgste_set_key will do the initialization for the guest
view of the storage key when the mapping for the page is established in
the host.

Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/mem_detect: limit memory detection loop to "mem=" parameter</title>
<updated>2013-05-02T13:50:26Z</updated>
<author>
<name>Heiko Carstens</name>
</author>
<published>2013-04-30T08:34:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=df1bd59c5cc247d1d02588ff0a4e86a0cc5f9733'/>
<id>urn:sha1:df1bd59c5cc247d1d02588ff0a4e86a0cc5f9733</id>
<content type='text'>
The current memory detection loop will detect all present memory of
a machine. This is true even if the user specified the "mem=" parameter
on the kernel command line.
This can be a problem since the memory detection may cause a fully
populated host page table for the guest, even for those parts of the
memory that the guest will never use afterwards.

So fix this and only detect memory up to a user supplied "mem=" limit
if specified.

Reported-by: Michael Johanssen &lt;johanssn@de.ibm.com&gt;
Reviewed-by: Michael Holzheu &lt;holzheu@linux.vnet.ibm.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>
