[siemens/jailhouse] ae8b27: x86: vtd: Ignore lower two bits when evaluating VT...

2019-02-13 Thread Jan Kiszka
  Branch: refs/heads/coverity_scan
  Home:   https://github.com/siemens/jailhouse
  Commit: ae8b272f997bc720efc7f18476e5a407e2580ead
  
https://github.com/siemens/jailhouse/commit/ae8b272f997bc720efc7f18476e5a407e2580ead
  Author: Jan Kiszka 
  Date:   2019-01-27 (Sun, 27 Jan 2019)

  Changed paths:
M hypervisor/arch/x86/vtd.c

  Log Message:
  ---
  x86: vtd: Ignore lower two bits when evaluating VTD_REQ_INV_WAIT

If the guest sets the wait request status address to the top of the
page, we crossed the border to the next page and either wrote some bytes
into a guest page that was previously mapped at page 2 in the temporary
mapping range, or we crashed the hypervisor on a fault if nothing was
mapped before.

Fix this by masking out the two lowest bits of the status address which
are actually reserved according to the Intel manual.

Along that, replace the hard-coded shift value with the right symbolic
constant.

Fixes: 20b09b8625d5 ("x86: Emulate interrupt remapping support to enable x2APIC 
usage")
Signed-off-by: Jan Kiszka 


  Commit: 22148e28077358ba16f39264941b977c6f6a6067
  
https://github.com/siemens/jailhouse/commit/22148e28077358ba16f39264941b977c6f6a6067
  Author: Andreas Messerschmid 
  Date:   2019-01-30 (Wed, 30 Jan 2019)

  Changed paths:
A configs/arm64/miriac-sbc-ls1046a.c

  Log Message:
  ---
  configs: miriac-sbc-ls1046a: Add root cell configuration

Add a root cell configuration file for the Microsys
Miriac LS1046a SBC.

Signed-off-by: Andreas Messerschmid 
Reviewed-by: Benedikt Spranger 
Signed-off-by: Jan Kiszka 


  Commit: 8c9a87fd85dfba2bb80f65c189e6a3bf20d8980c
  
https://github.com/siemens/jailhouse/commit/8c9a87fd85dfba2bb80f65c189e6a3bf20d8980c
  Author: Andreas Messerschmid 
  Date:   2019-01-30 (Wed, 30 Jan 2019)

  Changed paths:
A configs/arm64/miriac-sbc-ls1046a-gic-demo.c

  Log Message:
  ---
  configs: miriac-sbc-ls1046a: Add GIC demo inmate configuration

Add an inmate configuration file for running the GIC demo on
the Microsys Miriac LS1046a SBC.

Signed-off-by: Andreas Messerschmid 
Reviewed-by: Benedikt Spranger 
[Jan: fix-up whitespace errors]
Signed-off-by: Jan Kiszka 


  Commit: 41b0b5f8e7976aa8928c375d729bf349bf4626d2
  
https://github.com/siemens/jailhouse/commit/41b0b5f8e7976aa8928c375d729bf349bf4626d2
  Author: Andreas Messerschmid 
  Date:   2019-01-30 (Wed, 30 Jan 2019)

  Changed paths:
A configs/arm64/miriac-sbc-ls1046a-linux-demo.c

  Log Message:
  ---
  configs: miriac-sbc-ls1046a: Add linux inmate demo configuration

Add an inmate configuration file for running Linux as an inmate on
the Microsys Miriac LS1046a SBC.

Signed-off-by: Andreas Messerschmid 
Reviewed-by: Benedikt Spranger 
[Jan: fix-up whitespace errors]
Signed-off-by: Jan Kiszka 


  Commit: 58786d1a084328861dea929ea8990818630db838
  
https://github.com/siemens/jailhouse/commit/58786d1a084328861dea929ea8990818630db838
  Author: Andreas Messerschmid 
  Date:   2019-01-30 (Wed, 30 Jan 2019)

  Changed paths:
A configs/arm64/dts/inmate-miriac-sbc-ls1046a.dts

  Log Message:
  ---
  configs: miriac-sbc-ls1046a: Add linux inmate demo dts

Add demo device tree for running Linux as an inmate on
the Microsys Miriac LS1046a SBC.

Signed-off-by: Andreas Messerschmid 
Reviewed-by: Benedikt Spranger 
Signed-off-by: Jan Kiszka 


Compare: 
https://github.com/siemens/jailhouse/compare/3a4f41730235...58786d1a0843

-- 
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 jailhouse-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Using Erika3 with libc support

2019-02-13 Thread Jan Kiszka

On 13.02.19 14:17, Arvid Rosén wrote:
*From: * on behalf of Claudio Scordino 


*Date: *Wednesday, 13 February 2019 at 13:04
*To: *João Reis 
*Cc: *Jailhouse 
*Subject: *Re: Using Erika3 with libc support

What is not currently supported by the Jailhouse build system is the possibility 
of using different toolchains for the hypervisor firmware and the inmate library.


This is useful in case you want to use a bare-metal toolchain with libc (e.g. 
newlib) for the inmate.


Indeed, we have successfully used a bare-metal toolchain by Linaro (with libc) 
in the inmate. We have been able of even using dynamic memory allocation and C++ 
data structures.


You can easily patch Jailhouse's makefiles for using different compilers for the 
hypervisor firmware and the inmate library (which could eventually be linked to 
the ERIKA RTOS, in case of need).


Hi!

Nothing really to add here, except that I think this sounds super interesting! A 
reasonable way to run self-contained C++ code for signal processing applications 
is really what makes Jailhouse interesting for me, and I’ll continue to look 
into that. The possibility to use newlib to run the same application on either a 
i.MX RT device (bare metal) or in a jailhouse cell on a i.MX 8 chip would be 
fantastic.


You are not alone with such scenarios, I also heard those wishes off-list 
already. It is perfectly possibly to develop the inmate environment further 
towards such requirements. But there is a point where we risk crossing the line 
to a (highly configurable) RTOS that may run on Jailhouse as well. That's my 
biggest concern.


It's about maintaining the balance between focusing on a bare-metal runtimes 
only and adding more and more feature that RTOSes may already provide - just 
like Jailhouse itself needs to refrain from becoming yet another full-featured 
hypervisor.


Another aspect of making the inmate-lib stand-alone is creating a more stable 
interface to Jailhouse, both technically (there are some remaining links besides 
the build system) as well as API/ABI-wise (ensure inmates will find stable 
interface or can at least explore revisions and features). Having everything 
in-tree and committed only on testing, demos and Linux loaders makes this less 
strict, though that is more of an excuse for settling on some more stable 
interfaces.


In any case, we would need some folks willing to drive this topic, with 
requirements, design ideas and ideally also code.


Jan

--
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux

--
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 jailhouse-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Jailhouse Cell Creation Error // Unhandled MSR write: c8f

2019-02-13 Thread Jan Kiszka

On 13.02.19 13:00, Henning Schild wrote:

Am Wed, 13 Feb 2019 07:54:54 +
schrieb Burak Atalay :


Hello everyone,

I am trying to run a non-root Linux cell, however I am encountering
an error. I followed the documentation and I am using your modified
Linux kernel from queues/jailhouse. When I issue the command
"jailhouse cell linux
configs/x86/linux-x86-demo.cell /path/to/bzImage" I get the following
error:

FATAL: Unhandled MSR write: c8f
RIP: 0x9646c084 RSP: 0xa9ea41a2be08 FLAGS: 246
RAX: 0x RBX: 0x9b46e06fe000 RCX:
0x0c8f RDX: 0x RSI: 0x
RDI: 0x0c8f CS: 10  BASE: 0x  AR-BYTES:
a09b  EFER.LMA 1 CR0: 0x80050033  CR3: 0x0001c920a001
CR4: 0x003626e0 EFER: 0x0d01
Parking CPU 1 (Cell: "RootCell")
Ignoring NMI IPI to CPU1

At this point the machine is still functional, when I issue a
"jailhouse cell list" command I see the following:

ID NameState Assigned CPUs Failed
CPUs 0  RootCellRunning
0-31 1 1 linux-x86-demo
invalid 1-3  1

However I am unable to shutdown or destroy the linux cell with
respective shutdown and destroy commands. Since I failed to run a
non-root Linux cell, I tried to run the other demo cells, like
tiny-demo and apic. When I issue the command "jailhouse cell create
configs/x86/tiny-demo.cell" I get the following error:

FATAL: Unhandled MSR write: c8f
RIP: 0xafe6c084 RSP: 0xb302c1a5be08 FLAGS: 246
RAX: 0x RBX: 0x89b4e069f000 RCX:
0x0c8f RDX: 0x RSI: 0x
RDI: 0x0c8f CS: 10  BASE: 0x  AR-BYTES:
a09b  EFER.LMA 1 CR0: 0x80050033  CR3: 0x0001a1c0a001
CR4: 0x003626e0 EFER: 0x0d01
Parking CPU 2 (Cell: "RootCell")
Ignoring NMI IPI to CPU2

Since the errors for both non-root cells are similar, my assumption
is that the problem is not related to my config file for the Linux
cell or the kernel. In any case, I am attaching my sysconfig for the
root cell, the data collected by "jailhouse config collect", and my
config file for the Linux kernel.

Could you help me with this issue?


 From the MSR i would guess CONFIG_INTEL_RDT in both your kernels. If
you look up the RIP in the System.map of your kernel, you be able to
find out which code caused the access.
The MSR is IA32_PQR_ASSOC

I did not look into the details of the feature. Your options are:
- Allow access to the MSR, after an assessment whether that is a good
   idea
- disable the feature in the kernels


The latter is the safe answer: Jailhouse owns this resource and should manage it 
(we support L3 CAT). We do not virtualize it, so the guest needs to step aside.


Jan

--
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux

--
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 jailhouse-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


RE: Warning: unpredictable: identical transfer and status registers --`stxr w4,x5,[x4] using aarch64 poky gcc 8.3

2019-02-13 Thread Michael Matz
Hi,

On Wed, 13 Feb 2019, Peng Fan wrote:

> So the fix should be the following, right?

Yup.


Ciao,
Michael.

-- 
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 jailhouse-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


RE: Warning: unpredictable: identical transfer and status registers --`stxr w4,x5,[x4] using aarch64 poky gcc 8.3

2019-02-13 Thread Peng Fan



> -Original Message-
> From: Andreas Schwab [mailto:sch...@suse.de]
> Sent: 2019年2月13日 21:59
> To: Peng Fan 
> Cc: g...@gcc.gnu.org; james.greenha...@arm.com; n...@arm.com;
> jailhouse-dev@googlegroups.com; will.dea...@arm.com; Catalin Marinas
> 
> Subject: Re: Warning: unpredictable: identical transfer and status registers
> --`stxr w4,x5,[x4] using aarch64 poky gcc 8.3
> 
> On Feb 13 2019, Peng Fan  wrote:
> 
> > static inline int test_and_set_bit(int nr, volatile unsigned long
> > *addr) {
> > u32 ret;
> > u64 test, tmp;
> >
> > BITOPT_ALIGN(nr, addr);
> >
> > /* AARCH64_TODO: using Inner Shareable DMB at the moment,
> >  * revisit when we will deal with shareability domains */
> >
> > do {
> > asm volatile (
> > "ldxr   %3, %2\n\t"
> > "ands   %1, %3, %4\n\t"
> > "b.ne   1f\n\t"
> > "orr%3, %3, %4\n\t"
> > "1:\n\t"
> > "stxr   %w0, %3, %2\n\t"
> > "dmbish\n\t"
> > : "=r" (ret), "=" (test),
> >   "+Q" (*(volatile unsigned long *)addr),
> >   "=r" (tmp)
> > : "r" (1ul << nr));
> 
> %3 is modified early, but not marked earlyclobber.

Thanks, I'll try add earlyclobber.

Peng

> 
> Andreas.
> 
> --
> Andreas Schwab, SUSE Labs, sch...@suse.de GPG Key fingerprint = 0196
> BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7 "And now for something
> completely different."

-- 
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 jailhouse-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Warning: unpredictable: identical transfer and status registers --`stxr w4,x5,[x4] using aarch64 poky gcc 8.3

2019-02-13 Thread Michael Matz
Hi,

On Wed, 13 Feb 2019, Peng Fan wrote:

> asm volatile (
> "ldxr   %3, %2\n\t"
> "ands   %1, %3, %4\n\t"
> "b.ne   1f\n\t"
> "orr%3, %3, %4\n\t"
> "1:\n\t"
> "stxr   %w0, %3, %2\n\t"
> "dmbish\n\t"
> : "=r" (ret), "=" (test),
>   "+Q" (*(volatile unsigned long *)addr),
>   "=r" (tmp)
> : "r" (1ul << nr));

As Andreas says, you need to add an early-clobber for op3 for correctness 
(to force it into a different register from op4).  And you also need an 
early-clobber on op0 to force it into a different register from op2 (which 
for purposes of register assignment is an input operand holding an 
address).


Ciao,
Michael.

-- 
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 jailhouse-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Warning: unpredictable: identical transfer and status registers --`stxr w4,x5,[x4] using aarch64 poky gcc 8.3

2019-02-13 Thread Andreas Schwab
On Feb 13 2019, Peng Fan  wrote:

> static inline int test_and_set_bit(int nr, volatile unsigned long *addr)
> {
> u32 ret;
> u64 test, tmp;
>
> BITOPT_ALIGN(nr, addr);
>
> /* AARCH64_TODO: using Inner Shareable DMB at the moment,
>  * revisit when we will deal with shareability domains */
>
> do {
> asm volatile (
> "ldxr   %3, %2\n\t"
> "ands   %1, %3, %4\n\t"
> "b.ne   1f\n\t"
> "orr%3, %3, %4\n\t"
> "1:\n\t"
> "stxr   %w0, %3, %2\n\t"
> "dmbish\n\t"
> : "=r" (ret), "=" (test),
>   "+Q" (*(volatile unsigned long *)addr),
>   "=r" (tmp)
> : "r" (1ul << nr));

%3 is modified early, but not marked earlyclobber.

Andreas.

-- 
Andreas Schwab, SUSE Labs, sch...@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."

-- 
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 jailhouse-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


RE: Warning: unpredictable: identical transfer and status registers --`stxr w4,x5,[x4] using aarch64 poky gcc 8.3

2019-02-13 Thread Peng Fan



> -Original Message-
> From: jailhouse-dev@googlegroups.com
> [mailto:jailhouse-dev@googlegroups.com] On Behalf Of Segher Boessenkool
> Sent: 2019年2月13日 17:11
> To: Peng Fan 
> Cc: g...@gcc.gnu.org; james.greenha...@arm.com; n...@arm.com;
> jailhouse-dev@googlegroups.com; will.dea...@arm.com; Catalin Marinas
> 
> Subject: Re: Warning: unpredictable: identical transfer and status registers
> --`stxr w4,x5,[x4] using aarch64 poky gcc 8.3
> 
> OneWed, Feb 13, 2019 at 07:13:21AM +, Peng Fan wrote:
> > We met an issue when building a piece jailhouse hypervisor code,
> "stxr   %w0, %3, %2\n\t" is
> > compiled as "stxr w4,x5,[x4]" which triggers the warning
> > "Warning: unpredictable: identical transfer and status registers"
> 
> This is not a GCC question.
> 
> The three registers, in order, are status, transfer, and base.  The warning
> claims transfer and status are identical, but in fact base and status are.
> The code (in binutils, gas/config/tc-aarch64.c) is
> 
> case ldstexcl:
>   /* It is unpredictable if the destination and status registers are the
>  same.  */
>   if ((aarch64_get_operand_class (opnds[0].type)
>== AARCH64_OPND_CLASS_INT_REG)
>   && (aarch64_get_operand_class (opnds[1].type)
>   == AARCH64_OPND_CLASS_INT_REG)
>   && (opnds[0].reg.regno == opnds[1].reg.regno
>   || opnds[0].reg.regno == opnds[2].reg.regno))
> as_warn (_("unpredictable: identical transfer and status registers"
>" --`%s'"),
>  str);
> 
> so either that op0 == op2 test is spurious, or the warning message is
> misleading.

