All of lore.kernel.org
 help / color / mirror / Atom feed
* KVM userspace GICv2 IRQ controller on platform with GICv3
@ 2021-10-04 10:07 Lukas Jünger
  2021-10-04 10:24 ` Marc Zyngier
  0 siblings, 1 reply; 9+ messages in thread
From: Lukas Jünger @ 2021-10-04 10:07 UTC (permalink / raw)
  To: kvmarm; +Cc: maz, will, catalin.marinas


[-- Attachment #1.1: Type: text/plain, Size: 676 bytes --]

Hello,

I am trying to run an emulator that uses KVM on arm64 to execute code. 
The emulator contains a userspace model of a GICv2 IRQ controller. The 
platform that I am running on (n1sdp) has a GICv3. When I boot Linux in 
the emulator I run into gic_check_cpu_features()  in 
drivers/irqchip/irq-gic.c, which taints the kernel as the host uses 
system registers to communicate with the host GICv3. I saw that 
ICC_SRE_ELx can be used to force MMIO, but setting this from inside the 
VM did not work and using KVM_SET_ONE_REG failed with error.

Is there a way to use a userspace GICv2 model with KVM on a GICv3 host 
without tainting?

Thanks,

Lukas



[-- Attachment #1.2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 5964 bytes --]

[-- Attachment #2: Type: text/plain, Size: 151 bytes --]

_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: KVM userspace GICv2 IRQ controller on platform with GICv3
  2021-10-04 10:07 KVM userspace GICv2 IRQ controller on platform with GICv3 Lukas Jünger
@ 2021-10-04 10:24 ` Marc Zyngier
  2021-10-04 10:30   ` Lukas Jünger
  0 siblings, 1 reply; 9+ messages in thread
From: Marc Zyngier @ 2021-10-04 10:24 UTC (permalink / raw)
  To: Lukas Jünger; +Cc: catalin.marinas, will, kvmarm

Hi Lukas,

On Mon, 04 Oct 2021 11:07:47 +0100,
Lukas Jünger <lukas.juenger@ice.rwth-aachen.de> wrote:
> 
> Hello,
> 
> I am trying to run an emulator that uses KVM on arm64 to execute
> code. The emulator contains a userspace model of a GICv2 IRQ
> controller. The platform that I am running on (n1sdp) has a

N1-SDP? My condolences...

> GICv3. When I boot Linux in the emulator I run into
> gic_check_cpu_features()  in drivers/irqchip/irq-gic.c, which taints
> the kernel as the host uses system registers to communicate with the
> host GICv3. I saw that ICC_SRE_ELx can be used to force MMIO, but
> setting this from inside the VM did not work and using KVM_SET_ONE_REG
> failed with error.

N1-SDP doesn't implement the MMIO interface at all, and our GIC
emulation doesn't either. Both are valid implementations.

> 
> Is there a way to use a userspace GICv2 model with KVM on a GICv3 host
> without tainting?

The tainting happens because you have created a VM with a GICv3
irqchip (at some point, your VMM calls into KVM to create a device
with the KVM_DEV_TYPE_ARM_VGIC_V3 attribute). The guest then sees that
GICv3 is enabled (ICC_SRE_ELx.SRE==1), and yet you somehow expose a
GICv2 to the guest (either via DT or ACPI). That's illegal.

If you want a userspace interrupt controller, you need prevent the
creation of an in-kernel interrupt controller, which is a change in
your VMM or maybe a configuration change.

	M.

-- 
Without deviation from the norm, progress is not possible.
_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: KVM userspace GICv2 IRQ controller on platform with GICv3
  2021-10-04 10:24 ` Marc Zyngier
@ 2021-10-04 10:30   ` Lukas Jünger
  2021-10-04 11:02     ` Marc Zyngier
  0 siblings, 1 reply; 9+ messages in thread
From: Lukas Jünger @ 2021-10-04 10:30 UTC (permalink / raw)
  To: Marc Zyngier; +Cc: catalin.marinas, will, kvmarm


