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
Kernel 4.6
Kernel 4.6
http://www.amigalinux.org
http://www.supertuxkart-amiga.de
Running Linux on AmigaONEs can require some tinkering.
http://www.supertuxkart-amiga.de
Running Linux on AmigaONEs can require some tinkering.
Re: Kernel 4.6
http://www.amigalinux.org
http://www.supertuxkart-amiga.de
Running Linux on AmigaONEs can require some tinkering.
http://www.supertuxkart-amiga.de
Running Linux on AmigaONEs can require some tinkering.
Re: Kernel 4.6
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.

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.

http://www.amigalinux.org
http://www.supertuxkart-amiga.de
Running Linux on AmigaONEs can require some tinkering.
http://www.supertuxkart-amiga.de
Running Linux on AmigaONEs can require some tinkering.
Re: Kernel 4.6
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
Download: nemo_4.6-1.patch
http://www.amigalinux.org
http://www.supertuxkart-amiga.de
Running Linux on AmigaONEs can require some tinkering.
http://www.supertuxkart-amiga.de
Running Linux on AmigaONEs can require some tinkering.
Re: Kernel 4.6
Thank you for testing.zzd10h wrote:Works fine here :
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.
http://www.supertuxkart-amiga.de
Running Linux on AmigaONEs can require some tinkering.
Re: Kernel 4.6
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.
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.
http://www.supertuxkart-amiga.de
Running Linux on AmigaONEs can require some tinkering.
Re: Kernel 4.6
http://www.amigalinux.org
http://www.supertuxkart-amiga.de
Running Linux on AmigaONEs can require some tinkering.
http://www.supertuxkart-amiga.de
Running Linux on AmigaONEs can require some tinkering.
Re: Kernel 4.6
Hi All,
I released the alpha3 without the kvm-pr kernel module today.
New:
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

Cheers,
Christian
I released the alpha3 without the kvm-pr kernel module today.
New:
- Phoronix articles, reviews and news stories covering Linux 4.6
- Linux Git log
- New Nemo patch 4.6-1
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

Cheers,
Christian
http://www.amigalinux.org
http://www.supertuxkart-amiga.de
Running Linux on AmigaONEs can require some tinkering.
http://www.supertuxkart-amiga.de
Running Linux on AmigaONEs can require some tinkering.
Re: Kernel 4.6
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.
http://www.supertuxkart-amiga.de
Running Linux on AmigaONEs can require some tinkering.