>From aarch64 spec, "stxr w4,x5,[x4]"'s behavior is chip implementation defined,
so I think the warning is correct.

> 
> Please ask on binut...@sourceware.org and/or file a bug at
> https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fsour
> ceware.org%2Fbugzilla%2Fdata=02%7C01%7Cpeng.fan%40nxp.com%
> 7C2463376de5aa417d3d6508d69197e4df%7C686ea1d3bc2b4c6fa92cd99c5c
> 301635%7C0%7C0%7C636856478900947075sdata=pg%2FZmo91Cxfji
> ESlBiR5shmsdxoYWslpfZeAXk5TV30%3Dreserved=0 ?

Ok. I'll post questions to binut...@sourceware.org

Thanks,
Peng.

> 
> 
> Segher
> 
> --
> 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 jailhouse-dev+unsubscr...@googlegroups.com.
> For more options, visit
> https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgrou
> ps.google.com%2Fd%2Foptoutdata=02%7C01%7Cpeng.fan%40nxp.co
> m%7C2463376de5aa417d3d6508d69197e4df%7C686ea1d3bc2b4c6fa92cd9
> 9c5c301635%7C0%7C0%7C636856478900947075sdata=oiNHshxQvku
> OjuTiRKlK%2F3em5DIGNysm1UbZZKuHcjg%3Dreserved=0.

