Re: About support for memory event on AMD CPUs
Original email: From: Tamas K Lengyel Sent: Wednesday, November 24, 2021 21:12 To: Untitled YAN Cc: Jan Beulich ; Alexandru Isaila ; Petre Pircalabu ; Xen-devel Subject: Re: About support for memory event on AMD CPUs > Altp2m is only available on Intel, mem_access (restricting permissions) is > only available on Intel and ARM. No technical reason for it not working on > AMD, it just hasn't been implemented in Xen. > > Tamas > > On Wed, Nov 24, 2021, 4:44 AM Untitled YAN wrote: > Original email: > > From: Jan Beulich > Sent: Wednesday, November 24, 2021 17:27 > To: Untitled YAN > Cc: ta...@tklengyel.com ; aisa...@bitdefender.com > ; ppircal...@bitdefender.com > ; xen-devel@lists.xenproject.org > org> > Subject: Re: About support for memory event on AMD CPUs > > > On 24.11.2021 10:23, Untitled YAN wrote: > > > Original email: > > > > > > From: Jan Beulich > > > Sent: Wednesday, November 24, 2021 15:54 > > > To: YAN Untitled > > > Cc: ta...@tklengyel.com ; aisa...@bitdefender.com > > > ; ppircal...@bitdefender.com > > > ; xen-devel@lists.xenproject.org > > > enproject.>org> > > > Subject: Re: About support for memory event on AMD CPUs > > > > > >> On 23.11.2021 18:14, YAN Untitled wrote: > > >>> Dear developers, > > >>> > > >>> Short version: is memory event supported on AMD CPUs or is it going to > > >>> be > > >>> supported? > > >>> > > >>> Long version: > > >>> > > >>> Environment: LibVMI 0.15.0 + Xen 4.14.3 on an **AMD CPU** (5950x), > > >>> 64-bit > > >>> Debian 11 Dom0. > > >>> > > >>> What I am trying to accomplish: register a **memory event** handler, so > > >>> that > > >>> I can capture all memory accesses within a specific range issued by any > > >>> thread, > > >>> or all memory accesses within any range issued by a specific thread. > > >>> > > >>> What I got instead: an error from LibVMI saying > > >>> "xc_hvm_set_mem_access failed with code: -1". > > >>> > > >>> Some investigation: by inspecting the source code of LibVMI, I find the > > >>> direct > > >>> cause is one of the libxc functions, 1) xc_set_mem_access or > > >>> 2) xc_altp2m_set_mem_access, returned error code -1. > > >>> > > >>> After some searching, I found someone else having a similar problem > > >>> [1]. I also > > >>> noted LibVMI says: > > >>> > > >>>> Currently only the Xen Hypervisor provides these features, > > >>>> and some of these are specifically only available on Intel CPUs > > >>> > > >>> However, I can't find the exact confirmation for the availability of > > >>> memory > > >>> event on AMD CPUs from https://wiki.xenproject.org. > > >> > > >> Aiui underlying what you want is altp2m, which presently depends (in > > >> the hypervisor) on EPT being available (and in use for the guest in > > >> question). > > >> > > >> Jan > > > > > > Dear Jan, > > > > > > Thanks for your reply. I really appreciate the information. After some > > > searching with the keyword "EPT" I found [1]. So I checked on dom0 with > > > "xl dmesg | grep HAP", which says: > > > > > >> (XEN) HVM: Hardware Assisted Paging (HAP) detected > > >> (XEN) HVM: HAP page sizes: 4kB, 2MB, 1GB > > > > > > And the guest is an HVM guest running Debian 10 with kernel v4.16 built > > > from > > > source. Most of the configuration of the guest is generated by > > > virt-manager. > > > The "xl list -l" shows that there is no explicit configuration for EPT, > > > RVI or > > > HAP, but it does say the "type" is "hvm". > > > > HAP is the term covering EPT on the Intel side and NPT for AMD. > > > > Jan > > Dear Jan, > > Yeah that's why I wanted to confirm if the HAP is enabled for the guest - it > turns out it is enabled but for some reason, xc_altp2m_set_mem_access failed. > I am trying to replicate my setup on an Intel machine to find out if it's a > configuration problem. Still don't know if it's implemented for AMD but thanks > for your help and information. > > > Untitled YAN Dear Tamas, Thanks for your clear answer. So I will watch the update note, or maybe I will try to get an Intel machine for my experiments. Thanks! Untitled YAN
Re: About support for memory event on AMD CPUs
Altp2m is only available on Intel, mem_access (restricting permissions) is only available on Intel and ARM. No technical reason for it not working on AMD, it just hasn't been implemented in Xen. Tamas On Wed, Nov 24, 2021, 4:44 AM Untitled YAN wrote: > Original email: > > From: Jan Beulich > Sent: Wednesday, November 24, 2021 17:27 > To: Untitled YAN > Cc: ta...@tklengyel.com ; aisa...@bitdefender.com < > aisa...@bitdefender.com>; ppircal...@bitdefender.com < > ppircal...@bitdefender.com>; xen-devel@lists.xenproject.org < > xen-devel@lists.xenproject.org> > Subject: Re: About support for memory event on AMD CPUs > > > On 24.11.2021 10:23, Untitled YAN wrote: > > > Original email: > > > > > > From: Jan Beulich > > > Sent: Wednesday, November 24, 2021 15:54 > > > To: YAN Untitled > > > Cc: ta...@tklengyel.com ; aisa...@bitdefender.com > ; ppircal...@bitdefender.com < > ppircal...@bitdefender.com>; xen-devel@lists.xenproject.org > org> > > > Subject: Re: About support for memory event on AMD CPUs > > > > > >> On 23.11.2021 18:14, YAN Untitled wrote: > > >>> Dear developers, > > >>> > > >>> Short version: is memory event supported on AMD CPUs or is it going > to be > > >>> supported? > > >>> > > >>> Long version: > > >>> > > >>> Environment: LibVMI 0.15.0 + Xen 4.14.3 on an **AMD CPU** (5950x), > 64-bit > > >>> Debian 11 Dom0. > > >>> > > >>> What I am trying to accomplish: register a **memory event** handler, > so that > > >>> I can capture all memory accesses within a specific range issued by > any thread, > > >>> or all memory accesses within any range issued by a specific thread. > > >>> > > >>> What I got instead: an error from LibVMI saying > > >>> "xc_hvm_set_mem_access failed with code: -1". > > >>> > > >>> Some investigation: by inspecting the source code of LibVMI, I find > the direct > > >>> cause is one of the libxc functions, 1) xc_set_mem_access or > > >>> 2) xc_altp2m_set_mem_access, returned error code -1. > > >>> > > >>> After some searching, I found someone else having a similar problem > [1]. I also > > >>> noted LibVMI says: > > >>> > > >>>> Currently only the Xen Hypervisor provides these features, > > >>>> and some of these are specifically only available on Intel CPUs > > >>> > > >>> However, I can't find the exact confirmation for the availability of > memory > > >>> event on AMD CPUs from https://wiki.xenproject.org. > > >> > > >> Aiui underlying what you want is altp2m, which presently depends (in > > >> the hypervisor) on EPT being available (and in use for the guest in > > >> question). > > >> > > >> Jan > > > > > > Dear Jan, > > > > > > Thanks for your reply. I really appreciate the information. After some > > > searching with the keyword "EPT" I found [1]. So I checked on dom0 with > > > "xl dmesg | grep HAP", which says: > > > > > >> (XEN) HVM: Hardware Assisted Paging (HAP) detected > > >> (XEN) HVM: HAP page sizes: 4kB, 2MB, 1GB > > > > > > And the guest is an HVM guest running Debian 10 with kernel v4.16 > built from > > > source. Most of the configuration of the guest is generated by > virt-manager. > > > The "xl list -l" shows that there is no explicit configuration for > EPT, RVI or > > > HAP, but it does say the "type" is "hvm". > > > > HAP is the term covering EPT on the Intel side and NPT for AMD. > > > > Jan > > Dear Jan, > > Yeah that's why I wanted to confirm if the HAP is enabled for the guest - > it > turns out it is enabled but for some reason, xc_altp2m_set_mem_access > failed. > I am trying to replicate my setup on an Intel machine to find out if it's a > configuration problem. Still don't know if it's implemented for AMD but > thanks > for your help and information. > > > Untitled YAN >
Re: About support for memory event on AMD CPUs
Original email: From: Jan Beulich Sent: Wednesday, November 24, 2021 17:27 To: Untitled YAN Cc: ta...@tklengyel.com ; aisa...@bitdefender.com ; ppircal...@bitdefender.com ; xen-devel@lists.xenproject.org Subject: Re: About support for memory event on AMD CPUs > On 24.11.2021 10:23, Untitled YAN wrote: > > Original email: > > > > From: Jan Beulich > > Sent: Wednesday, November 24, 2021 15:54 > > To: YAN Untitled > > Cc: ta...@tklengyel.com ; aisa...@bitdefender.com > > ; ppircal...@bitdefender.com > > ; xen-devel@lists.xenproject.org > > org> > > Subject: Re: About support for memory event on AMD CPUs > > > >> On 23.11.2021 18:14, YAN Untitled wrote: > >>> Dear developers, > >>> > >>> Short version: is memory event supported on AMD CPUs or is it going to be > >>> supported? > >>> > >>> Long version: > >>> > >>> Environment: LibVMI 0.15.0 + Xen 4.14.3 on an **AMD CPU** (5950x), 64-bit > >>> Debian 11 Dom0. > >>> > >>> What I am trying to accomplish: register a **memory event** handler, so > >>> that > >>> I can capture all memory accesses within a specific range issued by any > >>> thread, > >>> or all memory accesses within any range issued by a specific thread. > >>> > >>> What I got instead: an error from LibVMI saying > >>> "xc_hvm_set_mem_access failed with code: -1". > >>> > >>> Some investigation: by inspecting the source code of LibVMI, I find the > >>> direct > >>> cause is one of the libxc functions, 1) xc_set_mem_access or > >>> 2) xc_altp2m_set_mem_access, returned error code -1. > >>> > >>> After some searching, I found someone else having a similar problem [1]. > >>> I also > >>> noted LibVMI says: > >>> > >>>> Currently only the Xen Hypervisor provides these features, > >>>> and some of these are specifically only available on Intel CPUs > >>> > >>> However, I can't find the exact confirmation for the availability of > >>> memory > >>> event on AMD CPUs from https://wiki.xenproject.org. > >> > >> Aiui underlying what you want is altp2m, which presently depends (in > >> the hypervisor) on EPT being available (and in use for the guest in > >> question). > >> > >> Jan > > > > Dear Jan, > > > > Thanks for your reply. I really appreciate the information. After some > > searching with the keyword "EPT" I found [1]. So I checked on dom0 with > > "xl dmesg | grep HAP", which says: > > > >> (XEN) HVM: Hardware Assisted Paging (HAP) detected > >> (XEN) HVM: HAP page sizes: 4kB, 2MB, 1GB > > > > And the guest is an HVM guest running Debian 10 with kernel v4.16 built from > > source. Most of the configuration of the guest is generated by virt-manager. > > The "xl list -l" shows that there is no explicit configuration for EPT, RVI > > or > > HAP, but it does say the "type" is "hvm". > > HAP is the term covering EPT on the Intel side and NPT for AMD. > > Jan Dear Jan, Yeah that's why I wanted to confirm if the HAP is enabled for the guest - it turns out it is enabled but for some reason, xc_altp2m_set_mem_access failed. I am trying to replicate my setup on an Intel machine to find out if it's a configuration problem. Still don't know if it's implemented for AMD but thanks for your help and information. Untitled YAN
Re: About support for memory event on AMD CPUs
On 24.11.2021 10:23, Untitled YAN wrote: > Original email: > > From: Jan Beulich > Sent: Wednesday, November 24, 2021 15:54 > To: YAN Untitled > Cc: ta...@tklengyel.com ; aisa...@bitdefender.com > ; ppircal...@bitdefender.com > ; xen-devel@lists.xenproject.org > > Subject: Re: About support for memory event on AMD CPUs > >> On 23.11.2021 18:14, YAN Untitled wrote: >>> Dear developers, >>> >>> Short version: is memory event supported on AMD CPUs or is it going to be >>> supported? >>> >>> Long version: >>> >>> Environment: LibVMI 0.15.0 + Xen 4.14.3 on an **AMD CPU** (5950x), 64-bit >>> Debian 11 Dom0. >>> >>> What I am trying to accomplish: register a **memory event** handler, so that >>> I can capture all memory accesses within a specific range issued by any >>> thread, >>> or all memory accesses within any range issued by a specific thread. >>> >>> What I got instead: an error from LibVMI saying >>> "xc_hvm_set_mem_access failed with code: -1". >>> >>> Some investigation: by inspecting the source code of LibVMI, I find the >>> direct >>> cause is one of the libxc functions, 1) xc_set_mem_access or >>> 2) xc_altp2m_set_mem_access, returned error code -1. >>> >>> After some searching, I found someone else having a similar problem [1]. I >>> also >>> noted LibVMI says: >>> >>>> Currently only the Xen Hypervisor provides these features, >>>> and some of these are specifically only available on Intel CPUs >>> >>> However, I can't find the exact confirmation for the availability of memory >>> event on AMD CPUs from https://wiki.xenproject.org. >> >> Aiui underlying what you want is altp2m, which presently depends (in >> the hypervisor) on EPT being available (and in use for the guest in >> question). >> >> Jan > > Dear Jan, > > Thanks for your reply. I really appreciate the information. After some > searching with the keyword "EPT" I found [1]. So I checked on dom0 with > "xl dmesg | grep HAP", which says: > >> (XEN) HVM: Hardware Assisted Paging (HAP) detected >> (XEN) HVM: HAP page sizes: 4kB, 2MB, 1GB > > And the guest is an HVM guest running Debian 10 with kernel v4.16 built from > source. Most of the configuration of the guest is generated by virt-manager. > The "xl list -l" shows that there is no explicit configuration for EPT, RVI or > HAP, but it does say the "type" is "hvm". HAP is the term covering EPT on the Intel side and NPT for AMD. Jan
Re: About support for memory event on AMD CPUs
Original email: From: Jan Beulich Sent: Wednesday, November 24, 2021 15:54 To: YAN Untitled Cc: ta...@tklengyel.com ; aisa...@bitdefender.com ; ppircal...@bitdefender.com ; xen-devel@lists.xenproject.org Subject: Re: About support for memory event on AMD CPUs > On 23.11.2021 18:14, YAN Untitled wrote: > > Dear developers, > > > > Short version: is memory event supported on AMD CPUs or is it going to be > > supported? > > > > Long version: > > > > Environment: LibVMI 0.15.0 + Xen 4.14.3 on an **AMD CPU** (5950x), 64-bit > > Debian 11 Dom0. > > > > What I am trying to accomplish: register a **memory event** handler, so that > > I can capture all memory accesses within a specific range issued by any > > thread, > > or all memory accesses within any range issued by a specific thread. > > > > What I got instead: an error from LibVMI saying > > "xc_hvm_set_mem_access failed with code: -1". > > > > Some investigation: by inspecting the source code of LibVMI, I find the > > direct > > cause is one of the libxc functions, 1) xc_set_mem_access or > > 2) xc_altp2m_set_mem_access, returned error code -1. > > > > After some searching, I found someone else having a similar problem [1]. I > > also > > noted LibVMI says: > > > >> Currently only the Xen Hypervisor provides these features, > >> and some of these are specifically only available on Intel CPUs > > > > However, I can't find the exact confirmation for the availability of memory > > event on AMD CPUs from https://wiki.xenproject.org. > > Aiui underlying what you want is altp2m, which presently depends (in > the hypervisor) on EPT being available (and in use for the guest in > question). > > Jan Dear Jan, Thanks for your reply. I really appreciate the information. After some searching with the keyword "EPT" I found [1]. So I checked on dom0 with "xl dmesg | grep HAP", which says: > (XEN) HVM: Hardware Assisted Paging (HAP) detected > (XEN) HVM: HAP page sizes: 4kB, 2MB, 1GB And the guest is an HVM guest running Debian 10 with kernel v4.16 built from source. Most of the configuration of the guest is generated by virt-manager. The "xl list -l" shows that there is no explicit configuration for EPT, RVI or HAP, but it does say the "type" is "hvm". So I am still quite confusing: 1. Is memory event feature for AMD's RVI is even implemented? 2. If memory event should be working on AMD CPUs with RVI enabled, am I missing any essential step to make it work? [1] https://groups.google.com/g/vmitools/c/JRN11E64BNY Untitled YAN
Re: About support for memory event on AMD CPUs
On 23.11.2021 18:14, YAN Untitled wrote: > Dear developers, > > Short version: is memory event supported on AMD CPUs or is it going to be > supported? > > Long version: > > Environment: LibVMI 0.15.0 + Xen 4.14.3 on an **AMD CPU** (5950x), 64-bit > Debian 11 Dom0. > > What I am trying to accomplish: register a **memory event** handler, so that > I can capture all memory accesses within a specific range issued by any > thread, > or all memory accesses within any range issued by a specific thread. > > What I got instead: an error from LibVMI saying > "xc_hvm_set_mem_access failed with code: -1". > > Some investigation: by inspecting the source code of LibVMI, I find the direct > cause is one of the libxc functions, 1) xc_set_mem_access or > 2) xc_altp2m_set_mem_access, returned error code -1. > > After some searching, I found someone else having a similar problem [1]. I > also > noted LibVMI says: > >> Currently only the Xen Hypervisor provides these features, >> and some of these are specifically only available on Intel CPUs > > However, I can't find the exact confirmation for the availability of memory > event on AMD CPUs from https://wiki.xenproject.org. Aiui underlying what you want is altp2m, which presently depends (in the hypervisor) on EPT being available (and in use for the guest in question). Jan
About support for memory event on AMD CPUs
Dear developers, Short version: is memory event supported on AMD CPUs or is it going to be supported? Long version: Environment: LibVMI 0.15.0 + Xen 4.14.3 on an **AMD CPU** (5950x), 64-bit Debian 11 Dom0. What I am trying to accomplish: register a **memory event** handler, so that I can capture all memory accesses within a specific range issued by any thread, or all memory accesses within any range issued by a specific thread. What I got instead: an error from LibVMI saying "xc_hvm_set_mem_access failed with code: -1". Some investigation: by inspecting the source code of LibVMI, I find the direct cause is one of the libxc functions, 1) xc_set_mem_access or 2) xc_altp2m_set_mem_access, returned error code -1. After some searching, I found someone else having a similar problem [1]. I also noted LibVMI says: > Currently only the Xen Hypervisor provides these features, > and some of these are specifically only available on Intel CPUs However, I can't find the exact confirmation for the availability of memory event on AMD CPUs from https://wiki.xenproject.org. Any suggestion? (Sorry I was sending this email to the wrong place) [1] https://github.com/libvmi/libvmi/pull/709#discussion_r353729777 Untitled YAN