<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/s390/include/asm/pgalloc.h, branch linux-3.18.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.18.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.18.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2014-08-26T08:09:02Z</updated>
<entry>
<title>KVM: s390/mm: use radix trees for guest to host mappings</title>
<updated>2014-08-26T08:09:02Z</updated>
<author>
<name>Martin Schwidefsky</name>
</author>
<published>2014-04-30T14:04:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=527e30b41d8b86e9ae7f5b740de416958c0e574e'/>
<id>urn:sha1:527e30b41d8b86e9ae7f5b740de416958c0e574e</id>
<content type='text'>
Store the target address for the gmap segments in a radix tree
instead of using invalid segment table entries. gmap_translate
becomes a simple radix_tree_lookup, gmap_fault is split into the
address translation with gmap_translate and the part that does
the linking of the gmap shadow page table with the process page
table.
A second radix tree is used to keep the pointers to the segment
table entries for segments that are mapped in the guest address
space. On unmap of a segment the pointer is retrieved from the
radix tree and is used to carry out the segment invalidation in
the gmap shadow page table. As the radix tree can only store one
pointer, each host segment may only be mapped to exactly one
guest location.

Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
Signed-off-by: Christian Borntraeger &lt;borntraeger@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>KVM: s390: Clear storage keys</title>
<updated>2014-04-22T07:36:24Z</updated>
<author>
<name>Dominik Dingel</name>
</author>
<published>2014-01-29T15:02:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d4cb11340be6a1613d40d2b546cb111ea2547066'/>
<id>urn:sha1:d4cb11340be6a1613d40d2b546cb111ea2547066</id>
<content type='text'>
page_table_reset_pgste() already does a complete page table walk to
reset the pgste. Enhance it to initialize the storage keys to
PAGE_DEFAULT_KEY if requested by the caller. This will be used
for lazy storage key handling. Also provide an empty stub for
!CONFIG_PGSTE

Lets adopt the current code (diag 308) to not clear the keys.

Signed-off-by: Dominik Dingel &lt;dingel@linux.vnet.ibm.com&gt;
Acked-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
Signed-off-by: Christian Borntraeger &lt;borntraeger@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/mm: enable split page table lock for PMD level</title>
<updated>2014-02-21T07:50:22Z</updated>
<author>
<name>Martin Schwidefsky</name>
</author>
<published>2014-02-12T13:16:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ec66ad66a0de87866be347b5ecc83bd46427f53b'/>
<id>urn:sha1:ec66ad66a0de87866be347b5ecc83bd46427f53b</id>
<content type='text'>
Add the pgtable_pmd_page_ctor/pgtable_pmd_page_dtor calls to the pmd
allocation and free functions and enable ARCH_ENABLE_SPLIT_PMD_PTLOCK
for 64 bit.

Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/kvm: set guest page states to stable on re-ipl</title>
<updated>2014-02-21T07:50:20Z</updated>
<author>
<name>Martin Schwidefsky</name>
</author>
<published>2013-05-21T15:29:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=deedabb2b4a68a63351a949b1abcf73fc97eb406'/>
<id>urn:sha1:deedabb2b4a68a63351a949b1abcf73fc97eb406</id>
<content type='text'>
The guest page state needs to be reset to stable for all pages
on initial program load via diagnose 0x308.

Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/kvm: Provide function for setting the guest storage key</title>
<updated>2013-06-26T19:10:04Z</updated>
<author>
<name>Christian Borntraeger</name>
</author>
<published>2013-05-27T08:42:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=24d5dd0208ed1cd3ef6bf30a50b347ef366f21ac'/>
<id>urn:sha1:24d5dd0208ed1cd3ef6bf30a50b347ef366f21ac</id>
<content type='text'>
From time to time we need to set the guest storage key. Lets
provide a helper function that handles the changes with all the
right locking and checking.

Signed-off-by: Christian Borntraeger &lt;borntraeger@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/comments: unify copyright messages and remove file names</title>
<updated>2012-07-20T09:15:04Z</updated>
<author>
<name>Heiko Carstens</name>
</author>
<published>2012-07-20T09:15:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a53c8fab3f87c995c30ac226a03af95361243144'/>
<id>urn:sha1:a53c8fab3f87c995c30ac226a03af95361243144</id>
<content type='text'>
Remove the file name from the comment at top of many files. In most
cases the file name was wrong anyway, so it's rather pointless.

