<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/powerpc/kernel/io-workarounds.c, branch linux-4.4.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.4.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.4.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2015-10-12T04:30:09Z</updated>
<entry>
<title>powerpc/mm: Differentiate between hugetlb and THP during page walk</title>
<updated>2015-10-12T04:30:09Z</updated>
<author>
<name>Aneesh Kumar K.V</name>
</author>
<published>2015-10-09T03:02:21Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=891121e6c02c6242487aa4ea1d5c75b7ecdc45ee'/>
<id>urn:sha1:891121e6c02c6242487aa4ea1d5c75b7ecdc45ee</id>
<content type='text'>
We need to properly identify whether a hugepage is an explicit or
a transparent hugepage in follow_huge_addr(). We used to depend
on hugepage shift argument to do that. But in some case that can
result in wrong results. For ex:

On finding a transparent hugepage we set hugepage shift to PMD_SHIFT.
But we can end up clearing the thp pte, via pmdp_huge_get_and_clear.
We do prevent reusing the pfn page via the usage of
kick_all_cpus_sync(). But that happens after we updated the pte to 0.
Hence in follow_huge_addr() we can find hugepage shift set, but transparent
huge page check fail for a thp pte.

NOTE: We fixed a variant of this race against thp split in commit
691e95fd7396905a38d98919e9c150dbc3ea21a3
("powerpc/mm/thp: Make page table walk safe against thp split/collapse")

Without this patch, we may hit the BUG_ON(flags &amp; FOLL_GET) in
follow_page_mask occasionally.

In the long term, we may want to switch ppc64 64k page size config to
enable CONFIG_ARCH_WANT_GENERAL_HUGETLB

Reported-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
Signed-off-by: Aneesh Kumar K.V &lt;aneesh.kumar@linux.vnet.ibm.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>powerpc/mm/thp: Make page table walk safe against thp split/collapse</title>
<updated>2015-04-17T01:23:39Z</updated>
<author>
<name>Aneesh Kumar K.V</name>
</author>
<published>2015-03-30T05:11:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=691e95fd7396905a38d98919e9c150dbc3ea21a3'/>
<id>urn:sha1:691e95fd7396905a38d98919e9c150dbc3ea21a3</id>
<content type='text'>
We can disable a THP split or a hugepage collapse by disabling irq.
We do send IPI to all the cpus in the early part of split/collapse,
and disabling local irq ensure we don't make progress with
split/collapse. If the THP is getting split we return NULL from
find_linux_pte_or_hugepte(). For all the current callers it should be ok.
We need to be careful if we want to use returned pte_t pointer outside
the irq disabled region. W.r.t to THP split, the pfn remains the same,
but then a hugepage collapse will result in a pfn change. There are
few steps we can take to avoid a hugepage collapse.One way is to take page
reference inside the irq disable region. Other option is to take
mmap_sem so that a parallel collapse will not happen. We can also
disable collapse by taking pmd_lock. Another method used by kvm
subsystem is to check whether we had a mmu_notifer update in between
using mmu_notifier_retry().

Signed-off-by: Aneesh Kumar K.V &lt;aneesh.kumar@linux.vnet.ibm.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>powerpc: Better split CONFIG_PPC_INDIRECT_PIO and CONFIG_PPC_INDIRECT_MMIO</title>
<updated>2013-08-14T04:57:50Z</updated>
<author>
<name>Benjamin Herrenschmidt</name>
</author>
<published>2013-07-15T03:03:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ecd73cc5c9e137559f4625b347f20cf9ed0de3d5'/>
<id>urn:sha1:ecd73cc5c9e137559f4625b347f20cf9ed0de3d5</id>
<content type='text'>
Remove the generic PPC_INDIRECT_IO and ensure we only add overhead
to the right accessors. IE. If only CONFIG_PPC_INDIRECT_PIO is set,
we don't add overhead to all MMIO accessors.

Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc: Replace find_linux_pte with find_linux_pte_or_hugepte</title>
<updated>2013-06-21T06:01:54Z</updated>
<author>
<name>Aneesh Kumar K.V</name>
</author>
<published>2013-06-20T09:00:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=12bc9f6fc1d6582b4529ac522d2231bd2584a5f1'/>
<id>urn:sha1:12bc9f6fc1d6582b4529ac522d2231bd2584a5f1</id>
<content type='text'>
Replace find_linux_pte with find_linux_pte_or_hugepte and explicitly
document why we don't need to handle transparent hugepages at callsites.

Signed-off-by: Aneesh Kumar K.V &lt;aneesh.kumar@linux.vnet.ibm.com&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>POWERPC: drivers: remove __dev* attributes.</title>
<updated>2013-01-03T23:57:04Z</updated>
<author>
<name>Greg Kroah-Hartman</name>
</author>
<published>2012-12-21T22:04:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cad5cef62a5a0c525d39118d2e94b6e2034d5e05'/>
<id>urn:sha1:cad5cef62a5a0c525d39118d2e94b6e2034d5e05</id>
<content type='text'>
CONFIG_HOTPLUG is going away as an option.  As a result, the __dev*
markings need to be removed.

This change removes the use of __devinit, __devexit_p, __devinitdata,
__devinitconst, and __devexit from these drivers.

Based on patches originally written by Bill Pemberton, but redone by me
in order to handle some of the coding style issues better, by hand.

Cc: Bill Pemberton &lt;wfp5p@virginia.edu&gt;
Cc: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Cc: Paul Mackerras &lt;paulus@samba.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>powerpc: io-workarounds.c was implicitly getting init_mm</title>
<updated>2011-10-31T23:30:37Z</updated>
<author>
<name>Paul Gortmaker</name>
</author>
<published>2011-05-27T17:39:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=333a151822efab7dfb228a653072e5f03eaeb4b6'/>
<id>urn:sha1:333a151822efab7dfb228a653072e5f03eaeb4b6</id>
<content type='text'>
It was coming in via device.h --&gt; module.h etc. but we want to
clean that up.  So explicitly include the header where init_mm
is being declared.

Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</content>
</entry>
<entry>
<title>powerpc/pci: Properly initialize IO workaround "private"</title>
<updated>2011-04-27T04:18:33Z</updated>
<author>
<name>Michael Ellerman</name>
</author>
<published>2011-04-11T21:25:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=69b123684b50040b0926eed1e02795dac8cb9587'/>
<id>urn:sha1:69b123684b50040b0926eed1e02795dac8cb9587</id>
<content type='text'>
Even when no initfunc is provided.

Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Signed-off-by: Michael Ellerman &lt;michael@ellerman.id.au&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc/pci: Make IO workarounds init implicit when first bus is registered</title>
<updated>2011-04-27T04:18:31Z</updated>
<author>
<name>Michael Ellerman</name>
</author>
<published>2011-04-11T21:25:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d1109b7529f362c06c47140ae09dbd2b853ffddc'/>
<id>urn:sha1:d1109b7529f362c06c47140ae09dbd2b853ffddc</id>
<content type='text'>
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Signed-off-by: Michael Ellerman &lt;michael@ellerman.id.au&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc/pci: Move IO workarounds to the common kernel dir</title>
<updated>2011-04-27T04:18:29Z</updated>
<author>
<name>Michael Ellerman</name>
</author>
<published>2011-04-11T21:25:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3cc30d0726d258ac336283bcde66a8ab58283b61'/>
<id>urn:sha1:3cc30d0726d258ac336283bcde66a8ab58283b61</id>
<content type='text'>
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Signed-off-by: Michael Ellerman &lt;michael@ellerman.id.au&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
</feed>
