Kernel 4.6

AmigaOne X1000 platform specific issues related to Linux only.

Kernel 4.6

Postby xeno74 » Tue Mar 15, 2016 11:55 am

Hi,

Linus has already pulled the latest set of patches from some branches for the kernel 4.6, so I released the alpha1 for testing today.

Download: vmlinux-4.6-alpha1-AmigaONE_X1000.tar.gz

Regards,
Christian
http://www.amigalinux.org
http://www.supertuxkart-amiga.de

Running Linux on AmigaONEs can require some tinkering.
User avatar
xeno74
 
Posts: 3777
Joined: Fri Mar 23, 2012 8:58 am

Re: Kernel 4.6

Postby xeno74 » Tue Mar 15, 2016 12:18 pm

http://www.amigalinux.org
http://www.supertuxkart-amiga.de

Running Linux on AmigaONEs can require some tinkering.
User avatar
xeno74
 
Posts: 3777
Joined: Fri Mar 23, 2012 8:58 am

Re: Kernel 4.6

Postby xeno74 » Wed Mar 16, 2016 6:00 pm

Linus Torvalds added some new source code for the kernel 4.6 to the Linux Git last night.

New: Linux Git log

I created the alpha2 from the latest Git source code today.

Download: vmlinux-4.6-alpha2-AmigaONE_X1000.tar.gz

Would you mind testing it? For me it would be interesting, if the P.A. Semi Ethernet works.

Image
http://www.amigalinux.org
http://www.supertuxkart-amiga.de

Running Linux on AmigaONEs can require some tinkering.
User avatar
xeno74
 
Posts: 3777
Joined: Fri Mar 23, 2012 8:58 am

Re: Kernel 4.6

Postby xeno74 » Thu Mar 17, 2016 8:55 am

FYI: The old Nemo patch 4.5-9 doesn't work anymore. You need the new Nemo patch 4.6-1 instead.

Download: nemo_4.6-1.patch
http://www.amigalinux.org
http://www.supertuxkart-amiga.de

Running Linux on AmigaONEs can require some tinkering.
User avatar
xeno74
 
Posts: 3777
Joined: Fri Mar 23, 2012 8:58 am

Re: Kernel 4.6

Postby zzd10h » Thu Mar 17, 2016 9:37 am

Works fine here :

Image
http://apps.amistore.net/zTools
X1000 - AmigaOS 4.1.6 / 4.1 FE
zzd10h
 
Posts: 546
Joined: Sun Sep 16, 2012 6:40 am
Location: France

Re: Kernel 4.6

Postby xeno74 » Thu Mar 17, 2016 10:39 am

zzd10h wrote:Works fine here :

Image


Thank you for testing.

I'm compiling the alpha3 but there is a problem with compiling the kvm-pr kernel module.

Code: Select all
Building modules, stage 2.
  MODPOST 29 modules
ERROR: ".kvmppc_h_put_tce" [arch/powerpc/kvm/kvm-pr.ko] undefined!
ERROR: ".kvmppc_h_stuff_tce" [arch/powerpc/kvm/kvm-pr.ko] undefined!
make[1]: *** [__modpost] Fehler 1
make: *** [modules] Fehler 2
http://www.amigalinux.org
http://www.supertuxkart-amiga.de

Running Linux on AmigaONEs can require some tinkering.
User avatar
xeno74
 
Posts: 3777
Joined: Fri Mar 23, 2012 8:58 am

Re: Kernel 4.6

Postby xeno74 » Thu Mar 17, 2016 11:46 am

Yesterday, I tested the alpha2. I was able to compile the kvm-pr kernel module yesterday. After that I successfully tested it with Mac-on-Linux and Mac OS X Tiger yesterday.

I think the problem is in the latest KVM updates. Link: Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm

I wrote an email to the kvm-ppc mailing list today.
http://www.amigalinux.org
http://www.supertuxkart-amiga.de

Running Linux on AmigaONEs can require some tinkering.
User avatar
xeno74
 
Posts: 3777
Joined: Fri Mar 23, 2012 8:58 am

Re: Kernel 4.6

Postby xeno74 » Thu Mar 17, 2016 6:25 pm

http://www.amigalinux.org
http://www.supertuxkart-amiga.de

Running Linux on AmigaONEs can require some tinkering.
User avatar
xeno74
 
Posts: 3777
Joined: Fri Mar 23, 2012 8:58 am

Re: Kernel 4.6

Postby xeno74 » Thu Mar 17, 2016 7:21 pm

Hi All,

I released the alpha3 without the kvm-pr kernel module today.

New:


