Hi,
Thanks for your responsiveness. Unfortunately, I have not any output when I
apply your patch. With more traces, I can see that only PSCI for CPU
suspend is
used. I'm continuing my research to find out more about this kernel panic.
Do you have any new suggestions or hypotheses ?
Thanks in advance,
Le mercredi 22 novembre 2023 à 16:34:10 UTC+1, Ralf Ramsauer a écrit :
> Hi,
>
> On 22/11/2023 16:14, Laurent Corbin wrote:
> > Hi all,
> >
> > I'm trying to run jailhouse on LX2160ardb (NXP board). To do that,
> > 1. I wrote a cell file for my root cell.
> > 2. I built a Linux 6.1 and a jailhouse (branch lf-6.1.36_2.1.0 from nxp
> > mirror) with yocto.
> > 3. I loaded the jailhouse driver as a kernel module.
> >
> > But when I try to "enable" jailhouse I get this error :
>
> okay, I think i have seen a similar error before. Would you please try
> to apply this patch, and see if there is some output on the console:
>
> diff --git a/hypervisor/arch/arm-common/smccc.c
> b/hypervisor/arch/arm-common/smccc.c
> index 65639b59..afa26e53 100644
> --- a/hypervisor/arch/arm-common/smccc.c
> +++ b/hypervisor/arch/arm-common/smccc.c
> @@ -83,6 +83,7 @@ static inline long handle_arch_features(u32 id)
> return this_cpu_data()->smccc_feat_workaround_2;
>
> default:
> + printk("Unknown SMCCC!\n");
> return ARM_SMCCC_NOT_SUPPORTED;
> }
> }
> @@ -129,6 +130,7 @@ enum trap_return handle_smc(struct trap_context *ctx)
> case ARM_SMCCC_OWNER_SIP:
> stats[JAILHOUSE_CPU_STAT_VMEXITS_SMCCC]++;
> regs[0] = ARM_SMCCC_NOT_SUPPORTED;
> + printk("Unknown SMCCC (SIP)!\n");
> break;
>
> case ARM_SMCCC_OWNER_STANDARD:
>
>
> If you get an output here, then we need to probably forward those calls.
> Please get back to me in that case.
>
> Thanks
> Ralf
>
> >
> >
> >
> > root@lx2160ardb-rev2:~# insmod jailhouse.ko
> > root@lx2160ardb-rev2:~#
> > root@lx2160ardb-rev2:~#
> > root@lx2160ardb-rev2:~#
> > root@lx2160ardb-rev2:~# cat /sys/module/jailhouse/sections/.text
> > 0xffffc45e1113e000
> > root@lx2160ardb-rev2:~# jailhouse enable lx2160a-rdb.cell
> >
> > Initializing Jailhouse hypervisor v0.12 (369-g6a87b739) on CPU 0
> > Code location: 0x0000ffffc0200800
> > Page pool usage after early setup: mem 151/993, remap 0/131072
> > Initializing processors:
> > CPU 0... OK
> > CPU 1... OK
> > CPU 5... OK
> > CPU 4... OK
> > CPU 2... OK
> > CPU 3... OK
> > CPU 9... OK
> > CPU 8... OK
> > CPU 15... OK
> > CPU 13... OK
> > CPU 12... OK
> > CPU 7... OK
> > CPU 10... OK
> > CPU 11... OK
> > CPU 6... OK
> > CPU 14... OK
> > Initializing unit: irqchip
> > Initializing unit: ARM SMMU v3
> > Initializing unit: ARM SMMU
> > ARM MMU500 at 0x5000000 with:
> > stream matching with 128 SMR groups
> > 64 context banks (0 stage-2 only)
> > Initializing unit: PVU IOMMU
> > Initializing unit: PCI
> > Adding virtual PCI device 00:00.0 to cell "lx2160a"
> > Adding virtual PCI device 00:01.0 to cell "lx2160a"
> > Page pool usage after late setup: mem 228/993, remap 2576/131072
> > Activating hypervisor
> > [ 173.577969] SError Interrupt on CPU0, code 0x00000000bf000000 --
> SError
> > [ 173.577985] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G O
> > 6.1.22+g66e442bc7fdc #1
> > [ 173.577993] Hardware name: NXP Layerscape LX2160ARDB (DT)
> > [ 173.577996] pstate: 200000c5 (nzCv daIF -PAN -UAO -TCO -DIT -SSBS
> > BTYPE=--)
> > [ 173.578002] pc : enter_hypervisor+0x44/0xa4 [jailhouse]
> > [ 173.578025] lr : enter_hypervisor+0x44/0xa4 [jailhouse]
> > [ 173.578040] sp : ffff800008003f10
> > [ 173.578042] x29: ffff800008003f10 x28: ffffc45e51736c40 x27:
> > 00000000fbd0ea70
> > [ 173.578052] x26: 0000000000000001 x25: 00000028652e0c1e x24:
> > 00000028652b7617
> > [ 173.578060] x23: 0000000000000000 x22: 0000000000000000 x21:
> > 0000000000000000
> > [ 173.578067] x20: 0000000000000000 x19: ffffc45e11144000 x18:
> > 0000000000000000
> > [ 173.578074] x17: 0000000000000000 x16: 0000000000000000 x15:
> > 0000000000000000
> > [ 173.578080] x14: 0000000000000000 x13: 0000000000000000 x12:
> > 0000000000000000
> > [ 173.578086] x11: 0000000000000000 x10: 0000000000000000 x9 :
> > 0000000000000000
> > [ 173.578092] x8 : 0000000000000000 x7 : 0000000000000000 x6 :
> > 0000000000000000
> > [ 173.578098] x5 : 0000000000000000 x4 : 0000000000000000 x3 :
> > 0000000000000000
> > [ 173.578104] x2 : 0000000000000000 x1 : 0000000000000000 x0 :
> > 0000000000000000
> > [ 173.578111] Kernel panic - not syncing: Asynchronous SError Interrupt
> > [ 173.578115] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G O
> > 6.1.22+g66e442bc7fdc #1
> > [ 173.578120] Hardware name: NXP Layerscape LX2160ARDB (DT)
> > [ 173.578122] Call trace:
> > [ 173.578124] dump_backtrace.part.0+0xe0/0xf0
> > [ 173.578140] show_stack+0x18/0x30
> > [ 173.578148] dump_stack_lvl+0x64/0x80
> > [ 173.578158] dump_stack+0x18/0x34
> > [ 173.578166] panic+0x188/0x340
> > [ 173.578173] nmi_panic+0xac/0xb0
> > [ 173.578179] arm64_serror_panic+0x6c/0x7c
> > [ 173.578184] do_serror+0x58/0x5c
> > [ 173.578188] el1h_64_error_handler+0x30/0x4c
> > [ 173.578193] el1h_64_error+0x64/0x68
> > [ 173.578198] enter_hypervisor+0x44/0xa4 [jailhouse]
> > [ 173.578213] __flush_smp_call_function_queue+0xd0/0x250
> > [ 173.578223] generic_smp_call_function_single_interrupt+0x14/0x20
> > [ 173.578232] ipi_handler+0x98/0x160
> > [ 173.578239] handle_percpu_devid_irq+0x84/0x130
> > [ 173.578245] generic_handle_domain_irq+0x2c/0x4c
> > [ 173.578251] gic_handle_irq+0x50/0x130
> > [ 173.578258] call_on_irq_stack+0x2c/0x5c
> > [ 173.578263] do_interrupt_handler+0x80/0x84
> > [ 173.578270] el1_interrupt+0x34/0x6c
> > [ 173.578278] el1h_64_irq_handler+0x18/0x2c
> > [ 173.578283] el1h_64_irq+0x64/0x68
> > [ 173.578287] cpuidle_enter_state+0x130/0x2fc
> > [ 173.578296] cpuidle_enter+0x38/0x50
> > [ 173.578302] do_idle+0x22c/0x2c0
> > [ 173.578308] cpu_startup_entry+0x28/0x30
> > [ 173.578313] kernel_init+0x0/0x12c
> > [ 173.578319] arch_post_acpi_subsys_init+0x0/0x18
> > [ 173.578326] start_kernel+0x668/0x6a8
> > [ 173.578331] __primary_switched+0xbc/0xc4
> > [ 173.578337] SMP: stopping secondary CPUs
> > [ 173.578370] Kernel Offset: 0x445e47000000 from 0xffff800008000000
> > [ 173.578373] PHYS_OFFSET: 0xffffd3bc00000000
> > [ 173.578376] CPU features: 0x20000,2012c084,0000421b
> > [ 173.578380] Memory Limit: none
> > [ 173.853682] ---[ end Kernel panic - not syncing: Asynchronous SError
> > Interrupt ]---
> >
> >
> > It seems that my Linux panic when it has to jump from the hypervisor to
> the
> > driver (in arch_cpu_activate_vmm function in
> > hypervisor/arch/arm64/setup.c file).
> >
> > Do you have any idea why my Linux panic ?
> >
> > Thanks in advance,
> >
> > --
> > You received this message because you are subscribed to the Google
> > Groups "Jailhouse" group.
> > To unsubscribe from this group and stop receiving emails from it, send
> > an email to [email protected]
> > <mailto:[email protected]>.
> > To view this discussion on the web visit
> >
> https://groups.google.com/d/msgid/jailhouse-dev/18173bdd-0873-4774-a664-ba03be4bd7a3n%40googlegroups.com
>
> <
> https://groups.google.com/d/msgid/jailhouse-dev/18173bdd-0873-4774-a664-ba03be4bd7a3n%40googlegroups.com?utm_medium=email&utm_source=footer
> >.
>
--
You received this message because you are subscribed to the Google Groups
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/jailhouse-dev/ce75d57a-5bf7-44b7-95ae-2a494d6a9132n%40googlegroups.com.