Recently the changes #18150, #18677 and #17885 were submitted in order to avoid the selection of display protocols and virtual video cards that are incompatible with the PPC64 architecture and to map the VNC protocol with the standard VGA virtual device, since the Cirrus Logic device is not supported in the PPC64 architecture. I would like some feedback about that.
So far, these changes use an existing parameter in the osinfo (called "spiceSupport") to validate if the selected operating system supports SPICE and hide it in the frontend in case it doesn't. They also change the default virtual video card for each display protocol according to new properties in the osinfo, e.g.:
os.other.spiceSupport.value = true
os.other.devices.vnc.vmDeviceType.value = cirrus os.other.devices.qxl.vmDeviceType.value = qxl
os.other_ppc64.spiceSupport.value = false os.other_ppc64.devices.vnc.vmDeviceType.value = vga
(This maps the qxl protocol into the qxl device and the VNC protocol into the cirrus device in the x86_64 arch, and the VNC protocol into the VGA device in the PPC64)
However, this still has some limitations, such as:
* It doesn't allow the user to choose between the different virtual devices that exist and can be used in the VNC protocol (such as the QXL and VMware VGA)
* The syntax is ugly. As suggested in the code reviews, it could be a list of supported protocols, e.g.:
os.other.displayProtocols = vnc, spice
So, how should the engine be modified to allow multiple video cards for each display protocol? What do you think should be done?
Vitor de Lima
I had merged the following patch
This patch introduce usage of the IMMUTABLE, STABLE and STRICT keywords in order to boost performance of the Postgres SPs.
Please make sure that your current/and future DB scripts applied that.
* A function should be marked as IMMUTABLE if it doesn't change the database, and if it doesn't perform any lookups (even for database configuration values) during its operation.
* A function should be marked STABLE if it doesn't change the database, but might perform lookups (IMMUTABLE is preferable if function meets the requirements).
* A function doesn't need to be marked VOLATILE, because that's the default.
A function should be marked STRICT if it should return NULL when it is passed a NULL argument, and then the function won't even be called if it is indeed passed a NULL argument.
I am available for any questions.