Download: vmlinux-4.6-alpha3-AmigaONE_X1000.tar.gz

I wasn't able to compile the kvm-pr kernel module because there is something wrong in the source code. I think the problem is in the latest KVM updates.

Link: Merge tag for-linus of git://git.kernel.org/pub/scm/virt/kvm/kvm.

The kvm-pr kernel module from the alpha2 works without any problems. I tested it with Mac-on-Linux and Mac OS X Tiger yesterday.

I informed the developers about this problem via two mailing lists, today.

Links:

List kvm-ppc
List kvm-general

Image

Cheers,

Christian
http://www.amigalinux.org
http://www.supertuxkart-amiga.de

Running Linux on AmigaONEs can require some tinkering.
User avatar
xeno74
 
Posts: 3777
Joined: Fri Mar 23, 2012 8:58 am

Re: Kernel 4.6

Postby xeno74 » Fri Mar 18, 2016 8:01 am

I have some good news because of the kvm-pr issue. :-)

Paolo Bonzini wrote:Paul and Alexey, can you take a look? I guess I can figure it out, but
let's use the timezone difference to our advantage for once. :-)

Paolo


Alexey Kardashevskiy wrote:The missing handlers are only compiled when HV KVM is enabled, I made this change in the very last respin of my patchset after a comment that having duplicated code is bad and this happened right before it was pulled to Paul's tree. My bad, apologies... I'll post a fix soon.


--
Alexey


Alexey Kardashevskiy wrote:Upcoming in-kernel VFIO acceleration needs different handling in real and virtual modes which makes it hard to support both modes in the same handler.

This creates a copy of kvmppc_rm_h_stuff_tce and kvmppc_rm_h_put_tce in addition to the existing kvmppc_rm_h_put_tce_indirect.

This also fixes linker breakage when only PR KVM was selected (leaving HV KVM off): the kvmppc_h_put_tce/kvmppc_h_stuff_tce functions would not compile at all and the linked would fail.

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
---
Code: Select all
 arch/powerpc/kvm/book3s_64_vio.c        | 52 +++++++++++++++++++++++++++++++++
 arch/powerpc/kvm/book3s_64_vio_hv.c     |  8 ++---
 arch/powerpc/kvm/book3s_hv_rmhandlers.S |  4 +--
 3 files changed, 57 insertions(+), 7 deletions(-)

diff --git a/arch/powerpc/kvm/book3s_64_vio.c b/arch/powerpc/kvm/book3s_64_vio.c
index 2c2d103..75469f6 100644
--- a/arch/powerpc/kvm/book3s_64_vio.c
+++ b/arch/powerpc/kvm/book3s_64_vio.c
@@ -209,6 +209,32 @@ fail:
    return ret;
 }
 
+long kvmppc_h_put_tce(struct kvm_vcpu *vcpu, unsigned long liobn,
+            unsigned long ioba, unsigned long tce)
+{
+   struct kvmppc_spapr_tce_table *stt = kvmppc_find_table(vcpu, liobn);
+   long ret;
+
+   /* udbg_printf("H_PUT_TCE(): liobn=0x%lx ioba=0x%lx, tce=0x%lx\n", */
+   /*        liobn, ioba, tce); */
+
+   if (!stt)
+      return H_TOO_HARD;
+
+   ret = kvmppc_ioba_validate(stt, ioba, 1);
+   if (ret != H_SUCCESS)
+      return ret;
+
+   ret = kvmppc_tce_validate(stt, tce);
+   if (ret != H_SUCCESS)
+      return ret;
+
+   kvmppc_tce_put(stt, ioba >> stt->page_shift, tce);
+
+   return H_SUCCESS;
+}
+EXPORT_SYMBOL_GPL(kvmppc_h_put_tce);
+
 long kvmppc_h_put_tce_indirect(struct kvm_vcpu *vcpu,
       unsigned long liobn, unsigned long ioba,
       unsigned long tce_list, unsigned long npages)
@@ -264,3 +290,29 @@ unlock_exit:
    return ret;
 }
 EXPORT_SYMBOL_GPL(kvmppc_h_put_tce_indirect);
