diff mbox

powerpc/pseries: Add POWER8NVL support to ibm,client-architecture-support call

Message ID 1464673877-30659-1-git-send-email-thuth@redhat.com
State Accepted
Headers show

Commit Message

Thomas Huth May 31, 2016, 5:51 a.m. UTC
If we do not provide the PVR for POWER8NVL, a guest on this
system currently ends up in PowerISA 2.06 compatibility mode on
KVM, since QEMU does not provide a generic PowerISA 2.07 mode yet.
So some new instructions from POWER8 (like "mtvsrd") get disabled
for the guest, resulting in crashes when using code compiled
explicitly for POWER8 (e.g. with the "-mcpu=power8" option of GCC).

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 arch/powerpc/kernel/prom_init.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Michael Ellerman May 31, 2016, 10:04 a.m. UTC | #1
On Tue, 2016-05-31 at 07:51 +0200, Thomas Huth wrote:

> If we do not provide the PVR for POWER8NVL, a guest on this
> system currently ends up in PowerISA 2.06 compatibility mode on
> KVM, since QEMU does not provide a generic PowerISA 2.07 mode yet.
> So some new instructions from POWER8 (like "mtvsrd") get disabled
> for the guest, resulting in crashes when using code compiled
> explicitly for POWER8 (e.g. with the "-mcpu=power8" option of GCC).
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>

So this should say:

  Fixes: ddee09c099c3 ("powerpc: Add PVR for POWER8NVL processor")

And therefore:

  Cc: stable@vger.kernel.org # v4.0+


Am I right?

cheers


> diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c
> index da51925..ccd2037 100644
> --- a/arch/powerpc/kernel/prom_init.c
> +++ b/arch/powerpc/kernel/prom_init.c
> @@ -656,6 +656,7 @@ unsigned char ibm_architecture_vec[] = {
>  	W(0xffff0000), W(0x003e0000),	/* POWER6 */
>  	W(0xffff0000), W(0x003f0000),	/* POWER7 */
>  	W(0xffff0000), W(0x004b0000),	/* POWER8E */
> +	W(0xffff0000), W(0x004c0000),   /* POWER8NVL */
>  	W(0xffff0000), W(0x004d0000),	/* POWER8 */
>  	W(0xffffffff), W(0x0f000004),	/* all 2.07-compliant */
>  	W(0xffffffff), W(0x0f000003),	/* all 2.06-compliant */

--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Thomas Huth May 31, 2016, 10:19 a.m. UTC | #2
On 31.05.2016 12:04, Michael Ellerman wrote:
> On Tue, 2016-05-31 at 07:51 +0200, Thomas Huth wrote:
> 
>> If we do not provide the PVR for POWER8NVL, a guest on this
>> system currently ends up in PowerISA 2.06 compatibility mode on
>> KVM, since QEMU does not provide a generic PowerISA 2.07 mode yet.
>> So some new instructions from POWER8 (like "mtvsrd") get disabled
>> for the guest, resulting in crashes when using code compiled
>> explicitly for POWER8 (e.g. with the "-mcpu=power8" option of GCC).
>>
>> Signed-off-by: Thomas Huth <thuth@redhat.com>
> 
> So this should say:
> 
>   Fixes: ddee09c099c3 ("powerpc: Add PVR for POWER8NVL processor")
> 
> And therefore:
> 
>   Cc: stable@vger.kernel.org # v4.0+
> 
> Am I right?

Right. (At least for virtualized systems ... for bare-metal systems,
that original patch was enough). So shall I resubmit my patch with these
two lines, or could you add them when you pick this patch up?

 Thomas

--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Michael Ellerman May 31, 2016, 10:32 a.m. UTC | #3
On Tue, 2016-05-31 at 12:19 +0200, Thomas Huth wrote:
> On 31.05.2016 12:04, Michael Ellerman wrote:
> > On Tue, 2016-05-31 at 07:51 +0200, Thomas Huth wrote:
> > > If we do not provide the PVR for POWER8NVL, a guest on this
> > > system currently ends up in PowerISA 2.06 compatibility mode on
> > > KVM, since QEMU does not provide a generic PowerISA 2.07 mode yet.
> > > So some new instructions from POWER8 (like "mtvsrd") get disabled
> > > for the guest, resulting in crashes when using code compiled
> > > explicitly for POWER8 (e.g. with the "-mcpu=power8" option of GCC).
> > > 
> > > Signed-off-by: Thomas Huth <thuth@redhat.com>
> > 
> > So this should say:
> > 
> >   Fixes: ddee09c099c3 ("powerpc: Add PVR for POWER8NVL processor")
> > 
> > And therefore:
> > 
> >   Cc: stable@vger.kernel.org # v4.0+
> > 
> > Am I right?
> 
> Right. (At least for virtualized systems ... for bare-metal systems,
> that original patch was enough). So shall I resubmit my patch with these
> two lines, or could you add them when you pick this patch up?

Thanks, I'll add them here.

cheers

--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Michael Ellerman June 6, 2016, 12:17 a.m. UTC | #4
On Tue, 2016-31-05 at 05:51:17 UTC, Thomas Huth wrote:
> If we do not provide the PVR for POWER8NVL, a guest on this
> system currently ends up in PowerISA 2.06 compatibility mode on
> KVM, since QEMU does not provide a generic PowerISA 2.07 mode yet.
> So some new instructions from POWER8 (like "mtvsrd") get disabled
> for the guest, resulting in crashes when using code compiled
> explicitly for POWER8 (e.g. with the "-mcpu=power8" option of GCC).
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>

Applied to powerpc fixes, thanks.

https://git.kernel.org/powerpc/c/7cc851039d643a2ee7df4d1817

cheers
--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c
index da51925..ccd2037 100644
--- a/arch/powerpc/kernel/prom_init.c
+++ b/arch/powerpc/kernel/prom_init.c
@@ -656,6 +656,7 @@  unsigned char ibm_architecture_vec[] = {
 	W(0xffff0000), W(0x003e0000),	/* POWER6 */
 	W(0xffff0000), W(0x003f0000),	/* POWER7 */
 	W(0xffff0000), W(0x004b0000),	/* POWER8E */
+	W(0xffff0000), W(0x004c0000),   /* POWER8NVL */
 	W(0xffff0000), W(0x004d0000),	/* POWER8 */
 	W(0xffffffff), W(0x0f000004),	/* all 2.07-compliant */
 	W(0xffffffff), W(0x0f000003),	/* all 2.06-compliant */