-- 
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 jailhouse-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Using Erika3 with libc support

2019-02-13 Thread Arvid Rosén
From:  on behalf of Claudio Scordino 

Date: Wednesday, 13 February 2019 at 13:04
To: João Reis 
Cc: Jailhouse 
Subject: Re: Using Erika3 with libc support


What is not currently supported by the Jailhouse build system is the 
possibility of using different toolchains for the hypervisor firmware and the 
inmate library.
This is useful in case you want to use a bare-metal toolchain with libc (e.g. 
newlib) for the inmate.
Indeed, we have successfully used a bare-metal toolchain by Linaro (with libc) 
in the inmate. We have been able of even using dynamic memory allocation and 
C++ data structures.

You can easily patch Jailhouse's makefiles for using different compilers for 
the hypervisor firmware and the inmate library (which could eventually be 
linked to the ERIKA RTOS, in case of need).

Hi!

Nothing really to add here, except that I think this sounds super interesting! 
A reasonable way to run self-contained C++ code for signal processing 
applications is really what makes Jailhouse interesting for me, and I’ll 
continue to look into that. The possibility to use newlib to run the same 
application on either a i.MX RT device (bare metal) or in a jailhouse cell on a 
i.MX 8 chip would be fantastic.

Cheers,
Arvid

-- 
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 jailhouse-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Using Erika3 with libc support

