On Thu, Feb 27, 2025 at 12:41:10 +0100, Anthony Harivel wrote: > Hi Peter, > > >> @@ -7062,6 +7065,15 @@ qemuBuildAccelCommandLine(virCommand *cmd, > >> def->kvm_features->features[VIR_DOMAIN_KVM_DIRTY_RING] == VIR_TRISTATE_SWITCH_ON) { > >> virBufferAsprintf(&buf, ",dirty-ring-size=%d", def->kvm_features->dirty_ring_size); > >> } > >> + > >> + if (def->features[VIR_DOMAIN_FEATURE_KVM] == VIR_TRISTATE_SWITCH_ON && > >> + def->kvm_features->features[VIR_DOMAIN_KVM_RAPL] == VIR_TRISTATE_SWITCH_ON) { > >> + virBufferAddLit(&buf, ",rapl=true"); > >> + > >> + if (def->kvm_features->rapl_helper_socket != NULL) { > >> + virBufferAsprintf(&buf, ",rapl-helper-socket=%s", def->kvm_features->rapl_helper_socket); > >> + } > > > > As noted above; qemu makes the socket mandatory so the check doesn't > > make much sense. > > > > I'm not sure to follow the above remark. The socket is mandatory in QEMU > yes, so it should also be mandatory in libvirt so that we don't make the > QEMU process fails at start ? You should validate that the socket is present; either provided by user or auto-generated once managed mode will be introduced. Also you then don't need to conditionally format it any more once you check that it's present. > Or do we just let the user check what QEMU is returning so that the user > correct later the XML ? Normally we validate config beforehand; the errors from qemu can be iffy sometimes. > > Thanks > Anthony > > > Also we'll most likely need to use virQEMUBuildBufferEscapeComma here to Also don't forget this ^^^ > > properly format paths with a comma since they are user-provided. > > > >