Hi,

I just wanted to give a small update about the irqchip situation. I 
realised that I only needed to pass (1<<4) in the pin_bitmap to intercept 
the uart's interrupt as the first serial port has irq=4.

Thanks,
Michele
Il giorno domenica 14 gennaio 2024 alle 02:18:05 UTC+1 Michele Pescapè ha 
scritto:

> Hi,
>
> There were PIO writes to ports 4e,4f,2e and 2f, each of size 1 and each 
> one on subsequent restarts. I'm not sure how to figure out what they belong 
> to.
>
> CONFIG_ISA_DMA_API is already disabled.
>
> I missed the irqchip for the uart. However as of right now I just copied 
> the whole fragment from the root configuration which means I could be 
> taking away other interrupts from the root cell, I still have to figure out 
> how to tune that
>
> /* IOAPIC 13, GSI base 0 */
> {
> .address = 0xfec00000,
> .id = 0xa0,
> .pin_bitmap = {
> 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff
> },
> },
>
> Still, now I can finally login into the non root linux.
>
> Thanks,
> Michele
>
> Il giorno sabato 13 gennaio 2024 alle 21:09:28 UTC+1 Ralf Ramsauer ha 
> scritto:
>
>> Hi Michele, 
>>
>> On 13/01/2024 18:08, Michele Pescapè wrote: 
>> > Hi, 
>> > 
>> > The problem was that the ram regions in the non root configuration 
>> > weren't detected as such because of the missing JAILHOUSE_MEM_DMA flag. 
>>
>> Yikes, makes sense. 
>>
>> > After adding that, I also had to add two pio_regions because the non 
>> > root linux was crashing because of two ports which aren't present in 
>> > /proc/ioports. 
>>
>> Uhm - which PIO ports? Don't simply assign PIO ports. There must be a 
>> reason for them. What ports did crash? 
>>
>> Did you disable(!) CONFIG_ISA_DMA_API? Please disable it. Therefore, you 
>> have to activate CONFIG_EXPERT first. 
>>
>> I *bet* it was i8237… 
>>
>> > I also had to add mce=off to the command line because i had an 
>> unhandled 
>>
>> or disable CONFIG_X86_MCE. 
>>
>> > MSR error, I'll have to disable that in the kernel config. 
>> > At this point the non root linux seems to start, I see the boot log. No 
>>
>> Excellent! 
>>
>> > way of interacting with it as there is not a login prompt or anything, 
>> I 
>> > think I need to ssh to the cell at this point, right? 
>>
>> Was the initramdisk loaded correctly? 
>>
>> Did you assign - in your non-root cell config - the irqchip and the 
>> corresponding interrupts of the uart? 
>>
>> > That means I'll now need to work on those ivshmem net devices. 
>>
>> If you need ivshmem, then this would be the next step. 
>>
>> Ralf 
>>
>> > 
>> > Thanks, 
>> > Michele 
>> > 
>> > Il giorno sabato 13 gennaio 2024 alle 15:13:12 UTC+1 Ralf Ramsauer ha 
>> > scritto: 
>> > 
>> > Hi, 
>> > 
>> > On 13/01/2024 12:28, Michele Pescapè wrote: 
>> > > Hi, 
>> > > 
>> > > You are right, I got confused about those addresses, my bad. At 
>> > least 
>> > > now I know that config is the correct one and I don't have to tinker 
>> > > with it. 
>> > > I'm back to a kernel panic from the inmate when booting the cell. 
>> > It's 
>> > > similar to the one I had earlier, not sure yet of what the 
>> > problem may be. 
>> > 
>> > Great, we're a step further. 
>> > 
>> > > 
>> > > Created cell "linux-2" 
>> > > Page pool usage after cell creation: mem 406/32211, remap 
>> > 16392/131072 
>> > > Cell "linux-2" can be loaded 
>> > > CPU 9 received SIPI, vector 100 
>> > > Started cell "linux-2" 
>> > > CPU 8 received SIPI, vector 100 
>> > > No EFI environment detected. 
>> > > early console in extract_kernel 
>> > > input_data: 0x000000000275c308 
>> > > input_len: 0x00000000008b0981 
>> > > output: 0x0000000001000000 
>> > > output_len: 0x0000000001fccb30 
>> > > kernel_total_size: 0x0000000001e28000 
>> > > needed_size: 0x0000000002000000 
>> > > trampoline_32bit: 0x000000000009d000 
>> > > 
>> > > Decompressing Linux... Parsing ELF... done. 
>> > > Booting the kernel. 
>> > > [    0.000000] Linux version 6.2.0-rc3 (root@mp-LINUX-DESKTOP) 
>> > > (x86_64-buildroot       -linux-gnu-gcc.br_real (Buildroot 2023.11) 
>> > > 12.3.0, GNU ld (GNU Binutils) 2.40) #       2 SMP PREEMPT_DYNAMIC 
>> > Fri 
>> > > Jan 12 17:36:57 CET 2024 
>> > > [    0.000000] Command line: earlyprintk=ttyS0,115200 
>> > > [    0.000000] KERNEL supported cpus: 
>> > > [    0.000000]   Intel GenuineIntel 
>> > > [    0.000000]   AMD AuthenticAMD 
>> > > [    0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 
>> > floating 
>> > > point regi       sters' 
>> > > [    0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE 
>> > registers' 
>> > > [    0.000000] x86/fpu: Supporting XSAVE feature 0x004: 'AVX 
>> > registers' 
>> > > [    0.000000] x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]: 
>> >  256 
>> > > [    0.000000] x86/fpu: Enabled xstate features 0x7, context size 
>> > is 832 
>> > > bytes,        using 'compacted' format. 
>> > > [    0.000000] signal: max sigframe size: 1360 
>> > > [    0.000000] BIOS-provided physical RAM map: 
>> > > [    0.000000] BIOS-e801: [mem 
>> > 0x0000000000000000-0x000000000009efff] usable 
>> > 
>> > Okay, here should be all memory regions listed. My non-root Linux in my 
>> > Qemu VM, for example, shows here: 
>> > 
>> > [ 0.000000] BIOS-provided physical RAM map: 
>> > [ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x00000000000fffff] 
>> > usable 
>> > [ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x0000000000100fff] 
>> > reserved 
>> > [ 0.000000] BIOS-e820: [mem 0x0000000000200000-0x00000000048fffff] 
>> > usable 
>> > 
>> > Are you absolutely sure, that you have no further modifications in 
>> > Jailhouse or the Linux loader? 
>> > 
>> > Actually, in your case, there should be e820 as well (instead of e801). 
>> > Go to the Linux kernel sources, have a look at 
>> > arch/x86/kernel/e820.c:1279 
>> > 
>> > and Jailhouse's jailhouse-cell-linux:638. 
>> > 
>> > jailhouse-cell-linux fills information of all memory regions into the 
>> > zero page. Would you please instrument code (Linux/Jailhouse) to see 
>> > where those regions are not parsed? 
>> > 
>> > > [    0.000000] printk: bootconsole [earlyser0] enabled 
>> > > [    0.000000] NX (Execute Disable) protection: active 
>> > > [    0.000000] extended physical RAM map: 
>> > > [    0.000000] reserve setup_data: [mem 
>> > > 0x0000000000000000-0x0000000000001fff] u       sable 
>> > > [    0.000000] reserve setup_data: [mem 
>> > > 0x0000000000002000-0x000000000000212b] u       sable 
>> > > [    0.000000] reserve setup_data: [mem 
>> > > 0x000000000000212c-0x000000000009efff] u       sable 
>> > > [    0.000000] DMI not present or invalid. 
>> > > [    0.000000] Hypervisor detected: Jailhouse 
>> > 
>> > Just guessing loud: Hmm, you have guest support enabled, that's not the 
>> > issue. 
>> > 
>> > > [    0.000000] tsc: Detected 3393.624 MHz processor 
>> > > [    0.000017] .text .data .bss are not marked as E820_TYPE_RAM! 
>> > 
>> > Here's the next error that makes me curious, why you system falls back 
>> > to E801... 
>> > 
>> > > [    0.005745] last_pfn = 0x2e28 max_arch_pfn = 0x400000000 
>> > > [    0.011025] x86/PAT: PAT support disabled because 
>> > CONFIG_X86_PAT is 
>> > > disabled        in the kernel. 
>> > 
>> > Please enable CONFIG_X86_PAT and MTRR in your kernel. 
>> > 
>> > > [    0.019362] x86/PAT: Configuration [0-7]: WB  WT  UC- UC  WB 
>> >  WT  UC- UC 
>> > > [    0.034867] Using GB pages for direct mapping 
>> > > [    0.039193] Kernel panic - not syncing: alloc_low_pages: can not 
>> > > alloc memory 
>> > 
>> > Yeah, that's the logical aftereffect after the errors above. 
>> > 
>> > Thanks, 
>> > Ralf 
>> > 
>> > > [    0.046183] CPU: 0 PID: 0 Comm: swapper Not tainted 6.2.0-rc3 #2 
>> > > [    0.052176] Call Trace: 
>> > > [    0.054606]  <TASK> 
>> > > [    0.056691]  ? dump_stack_lvl+0x33/0x4e 
>> > > [    0.060510]  ? panic+0x157/0x303 
>> > > [    0.063723]  ? sprintf+0x56/0x80 
>> > > [    0.066936]  ? alloc_low_pages+0x70/0x1a0 
>> > > [    0.070930]  ? phys_pmd_init+0x1fc/0x2eb 
>> > > [    0.074839]  ? phys_pud_init+0x116/0x2d3 
>> > > [    0.078744]  ? __kernel_physical_mapping_init+0x11a/0x290 
>> > > [    0.084128]  ? init_memory_mapping+0x25e/0x3b0 
>> > > [    0.088558]  ? init_range_memory_mapping+0xe7/0x145 
>> > > [    0.093417]  ? init_mem_mapping+0x242/0x298 
>> > > [    0.097585]  ? setup_arch+0x74e/0xcbd 
>> > > [    0.101231]  ? start_kernel+0x66/0x8b7 
>> > > [    0.104965]  ? load_ucode_bsp+0x43/0x11b 
>> > > [    0.108873]  ? secondary_startup_64_no_verify+0xe0/0xeb 
>> > > [    0.114085]  </TASK> 
>> > > [    0.116255] ---[ end Kernel panic - not syncing: 
>> > alloc_low_pages: can 
>> > > not all       oc memory ]--- 
>> > > 
>> > > 
>> > > Thank you for your continuous support, 
>> > > Michele 
>> > > 
>> > > Il giorno sabato 13 gennaio 2024 alle 00:05:43 UTC+1 Ralf 
>> > Ramsauer ha 
>> > > scritto: 
>> > > 
>> > > Hi Michele, 
>> > > 
>> > > On 12/01/2024 14:07, Michele Pescapè wrote: 
>> > > > jailhouse cell load linux-2 linux-loader.bin -a 0x0 
>> > > > ../buildroot-2023.11/output/images/bzImage -a 0xffbe00 parameters 
>> > > -a 0x1000 
>> > > > jailhouse cell start linux-2 
>> > > > 
>> > > > I take it the kernel is loaded at 0xffbe00 which is right at the 
>> > > edge of 
>> > > > the low ram region. In fact after issuing the cell load command 
>> > and 
>> > > > adjusting the path for the loader I get JAILHOUSE_CELL_LOAD: 
>> > Invalid 
>> > > > argument. 
>> > > 
>> > > Just tested cell-linux in a qemu machine, there it works, with 
>> > pretty 
>> > > similar addresses, which got me confused. 
>> > > 
>> > > After double-checking it: 0xffb.e00 is *not* at the edge of low mem: 
>> > > 
>> > > Low mem is 0x000.000 -- 0x0ff.fff 
>> > > Comm region is 0x100.000 -- 0x100.fff 
>> > > 
>> > > 0xffb.e00 is (obviously) way above. 
>> > > 
>> > > Please try to set your high mem's .virt_start to 0x200000. Then, 
>> > > 0xffbe00 is offsetted ~16MB inside your highmem, and it should work! 
>> > > 
>> > > IOW: 
>> > > 
>> > > /* high RAM */ 
>> > > { 
>> > > .phys_start = 0x42300000, 
>> > > .virt_start = 0x200000, 
>> > > .size = 0x11000000, 
>> > > .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE | 
>> > > JAILHOUSE_MEM_EXECUTE | 
>> > > JAILHOUSE_MEM_LOADABLE, 
>> > > }, 
>> > > 
>> > > Thanks 
>> > > Ralf 
>> > > 
>> > > -- 
>> > > 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/6712361a-eaef-49cc-8a72-79da2c434169n%40googlegroups.com
>>  
>> <
>> https://groups.google.com/d/msgid/jailhouse-dev/6712361a-eaef-49cc-8a72-79da2c434169n%40googlegroups.com>
>>  
>> <
>> https://groups.google.com/d/msgid/jailhouse-dev/6712361a-eaef-49cc-8a72-79da2c434169n%40googlegroups.com?utm_medium=email&utm_source=footer
>>  
>> <
>> https://groups.google.com/d/msgid/jailhouse-dev/6712361a-eaef-49cc-8a72-79da2c434169n%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] 
>> > <mailto:[email protected]>. 
>> > To view this discussion on the web visit 
>> > 
>> https://groups.google.com/d/msgid/jailhouse-dev/860c1e75-c28f-4157-9212-a3d87ad25b27n%40googlegroups.com
>>  
>> <
>> https://groups.google.com/d/msgid/jailhouse-dev/860c1e75-c28f-4157-9212-a3d87ad25b27n%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/644902ef-0987-47d7-af4e-e9efce735cc0n%40googlegroups.com.

Reply via email to