[-- Attachment #1.1: Type: text/plain, Size: 2157 bytes --]

On 04.10.21 12:24, Marc Zyngier wrote:
> Hi Lukas,

Hi Mark,

Thanks for your quick reply.

> On Mon, 04 Oct 2021 11:07:47 +0100,
> Lukas Jünger <lukas.juenger@ice.rwth-aachen.de> wrote:
>> Hello,
>>
>> I am trying to run an emulator that uses KVM on arm64 to execute
>> code. The emulator contains a userspace model of a GICv2 IRQ
>> controller. The platform that I am running on (n1sdp) has a
> N1-SDP? My condolences...
Is there more to this?
>> GICv3. When I boot Linux in the emulator I run into
>> gic_check_cpu_features()  in drivers/irqchip/irq-gic.c, which taints
>> the kernel as the host uses system registers to communicate with the
>> host GICv3. I saw that ICC_SRE_ELx can be used to force MMIO, but
>> setting this from inside the VM did not work and using KVM_SET_ONE_REG
>> failed with error.
> N1-SDP doesn't implement the MMIO interface at all, and our GIC
> emulation doesn't either. Both are valid implementations.
>
>> Is there a way to use a userspace GICv2 model with KVM on a GICv3 host
>> without tainting?
> The tainting happens because you have created a VM with a GICv3
> irqchip (at some point, your VMM calls into KVM to create a device
> with the KVM_DEV_TYPE_ARM_VGIC_V3 attribute). The guest then sees that
> GICv3 is enabled (ICC_SRE_ELx.SRE==1), and yet you somehow expose a
> GICv2 to the guest (either via DT or ACPI). That's illegal.
>
> If you want a userspace interrupt controller, you need prevent the
> creation of an in-kernel interrupt controller, which is a change in
> your VMM or maybe a configuration change.
I'm not using an in-kernel irq controller, at least I don't set one up. 
This is all custom, so no QEMU etc. The GICv2 is also a custom model 
that lives in user space. The guest gets a DT telling it that there is a 
GICv2 and it should access it via MMIO. This all used to work on 
Raspberry Pi 3 and Socionext Synquacer. The port to N1-SDP is giving me 
trouble. I understand why it is tainting the kernel, I was just 
wondering if I could somehow tell KVM to set this up correctly, e.g. by 
setting the ICC_SRE_ELx.
>
> 	M.
Best regards,
Lukas


[-- Attachment #1.2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 5964 bytes --]

[-- Attachment #2: Type: text/plain, Size: 151 bytes --]

_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: KVM userspace GICv2 IRQ controller on platform with GICv3
  2021-10-04 10:30   ` Lukas Jünger
@ 2021-10-04 11:02     ` Marc Zyngier
  2021-10-04 11:27       ` Lukas Jünger
  0 siblings, 1 reply; 9+ messages in thread
From: Marc Zyngier @ 2021-10-04 11:02 UTC (permalink / raw)
  To: Lukas Jünger; +Cc: catalin.marinas, will, kvmarm

On Mon, 04 Oct 2021 11:30:06 +0100,
Lukas Jünger <lukas.juenger@ice.rwth-aachen.de> wrote:
> 
> [1  <text/plain (en-US); utf-8 (quoted-printable)>]
> On 04.10.21 12:24, Marc Zyngier wrote:
> > Hi Lukas,
> 
> Hi Mark,
> 
> Thanks for your quick reply.
> 
> > On Mon, 04 Oct 2021 11:07:47 +0100,
> > Lukas Jünger <lukas.juenger@ice.rwth-aachen.de> wrote:
> >> Hello,
> >> 
> >> I am trying to run an emulator that uses KVM on arm64 to execute
> >> code. The emulator contains a userspace model of a GICv2 IRQ
> >> controller. The platform that I am running on (n1sdp) has a
> > N1-SDP? My condolences...
> Is there more to this?

How do you like the PCI patches? :D

> >> GICv3. When I boot Linux in the emulator I run into
> >> gic_check_cpu_features()  in drivers/irqchip/irq-gic.c, which taints
> >> the kernel as the host uses system registers to communicate with the
> >> host GICv3. I saw that ICC_SRE_ELx can be used to force MMIO, but
> >> setting this from inside the VM did not work and using KVM_SET_ONE_REG
> >> failed with error.
> > N1-SDP doesn't implement the MMIO interface at all, and our GIC
> > emulation doesn't either. Both are valid implementations.
> > 
> >> Is there a way to use a userspace GICv2 model with KVM on a GICv3 host
> >> without tainting?
> > The tainting happens because you have created a VM with a GICv3
> > irqchip (at some point, your VMM calls into KVM to create a device
> > with the KVM_DEV_TYPE_ARM_VGIC_V3 attribute). The guest then sees that
> > GICv3 is enabled (ICC_SRE_ELx.SRE==1), and yet you somehow expose a
> > GICv2 to the guest (either via DT or ACPI). That's illegal.
> > 
> > If you want a userspace interrupt controller, you need prevent the
> > creation of an in-kernel interrupt controller, which is a change in
> > your VMM or maybe a configuration change.
> I'm not using an in-kernel irq controller, at least I don't set one
> up. This is all custom, so no QEMU etc. The GICv2 is also a custom
> model that lives in user space. The guest gets a DT telling it that
> there is a GICv2 and it should access it via MMIO. This all used to
> work on Raspberry Pi 3

RPI3 doesn't have a GIC at all, so the example is a bit moot.

> and Socionext Synquacer.

This one however is more interesting, as it has a GICv3 + v2 compat.

> The port to N1-SDP is
> giving me trouble. I understand why it is tainting the kernel, I was
> just wondering if I could somehow tell KVM to set this up correctly,
> e.g. by setting the ICC_SRE_ELx.

KVM doesn't *set* ICC_SRE_EL1.SRE. It is RAO/WI on this machine, which
is perfectly legal. However, KVM traps this access and emulates it
(access_gic_sre() returns vcpu->arch.vgic_cpu.vgic_v3.vgic_sre).

So if you see ICC_SRE_EL1.SRE==1 in your guest, that's because
vgic_sre is set to something that is non-zero. The only way for this
bit to be set is in vgic_v3_enable(), which has the following code:

<quote>
	if (vcpu->kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3) {
		vgic_v3->vgic_sre = (ICC_SRE_EL1_DIB |
				     ICC_SRE_EL1_DFB |
				     ICC_SRE_EL1_SRE);
		vcpu->arch.vgic_cpu.pendbaser = INITIAL_PENDBASER_VALUE;
	} else {
		vgic_v3->vgic_sre = 0;
	}
</quote>

So short of a terrible bug that would dump random values in this
structure, you are setting vgic_model to a GICv3 implementation. This
can only be done from userspace if you are creating a GICv3 irqchip.

Without seeing what your userspace does, I'm afraid I can't help you
much further. Can you please provide some traces of what it does? A
strace dump would certainly help.

Thanks,

	M.

-- 
Without deviation from the norm, progress is not possible.
_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: KVM userspace GICv2 IRQ controller on platform with GICv3
  2021-10-04 11:02     ` Marc Zyngier
@ 2021-10-04 11:27       ` Lukas Jünger
  2021-10-04 13:11         ` Marc Zyngier
  0 siblings, 1 reply; 9+ messages in thread
From: Lukas Jünger @ 2021-10-04 11:27 UTC (permalink / raw)
  To: Marc Zyngier; +Cc: catalin.marinas, will, kvmarm


[-- Attachment #1.1.1: Type: text/plain, Size: 4121 bytes --]

On 04.10.21 13:02, Marc Zyngier wrote:
> On Mon, 04 Oct 2021 11:30:06 +0100,
> Lukas Jünger <lukas.juenger@ice.rwth-aachen.de> wrote:
>> [1  <text/plain (en-US); utf-8 (quoted-printable)>]
>> On 04.10.21 12:24, Marc Zyngier wrote:
>>> Hi Lukas,
>> Hi Mark,
>>
>> Thanks for your quick reply.
>>
>>> On Mon, 04 Oct 2021 11:07:47 +0100,
>>> Lukas Jünger <lukas.juenger@ice.rwth-aachen.de> wrote:
>>>> Hello,
>>>>
>>>> I am trying to run an emulator that uses KVM on arm64 to execute
>>>> code. The emulator contains a userspace model of a GICv2 IRQ
>>>> controller. The platform that I am running on (n1sdp) has a
>>> N1-SDP? My condolences...
>> Is there more to this?
> How do you like the PCI patches? :D
Ah, that's what you were alluding to. PCI+ARM seems to be tricky 
somehow. The SynQuacer dev box as well as the ROCKPro 64 I was using 
before also had PCI issues.
>>>> GICv3. When I boot Linux in the emulator I run into
>>>> gic_check_cpu_features()  in drivers/irqchip/irq-gic.c, which taints
>>>> the kernel as the host uses system registers to communicate with the
>>>> host GICv3. I saw that ICC_SRE_ELx can be used to force MMIO, but
>>>> setting this from inside the VM did not work and using KVM_SET_ONE_REG
>>>> failed with error.
>>> N1-SDP doesn't implement the MMIO interface at all, and our GIC
>>> emulation doesn't either. Both are valid implementations.
>>>
>>>> Is there a way to use a userspace GICv2 model with KVM on a GICv3 host
>>>> without tainting?
>>> The tainting happens because you have created a VM with a GICv3
>>> irqchip (at some point, your VMM calls into KVM to create a device
>>> with the KVM_DEV_TYPE_ARM_VGIC_V3 attribute). The guest then sees that
>>> GICv3 is enabled (ICC_SRE_ELx.SRE==1), and yet you somehow expose a
>>> GICv2 to the guest (either via DT or ACPI). That's illegal.
>>>
>>> If you want a userspace interrupt controller, you need prevent the
>>> creation of an in-kernel interrupt controller, which is a change in
>>> your VMM or maybe a configuration change.
>> I'm not using an in-kernel irq controller, at least I don't set one
>> up. This is all custom, so no QEMU etc. The GICv2 is also a custom
>> model that lives in user space. The guest gets a DT telling it that
>> there is a GICv2 and it should access it via MMIO. This all used to
>> work on Raspberry Pi 3
> RPI3 doesn't have a GIC at all, so the example is a bit moot.
True. Fair point.
>> and Socionext Synquacer.
> This one however is more interesting, as it has a GICv3 + v2 compat.
>
>> The port to N1-SDP is
>> giving me trouble. I understand why it is tainting the kernel, I was
>> just wondering if I could somehow tell KVM to set this up correctly,
>> e.g. by setting the ICC_SRE_ELx.
> KVM doesn't *set* ICC_SRE_EL1.SRE. It is RAO/WI on this machine, which
> is perfectly legal. However, KVM traps this access and emulates it
> (access_gic_sre() returns vcpu->arch.vgic_cpu.vgic_v3.vgic_sre).
>
> So if you see ICC_SRE_EL1.SRE==1 in your guest, that's because
> vgic_sre is set to something that is non-zero. The only way for this
> bit to be set is in vgic_v3_enable(), which has the following code:
>
> <quote>
> 	if (vcpu->kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3) {
> 		vgic_v3->vgic_sre = (ICC_SRE_EL1_DIB |
> 				     ICC_SRE_EL1_DFB |
> 				     ICC_SRE_EL1_SRE);
> 		vcpu->arch.vgic_cpu.pendbaser = INITIAL_PENDBASER_VALUE;
> 	} else {
> 		vgic_v3->vgic_sre = 0;
> 	}
> </quote>
>
> So short of a terrible bug that would dump random values in this
> structure, you are setting vgic_model to a GICv3 implementation. This
> can only be done from userspace if you are creating a GICv3 irqchip.
>
> Without seeing what your userspace does, I'm afraid I can't help you
> much further. Can you please provide some traces of what it does? A
> strace dump would certainly help.

Could it be that this is because I use KVM_ARM_PREFERRED_TARGET and init 
the vcpu from this config?

I have attached an strace log file.

>
> Thanks,
>
> 	M.

Thank you for your help,

Lukas


[-- Attachment #1.1.2: strace.log --]
[-- Type: text/x-log, Size: 55846 bytes --]

execve("bin/aoavp", ["bin/aoavp", "-f", "config/linux_nvdla.cfg"], 0xffffcaf74200 /* 30 vars */) = 0
brk(NULL)                               = 0x339cd000
faccessat(AT_FDCWD, "/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/aarch64/atomics/libelf.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/aarch64/libelf.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/atomics/libelf.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/libelf.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/aarch64/atomics/libelf.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/aarch64/libelf.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/atomics/libelf.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/libelf.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=19674, ...}) = 0
mmap(NULL, 19674, PROT_READ, MAP_PRIVATE, 3, 0) = 0xffff987aa000
close(3)                                = 0
faccessat(AT_FDCWD, "/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/aarch64-linux-gnu/libelf.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0@.\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=104808, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff987a8000
mmap(NULL, 168328, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9875b000
mprotect(0xffff98774000, 61440, PROT_NONE) = 0
mmap(0xffff98783000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18000) = 0xffff98783000
close(3)                                = 0
openat(AT_FDCWD, "lib/tls/aarch64/atomics/libz.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/aarch64/libz.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/atomics/libz.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/libz.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/aarch64/atomics/libz.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/aarch64/libz.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/atomics/libz.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/libz.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libz.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0  \0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=116808, ...}) = 0
mmap(NULL, 180392, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9872e000
mprotect(0xffff9874a000, 61440, PROT_NONE) = 0
mmap(0xffff98759000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b000) = 0xffff98759000
close(3)                                = 0
openat(AT_FDCWD, "lib/tls/aarch64/atomics/librt.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/aarch64/librt.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/atomics/librt.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/librt.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/aarch64/atomics/librt.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/aarch64/librt.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/atomics/librt.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/librt.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/librt.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\220\36\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=27448, ...}) = 0
mmap(NULL, 90920, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff98717000
mprotect(0xffff9871d000, 61440, PROT_NONE) = 0
mmap(0xffff9872c000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x5000) = 0xffff9872c000
close(3)                                = 0
openat(AT_FDCWD, "lib/tls/aarch64/atomics/libnvdla_cmod.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/aarch64/libnvdla_cmod.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/atomics/libnvdla_cmod.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/libnvdla_cmod.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/aarch64/atomics/libnvdla_cmod.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/aarch64/libnvdla_cmod.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/atomics/libnvdla_cmod.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/libnvdla_cmod.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\260\372&\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=7236592, ...}) = 0
getcwd("/home/ubuntu/aoavp/DEBUG", 128) = 25
mmap(NULL, 5216832, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9821d000
mprotect(0xffff986cc000, 61440, PROT_NONE) = 0
mmap(0xffff986db000, 237568, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4ae000) = 0xffff986db000
mmap(0xffff98715000, 6720, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff98715000
close(3)                                = 0
openat(AT_FDCWD, "lib/tls/aarch64/atomics/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/aarch64/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/atomics/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/aarch64/atomics/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/aarch64/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/atomics/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/aarch64-linux-gnu/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\20\317\10\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=1578656, ...}) = 0
mmap(NULL, 1654416, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff98089000
mprotect(0xffff981fe000, 65536, PROT_NONE) = 0
mmap(0xffff9820e000, 49152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x175000) = 0xffff9820e000
mmap(0xffff9821a000, 11920, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff9821a000
close(3)                                = 0
openat(AT_FDCWD, "lib/tls/aarch64/atomics/libm.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/aarch64/libm.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/atomics/libm.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/libm.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/aarch64/atomics/libm.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/aarch64/libm.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/atomics/libm.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/libm.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0@\257\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=691544, ...}) = 0
mmap(NULL, 753784, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff97fd0000
mprotect(0xffff98078000, 61440, PROT_NONE) = 0
mmap(0xffff98087000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xa7000) = 0xffff98087000
close(3)                                = 0
openat(AT_FDCWD, "lib/tls/aarch64/atomics/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/aarch64/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/atomics/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/aarch64/atomics/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/aarch64/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/atomics/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\20)\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=80168, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff987a6000
mmap(NULL, 144440, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff97fac000
mprotect(0xffff97fbf000, 61440, PROT_NONE) = 0
mmap(0xffff97fce000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x12000) = 0xffff97fce000
close(3)                                = 0
openat(AT_FDCWD, "lib/tls/aarch64/atomics/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/aarch64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/atomics/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/aarch64/atomics/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/aarch64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/atomics/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\330\\\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=137872, ...}) = 0
mmap(NULL, 177104, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff97f80000
mprotect(0xffff97f97000, 61440, PROT_NONE) = 0
mmap(0xffff97fa6000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16000) = 0xffff97fa6000
mmap(0xffff97fa8000, 13264, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff97fa8000
close(3)                                = 0
openat(AT_FDCWD, "lib/tls/aarch64/atomics/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/aarch64/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/atomics/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/aarch64/atomics/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/aarch64/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/atomics/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0`\10\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1341248, ...}) = 0
mmap(NULL, 1409880, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff97e27000
mprotect(0xffff97f66000, 65536, PROT_NONE) = 0
mmap(0xffff97f76000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x13f000) = 0xffff97f76000
mmap(0xffff97f7c000, 13144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff97f7c000
close(3)                                = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff987a4000
mprotect(0xffff97f76000, 16384, PROT_READ) = 0
mprotect(0xffff97fa6000, 4096, PROT_READ) = 0
mprotect(0xffff97fce000, 4096, PROT_READ) = 0
mprotect(0xffff98087000, 4096, PROT_READ) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff987a2000
mprotect(0xffff9820e000, 40960, PROT_READ) = 0
mprotect(0xffff986db000, 155648, PROT_READ) = 0
mprotect(0xffff9872c000, 4096, PROT_READ) = 0
mprotect(0xffff98759000, 4096, PROT_READ) = 0
mprotect(0xffff98783000, 4096, PROT_READ) = 0
mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff97e24000
mprotect(0x7f0000, 77824, PROT_READ)    = 0
mprotect(0xffff987b2000, 4096, PROT_READ) = 0
munmap(0xffff987aa000, 19674)           = 0
set_tid_address(0xffff987a4790)         = 2121
set_robust_list(0xffff987a47a0, 24)     = 0
rt_sigaction(SIGRTMIN, {sa_handler=0xffff97f85760, sa_mask=[], sa_flags=SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {sa_handler=0xffff97f85828, sa_mask=[], sa_flags=SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
brk(NULL)                               = 0x339cd000
brk(0x339ee000)                         = 0x339ee000
futex(0xffff9821b060, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0xffff9821b064, FUTEX_WAKE_PRIVATE, 2147483647) = 0
mmap(NULL, 3149824, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff97b23000
brk(0x33a12000)                         = 0x33a12000
faccessat(AT_FDCWD, "config/linux_nvdla.cfg", F_OK) = 0
ioctl(2, TCGETS, {B38400 opost isig icanon echo ...}) = 0
readlinkat(AT_FDCWD, "/proc/self/exe", "/home/ubuntu/aoavp/DEBUG/bin/aoa"..., 4095) = 34
openat(AT_FDCWD, "/proc/self/loginuid", O_RDONLY) = 3
read(3, "1000", 12)                     = 4
close(3)                                = 0
socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 3
connect(3, {sa_family=AF_UNIX, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
close(3)                                = 0
socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 3
connect(3, {sa_family=AF_UNIX, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
close(3)                                = 0
openat(AT_FDCWD, "/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=513, ...}) = 0
read(3, "# /etc/nsswitch.conf\n#\n# Example"..., 4096) = 513
read(3, "", 4096)                       = 0
close(3)                                = 0
openat(AT_FDCWD, "lib/tls/aarch64/atomics/libnss_compat.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/aarch64/libnss_compat.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/atomics/libnss_compat.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/libnss_compat.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/aarch64/atomics/libnss_compat.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/aarch64/libnss_compat.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/atomics/libnss_compat.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/libnss_compat.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=19674, ...}) = 0
mmap(NULL, 19674, PROT_READ, MAP_PRIVATE, 3, 0) = 0xffff987aa000
close(3)                                = 0
faccessat(AT_FDCWD, "/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libnss_compat.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0P\23\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=31344, ...}) = 0
mmap(NULL, 96344, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff97b0b000
mprotect(0xffff97b12000, 61440, PROT_NONE) = 0
mmap(0xffff97b21000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0xffff97b21000
close(3)                                = 0
mprotect(0xffff97b21000, 4096, PROT_READ) = 0
munmap(0xffff987aa000, 19674)           = 0
openat(AT_FDCWD, "lib/tls/aarch64/atomics/libnss_nis.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/aarch64/libnss_nis.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/atomics/libnss_nis.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/libnss_nis.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/aarch64/atomics/libnss_nis.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/aarch64/libnss_nis.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/atomics/libnss_nis.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/libnss_nis.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=19674, ...}) = 0
mmap(NULL, 19674, PROT_READ, MAP_PRIVATE, 3, 0) = 0xffff987aa000
close(3)                                = 0
faccessat(AT_FDCWD, "/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libnss_nis.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0 !\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=43344, ...}) = 0
mmap(NULL, 107608, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff97af0000
mprotect(0xffff97afa000, 61440, PROT_NONE) = 0
mmap(0xffff97b09000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x9000) = 0xffff97b09000
close(3)                                = 0
openat(AT_FDCWD, "lib/tls/aarch64/atomics/libnsl.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/aarch64/libnsl.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/atomics/libnsl.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/libnsl.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/aarch64/atomics/libnsl.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/aarch64/libnsl.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/atomics/libnsl.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/libnsl.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libnsl.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\300A\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=76592, ...}) = 0
mmap(NULL, 149864, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff97acb000
mprotect(0xffff97add000, 61440, PROT_NONE) = 0
mmap(0xffff97aec000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11000) = 0xffff97aec000
mmap(0xffff97aee000, 6504, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff97aee000
close(3)                                = 0
openat(AT_FDCWD, "lib/tls/aarch64/atomics/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/aarch64/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/atomics/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/tls/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/aarch64/atomics/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/aarch64/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/atomics/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "lib/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0$\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=43336, ...}) = 0
mmap(NULL, 132416, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff97aaa000
mprotect(0xffff97ab4000, 61440, PROT_NONE) = 0
mmap(0xffff97ac3000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x9000) = 0xffff97ac3000
mmap(0xffff97ac5000, 21824, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff97ac5000
close(3)                                = 0
mprotect(0xffff97ac3000, 4096, PROT_READ) = 0
mprotect(0xffff97aec000, 4096, PROT_READ) = 0
mprotect(0xffff97b09000, 4096, PROT_READ) = 0
munmap(0xffff987aa000, 19674)           = 0
openat(AT_FDCWD, "/etc/passwd", O_RDONLY|O_CLOEXEC) = 3
lseek(3, 0, SEEK_CUR)                   = 0
fstat(3, {st_mode=S_IFREG|0644, st_size=1352, ...}) = 0
mmap(NULL, 1352, PROT_READ, MAP_SHARED, 3, 0) = 0xffff987ae000
lseek(3, 1352, SEEK_SET)                = 1352
munmap(0xffff987ae000, 1352)            = 0
close(3)                                = 0
getpid()                                = 2121
openat(AT_FDCWD, "config/linux_nvdla.cfg", O_RDONLY) = 3
read(3, "################################"..., 8191) = 3010
read(3, "", 8191)                       = 0
close(3)                                = 0
write(2, "\n", 1)                       = 1
write(2, "        ", 8)                 = 8
write(2, "SystemC 2.3.3-Accellera --- Oct "..., 48) = 48
write(2, "\n", 1)                       = 1
write(2, "        ", 8)                 = 8
write(2, "Copyright (c) 1996-2018 by all C"..., 44) = 44
write(2, "\n", 1)                       = 1
write(2, "        ", 8)                 = 8
write(2, "ALL RIGHTS RESERVED", 19)     = 19
write(2, "\n", 1)                       = 1
readlinkat(AT_FDCWD, "/proc/self/exe", "/home/ubuntu/aoavp/DEBUG/bin/aoa"..., 4095) = 34
readlinkat(AT_FDCWD, "/proc/self/exe", "/home/ubuntu/aoavp/DEBUG/bin/aoa"..., 4095) = 34
rt_sigaction(SIGSEGV, {sa_handler=0x62938c, sa_mask=[], sa_flags=SA_SIGINFO}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
brk(0x33a33000)                         = 0x33a33000
mmap(NULL, 270532607, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0xffff878aa000
openat(AT_FDCWD, "config/../sw/linux_nvdla/boot.bin", O_RDONLY) = 3
lseek(3, 0, SEEK_END)                   = 104
lseek(3, 0, SEEK_CUR)                   = 104
lseek(3, 0, SEEK_SET)                   = 0
read(3, "\240\3148\325\300\0\200\322\240\314\30\325\240\0008\325\0\34@\222\37\f@\362\201\0\0T\244\1\0X"..., 8191) = 104
close(3)                                = 0
openat(AT_FDCWD, "config/../sw/linux_nvdla/Image-4.19.4", O_RDONLY) = 3
lseek(3, 0, SEEK_END)                   = 26621960
lseek(3, 0, SEEK_CUR)                   = 26621960
lseek(3, 0, SEEK_SET)                   = 0
read(3, "\0@\31\24\0\0\0\0\0\0\10\0\0\0\0\0\0\300\233\1\0\0\0\0\n\0\0\0\0\0\0\0"..., 26621960) = 26621960
close(3)                                = 0
openat(AT_FDCWD, "config/../sw/linux_nvdla/aoavp_linux_nvdla.dtb", O_RDONLY) = 3
lseek(3, 0, SEEK_END)                   = 1918
lseek(3, 0, SEEK_CUR)                   = 1918
lseek(3, 0, SEEK_SET)                   = 0
read(3, "\320\r\376\355\0\0\7~\0\0\0008\0\0\6T\0\0\0(\0\0\0\21\0\0\0\20\0\0\0\0"..., 8191) = 1918
close(3)                                = 0
ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(0, SNDCTL_TMR_CONTINUE or TCSETSF, {B38400 opost isig -icanon -echo ...}) = 0
ioctl(0, TCGETS, {B38400 opost isig -icanon -echo ...}) = 0
rt_sigaction(SIGINT, {sa_handler=0x6304b4, sa_mask=[INT], sa_flags=SA_RESTART}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGTSTP, {sa_handler=0x6304b4, sa_mask=[TSTP], sa_flags=SA_RESTART}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
socket(AF_INET, SOCK_STREAM, IPPROTO_IP) = 3
setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
bind(3, {sa_family=AF_INET, sin_port=htons(51010), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
listen(3, 1)                            = 0
fcntl(3, F_GETFL)                       = 0x2 (flags O_RDWR)
fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK)    = 0
accept(3, 0x33a16400, [16])             = -1 EAGAIN (Resource temporarily unavailable)
fcntl(3, F_GETFL)                       = 0x802 (flags O_RDWR|O_NONBLOCK)
fcntl(3, F_SETFL, O_RDWR)               = 0
rt_sigaction(SIGIO, {sa_handler=0x649904, sa_mask=[], sa_flags=SA_RESTART|SA_SIGINFO}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
fcntl(3, F_GETFL)                       = 0x2 (flags O_RDWR)
getpid()                                = 2121
fcntl(3, F_SETOWN, 2121)                = 0
fcntl(3, F_SETFL, O_RDWR|FASYNC)        = 0
fcntl(3, F_SETSIG, SIGIO)               = 0
brk(0x33a54000)                         = 0x33a54000
brk(0x33a75000)                         = 0x33a75000
brk(0x33a96000)                         = 0x33a96000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff87809000
mmap(NULL, 167936, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff877e0000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff8773f000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff876ee000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff8764d000
mmap(NULL, 167936, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff87624000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff87583000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff87532000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff87491000
mmap(NULL, 167936, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff87468000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff873c7000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff87376000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff872d5000
mmap(NULL, 167936, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff872ac000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff8720b000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff871ba000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff87119000
mmap(NULL, 167936, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff870f0000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff8704f000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff86ffe000
brk(0x33ab7000)                         = 0x33ab7000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff86f5d000
mmap(NULL, 167936, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff86f34000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff86e93000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff86e42000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff86da1000
mmap(NULL, 167936, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff86d78000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff86cd7000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff86c86000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff86be5000
mmap(NULL, 167936, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff86bbc000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff86b1b000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff86aca000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff86a29000
mmap(NULL, 167936, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff86a00000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff8695f000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff8690e000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff8686d000
mmap(NULL, 167936, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff86844000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff867a3000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff86752000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff86701000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff866b0000
brk(0x33ae1000)                         = 0x33ae1000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff8665f000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff8660e000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff865bd000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff8656c000
brk(0x33b08000)                         = 0x33b08000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff8651b000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff864ca000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff86479000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff86428000
brk(0x33b29000)                         = 0x33b29000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff86387000
mmap(NULL, 167936, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff8635e000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff862bd000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff8626c000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff861cb000
mmap(NULL, 167936, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff861a2000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff86101000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff860b0000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff8600f000
mmap(NULL, 167936, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff85fe6000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff85f45000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff85ef4000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff85e53000
mmap(NULL, 167936, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff85e2a000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff85d89000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff85d38000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff85c97000
mmap(NULL, 167936, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff85c6e000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff85bcd000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff85b7c000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff85adb000
mmap(NULL, 167936, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff85ab2000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff85a11000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff859c0000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff8591f000
mmap(NULL, 167936, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff858f6000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff85855000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff85804000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff85763000
mmap(NULL, 167936, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff8573a000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff85699000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff85648000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff855a7000
mmap(NULL, 167936, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff8557e000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff854dd000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff8548c000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff853eb000
mmap(NULL, 167936, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff853c2000
mmap(NULL, 659456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff85321000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff852d0000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff8527f000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff8522e000
brk(0x33b50000)                         = 0x33b50000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff851dd000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff8518c000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff8513b000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff850ea000
brk(0x33b76000)                         = 0x33b76000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff85099000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff85048000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff84ff7000
mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff84fa6000
brk(0x33b97000)                         = 0x33b97000
brk(0x33bb8000)                         = 0x33bb8000
mmap(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff84f25000
brk(0x33be4000)                         = 0x33be4000
brk(0x33c05000)                         = 0x33c05000
mmap(NULL, 200704, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff84ef4000
mmap(NULL, 200704, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff84ec3000
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff84e82000
brk(0x33c2c000)                         = 0x33c2c000
brk(0x33c50000)                         = 0x33c50000
brk(0x33c75000)                         = 0x33c75000
brk(0x33c99000)                         = 0x33c99000
brk(0x33cbe000)                         = 0x33cbe000
brk(0x33cee000)                         = 0x33cee000
brk(0x33d0f000)                         = 0x33d0f000
brk(0x33d30000)                         = 0x33d30000
brk(0x33d51000)                         = 0x33d51000
brk(0x33d72000)                         = 0x33d72000
brk(0x33d93000)                         = 0x33d93000
mmap(NULL, 1075838975, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0xffff44c82000
mmap(NULL, 8392704, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0xffff44481000
mprotect(0xffff44482000, 8388608, PROT_READ|PROT_WRITE) = 0
clone(child_stack=0xffff44c80ad0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0xffff44c81290, tls=0xffff44c818b0, child_tidptr=0xffff44c81290) = 2122
openat(AT_FDCWD, "/proc/self/task/2122/comm", O_RDWR) = 6
write(6, "rsp_52100", 9)                = 9
close(6)                                = 0
rt_sigaction(SIGUSR1, {sa_handler=0x5ae5b8, sa_mask=[], sa_flags=SA_SIGINFO}, NULL, 8) = 0
perf_event_open({type=PERF_TYPE_HARDWARE, size=PERF_ATTR_SIZE_VER5, config=PERF_COUNT_HW_INSTRUCTIONS, ...}, 0, -1, -1, 0) = 6
fcntl(6, F_SETFL, O_RDONLY|O_NONBLOCK|FASYNC) = 0
fcntl(6, F_SETSIG, SIGUSR1)             = 0
getpid()                                = 2121
fcntl(6, F_SETOWN, 2121)                = 0
ioctl(6, PERF_EVENT_IOC_RESET, 0x844c54a9f1a95000) = 0
openat(AT_FDCWD, "/dev/kvm", O_RDWR)    = 7
ioctl(7, _IOC(0, 0xae, 0x1, 0), 0)      = 8
ioctl(8, _IOC(0, 0xae, 0x41, 0), 0)     = 9
ioctl(8, _IOC(_IOC_WRITE, 0xae, 0x46, 0x20), {slot=0, flags=0, guest_phys_addr=0, memory_size=268435456, userspace_addr=0xffff87a00000}) = 0
ioctl(8, _IOC(_IOC_WRITE, 0xae, 0x46, 0x20), {slot=1, flags=0, guest_phys_addr=0xc0000000, memory_size=268435456, userspace_addr=0xffff44e00000}) = 0
ioctl(7, _IOC(0, 0xae, 0x4, 0), 0)      = 8192
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_SHARED, 9, 0) = 0xffff987ad000
ioctl(8, _IOC(_IOC_READ, 0xae, 0xaf, 0x20), 0xffffe8018b98) = 0
ioctl(9, _IOC(_IOC_WRITE, 0xae, 0xae, 0x20), 0xffffe8018b98) = 0
ioctl(8, _IOC(0, 0xae, 0x3, 0), 0x10)   = 1
ioctl(8, _IOC(0, 0xae, 0x3, 0), 0x77)   = 6
write(2, "\33[32m", 5)                  = 5
write(2, "[I 0.000000000] system: starting"..., 73) = 73
write(2, "\33[0m", 4)                   = 4
write(2, "\n", 1)                       = 1
write(2, "\33[36m", 5)                  = 5
write(2, "[D 0.000000000] system: command "..., 52) = 52
write(2, "\33[0m", 4)                   = 4
write(2, "\n", 1)                       = 1
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff44440000
mprotect(0xffff44441000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff443ff000
mprotect(0xffff44400000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff443be000
mprotect(0xffff443bf000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff4437d000
mprotect(0xffff4437e000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff4433c000
mprotect(0xffff4433d000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff442fb000
mprotect(0xffff442fc000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff442ba000
mprotect(0xffff442bb000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff44279000
mprotect(0xffff4427a000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff44238000
mprotect(0xffff44239000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff441f7000
mprotect(0xffff441f8000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff441b6000
mprotect(0xffff441b7000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff44175000
mprotect(0xffff44176000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff44134000
mprotect(0xffff44135000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff440f3000
mprotect(0xffff440f4000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff440b2000
mprotect(0xffff440b3000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff44071000
mprotect(0xffff44072000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff44030000
mprotect(0xffff44031000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43fef000
mprotect(0xffff43ff0000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43fae000
mprotect(0xffff43faf000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43f6d000
mprotect(0xffff43f6e000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43f2c000
mprotect(0xffff43f2d000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43eeb000
mprotect(0xffff43eec000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43eaa000
mprotect(0xffff43eab000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43e69000
mprotect(0xffff43e6a000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43e28000
mprotect(0xffff43e29000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43de7000
mprotect(0xffff43de8000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43da6000
mprotect(0xffff43da7000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43d65000
mprotect(0xffff43d66000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43d24000
mprotect(0xffff43d25000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43ce3000
mprotect(0xffff43ce4000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43ca2000
mprotect(0xffff43ca3000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43c61000
mprotect(0xffff43c62000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43c20000
mprotect(0xffff43c21000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43bdf000
mprotect(0xffff43be0000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43b9e000
mprotect(0xffff43b9f000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43b5d000
mprotect(0xffff43b5e000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43b1c000
mprotect(0xffff43b1d000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43adb000
mprotect(0xffff43adc000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43a9a000
mprotect(0xffff43a9b000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43a59000
mprotect(0xffff43a5a000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43a18000
mprotect(0xffff43a19000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff439d7000
mprotect(0xffff439d8000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43996000
mprotect(0xffff43997000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43955000
mprotect(0xffff43956000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43914000
mprotect(0xffff43915000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff438d3000
mprotect(0xffff438d4000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43892000
mprotect(0xffff43893000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43851000
mprotect(0xffff43852000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43810000
mprotect(0xffff43811000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff437cf000
mprotect(0xffff437d0000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff4378e000
mprotect(0xffff4378f000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff4374d000
mprotect(0xffff4374e000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff4370c000
mprotect(0xffff4370d000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff436cb000
mprotect(0xffff436cc000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff4368a000
mprotect(0xffff4368b000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43649000
mprotect(0xffff4364a000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43608000
mprotect(0xffff43609000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff435c7000
mprotect(0xffff435c8000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43586000
mprotect(0xffff43587000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43545000
mprotect(0xffff43546000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43504000
mprotect(0xffff43505000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff434c3000
mprotect(0xffff434c4000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43482000
mprotect(0xffff43483000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43441000
mprotect(0xffff43442000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43400000
mprotect(0xffff43401000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff433bf000
mprotect(0xffff433c0000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff4337e000
mprotect(0xffff4337f000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff4333d000
mprotect(0xffff4333e000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff432fc000
mprotect(0xffff432fd000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff432bb000
mprotect(0xffff432bc000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff4327a000
mprotect(0xffff4327b000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43239000
mprotect(0xffff4323a000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff431f8000
mprotect(0xffff431f9000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff431b7000
mprotect(0xffff431b8000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43176000
mprotect(0xffff43177000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43135000
mprotect(0xffff43136000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff430f4000
mprotect(0xffff430f5000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff430b3000
mprotect(0xffff430b4000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43072000
mprotect(0xffff43073000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff43031000
mprotect(0xffff43032000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff42ff0000
mprotect(0xffff42ff1000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff42faf000
mprotect(0xffff42fb0000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff42f6e000
mprotect(0xffff42f6f000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff42f2d000
mprotect(0xffff42f2e000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff42eec000
mprotect(0xffff42eed000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff42eab000
mprotect(0xffff42eac000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff42e6a000
mprotect(0xffff42e6b000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff42e29000
mprotect(0xffff42e2a000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff42de8000
mprotect(0xffff42de9000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff42da7000
mprotect(0xffff42da8000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff42d66000
mprotect(0xffff42d67000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff42d25000
mprotect(0xffff42d26000, 4095, PROT_NONE) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff42ce4000
mprotect(0xffff42ce5000, 4095, PROT_NONE) = 0
ioctl(9, _IOC(_IOC_WRITE, 0xae, 0x9b, 0x208), 0xffff4447fbf8) = 0
close(6)                                = 0
perf_event_open({type=PERF_TYPE_HARDWARE, size=PERF_ATTR_SIZE_VER5, config=PERF_COUNT_HW_INSTRUCTIONS, ...}, 0, -1, -1, 0) = 6
fcntl(6, F_SETFL, O_RDONLY|O_NONBLOCK|FASYNC) = 0
fcntl(6, F_SETSIG, SIGUSR1)             = 0
getpid()                                = 2121
fcntl(6, F_SETOWN, 2121)                = 0
ioctl(6, PERF_EVENT_IOC_RESET, 0x844c54a9f1a95000) = 0
ioctl(6, PERF_EVENT_IOC_REFRESH, 0x1)   = 0
ioctl(9, _IOC(0, 0xae, 0x80, 0), 0)     = -1 EINTR (Interrupted system call)
--- SIGUSR1 {si_signo=SIGUSR1, si_code=0x6, si_pid=24, si_uid=0, si_value={int=6, ptr=0x6}} ---
rt_sigreturn({mask=[]})                 = -1 EINTR (Interrupted system call)
ioctl(6, PERF_EVENT_IOC_DISABLE, 0xffff987a4db0) = 0
read(6, "\251'\0\0\0\0\0\0", 8)         = 8
ioctl(9, _IOC(_IOC_WRITE, 0xae, 0x9b, 0x208), 0xffff4447fbf8) = 0
ioctl(6, PERF_EVENT_IOC_RESET, 0xffff4447fbf8) = 0
ioctl(6, PERF_EVENT_IOC_REFRESH, 0x1)   = 0
ioctl(9, _IOC(0, 0xae, 0x80, 0), 0)     = -1 EINTR (Interrupted system call)
--- SIGUSR1 {si_signo=SIGUSR1, si_code=0x6, si_pid=24, si_uid=0, si_value={int=6, ptr=0x6}} ---

[-- Attachment #1.2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 5964 bytes --]

[-- Attachment #2: Type: text/plain, Size: 151 bytes --]

_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: KVM userspace GICv2 IRQ controller on platform with GICv3
  2021-10-04 11:27       ` Lukas Jünger
@ 2021-10-04 13:11         ` Marc Zyngier
  2021-10-04 14:15           ` Lukas Jünger
  0 siblings, 1 reply; 9+ messages in thread
From: Marc Zyngier @ 2021-10-04 13:11 UTC (permalink / raw)
  To: Lukas Jünger; +Cc: catalin.marinas, will, kvmarm

On Mon, 04 Oct 2021 12:27:33 +0100,
Lukas Jünger <lukas.juenger@ice.rwth-aachen.de> wrote:
> 
> [1  <multipart/mixed (en-US) (7bit)>]
> [1.1  <text/plain; utf-8 (quoted-printable)>]
> On 04.10.21 13:02, Marc Zyngier wrote:
> > On Mon, 04 Oct 2021 11:30:06 +0100,
> > Lukas Jünger <lukas.juenger@ice.rwth-aachen.de> wrote:
> >> [1  <text/plain (en-US); utf-8 (quoted-printable)>]
> >> On 04.10.21 12:24, Marc Zyngier wrote:
> >>> Hi Lukas,
> >> Hi Mark,
> >> 
> >> Thanks for your quick reply.
> >> 

> >>> On Mon, 04 Oct 2021 11:07:47 +0100,
> >>> Lukas Jünger <lukas.juenger@ice.rwth-aachen.de> wrote:
> >>>> Hello,
> >>>> 
> >>>> I am trying to run an emulator that uses KVM on arm64 to execute
> >>>> code. The emulator contains a userspace model of a GICv2 IRQ
> >>>> controller. The platform that I am running on (n1sdp) has a
> >>> N1-SDP? My condolences...
> >> Is there more to this?
> > How do you like the PCI patches? :D
> Ah, that's what you were alluding to. PCI+ARM seems to be tricky
> somehow. The SynQuacer dev box as well as the ROCKPro 64 I was using
> before also had PCI issues.

I have no idea what you are running with, but neither of these two
machines have any issue with PCI here. What is your kernel version?

[...]

> >> The port to N1-SDP is
> >> giving me trouble. I understand why it is tainting the kernel, I was
> >> just wondering if I could somehow tell KVM to set this up correctly,
> >> e.g. by setting the ICC_SRE_ELx.
> > KVM doesn't *set* ICC_SRE_EL1.SRE. It is RAO/WI on this machine, which
> > is perfectly legal. However, KVM traps this access and emulates it
> > (access_gic_sre() returns vcpu->arch.vgic_cpu.vgic_v3.vgic_sre).
> > 
> > So if you see ICC_SRE_EL1.SRE==1 in your guest, that's because
> > vgic_sre is set to something that is non-zero. The only way for this
> > bit to be set is in vgic_v3_enable(), which has the following code:
> > 
> > <quote>
> > 	if (vcpu->kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3) {
> > 		vgic_v3->vgic_sre = (ICC_SRE_EL1_DIB |
> > 				     ICC_SRE_EL1_DFB |
> > 				     ICC_SRE_EL1_SRE);
> > 		vcpu->arch.vgic_cpu.pendbaser = INITIAL_PENDBASER_VALUE;
> > 	} else {
> > 		vgic_v3->vgic_sre = 0;
> > 	}
> > </quote>
> > 
> > So short of a terrible bug that would dump random values in this
> > structure, you are setting vgic_model to a GICv3 implementation. This
> > can only be done from userspace if you are creating a GICv3 irqchip.
> > 
> > Without seeing what your userspace does, I'm afraid I can't help you
> > much further. Can you please provide some traces of what it does? A
> > strace dump would certainly help.
> 
> Could it be that this is because I use KVM_ARM_PREFERRED_TARGET and
> init the vcpu from this config?

No, that's completely irrelevant.

> I have attached an strace log file.

I can't see anything useful there:

openat(AT_FDCWD, "/dev/kvm", O_RDWR)    = 7

// create VM
ioctl(7, _IOC(0, 0xae, 0x1, 0), 0)      = 8

// create vcpu
ioctl(8, _IOC(0, 0xae, 0x41, 0), 0)     = 9

// two memslots
ioctl(8, _IOC(_IOC_WRITE, 0xae, 0x46, 0x20), {slot=0, flags=0, guest_phys_addr=0, memory_size=268435456, userspace_addr=0xffff87a00000}) = 0
ioctl(8, _IOC(_IOC_WRITE, 0xae, 0x46, 0x20), {slot=1, flags=0, guest_phys_addr=0xc0000000, memory_size=268435456, userspace_addr=0xffff44e00000}) = 0

// get kvm_run size, map it
ioctl(7, _IOC(0, 0xae, 0x4, 0), 0)      = 8192
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_SHARED, 9, 0) = 0xffff987ad000

// get KVM_ARM_PREFERRED_TARGET
ioctl(8, _IOC(_IOC_READ, 0xae, 0xaf, 0x20), 0xffffe8018b98) = 0

// vcpu init
ioctl(9, _IOC(_IOC_WRITE, 0xae, 0xae, 0x20), 0xffffe8018b98) = 0

// KVM_CAP_SYNC_MMU?
ioctl(8, _IOC(0, 0xae, 0x3, 0), 0x10)   = 1

// KVM_CAP_GUEST_DEBUG_HW_BPS?
ioctl(8, _IOC(0, 0xae, 0x3, 0), 0x77)   = 6

// KVM_SET_GUEST_DEBUG
ioctl(9, _IOC(_IOC_WRITE, 0xae, 0x9b, 0x208), 0xffff4447fbf8) = 0

// RUN
ioctl(9, _IOC(0, 0xae, 0x80, 0), 0)     = -1 EINTR (Interrupted system call)

So either you run something that is pretty old and buggy (and I'd like
to know what), or you have uncovered a bug and I would need you to
trace when vgic_sre gets set.

Thanks,

	M.

-- 
Without deviation from the norm, progress is not possible.
_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: KVM userspace GICv2 IRQ controller on platform with GICv3
  2021-10-04 13:11         ` Marc Zyngier
@ 2021-10-04 14:15           ` Lukas Jünger
  2021-10-04 15:48             ` Marc Zyngier
  0 siblings, 1 reply; 9+ messages in thread
From: Lukas Jünger @ 2021-10-04 14:15 UTC (permalink / raw)
  To: Marc Zyngier; +Cc: catalin.marinas, will, kvmarm


[-- Attachment #1.1: Type: text/plain, Size: 5006 bytes --]

On 04.10.21 15:11, Marc Zyngier wrote:
> On Mon, 04 Oct 2021 12:27:33 +0100,
> Lukas Jünger <lukas.juenger@ice.rwth-aachen.de> wrote:
>> [1  <multipart/mixed (en-US) (7bit)>]
>> [1.1  <text/plain; utf-8 (quoted-printable)>]
>> On 04.10.21 13:02, Marc Zyngier wrote:
>>> On Mon, 04 Oct 2021 11:30:06 +0100,
>>> Lukas Jünger <lukas.juenger@ice.rwth-aachen.de> wrote:
>>>> [1  <text/plain (en-US); utf-8 (quoted-printable)>]
>>>> On 04.10.21 12:24, Marc Zyngier wrote:
>>>>> Hi Lukas,
>>>> Hi Mark,
>>>>
>>>> Thanks for your quick reply.
>>>>
>>>>> On Mon, 04 Oct 2021 11:07:47 +0100,
>>>>> Lukas Jünger <lukas.juenger@ice.rwth-aachen.de> wrote:
>>>>>> Hello,
>>>>>>
>>>>>> I am trying to run an emulator that uses KVM on arm64 to execute
>>>>>> code. The emulator contains a userspace model of a GICv2 IRQ
>>>>>> controller. The platform that I am running on (n1sdp) has a
>>>>> N1-SDP? My condolences...
>>>> Is there more to this?
>>> How do you like the PCI patches? :D
>> Ah, that's what you were alluding to. PCI+ARM seems to be tricky
>> somehow. The SynQuacer dev box as well as the ROCKPro 64 I was using
>> before also had PCI issues.
> I have no idea what you are running with, but neither of these two
> machines have any issue with PCI here. What is your kernel version?
>
> [...]

Not related to this issue, but the SynQuacer Developer Box has some 
issues with the GPU that was shipped with it.
There are jumper settings for a firmware workaround, etc..
For the ROCKPro64, I tried using it with an Infiniband PCIe adapter, but 
could not get it to boot.
But as I said, unrelated to this issue.

>>>> The port to N1-SDP is
>>>> giving me trouble. I understand why it is tainting the kernel, I was
>>>> just wondering if I could somehow tell KVM to set this up correctly,
>>>> e.g. by setting the ICC_SRE_ELx.
>>> KVM doesn't *set* ICC_SRE_EL1.SRE. It is RAO/WI on this machine, which
>>> is perfectly legal. However, KVM traps this access and emulates it
>>> (access_gic_sre() returns vcpu->arch.vgic_cpu.vgic_v3.vgic_sre).
>>>
>>> So if you see ICC_SRE_EL1.SRE==1 in your guest, that's because
>>> vgic_sre is set to something that is non-zero. The only way for this
>>> bit to be set is in vgic_v3_enable(), which has the following code:
>>>
>>> <quote>
>>> 	if (vcpu->kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3) {
>>> 		vgic_v3->vgic_sre = (ICC_SRE_EL1_DIB |
>>> 				     ICC_SRE_EL1_DFB |
>>> 				     ICC_SRE_EL1_SRE);
>>> 		vcpu->arch.vgic_cpu.pendbaser = INITIAL_PENDBASER_VALUE;
>>> 	} else {
>>> 		vgic_v3->vgic_sre = 0;
>>> 	}
>>> </quote>
>>>
>>> So short of a terrible bug that would dump random values in this
>>> structure, you are setting vgic_model to a GICv3 implementation. This
>>> can only be done from userspace if you are creating a GICv3 irqchip.
>>>
>>> Without seeing what your userspace does, I'm afraid I can't help you
>>> much further. Can you please provide some traces of what it does? A
>>> strace dump would certainly help.
>> Could it be that this is because I use KVM_ARM_PREFERRED_TARGET and
>> init the vcpu from this config?
> No, that's completely irrelevant.
>
>> I have attached an strace log file.
> I can't see anything useful there:
>
> openat(AT_FDCWD, "/dev/kvm", O_RDWR)    = 7
>
> // create VM
> ioctl(7, _IOC(0, 0xae, 0x1, 0), 0)      = 8
>
> // create vcpu
> ioctl(8, _IOC(0, 0xae, 0x41, 0), 0)     = 9
>
> // two memslots
> ioctl(8, _IOC(_IOC_WRITE, 0xae, 0x46, 0x20), {slot=0, flags=0, guest_phys_addr=0, memory_size=268435456, userspace_addr=0xffff87a00000}) = 0
> ioctl(8, _IOC(_IOC_WRITE, 0xae, 0x46, 0x20), {slot=1, flags=0, guest_phys_addr=0xc0000000, memory_size=268435456, userspace_addr=0xffff44e00000}) = 0
>
> // get kvm_run size, map it
> ioctl(7, _IOC(0, 0xae, 0x4, 0), 0)      = 8192
> mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_SHARED, 9, 0) = 0xffff987ad000
>
> // get KVM_ARM_PREFERRED_TARGET
> ioctl(8, _IOC(_IOC_READ, 0xae, 0xaf, 0x20), 0xffffe8018b98) = 0
>
> // vcpu init
> ioctl(9, _IOC(_IOC_WRITE, 0xae, 0xae, 0x20), 0xffffe8018b98) = 0
>
> // KVM_CAP_SYNC_MMU?
> ioctl(8, _IOC(0, 0xae, 0x3, 0), 0x10)   = 1
I think so, at least I use this ioctl.
> // KVM_CAP_GUEST_DEBUG_HW_BPS?
> ioctl(8, _IOC(0, 0xae, 0x3, 0), 0x77)   = 6
Same.
> // KVM_SET_GUEST_DEBUG
> ioctl(9, _IOC(_IOC_WRITE, 0xae, 0x9b, 0x208), 0xffff4447fbf8) = 0
>
> // RUN
> ioctl(9, _IOC(0, 0xae, 0x80, 0), 0)     = -1 EINTR (Interrupted system call)
>
> So either you run something that is pretty old and buggy (and I'd like
> to know what), or you have uncovered a bug and I would need you to
> trace when vgic_sre gets set.
Okay. I'm running on N1-SDP with the latest release 2021.05.26.
uname -a gives:

Linux n1sdp 5.10.12+ #1 SMP Fri Oct 1 11:50:05 UTC 2021 aarch64 aarch64 
aarch64 GNU/Linux


Is there a way to debug this without a hardware debugger/JTAG?
>
> Thanks,
>
> 	M.

Thanks again,

Lukas

>


[-- Attachment #1.2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 5964 bytes --]

[-- Attachment #2: Type: text/plain, Size: 151 bytes --]

_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: KVM userspace GICv2 IRQ controller on platform with GICv3
  2021-10-04 14:15           ` Lukas Jünger
@ 2021-10-04 15:48             ` Marc Zyngier
  2021-10-05 12:06               ` Lukas Jünger
  0 siblings, 1 reply; 9+ messages in thread
From: Marc Zyngier @ 2021-10-04 15:48 UTC (permalink / raw)
  To: Lukas Jünger; +Cc: catalin.marinas, will, kvmarm

On Mon, 04 Oct 2021 15:15:25 +0100,
Lukas Jünger <lukas.juenger@ice.rwth-aachen.de> wrote:

Please consider subscribing to kvmarm instead of posting as a
non-subscriber. It forces me to manually allow each and every email
you reply to, which gets tiring in the long run.

> > So either you run something that is pretty old and buggy (and I'd like
> > to know what), or you have uncovered a bug and I would need you to
> > trace when vgic_sre gets set.
> Okay. I'm running on N1-SDP with the latest release 2021.05.26.
> uname -a gives:
> 
> Linux n1sdp 5.10.12+ #1 SMP Fri Oct 1 11:50:05 UTC 2021 aarch64
> aarch64 aarch64 GNU/Linux
> 
> 
> Is there a way to debug this without a hardware debugger/JTAG?

Sure, you can always hack the kernel (I assume you know how to boot a
fresh kernel). Put some traces in vgic_v3_enable(), and find out why
vgic_sre is non-zero.

Thanks,

	M.

-- 
Without deviation from the norm, progress is not possible.
_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: KVM userspace GICv2 IRQ controller on platform with GICv3
  2021-10-04 15:48             ` Marc Zyngier
@ 2021-10-05 12:06               ` Lukas Jünger
  0 siblings, 0 replies; 9+ messages in thread
From: Lukas Jünger @ 2021-10-05 12:06 UTC (permalink / raw)
  To: Marc Zyngier; +Cc: catalin.marinas, will, kvmarm


[-- Attachment #1.1: Type: text/plain, Size: 1160 bytes --]

On 04.10.21 17:48, Marc Zyngier wrote:
> On Mon, 04 Oct 2021 15:15:25 +0100,
> Lukas Jünger <lukas.juenger@ice.rwth-aachen.de> wrote:
>
> Please consider subscribing to kvmarm instead of posting as a
> non-subscriber. It forces me to manually allow each and every email
> you reply to, which gets tiring in the long run.
>
>>> So either you run something that is pretty old and buggy (and I'd like
>>> to know what), or you have uncovered a bug and I would need you to
>>> trace when vgic_sre gets set.
>> Okay. I'm running on N1-SDP with the latest release 2021.05.26.
>> uname -a gives:
>>
>> Linux n1sdp 5.10.12+ #1 SMP Fri Oct 1 11:50:05 UTC 2021 aarch64
>> aarch64 aarch64 GNU/Linux
>>
>>
>> Is there a way to debug this without a hardware debugger/JTAG?
> Sure, you can always hack the kernel (I assume you know how to boot a
> fresh kernel). Put some traces in vgic_v3_enable(), and find out why
> vgic_sre is non-zero.

I put a dump_stack() in vgic_v3_enable(), but it doesn't trigger.
 From the outside it looks like the function is not called.
I'm not sure how to proceed without JTAG.

> Thanks,
>
> 	M.
BR,
Lukas


[-- Attachment #1.2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 5964 bytes --]

[-- Attachment #2: Type: text/plain, Size: 151 bytes --]

_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2021-10-05 12:06 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-04 10:07 KVM userspace GICv2 IRQ controller on platform with GICv3 Lukas Jünger
2021-10-04 10:24 ` Marc Zyngier
2021-10-04 10:30   ` Lukas Jünger
2021-10-04 11:02     ` Marc Zyngier
2021-10-04 11:27       ` Lukas Jünger
2021-10-04 13:11         ` Marc Zyngier
2021-10-04 14:15           ` Lukas Jünger
2021-10-04 15:48             ` Marc Zyngier
2021-10-05 12:06               ` Lukas Jünger

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.