> > 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 > >