Also unify the IBM copyright statement. We did have a lot of sightly
different statements and wanted to change them one after another
whenever a file gets touched. However that never happened. Instead
people start to take the old/"wrong" statements to use as a template
for new files.
So unify all of them in one go.

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/headers: replace __s390x__ with CONFIG_64BIT where possible</title>
<updated>2012-05-24T08:10:10Z</updated>
<author>
<name>Heiko Carstens</name>
</author>
<published>2012-05-23T14:24:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f4815ac6c935b8e441fe12504d62e0e8ff7f7ce5'/>
<id>urn:sha1:f4815ac6c935b8e441fe12504d62e0e8ff7f7ce5</id>
<content type='text'>
Replace __s390x__ with CONFIG_64BIT in all places that are not exported
to userspace or guarded with #ifdef __KERNEL__.

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] fix tlb flushing for page table pages</title>
<updated>2012-04-11T12:28:24Z</updated>
<author>
<name>Martin Schwidefsky</name>
</author>
<published>2012-04-11T12:28:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cd94154cc6a28dd9dc271042c1a59c08d26da886'/>
<id>urn:sha1:cd94154cc6a28dd9dc271042c1a59c08d26da886</id>
<content type='text'>
Git commit 36409f6353fc2d7b6516e631415f938eadd92ffa "use generic RCU
page-table freeing code" introduced a tlb flushing bug. Partially revert
the above git commit and go back to s390 specific page table flush code.

For s390 the TLB can contain three types of entries, "normal" TLB
page-table entries, TLB combined region-and-segment-table (CRST) entries
and real-space entries. Linux does not use real-space entries which
leaves normal TLB entries and CRST entries. The CRST entries are
intermediate steps in the page-table translation called translation paths.
For example a 4K page access in a three-level page table setup will
create two CRST TLB entries and one page-table TLB entry. The advantage
of that approach is that a page access next to the previous one can reuse
the CRST entries and needs just a single read from memory to create the
page-table TLB entry. The disadvantage is that the TLB flushing rules are
more complicated, before any page-table may be freed the TLB needs to be
flushed.

In short: the generic RCU page-table freeing code is incorrect for the
CRST entries, in particular the check for mm_users &lt; 2 is troublesome.

This is applicable to 3.0+ kernels.

Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>[S390] kvm guest address space mapping</title>
<updated>2011-07-24T08:48:21Z</updated>
<author>
<name>Martin Schwidefsky</name>
</author>
<published>2011-07-24T08:48:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e5992f2e6c3829cd43dbc4438ee13dcd6506f7f3'/>
<id>urn:sha1:e5992f2e6c3829cd43dbc4438ee13dcd6506f7f3</id>
<content type='text'>
Add code that allows KVM to control the virtual memory layout that
is seen by a guest. The guest address space uses a second page table
that shares the last level pte-tables with the process page table.
If a page is unmapped from the process page table it is automatically
unmapped from the guest page table as well.

The guest address space mapping starts out empty, KVM can map any
individual 1MB segments from the process virtual memory to any 1MB
aligned location in the guest virtual memory. If a target segment in
the process virtual memory does not exist or is unmapped while a
guest mapping exists the desired target address is stored as an
invalid segment table entry in the guest page table.
The population of the guest page table is fault driven.

Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>[S390] use generic RCU page-table freeing code</title>
<updated>2011-06-06T12:14:56Z</updated>
<author>
<name>Martin Schwidefsky</name>
</author>
<published>2011-06-06T12:14:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=36409f6353fc2d7b6516e631415f938eadd92ffa'/>
<id>urn:sha1:36409f6353fc2d7b6516e631415f938eadd92ffa</id>
<content type='text'>
Replace the s390 specific rcu page-table freeing code with the
generic variant. This requires to duplicate the definition for the
struct mmu_table_batch as s390 does not use the generic tlb flush
code.

While we are at it remove the restriction that page table fragments
can not be reused after a single fragment has been freed with rcu
and split out allocation and freeing of page tables with pgstes.

Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
</feed>