2019-02-13 Thread Claudio Scordino
Hi,

Il giorno sab 9 feb 2019 alle ore 18:09 João Reis  ha
scritto:

> sábado, 9 de Fevereiro de 2019 às 16:55:21 UTC, João Reis escreveu:
> > Hello,
> >
> > Is it possible (in jailhouse v0.10) to link an Erika application against
> libc?
>
> In Erika's website, it says that Jailhouse does not allow to select
> different toolchains for compiling the inmate library and the rest of the
> hypervisor (it only does in Jetson TX1 and TX2 cases), so I wonder if it is
> possible to do it now, or if it remains unable (in Zynq Ultrascale+ case).
>

You can build the Jailhouse inmate and link it to the ERIKA Enterprise,
either for Cortex-A or for x86-64.

What is not currently supported by the Jailhouse build system is the
possibility of using different toolchains for the hypervisor firmware and
the inmate library.
This is useful in case you want to use a bare-metal toolchain with libc
(e.g. newlib) for the inmate.
Indeed, we have successfully used a bare-metal toolchain by Linaro (with
libc) in the inmate. We have been able of even using dynamic memory
allocation and C++ data structures.

You can easily patch Jailhouse's makefiles for using different compilers
for the hypervisor firmware and the inmate library (which could eventually
be linked to the ERIKA RTOS, in case of need).

