with memory allocator property Signed-off-by: Alexandre Derumier <aderum...@odiso.com> --- www/manager6/Makefile | 1 + www/manager6/Utils.js | 13 +++++++++ www/manager6/form/TuningSelector.js | 41 +++++++++++++++++++++++++++++ www/manager6/qemu/Options.js | 14 ++++++++++ 4 files changed, 69 insertions(+) create mode 100644 www/manager6/form/TuningSelector.js
diff --git a/www/manager6/Makefile b/www/manager6/Makefile index b73b729a..c29bc87a 100644 --- a/www/manager6/Makefile +++ b/www/manager6/Makefile @@ -67,6 +67,7 @@ JSSRC= \ form/StorageSelector.js \ form/TFASelector.js \ form/TokenSelector.js \ + form/TuningSelector.js \ form/USBSelector.js \ form/UserSelector.js \ form/VLanField.js \ diff --git a/www/manager6/Utils.js b/www/manager6/Utils.js index 7bf3955a..3c395a5c 100644 --- a/www/manager6/Utils.js +++ b/www/manager6/Utils.js @@ -545,6 +545,19 @@ Ext.define('PVE.Utils', { return output.join(', '); }, + render_tuning: function(values) { + let props = PVE.Parser.parsePropertyString(values); + if (Ext.Object.isEmpty(props)) { + return Proxmox.Utils.noneText; + } + + let output = []; + if (props.allocator === 'tcmalloc') { + output.push('Memory allocator: ' + props.allocator); + } + return output.join(', '); + }, + // fixme: auto-generate this // for now, please keep in sync with PVE::Tools::kvmkeymaps kvm_keymaps: { diff --git a/www/manager6/form/TuningSelector.js b/www/manager6/form/TuningSelector.js new file mode 100644 index 00000000..d967dc29 --- /dev/null +++ b/www/manager6/form/TuningSelector.js @@ -0,0 +1,41 @@ +Ext.define('PVE.form.TuningSelector', { + extend: 'Proxmox.panel.InputPanel', + alias: 'widget.pveTuningSelector', + + viewModel: {}, + + items: [ + { + xtype: 'proxmoxKVComboBox', + itemId: 'allocator', + name: 'allocator', + value: 'system', + fieldLabel: 'Memory Allocator', + comboItems: [ + ['system', 'system'], + ['tcmalloc', 'tcmalloc'], + ], + }, + ], + + onGetValues: function(values) { + var ret = {}; + + if (values.allocator !== "system") { + ret.allocator = values.allocator; + } + + if (Ext.Object.isEmpty(ret)) { + return { 'delete': 'tuning' }; + } + var tuning_props = PVE.Parser.printPropertyString(ret); + return { tuning: tuning_props }; + }, + + setValues: function(values) { + if (values.tuning) { + var tuning = PVE.Parser.parsePropertyString(values.tuning); + this.callParent([tuning]); + } + }, +}); diff --git a/www/manager6/qemu/Options.js b/www/manager6/qemu/Options.js index 7b112400..53972d18 100644 --- a/www/manager6/qemu/Options.js +++ b/www/manager6/qemu/Options.js @@ -338,6 +338,20 @@ Ext.define('PVE.qemu.Options', { }, } : undefined, }, + tuning: { + header: gettext('Tuning'), + defaultValue: false, + renderer: PVE.Utils.render_tuning, + editor: caps.vms['VM.Config.Options'] ? { + xtype: 'proxmoxWindowEdit', + subject: gettext('Tuning'), + onlineHelp: 'chapter_virtual_machines', // FIXME: use 'qm_tuning' once available + items: { + xtype: 'pveTuningSelector', + name: 'tuning', + }, + } : undefined, + }, hookscript: { header: gettext('Hookscript'), }, -- 2.30.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel