On 08/31/2010 03:56 AM, Alexander Graf wrote:
On 22.08.2010, at 18:42, Avi Kivity wrote:
On 08/17/2010 04:57 PM, Alexander Graf wrote:
We will soon add SR PV support to the shared page, so we need some
infrastructure that allows the guest to query for features KVM exports.
This patch adds a
On Mon, Aug 30, 2010 at 7:46 PM, Grant Likely wrote:
> On Mon, Aug 30, 2010 at 10:04 AM, Esben Haabendal
>> Hopefully, arm users will soon enjoy this driver/wrapper soon also.
>
> My hope is that even on ARM when the device tree is used I'll be able
> eliminate IRQs mapped to 0 (but I need to do a
Hi Linus !
Here's a few small fixes, one is an important fix for a nasty regression
breaking pseries machine running under hypervisor... oops !
Cheers,
Ben.
The following changes since commit 2bfc96a127bc1cc94d26bfaa40159966064f9c8c:
Linus Torvalds (1):
Linux 2.6.36-rc3
are available
The PCI-Express bus off the U4/CPC945 bridge supports direct DMA to
all of memory, bypassing the DART iommu, for 64-bit capable devices.
This adds support for it on Bimini and Apple Quad G5's in order to
improve DMA performances of cards using that slot (the x16 graphics
slot). Tested with an Inte
Some platforms may want to override dma_set_mask() to take into
account some specific "features" such as the availability of
a direct-map window in addition to an iommu.
Signed-off-by: Benjamin Herrenschmidt
---
arch/powerpc/include/asm/dma-mapping.h | 14 +-
arch/powerpc/include/a
On Sun, Aug 22, 2010 at 06:48:44PM -0400, Sean MacLennan wrote:
> Replace the BOOK3S_64 specific mtmsrd with the generic MTMSRD macro.
>
> Signed-off-by: Sean MacLennan
Acked-by: Paul Mackerras
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.
On Aug 30, 2010, at 9:49 PM, Sean MacLennan wrote:
> On Tue, 31 Aug 2010 04:15:20 +0200
> Alexander Graf wrote:
>
>> Commit 0016a4cf introduced a lot of mtmsrd's that were plainly
>> written out. These failed to compile on my e500v2 system, so let's
>> better use the macro that is around just f
On Tue, 31 Aug 2010 04:15:20 +0200
Alexander Graf wrote:
> Commit 0016a4cf introduced a lot of mtmsrd's that were plainly
> written out. These failed to compile on my e500v2 system, so let's
> better use the macro that is around just for that purpose.
I sent in the same patch ;)
Cheers,
Sean
BookE also wants to support level based interrupts, so let's implement
all the necessary logic there. We need to trick a bit here because the
irqprios are 1:1 assigned to architecture defined values. But since there
is some space left there, we can just pick a random one and move it later
on - it's
We will soon add SR PV support to the shared page, so we need some
infrastructure that allows the guest to query for features KVM exports.
This patch adds a second return value to the magic mapping that
indicated to the guest which features are available.
Signed-off-by: Alexander Graf
---
arch/
We had an arbitrary limitation in mtmsrd L=1 that kept us from using r30 and
r31 as input registers. Let's get rid of that and get more potential speedups!
Signed-off-by: Alexander Graf
---
arch/powerpc/kernel/kvm.c | 21 +
arch/powerpc/kernel/kvm_emul.S |8 +++
So far we've been restricting ourselves to r0-r29 as registers an mtmsr
instruction could use. This was bad, as there are some code paths in
Linux actually using r30.
So let's instead handle all registers gracefully and get rid of that
stupid limitation
Signed-off-by: Alexander Graf
---
arch/po
It turns out the in-kernel hash function is sub-optimal for our subtle
hash inputs where every bit is significant. So let's revert to the original
hash functions.
This reverts commit 05340ab4f9a6626f7a2e8f9fe5397c61d494f445.
Signed-off-by: Alexander Graf
---
arch/powerpc/kvm/book3s_32_mmu_host.
On Book3S a mtmsr with the MSR_POW bit set indicates that the OS is in
idle and only needs to be waked up on the next interrupt.
Now, unfortunately we let that bit slip into the stored MSR value which
is not what the real CPU does, so that we ended up executing code like
this:
r = mfmsr()
This adds some documentation for the KVM_INTERRUPT special cases that
PowerPC now implements.
Signed-off-by: Alexander Graf
---
Documentation/kvm/api.txt | 33 +++--
1 files changed, 31 insertions(+), 2 deletions(-)
diff --git a/Documentation/kvm/api.txt b/Document
From: Hollis Blanchard
Developers can now tell at a glace the exact type of the premature interrupt,
instead of just knowing that there was some premature interrupt.
Signed-off-by: Hollis Blanchard
Signed-off-by: Alexander Graf
---
arch/powerpc/kvm/booke.c |8 ++--
1 files changed, 6
The define VSID_ALL is unused. Let's remove it.
Signed-off-by: Alexander Graf
---
arch/powerpc/kvm/book3s_64_mmu_host.c |1 -
1 files changed, 0 insertions(+), 1 deletions(-)
diff --git a/arch/powerpc/kvm/book3s_64_mmu_host.c
b/arch/powerpc/kvm/book3s_64_mmu_host.c
index e7c4d00..4040c8d 1
When CONFIG_KVM_GUEST is selected, but CONFIG_KVM is not, we were missing
some defines in asm-offsets.c and included too many headers at other places.
This patch makes above configuration work.
Reported-by: Stephen Rothwell
Signed-off-by: Alexander Graf
---
arch/powerpc/kernel/asm-offsets.c |
The current interrupt logic is just completely broken. We get a notification
from user space, telling us that an interrupt is there. But then user space
expects us that we just acknowledge an interrupt once we deliver it to the
guest.
This is not how real hardware works though. On real hardware, t
Now that we have all the level interrupt magic in place, let's
expose the capability to user space, so it can make use of it!
Signed-off-by: Alexander Graf
---
arch/powerpc/kvm/powerpc.c |1 +
include/linux/kvm.h|1 +
2 files changed, 2 insertions(+), 0 deletions(-)
diff --git a
This documents how to detect additional features inside the magic
page when a guest maps it.
Signed-off-by: Alexander Graf
---
Documentation/kvm/ppc-pv.txt | 14 ++
1 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/Documentation/kvm/ppc-pv.txt b/Documentation/kvm/ppc-
From: Kyle Moffett
The kvmppc_e500_stlbe_invalidate() function was trying to pass too many
parameters to trace_kvm_stlb_inval(). This appears to be a bad
copy-paste from a call to trace_kvm_stlb_write().
Signed-off-by: Kyle Moffett
Signed-off-by: Alexander Graf
---
arch/powerpc/kvm/e500_tlb.
The e500_tlb.c file didn't compile for me due to the following error:
arch/powerpc/kvm/e500_tlb.c: In function ‘kvmppc_e500_shadow_map’:
arch/powerpc/kvm/e500_tlb.c:300: error: format ‘%lx’ expects type ‘long
unsigned int’, but argument 2 has type ‘gfn_t’
So let's explicitly cast the argument to
Before I incorrectly enabled napping also for BookE, which would result in
needless dcache flushes. Since we only need to force enable napping on
Book3s_64 because it doesn't go into MSR_POW otherwise, we can just #ifdef
that code to this particular platform.
Reported-by: Scott Wood
Signed-off-by
We have a debug printk on every exit that is usually #ifdef'ed out. Using
tracepoints makes a lot more sense here though, as they can be dynamically
enabled.
This patch converts the most commonly used debug printks of EXIT_DEBUG to
tracepoints.
Signed-off-by: Alexander Graf
---
arch/powerpc/kvm
There is a race condition in the pte invalidation code path where we can't
be sure if a pte was invalidated already. So let's move the spin lock around
to get rid of the race.
Signed-off-by: Alexander Graf
---
arch/powerpc/kvm/book3s_mmu_hpte.c | 14 --
1 files changed, 8 insertion
This patch moves the generic mmu map debugging over to tracepoints.
Signed-off-by: Alexander Graf
---
arch/powerpc/kvm/book3s_mmu_hpte.c |3 +++
arch/powerpc/kvm/trace.h | 29 +
2 files changed, 32 insertions(+), 0 deletions(-)
diff --git a/arch/power
When the guest jumps into kernel mode and has the magic page mapped, theres a
very high chance that it will also use it. So let's detect that scenario and
map the segment accordingly.
Signed-off-by: Alexander Graf
---
arch/powerpc/kvm/book3s.c | 10 ++
1 files changed, 10 insertions(+)
Up until now we were doing segment mappings wrong on Book3s_32. For Book3s_64
we were using a trick where we know that a single mmu_context gives us 16 bits
of context ids.
The mm system on Book3s_32 instead uses a clever algorithm to distribute VSIDs
across the available range, so a context id re
This patch moves the SPTE flush debug printk over to tracepoints.
Signed-off-by: Alexander Graf
---
arch/powerpc/kvm/book3s_mmu_hpte.c |3 +--
arch/powerpc/kvm/trace.h | 29 +
2 files changed, 30 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc
Now that the actual mtsr doesn't do anything anymore, we can move the sr
contents over to the shared page, so a guest can directly read and write
its sr contents from guest context.
Signed-off-by: Alexander Graf
---
arch/powerpc/include/asm/kvm_book3s.h |1 -
arch/powerpc/include/asm/kvm_par
From: Hollis Blanchard
Match only the first part of cur_cpu_spec->platform.
440GP (the first 440 processor) is identified by the string "ppc440gp", while
all later 440 processors use simply "ppc440".
Signed-off-by: Hollis Blanchard
Signed-off-by: Alexander Graf
---
arch/powerpc/kvm/44x.c |
Right now we're examining the contents of Book3s_32's segment registers when
the register is written and put the interpreted contents into a struct.
There are two reasons this is bad. For starters, the struct has worse real-time
performance, as it occupies more ram. But the more important part is
From: Hollis Blanchard
Missing local variable.
Signed-off-by: Hollis Blanchard
Signed-off-by: Alexander Graf
---
arch/powerpc/kvm/44x_tlb.c |1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/arch/powerpc/kvm/44x_tlb.c b/arch/powerpc/kvm/44x_tlb.c
index 9f71b8d..5f3cff8 1
There are some heuristics in the PPC power management code that try to find
out if the particular hardware we're running on supports proper power management
or just hangs the machine when going into nap mode.
Since we know that KVM is safe with nap, let's force enable it in the PV code
once we're
This is the guest side of the mtsr acceleration. Using this a guest can now
call mtsrin with almost no overhead as long as it ensures that it only uses
it with (MSR_IR|MSR_DR) == 0. Linux does that, so we're good.
Signed-off-by: Alexander Graf
---
Documentation/kvm/ppc-pv.txt |3 ++
arc
When having a decrementor interrupt pending, the dequeuing happens manually
through an mtdec instruction. This instruction simply calls dequeue on that
interrupt, so the int_pending hint doesn't get updated.
This patch enables updating the int_pending hint also on dequeue, thus
correctly enabling
This patch moves debugging printks for shadow SLB debugging over to tracepoints.
Signed-off-by: Alexander Graf
---
arch/powerpc/kvm/book3s_64_mmu_host.c | 22 ++
arch/powerpc/kvm/trace.h | 73 +
2 files changed, 78 insertions(+), 17 deleti
The current approach duplicates the spr->bat finding logic and makes it harder
to reuse the actually used variables. So let's move everything down to the spr
handler.
Signed-off-by: Alexander Graf
---
arch/powerpc/kvm/book3s_emulate.c | 48
1 files changed,
The different ways of flusing shadow ptes have their own debug prints which use
stupid old printk.
Let's move them to tracepoints, making them easier available, faster and
possible to activate on demand
Signed-off-by: Alexander Graf
---
arch/powerpc/kvm/book3s_mmu_hpte.c | 18 +++-
This patch moves Book3s MMU debugging over to tracepoints.
Signed-off-by: Alexander Graf
---
arch/powerpc/kvm/book3s_64_mmu_host.c | 13 +--
arch/powerpc/kvm/trace.h | 34 +
2 files changed, 36 insertions(+), 11 deletions(-)
diff --git a/
Howdy,
This is my local patch queue with stuff that has accumulated over the last
weeks on KVM for PPC with some last minute fixes, speedups and debugging help
that I needed for the KVM Forum ;-).
The highlights of this set are:
- Converted most important debug points to tracepoints
- Flush
When hitting a no-execute or read-only data/inst storage interrupt we were
flushing the respective PTE so we're sure it gets properly overwritten next.
According to the spec, this is unnecessary though. The guest issues a tlbie
anyways, so we're safe to just keep the PTE around and have it manuall
After a flush the sid map contained lots of entries with 0 for their gvsid and
hvsid value. Unfortunately, 0 can be a real value the guest searches for when
looking up a vsid so it would incorrectly find the host's 0 hvsid mapping which
doesn't belong to our sid space.
So let's also check for the
Commit 0016a4cf introduced a lot of mtmsrd's that were plainly written out.
These failed to compile on my e500v2 system, so let's better use the macro
that is around just for that purpose.
Signed-off-by: Alexander Graf
---
arch/powerpc/lib/ldstfp.S | 32
1 file
While trying to compile a recent git kernel on my e500v2 box, I came
across some pretty simple compilation bugs.
Since I have no idea which tree those go through, I'm sending them to
you, but please coordinate who takes them in.
Also, it might be useful to set up a make defconfig machine that doe
Commit a52c8f52 introduced machine check magic for the RapidIO chip.
Unfortunately it was so magical that it used constants that aren't even
defined!
This patch bluntly comments out the broken constant's usage. This
probably means that said functionality thus doesn't work, but at
least it makes it
Commit 99d8238f berobbed the for_each loop of its iterator! Let's be
nice and give it back, so it compiles for us.
CC: Anton Vorontsov
Signed-off-by: Alexander Graf
---
arch/powerpc/platforms/85xx/mpc85xx_mds.c |1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/arch/powerp
On 30.08.2010, at 17:38, Kyle Moffett wrote:
> The kvmppc_e500_stlbe_invalidate() function was trying to pass too many
> parameters to trace_kvm_stlb_inval(). This appears to be a bad
> copy-paste from a call to trace_kvm_stlb_write().
>
> Signed-off-by: Kyle Moffett
Thanks, applied.
Alex
_
On 22.08.2010, at 18:42, Avi Kivity wrote:
> On 08/17/2010 04:57 PM, Alexander Graf wrote:
>> We will soon add SR PV support to the shared page, so we need some
>> infrastructure that allows the guest to query for features KVM exports.
>>
>> This patch adds a second return value to the magic map
Julia Lawall wrote:
> Add a call to of_node_put in the error handling code following a call to
> of_find_compatible_node.
Acked-by: Timur Tabi
Thanks, Julia. Your work in finding these kinds of bugs is very much
appreciated.
___
Linuxppc-dev mailing
On Mon, Aug 30, 2010 at 10:38 AM, David Brownell wrote:
> Since I don't do OpenFirmware, let's hear from
> Grant on this one.
Looks good to me.
Acked-by: Grant Likely
>
>
> ___
> Linuxppc-dev mailing list
> Linuxppc-dev@lists.ozlabs.org
> https://lis
On Mon, Aug 30, 2010 at 10:04 AM, Esben Haabendal
wrote:
> On Mon, Aug 30, 2010 at 3:29 PM, Anton Vorontsov
> wrote:
>>> @@ -121,8 +136,14 @@ struct mmc_spi_platform_data
>>> *mmc_spi_get_pdata(struct spi_device *spi)
>>> if (gpio_is_valid(oms->gpios[WP_GPIO]))
>>> oms->p
It's common sense that when we should do change to driver ring
desc/buffer etc only after 'stop/shutdown' the device. When we
do change while devices/driver is running, kernel oops occur:
[
r...@fsl_8569mds:/root> ethtool -G eth0 tx 256
r...@fsl_8569mds:/root> Oops: Kernel access of bad area, sig:
Since I don't do OpenFirmware, let's hear from
Grant on this one.
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev
> of_mmc_spi: add card detect irq support
>
> Signed-off-by: Esben Haabendal
Acked-by: Anton Vorontsov
Thanks!
> ---
> .../powerpc/dts-bindings/mmc-spi-slot.txt |9 ++-
> drivers/mmc/host/of_mmc_spi.c | 26 ++-
> 2 files changed, 32 ins
Hi
Comments below, and updated patch attached.
On Mon, Aug 30, 2010 at 3:29 PM, Anton Vorontsov wrote:
>>> +static int of_mmc_spi_init(struct device *dev,
>> + irqreturn_t (*irqhandler)(int, void *), void *mmc)
>> +{
>> + struct of_mmc_spi *oms = to_of_mmc_spi(dev)
The kvmppc_e500_stlbe_invalidate() function was trying to pass too many
parameters to trace_kvm_stlb_inval(). This appears to be a bad
copy-paste from a call to trace_kvm_stlb_write().
Signed-off-by: Kyle Moffett
---
Alex,
This is the rebased patch to re-enable the tracepoint.
I also pushed a
Hello,
The patch looks mostly good. A few cosmetic issues down below.
On Mon, Aug 30, 2010 at 02:04:59PM +0200, Esben Haabendal wrote:
Please add some change log, a couple of sentences would work.
> Signed-off-by: Esben Haabendal
> ---
> drivers/mmc/host/of_mmc_spi.c | 25 +
Signed-off-by: Esben Haabendal
---
drivers/mmc/host/of_mmc_spi.c | 25 +++--
1 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/drivers/mmc/host/of_mmc_spi.c b/drivers/mmc/host/of_mmc_spi.c
index 1247e5d..e872b61 100644
--- a/drivers/mmc/host/of_mmc_spi.c
+++ b/
deebul nair wrote:
> Hi all
>
> I am trying to use the external interrupts on the Powerpc architecture
> MPC8542 .
>
> My problem is that my driver is trying to request the external
> interrupt IRQ1, and I dont know what number use in INTR_NUM:
>
> request_irq(INTR_NUM, , , , )
>
> As per the
On 08/30/2010 01:01 PM, Alexander Graf wrote:
When CONFIG_KVM_GUEST is selected, but CONFIG_KVM is not, we were missing
some defines in asm-offsets.c and included too many headers at other places.
This patch makes above configuration work.
Applied, thanks.
--
error compiling committee.c: too
When CONFIG_KVM_GUEST is selected, but CONFIG_KVM is not, we were missing
some defines in asm-offsets.c and included too many headers at other places.
This patch makes above configuration work.
Reported-by: Stephen Rothwell
Signed-off-by: Alexander Graf
---
arch/powerpc/kernel/asm-offsets.c |
On Monday 30 August 2010 12:19 PM, Michael Neuling wrote:
In message<4c7b4c1f.7010...@linux.vnet.ibm.com> you wrote:
On Friday 27 August 2010 07:31 AM, Stephen Rothwell wrote:
Hi Mikey,
On Fri, 27 Aug 2010 11:15:46 +1000 Michael Neuling wrot
e:
64 matches
Mail list logo