>
> Do you have the output of `qemu-system-x86_64 -version`, and more
> information on how your binary was built?


I have 2 machines, both of them encounter the .hmat problem.

(1) *5.1.90 (v5.2.0-rc0*)
    - follow this wiki [1], and configure cmd: `./configure
--target-list=x86_64-softmmu`
    - i5-8400, Ubuntu 20.04.1 LTS, kernel: 5.4.0-53-generic

(2) *4.2.1 (Debian 1:4.2-3ubuntu6.8)*
    - use apt install qemu
    - E5-2670 * 2, Ubuntu 20.04.1 LTS, kernel: 5.4.0-53-generic, Dell
PowerEdge-R720

I can't reproduce it here.  I've tested both qemu.git master


That’s strange, also I try the command you (Eduardo) provided, '.hmat' not
found, too.
Does the kernel module matter? or PC architecture?

Output of `-machine help` and `-machine pc,help` would be useful
> to debug it, too.


 (1) *5.1.90 (i5-8400)*
*```*
$ qemu-system-x86_64 -machine pc,help
pc-i440fx-5.2.nvdimm-persistence=string (Set NVDIMM persistenceValid values
are cpu, mem-ctrl)
pc-i440fx-5.2.hmat=bool (Set on/off to enable/disable ACPI Heterogeneous
Memory Attribute Table (HMAT))
pc-i440fx-5.2.nvdimm=bool (Set on/off to enable/disable NVDIMM
instantiation)
pc-i440fx-5.2.pcspk-audiodev=str (ID of an audiodev to use as a backend)
pc-i440fx-5.2.pflash1=str (Node name or ID of a block device to use as a
backend)
pc-i440fx-5.2.pflash0=str (Node name or ID of a block device to use as a
backend)
pc-i440fx-5.2.hpet=bool
pc-i440fx-5.2.vmport=OnOffAuto (Enable vmport (pc & q35))
pc-i440fx-5.2.sata=bool
pc-i440fx-5.2.pit=bool
pc-i440fx-5.2.max-ram-below-4g=size (Maximum ram below the 4G boundary
(32bit boundary))
pc-i440fx-5.2.smbus=bool
pc-i440fx-5.2.acpi=OnOffAuto (Enable ACPI)
pc-i440fx-5.2.smm=OnOffAuto (Enable SMM)
pc-i440fx-5.2.memory-backend=string (Set RAM backendValid value is ID of
hostmem based backend)
pc-i440fx-5.2.firmware=string (Firmware image)
pc-i440fx-5.2.initrd=string (Linux initial ramdisk file)
pc-i440fx-5.2.dumpdtb=string (Dump current dtb to a file and quit)
pc-i440fx-5.2.kernel=string (Linux kernel image file)
pc-i440fx-5.2.dt-compatible=string (Overrides the "compatible" property of
the dt root node)
pc-i440fx-5.2.mem-merge=bool (Enable/disable memory merge support)
pc-i440fx-5.2.suppress-vmdesc=bool (Set on to disable self-describing
migration)
pc-i440fx-5.2.append=string (Linux kernel command line)
pc-i440fx-5.2.dump-guest-core=bool (Include guest memory in a core dump)
pc-i440fx-5.2.phandle-start=int (The first phandle ID we may generate
dynamically)
pc-i440fx-5.2.usb=bool (Set on/off to enable/disable usb)
pc-i440fx-5.2.dtb=string (Linux kernel device tree file)
pc-i440fx-5.2.memory-encryption=string (Set memory encryption object to use)
pc-i440fx-5.2.graphics=bool (Set on/off to enable/disable graphics
emulation)
```

(2) *4.2.1 (E5-2670 * 2)*
*```*
qemu-system-x86_64 -machine pc,help
pc-i440fx-4.2.nvdimm-persistence=string (Set NVDIMM persistenceValid values
are cpu, mem-ctrl)
pc-i440fx-4.2.pflash0=str (Node name or ID of a block device to use as a
backend)
pc-i440fx-4.2.nvdimm=bool (Set on/off to enable/disable NVDIMM
instantiation)
pc-i440fx-4.2.pflash1=str (Node name or ID of a block device to use as a
backend)
pc-i440fx-4.2.vmport=OnOffAuto (Enable vmport (pc & q35))
pc-i440fx-4.2.sata=bool
pc-i440fx-4.2.pit=bool
pc-i440fx-4.2.smm=OnOffAuto (Enable SMM (pc & q35))
pc-i440fx-4.2.smbus=bool
pc-i440fx-4.2.max-ram-below-4g=size (Maximum ram below the 4G boundary
(32bit boundary))
pc-i440fx-4.2.suppress-vmdesc=bool (Set on to disable self-describing
migration)
pc-i440fx-4.2.append=string (Linux kernel command line)
pc-i440fx-4.2.accel=string (Accelerator list)
pc-i440fx-4.2.dtb=string (Linux kernel device tree file)
pc-i440fx-4.2.mem-merge=bool (Enable/disable memory merge support)
pc-i440fx-4.2.dumpdtb=string (Dump current dtb to a file and quit)
pc-i440fx-4.2.phandle-start=int (The first phandle ID we may generate
dynamically)
pc-i440fx-4.2.igd-passthru=bool (Set on/off to enable/disable igd passthrou)
pc-i440fx-4.2.kvm-shadow-mem=int (KVM shadow MMU size)
pc-i440fx-4.2.dump-guest-core=bool (Include guest memory in a core dump)
pc-i440fx-4.2.memory-encryption=string (Set memory encryption object to use)
pc-i440fx-4.2.firmware=string (Firmware image)
pc-i440fx-4.2.usb=bool (Set on/off to enable/disable usb)
pc-i440fx-4.2.kernel-irqchip=on|off|split (Configure KVM in-kernel irqchip)
pc-i440fx-4.2.graphics=bool (Set on/off to enable/disable graphics
emulation)
pc-i440fx-4.2.initrd=string (Linux initial ramdisk file)
pc-i440fx-4.2.dt-compatible=string (Overrides the "compatible" property of
the dt root node)
pc-i440fx-4.2.kernel=string (Linux kernel image file)
pc-i440fx-4.2.enforce-config-section=bool (Set on to enforce configuration
section migration)
```