Best regards,

 Claudio

-- 
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 jailhouse-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Jailhouse Cell Creation Error // Unhandled MSR write: c8f

2019-02-13 Thread Henning Schild
Am Wed, 13 Feb 2019 07:54:54 +
schrieb Burak Atalay :

> Hello everyone,
> 
> I am trying to run a non-root Linux cell, however I am encountering
> an error. I followed the documentation and I am using your modified
> Linux kernel from queues/jailhouse. When I issue the command
> "jailhouse cell linux
> configs/x86/linux-x86-demo.cell /path/to/bzImage" I get the following
> error:
> 
> FATAL: Unhandled MSR write: c8f
> RIP: 0x9646c084 RSP: 0xa9ea41a2be08 FLAGS: 246
> RAX: 0x RBX: 0x9b46e06fe000 RCX:
> 0x0c8f RDX: 0x RSI: 0x
> RDI: 0x0c8f CS: 10  BASE: 0x  AR-BYTES:
> a09b  EFER.LMA 1 CR0: 0x80050033  CR3: 0x0001c920a001
> CR4: 0x003626e0 EFER: 0x0d01
> Parking CPU 1 (Cell: "RootCell")
> Ignoring NMI IPI to CPU1
> 
> At this point the machine is still functional, when I issue a
> "jailhouse cell list" command I see the following:
> 
> ID NameState Assigned CPUs Failed
> CPUs 0  RootCellRunning
> 0-31 1 1 linux-x86-demo
> invalid 1-3  1
> 
> However I am unable to shutdown or destroy the linux cell with
> respective shutdown and destroy commands. Since I failed to run a
> non-root Linux cell, I tried to run the other demo cells, like
> tiny-demo and apic. When I issue the command "jailhouse cell create
> configs/x86/tiny-demo.cell" I get the following error:
> 
> FATAL: Unhandled MSR write: c8f
> RIP: 0xafe6c084 RSP: 0xb302c1a5be08 FLAGS: 246
> RAX: 0x RBX: 0x89b4e069f000 RCX:
> 0x0c8f RDX: 0x RSI: 0x
> RDI: 0x0c8f CS: 10  BASE: 0x  AR-BYTES:
> a09b  EFER.LMA 1 CR0: 0x80050033  CR3: 0x0001a1c0a001
> CR4: 0x003626e0 EFER: 0x0d01
> Parking CPU 2 (Cell: "RootCell")
> Ignoring NMI IPI to CPU2
> 
> Since the errors for both non-root cells are similar, my assumption
> is that the problem is not related to my config file for the Linux
> cell or the kernel. In any case, I am attaching my sysconfig for the
> root cell, the data collected by "jailhouse config collect", and my
> config file for the Linux kernel.
> 
> Could you help me with this issue?

