<div dir="ltr"><div>Hi.</div><div><br></div>You wouldn't have that issue in qemu user-mode except if the underlying architecture supports sv57+. Given x86 is sv48 and I am guessing most of us are using an x86 machine to run qemu on, it doesn't have that issue.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Nov 24, 2022 at 3:33 PM <<a href="mailto:yangfei@iscas.ac.cn">yangfei@iscas.ac.cn</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi,<br>
<br>
  That's a good question. Maybe someone familiar with qemu could help answer? <br>
  I am not sure about how qemu-user mode works and whether it will be bound to certain kernel versions. <br>
  I am told by the people who raised this discussion that they are actually using qemu-system mode. <br>
<br>
Thanks,<br>
Fei<br>
<br>
&gt; -----Original Messages-----<br>
&gt; From: "Vladimir Kempik" <<a href="mailto:vladimir.kempik@gmail.com" target="_blank">vladimir.kempik@gmail.com</a>><br>
&gt; Sent Time: 2022-11-24 22:12:11 (Thursday)<br>
&gt; To: <a href="mailto:yangfei@iscas.ac.cn" target="_blank">yangfei@iscas.ac.cn</a><br>
&gt; Cc: jiangfeilong <<a href="mailto:jiangfeilong@huawei.com" target="_blank">jiangfeilong@huawei.com</a>>, "Ludovic Henry" <<a href="mailto:ludovic@rivosinc.com" target="_blank">ludovic@rivosinc.com</a>>, "Zixian Cai" <<a href="mailto:zixian.cai@anu.edu.au" target="_blank">zixian.cai@anu.edu.au</a>>, "<a href="mailto:riscv-port-dev@openjdk.org" target="_blank">riscv-port-dev@openjdk.org</a>" <<a href="mailto:riscv-port-dev@openjdk.org" target="_blank">riscv-port-dev@openjdk.org</a>>, "Ze Zhang" <<a href="mailto:zhangze.linux@gmail.com" target="_blank">zhangze.linux@gmail.com</a>><br>
&gt; Subject: Re: openjdk 20 crash on linux kernel 5.19, because it can not support huge VM?<br>
&gt; <br>
&gt; Hello<br>
&gt; <br>
&gt; Do we really have that issue (with mmu mode) in qemu-user-mode?<br>
&gt; <br>
&gt; I was running qemu7 in user mode with openjdk without any issues.<br>
&gt; <br>
&gt; Regards, Vladimir.<br>
&gt; <br>
&gt; &gt; 24 нояб. 2022 г., в 16:43, <a href="mailto:yangfei@iscas.ac.cn" target="_blank">yangfei@iscas.ac.cn</a> написал(а):<br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; Hi,<br>
&gt; &gt; <br>
&gt; &gt;  I guess qemu-user doesn't provide /proc/cpuinfo for us to use like qemu-system. <br>
&gt; &gt;  But it's still nice if we can enable that detection in qemu-system mode or on real hardware platforms. <br>
&gt; &gt; <br>
&gt; &gt; Thanks,<br>
&gt; &gt; Fei<br>
&gt; &gt; <br>
&gt; &gt; -----Original Messages-----<br>
&gt; &gt; From:jiangfeilong <<a href="mailto:jiangfeilong@huawei.com" target="_blank">jiangfeilong@huawei.com</a>><br>
&gt; &gt; Sent Time:2022-11-24 21:16:17 (Thursday)<br>
&gt; &gt; To: "<a href="mailto:yangfei@iscas.ac.cn" target="_blank">yangfei@iscas.ac.cn</a>" <<a href="mailto:yangfei@iscas.ac.cn" target="_blank">yangfei@iscas.ac.cn</a>>, "Ludovic Henry" <<a href="mailto:ludovic@rivosinc.com" target="_blank">ludovic@rivosinc.com</a>><br>
&gt; &gt; Cc: "Vladimir Kempik" <<a href="mailto:vladimir.kempik@gmail.com" target="_blank">vladimir.kempik@gmail.com</a>>, "Zixian Cai" <<a href="mailto:zixian.cai@anu.edu.au" target="_blank">zixian.cai@anu.edu.au</a>>, "<a href="mailto:riscv-port-dev@openjdk.org" target="_blank">riscv-port-dev@openjdk.org</a>" <<a href="mailto:riscv-port-dev@openjdk.org" target="_blank">riscv-port-dev@openjdk.org</a>>, "Ze Zhang" <<a href="mailto:zhangze.linux@gmail.com" target="_blank">zhangze.linux@gmail.com</a>><br>
&gt; &gt; Subject: RE: Re: openjdk 20 crash on linux kernel 5.19, because it can not support huge VM?<br>
&gt; &gt; <br>
&gt; &gt; Hi,     <br>
&gt; &gt;    I’m trying to get satp mode on QEMU-USER, QEMU-SYSTEM and     <br>
&gt; &gt;    hardware (HiFive Unmatched) by reading /proc/cpuinfo.     <br>
&gt; &gt;    Turns out we can only get mmu info on QEMU-SYSTEM and hardware.     <br>
&gt; &gt;    QEMU-USER will return empty string when reading /proc/cpuinfo.     <br>
&gt; &gt; <br>
&gt; &gt;    Any ideas about that?     <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt;    Here are the outputs:     <br>
&gt; &gt;    QEMU-USER:     <br>
&gt; &gt;    $ /riscv-qemu/bin/qemu-riscv64 -L ~/riscv-sysroot/ release/images/jdk/bin/java -version     <br>
&gt; &gt;    stap mode:     <br>
&gt; &gt;    openjdk version "20" 2022-11-24     <br>
&gt; &gt;    OpenJDK Runtime Environment OpenJDK (build 20)     <br>
&gt; &gt;    OpenJDK 64-Bit Server VM OpenJDK (build 20, mixed mode)     <br>
&gt; &gt; <br>
&gt; &gt;    QEMU-SYSTEM     <br>
&gt; &gt;    [root@fedora-riscv ~]# jdk-satp/bin/java -version     <br>
&gt; &gt;    vm_mode: sv48     <br>
&gt; &gt;    stap mode: sv48     <br>
&gt; &gt;    openjdk version "20" 2022-11-24     <br>
&gt; &gt;    OpenJDK Runtime Environment OpenJDK (build 20)     <br>
&gt; &gt;    OpenJDK 64-Bit Server VM OpenJDK (build 20, mixed mode)     <br>
&gt; &gt; <br>
&gt; &gt;    HiFive Unmatched:     <br>
&gt; &gt;    $ jdk-satp/bin/java -version     <br>
&gt; &gt;    vm_mode: sv39     <br>
&gt; &gt;    uarch: sifive,u74-mc     <br>
&gt; &gt;    stap mode: sv39     <br>
&gt; &gt;    openjdk version "20" 2022-11-24     <br>
&gt; &gt;    OpenJDK Runtime Environment OpenJDK (build 20)     <br>
&gt; &gt;    OpenJDK 64-Bit Server VM OpenJDK (build 20, mixed mode)     <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt;    From:riscv-port-dev <<a href="mailto:riscv-port-dev-retn@openjdk.org" target="_blank">riscv-port-dev-retn@openjdk.org</a>> On Behalf Of <a href="mailto:yangfei@iscas.ac.cn" target="_blank">yangfei@iscas.ac.cn</a><br>
&gt; &gt; Sent: Thursday, November 24, 2022 6:16 PM<br>
&gt; &gt; To: Ludovic Henry <<a href="mailto:ludovic@rivosinc.com" target="_blank">ludovic@rivosinc.com</a>><br>
&gt; &gt; Cc: Vladimir Kempik <<a href="mailto:vladimir.kempik@gmail.com" target="_blank">vladimir.kempik@gmail.com</a>>; Zixian Cai <<a href="mailto:zixian.cai@anu.edu.au" target="_blank">zixian.cai@anu.edu.au</a>>; <a href="mailto:riscv-port-dev@openjdk.org" target="_blank">riscv-port-dev@openjdk.org</a>; Ze Zhang <<a href="mailto:zhangze.linux@gmail.com" target="_blank">zhangze.linux@gmail.com</a>><br>
&gt; &gt; Subject: Re: Re: openjdk 20 crash on linux kernel 5.19, because it can not support huge VM?     <br>
&gt; &gt; <br>
&gt; &gt;    I think at this stage we should do some detection for sv57+ at JVM startup time and explicitly issue a warning and stop early.      <br>
&gt; &gt;    That would be better and more elegant than simply crashing the JVM afterwards.     <br>
&gt; &gt;    I see this kind of information is availble on linux-riscv64 at /proc/cpuinfo:      <br>
&gt; &gt; <br>
&gt; &gt;    $ cat /proc/cpuinfo<br>
&gt; &gt; processor       : 0<br>
&gt; &gt; hart            : 1<br>
&gt; &gt; isa             : rv64imafdc<br>
&gt; &gt; mmu             : sv39<br>
&gt; &gt; uarch           : sifive,u74-mc     <br>
&gt; &gt;    Regards,      <br>
&gt; &gt;    Fei      <br>
&gt; &gt;    -----Original Messages-----<br>
&gt; &gt; From:"Ludovic Henry" <<a href="mailto:ludovic@rivosinc.com" target="_blank">ludovic@rivosinc.com</a>><br>
&gt; &gt; Sent Time:2022-11-24 07:25:19 (Thursday)<br>
&gt; &gt; To: "Vladimir Kempik" <<a href="mailto:vladimir.kempik@gmail.com" target="_blank">vladimir.kempik@gmail.com</a>><br>
&gt; &gt; Cc: "Zixian Cai" <<a href="mailto:zixian.cai@anu.edu.au" target="_blank">zixian.cai@anu.edu.au</a>>, "<a href="mailto:riscv-port-dev@openjdk.org" target="_blank">riscv-port-dev@openjdk.org</a>" <<a href="mailto:riscv-port-dev@openjdk.org" target="_blank">riscv-port-dev@openjdk.org</a>>, "Ze Zhang" <<a href="mailto:zhangze.linux@gmail.com" target="_blank">zhangze.linux@gmail.com</a>><br>
&gt; &gt; Subject: Re: openjdk 20 crash on linux kernel 5.19, because it can not support huge VM?      <br>
&gt; &gt;     Hi,        <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt;      We are currently working on contributing to Qemu a command-line option to disable/enable certain modes in Qemu. I'll keep you posted as soon as I've anything material to share.        <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt;      The solution on the OpenJDK should IMO to probe at startup for the satp mode (sv39/sv48/sv57/sv64) and generate the appropriate and cheapest movptr according to this value. I wouldn't want to pay the full cost of sv57 or sv64 while no existing boards or hardware even support anything more than sv48. Especially given the current discussions in RISC-V on reducing the cost of auipc/jalr, movptr, and trampolines.        <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt;      Thanks,         <br>
&gt; &gt; <br>
&gt; &gt;      Ludovic         <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt;     On Wed, Nov 23, 2022 at 9:33 AM Vladimir Kempik <<a href="mailto:vladimir.kempik@gmail.com" target="_blank">vladimir.kempik@gmail.com</a>> wrote:        <br>
&gt; &gt; <br>
&gt; &gt;      Hello          <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt;        A kind of workaround for this case           <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt;        disable sv57 csr and rebuild qemu - <a href="https://github.com/qemu/qemu/blob/master/target/riscv/csr.c#L1027" rel="noreferrer" target="_blank">https://github.com/qemu/qemu/blob/master/target/riscv/csr.c#L1027</a> put 0 here          <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt;        Regards, Vladimir          <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; 23 нояб. 2022  г., в04:08, Zixian Cai <<a href="mailto:zixian.cai@anu.edu.au" target="_blank">zixian.cai@anu.edu.au</a>> написал(а):              <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt;           This has been discussed in a previous thread. <a href="https://mail.openjdk.org/pipermail/riscv-port-dev/2022-September/000636.html" rel="noreferrer" target="_blank">https://mail.openjdk.org/pipermail/riscv-port-dev/2022-September/000636.html</a>               <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt;             I agree that it would be nice to support different modes. Although with the patches in QEMU/Kernel that can restrict the OS to run with sv39/sv48 only, and the fact that there are not enough real hardware board supporting above sv48, I don’t know whether there will be sufficient motivation to fix the problem in the short term.               <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt;             Also worth noting until very recently (Intel implemented 5-level paging around the release of Ice Lake), x86_64 has been staying 48 bits a for long time.               <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt;             Sincerely,                <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt;             Zixian               <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt;             On 23/11/2022, 11:58, "riscv-port-dev" <<a href="mailto:riscv-port-dev-retn@openjdk.org" target="_blank">riscv-port-dev-retn@openjdk.org</a>> wrote:               <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt;             hi,                 <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt;             openjdk 20 crash on linux kernel 5.19, because it can not support huge VM?                <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt;             but I think openjdk as a application, it should not has any limitation on virtual address length,                <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt;             even if it has very close relationship with hardware, just as qemu should not depend on hardware VM size, it's none of business for an application, because all other apps can run very well.                 <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt;             when will it support the newest kernel and qemu?                 <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt;             <a href="https://groups.google.com/a/groups.riscv.org/g/sw-dev/c/pILY0WGHhOs&gt" rel="noreferrer" target="_blank">https://groups.google.com/a/groups.riscv.org/g/sw-dev/c/pILY0WGHhOs<br>
&gt</a>; &gt; <br>
&gt; &gt; <br>
&gt; &gt; </<a href="mailto:riscv-port-dev-retn@openjdk.org" target="_blank">riscv-port-dev-retn@openjdk.org</a>></<a href="mailto:zixian.cai@anu.edu.au" target="_blank">zixian.cai@anu.edu.au</a>></<a href="mailto:vladimir.kempik@gmail.com" target="_blank">vladimir.kempik@gmail.com</a>></<a href="mailto:zhangze.linux@gmail.com" target="_blank">zhangze.linux@gmail.com</a>></<a href="mailto:riscv-port-dev@openjdk.org" target="_blank">riscv-port-dev@openjdk.org</a>></<a href="mailto:zixian.cai@anu.edu.au" target="_blank">zixian.cai@anu.edu.au</a>></<a href="mailto:vladimir.kempik@gmail.com" target="_blank">vladimir.kempik@gmail.com</a>></<a href="mailto:ludovic@rivosinc.com" target="_blank">ludovic@rivosinc.com</a>></<a href="mailto:zhangze.linux@gmail.com" target="_blank">zhangze.linux@gmail.com</a>></<a href="mailto:zixian.cai@anu.edu.au" target="_blank">zixian.cai@anu.edu.au</a>></<a href="mailto:vladimir.kempik@gmail.com" target="_blank">vladimir.kempik@gmail.com</a>></<a href="mailto:ludovic@rivosinc.com" target="_blank">ludovic@rivosinc.com</a>></<a href="mailto:riscv-port-dev-retn@openjdk.org" target="_blank">riscv-port-dev-retn@openjdk.org</a>></<a href="mailto:zhangze.linux@gmail.com" target="_blank">zhangze.linux@gmail.com</a>></<a href="mailto:riscv-port-dev@openjdk.org" target="_blank">riscv-port-dev@openjdk.org</a>></<a href="mailto:zixian.cai@anu.edu.au" target="_blank">zixian.cai@anu.edu.au</a>></<a href="mailto:vladimir.kempik@gmail.com" target="_blank">vladimir.kempik@gmail.com</a>></<a href="mailto:ludovic@rivosinc.com" target="_blank">ludovic@rivosinc.com</a>></<a href="mailto:yangfei@iscas.ac.cn" target="_blank">yangfei@iscas.ac.cn</a>></<a href="mailto:jiangfeilong@huawei.com" target="_blank">jiangfeilong@huawei.com</a>><br>
</<a href="mailto:zhangze.linux@gmail.com" target="_blank">zhangze.linux@gmail.com</a>></<a href="mailto:riscv-port-dev@openjdk.org" target="_blank">riscv-port-dev@openjdk.org</a>></<a href="mailto:zixian.cai@anu.edu.au" target="_blank">zixian.cai@anu.edu.au</a>></<a href="mailto:ludovic@rivosinc.com" target="_blank">ludovic@rivosinc.com</a>></<a href="mailto:jiangfeilong@huawei.com" target="_blank">jiangfeilong@huawei.com</a>></<a href="mailto:vladimir.kempik@gmail.com" target="_blank">vladimir.kempik@gmail.com</a>></blockquote></div>