[1] https://wiki.qemu.org/Hosts/Linux#Building_QEMU_for_Linux

Sincerely,
Jack

Eduardo Habkost <ehabk...@redhat.com> 於 2020年11月17日 週二 上午3:02寫道:

> On Mon, Nov 16, 2020 at 01:51:37PM +0100, Philippe Mathieu-Daudé wrote:
> > Cc'ing Igor & Eduardo.
>
> Thanks!
>
> >
> > On 11/13/20 10:17 AM, Jack wrote:
> > > Hi all,
> > >
> > > As I follow the document[1] to enable hmat, it fails and shows the
> message:
> > >   qemu-system-x86_64: Property '.hmat' not found
> > >
> > > My QEMU version is 5.1.90
>
> Do you have the output of `qemu-system-x86_64 -version`, and more
> information on how your binary was built?
>
> Output of `-machine help` and `-machine pc,help` would be useful
> to debug it, too.
>
> I can't reproduce it here.  I've tested both qemu.git master
> (commit cb5ed407a1dd) and v5.2.0-rc (commit 3d6e32347a3b).
>
>   [build/(cb5ed407a1...)]$ ./qemu-system-x86_64 -version
>   QEMU emulator version 5.1.91 (v5.2.0-rc1-107-gcb5ed407a1)
>   Copyright (c) 2003-2020 Fabrice Bellard and the QEMU Project developers
>   [build/(cb5ed407a1...)]$ ./qemu-system-x86_64 -machine hmat=on -m 2G
> -object memory-backend-ram,size=1G,id=m0 -object
> memory-backend-ram,size=1G,id=m1 -smp 2 -numa node,nodeid=0,memdev=m0 -numa
> node,nodeid=1,memdev=m1,initiator=0 -numa cpu ,node-id=0,socket-id=0 -numa
> cpu,node-id=0,socket-id=1 -numa
> hmat-lb,initiator=0,target=0,hierarchy=memory,data-type=access-latency,latency=5
> -numa
> hmat-lb,initiator=0,target=0,hierarchy=memory,data-type=access-bandwidth,bandwidth=200M
> -numa
> hmat-lb,initiator=0,target=1,hierarchy=memory,data-type=access-latency,latency=10
> -numa
> hmat-lb,initiator=0,target=1,hierarchy=memory,data-type=access-bandwidth,bandwidth=100M
> -numa
> hmat-cache,node-id=0,size=10K,level=1,associativity=direct,policy=write-back,line=8
> -numa
> hmat-cache,node-id=1,size=10K,level=1,associativity=direct,policy=write-back,line=8
> -cpu host -vga virtio -accel kvm
>   [VM boots]
>
>
> > >
> > > Does anyone know why?
> > >
> > > Here is my command:
> > >
> > > ```
> > > $ sudo qemu-system-x86_64 \
> > > -machine hmat=on \
> > > -m 2G \
> > > -object memory-backend-ram,size=1G,id=m0 \
> > > -object memory-backend-ram,size=1G,id=m1 \
> > > -smp 2 \
> > > -numa node,nodeid=0,memdev=m0 \
> > > -numa node,nodeid=1,memdev=m1,initiator=0 \
> > > -numa cpu,node-id=0,socket-id=0 \
> > > -numa cpu,node-id=0,socket-id=1 \
> > > -numa
> > >
> hmat-lb,initiator=0,target=0,hierarchy=memory,data-type=access-latency,latency=5
> > > \
> > > -numa
> > >
> hmat-lb,initiator=0,target=0,hierarchy=memory,data-type=access-bandwidth,bandwidth=200M
> > > \
> > > -numa
> > >
> hmat-lb,initiator=0,target=1,hierarchy=memory,data-type=access-latency,latency=10
> > > \
> > > -numa
> > >
> hmat-lb,initiator=0,target=1,hierarchy=memory,data-type=access-bandwidth,bandwidth=100M
> > > \
> > > -numa
> > >
> hmat-cache,node-id=0,size=10K,level=1,associativity=direct,policy=write-back,line=8
> > > \
> > > -numa
> > >
> hmat-cache,node-id=1,size=10K,level=1,associativity=direct,policy=write-back,line=8
> > > \
> > > -cpu host \
> > > -m 4g -vga virtio -hda ubuntu20.04.qcow2 \
> > > -nic user,model=virtio \
> > > -nic tap,model=e1000 \
> > > -nic tap,model=e1000 \
> > > -accel kvm
> > > ```
> > >
> > > Thanks.
> > >
> > > [1]
> > >
> https://www.qemu.org/docs/master/system/qemu-manpage.html?highlight=numa
> > >
> > >
> > > Sincerely,
> > > Jack
> > >
> >
>
> --
> Eduardo
>
>

Reply via email to