>From the MSR i would guess CONFIG_INTEL_RDT in both your kernels. If
you look up the RIP in the System.map of your kernel, you be able to
find out which code caused the access.
The MSR is IA32_PQR_ASSOC

I did not look into the details of the feature. Your options are:
- Allow access to the MSR, after an assessment whether that is a good
  idea
- disable the feature in the kernels

regards,
Henning

> Thanks and best regards,
> Burak Atalay
> 
> 
> 

-- 
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 jailhouse-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Warning: unpredictable: identical transfer and status registers --`stxr w4,x5,[x4] using aarch64 poky gcc 8.3

2019-02-13 Thread Segher Boessenkool
OneWed, Feb 13, 2019 at 07:13:21AM +, Peng Fan wrote:
> We met an issue when building a piece jailhouse hypervisor code, "stxr   %w0, 
> %3, %2\n\t" is 
> compiled as "stxr w4,x5,[x4]" which triggers the warning 
> "Warning: unpredictable: identical transfer and status registers"

This is not a GCC question.

The three registers, in order, are status, transfer, and base.  The warning
claims transfer and status are identical, but in fact base and status are.
The code (in binutils, gas/config/tc-aarch64.c) is

case ldstexcl:
  /* It is unpredictable if the destination and status registers are the
 same.  */
  if ((aarch64_get_operand_class (opnds[0].type)
   == AARCH64_OPND_CLASS_INT_REG)
  && (aarch64_get_operand_class (opnds[1].type)
  == AARCH64_OPND_CLASS_INT_REG)
  && (opnds[0].reg.regno == opnds[1].reg.regno
  || opnds[0].reg.regno == opnds[2].reg.regno))
as_warn (_("unpredictable: identical transfer and status registers"
   " --`%s'"),
 str);

so either that op0 == op2 test is spurious, or the warning message is
misleading.

Please ask on binut...@sourceware.org and/or file a bug at
https://sourceware.org/bugzilla/ ?


Segher

-- 
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 jailhouse-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.