+
+long kvmppc_h_stuff_tce(struct kvm_vcpu *vcpu,
+      unsigned long liobn, unsigned long ioba,
+      unsigned long tce_value, unsigned long npages)
+{
+   struct kvmppc_spapr_tce_table *stt;
+   long i, ret;
+
+   stt = kvmppc_find_table(vcpu, liobn);
+   if (!stt)
+      return H_TOO_HARD;
+
+   ret = kvmppc_ioba_validate(stt, ioba, npages);
+   if (ret != H_SUCCESS)
+      return ret;
+
+   /* Check permission bits only to allow userspace poison TCE for debug */
+   if (tce_value & (TCE_PCI_WRITE | TCE_PCI_READ))
+      return H_PARAMETER;
+
+   for (i = 0; i < npages; ++i, ioba += (1ULL << stt->page_shift))
+      kvmppc_tce_put(stt, ioba >> stt->page_shift, tce_value);
+
+   return H_SUCCESS;
+}
+EXPORT_SYMBOL_GPL(kvmppc_h_stuff_tce);
diff --git a/arch/powerpc/kvm/book3s_64_vio_hv.c b/arch/powerpc/kvm/book3s_64_vio_hv.c
index 44be73e..18f0227 100644
--- a/arch/powerpc/kvm/book3s_64_vio_hv.c
+++ b/arch/powerpc/kvm/book3s_64_vio_hv.c
@@ -180,8 +180,8 @@ long kvmppc_gpa_to_ua(struct kvm *kvm, unsigned long gpa,
 EXPORT_SYMBOL_GPL(kvmppc_gpa_to_ua);
 
 #ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
-long kvmppc_h_put_tce(struct kvm_vcpu *vcpu, unsigned long liobn,
-            unsigned long ioba, unsigned long tce)
+long kvmppc_rm_h_put_tce(struct kvm_vcpu *vcpu, unsigned long liobn,
+      unsigned long ioba, unsigned long tce)
 {
    struct kvmppc_spapr_tce_table *stt = kvmppc_find_table(vcpu, liobn);
    long ret;
@@ -204,7 +204,6 @@ long kvmppc_h_put_tce(struct kvm_vcpu *vcpu, unsigned long liobn,
 
    return H_SUCCESS;
 }
-EXPORT_SYMBOL_GPL(kvmppc_h_put_tce);
 
 static long kvmppc_rm_ua_to_hpa(struct kvm_vcpu *vcpu,
       unsigned long ua, unsigned long *phpa)
@@ -296,7 +295,7 @@ unlock_exit:
    return ret;
 }
 
-long kvmppc_h_stuff_tce(struct kvm_vcpu *vcpu,
+long kvmppc_rm_h_stuff_tce(struct kvm_vcpu *vcpu,
       unsigned long liobn, unsigned long ioba,
       unsigned long tce_value, unsigned long npages)
 {
@@ -320,7 +319,6 @@ long kvmppc_h_stuff_tce(struct kvm_vcpu *vcpu,
 
    return H_SUCCESS;
 }
-EXPORT_SYMBOL_GPL(kvmppc_h_stuff_tce);
 
 long kvmppc_h_get_tce(struct kvm_vcpu *vcpu, unsigned long liobn,
             unsigned long ioba)
diff --git a/arch/powerpc/kvm/book3s_hv_rmhandlers.S b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
index 85b32f1..81b0b51 100644
--- a/arch/powerpc/kvm/book3s_hv_rmhandlers.S
+++ b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
@@ -1942,7 +1942,7 @@ hcall_real_table:
    .long   DOTSYM(kvmppc_h_clear_ref) - hcall_real_table
    .long   DOTSYM(kvmppc_h_protect) - hcall_real_table
    .long   DOTSYM(kvmppc_h_get_tce) - hcall_real_table
-   .long   DOTSYM(kvmppc_h_put_tce) - hcall_real_table
+   .long   DOTSYM(kvmppc_rm_h_put_tce) - hcall_real_table
    .long   0      /* 0x24 - H_SET_SPRG0 */
    .long   DOTSYM(kvmppc_h_set_dabr) - hcall_real_table
    .long   0      /* 0x2c */
@@ -2020,7 +2020,7 @@ hcall_real_table:
    .long   0      /* 0x12c */
    .long   0      /* 0x130 */
    .long   DOTSYM(kvmppc_h_set_xdabr) - hcall_real_table
-   .long   DOTSYM(kvmppc_h_stuff_tce) - hcall_real_table
+   .long   DOTSYM(kvmppc_rm_h_stuff_tce) - hcall_real_table
    .long   DOTSYM(kvmppc_rm_h_put_tce_indirect) - hcall_real_table
    .long   0      /* 0x140 */
    .long   0      /* 0x144 */

--
2.5.0.rc3
http://www.amigalinux.org
http://www.supertuxkart-amiga.de

Running Linux on AmigaONEs can require some tinkering.
User avatar
xeno74
 
Posts: 3777
Joined: Fri Mar 23, 2012 8:58 am

Next

Return to Platform: AmigaOne X1000 - Linux Only

Who is online

Users browsing this forum: No registered users and 6 guests