qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Property '.hmat' not found


From: Jack Kuo
Subject: Re: Property '.hmat' not found
Date: Tue, 17 Nov 2020 11:49:38 +0800

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


Sincerely,
Jack

Eduardo Habkost <ehabkost@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

[Prev in Thread] Current Thread [Next in Thread]