[pve-devel] [PATCH v5 manager 1/2] GUI: HDEdit: check iothread by default and move it from advanced section
Matthias Heiserer
m.heiserer at proxmox.com
Mon Jun 13 15:54:22 CEST 2022
Existing disks are not changed by this.
Especially in benchmarks, iothreads significantly improve IO performance.
Signed-off-by: Matthias Heiserer <m.heiserer at proxmox.com>
---
Changes from v4:
* also check iothread for VirtIO block devices
Changes from v3:
* remove automatically switching to/from SCSI single when iothread is (un)checked
* iothread will be initially set on
* changing the controller to something other than SCSI single and then back to
SCSI single will enable iothread for all SCSI disks.
Changes from v2:
* also check iothread when adding a disk to an existing VM
www/manager6/qemu/HDEdit.js | 31 ++++++++++++++++---------------
1 file changed, 16 insertions(+), 15 deletions(-)
diff --git a/www/manager6/qemu/HDEdit.js b/www/manager6/qemu/HDEdit.js
index 4e4d6aac..921bfe72 100644
--- a/www/manager6/qemu/HDEdit.js
+++ b/www/manager6/qemu/HDEdit.js
@@ -14,6 +14,7 @@ Ext.define('PVE.qemu.HDInputPanel', {
data: {
isSCSI: false,
isVirtIO: false,
+ isSCSISingle: false,
},
},
@@ -44,13 +45,10 @@ Ext.define('PVE.qemu.HDInputPanel', {
'field[name=deviceid]': {
change: 'fireIdChange',
},
- 'field[name=iothread]': {
+ 'field[name=scsiController]': {
change: function(f, value) {
- if (!this.getView().insideWizard) {
- return;
- }
- var vmScsiType = value ? 'virtio-scsi-single': 'virtio-scsi-pci';
- this.lookupReference('scsiController').setValue(vmScsiType);
+ let vm = this.getViewModel();
+ vm.set('isSCSISingle', value === 'virtio-scsi-single');
},
},
},
@@ -195,6 +193,7 @@ Ext.define('PVE.qemu.HDInputPanel', {
me.scsiController = Ext.create('Ext.form.field.Display', {
fieldLabel: gettext('SCSI Controller'),
reference: 'scsiController',
+ name: 'scsiController',
bind: me.insideWizard ? {
value: '{current.scsihw}',
visible: '{isSCSI}',
@@ -251,6 +250,17 @@ Ext.define('PVE.qemu.HDInputPanel', {
reference: 'discard',
name: 'discard',
},
+ {
+ xtype: 'proxmoxcheckbox',
+ name: 'iothread',
+ fieldLabel: 'IO thread',
+ clearOnDisable: true,
+ bind: {
+ disabled: '{!isVirtIO && !isSCSI}',
+ // Checkbox.setValue handles Arrays in a different way, therefore cast to bool
+ value: '{!!isVirtIO || (isSCSI && isSCSISingle)}',
+ },
+ },
);
advancedColumn1.push(
@@ -263,15 +273,6 @@ Ext.define('PVE.qemu.HDInputPanel', {
disabled: '{isVirtIO}',
},
},
- {
- xtype: 'proxmoxcheckbox',
- name: 'iothread',
- fieldLabel: 'IO thread',
- clearOnDisable: true,
- bind: {
- disabled: '{!isVirtIO && !isSCSI}',
- },
- },
{
xtype: 'proxmoxcheckbox',
name: 'readOnly', // `ro` in the config, we map in get/set values
--
2.30.2
More information about the pve-devel
mailing list