[libvirt] [PATCH v3] daemon: Create priority workers pool

Daniel P. Berrange berrange at redhat.com
Wed Aug 31 10:45:56 UTC 2011


On Fri, Aug 26, 2011 at 11:34:27AM +0200, Michal Privoznik wrote:
> diff --git a/src/remote/qemu_protocol.x b/src/remote/qemu_protocol.x
> index 3279405..39f9adf 100644
> --- a/src/remote/qemu_protocol.x
> +++ b/src/remote/qemu_protocol.x
> @@ -52,9 +52,14 @@ const QEMU_PROGRAM = 0x20008087;
>  const QEMU_PROTOCOL_VERSION = 1;
>  
>  enum qemu_procedure {
> -    /* Each function must have a two-word comment.  The first word is
> +    /* Each function must have a three-word comment.  The first word is
>       * whether gendispatch.pl handles daemon, the second whether
> -     * it handles src/remote.  */
> -    QEMU_PROC_MONITOR_COMMAND = 1, /* skipgen skipgen */
> -    QEMU_PROC_DOMAIN_ATTACH = 2 /* autogen autogen */
> +     * it handles src/remote.
> +     * The last argument describes priority of API. There are two accepted
> +     * values: low, high; Each API that might eventually access hypervisor's
> +     * monitor (and thus block) MUST fall into low priority. However, there
> +     * are some exceptions to this rule, e.g. domainDestroy. Other APIs MAY
> +     * be marked as high priority. If in doubt, it's safe to choose low. */
> +    QEMU_PROC_MONITOR_COMMAND = 1, /* skipgen skipgen priority:low */
> +    QEMU_PROC_DOMAIN_ATTACH = 2 /* autogen autogen priority:low */

How about we make the last argument optional, so we only have to include
it if we want high priority. It is easy enough todo in the RPC parser.

> +    REMOTE_PROC_OPEN = 1, /* skipgen skipgen priority:high */
> +    REMOTE_PROC_CLOSE = 2, /* skipgen skipgen priority:high */
> +    REMOTE_PROC_GET_TYPE = 3, /* autogen skipgen priority:high */
> +    REMOTE_PROC_GET_VERSION = 4, /* autogen autogen priority:high */
> +    REMOTE_PROC_GET_MAX_VCPUS = 5, /* autogen autogen priority:high */
> +    REMOTE_PROC_NODE_GET_INFO = 6, /* autogen autogen priority:high */
> +    REMOTE_PROC_GET_CAPABILITIES = 7, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_ATTACH_DEVICE = 8, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_CREATE = 9, /* autogen skipgen priority:low */
> +    REMOTE_PROC_DOMAIN_CREATE_XML = 10, /* autogen autogen priority:low */
> +
> +    REMOTE_PROC_DOMAIN_DEFINE_XML = 11, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_DOMAIN_DESTROY = 12, /* autogen autogen priority:high */
> +    REMOTE_PROC_DOMAIN_DETACH_DEVICE = 13, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_GET_XML_DESC = 14, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_GET_AUTOSTART = 15, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_DOMAIN_GET_INFO = 16, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_GET_MAX_MEMORY = 17, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_DOMAIN_GET_MAX_VCPUS = 18, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_DOMAIN_GET_OS_TYPE = 19, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_DOMAIN_GET_VCPUS = 20, /* skipgen skipgen priority:low */

high

> +    REMOTE_PROC_LIST_DEFINED_DOMAINS = 21, /* autogen autogen priority:high */
> +    REMOTE_PROC_DOMAIN_LOOKUP_BY_ID = 22, /* autogen autogen priority:high */
> +    REMOTE_PROC_DOMAIN_LOOKUP_BY_NAME = 23, /* autogen autogen priority:high */
> +    REMOTE_PROC_DOMAIN_LOOKUP_BY_UUID = 24, /* autogen autogen priority:high */
> +    REMOTE_PROC_NUM_OF_DEFINED_DOMAINS = 25, /* autogen autogen priority:high */
> +    REMOTE_PROC_DOMAIN_PIN_VCPU = 26, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_REBOOT = 27, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_RESUME = 28, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_SET_AUTOSTART = 29, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_DOMAIN_SET_MAX_MEMORY = 30, /* autogen autogen priority:low */

high

> +
> +    REMOTE_PROC_DOMAIN_SET_MEMORY = 31, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_SET_VCPUS = 32, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_SHUTDOWN = 33, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_SUSPEND = 34, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_UNDEFINE = 35, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_LIST_DEFINED_NETWORKS = 36, /* autogen autogen priority:high */
> +    REMOTE_PROC_LIST_DOMAINS = 37, /* autogen skipgen priority:high */
> +    REMOTE_PROC_LIST_NETWORKS = 38, /* autogen autogen priority:high */
> +    REMOTE_PROC_NETWORK_CREATE = 39, /* autogen autogen priority:high */

low

> +    REMOTE_PROC_NETWORK_CREATE_XML = 40, /* autogen autogen priority:high */

low

> +    REMOTE_PROC_NETWORK_DEFINE_XML = 41, /* autogen autogen priority:high */
> +    REMOTE_PROC_NETWORK_DESTROY = 42, /* autogen autogen priority:high */
> +    REMOTE_PROC_NETWORK_GET_XML_DESC = 43, /* autogen autogen priority:high */
> +    REMOTE_PROC_NETWORK_GET_AUTOSTART = 44, /* autogen autogen priority:high */
> +    REMOTE_PROC_NETWORK_GET_BRIDGE_NAME = 45, /* autogen autogen priority:high */
> +    REMOTE_PROC_NETWORK_LOOKUP_BY_NAME = 46, /* autogen autogen priority:high */
> +    REMOTE_PROC_NETWORK_LOOKUP_BY_UUID = 47, /* autogen autogen priority:high */
> +    REMOTE_PROC_NETWORK_SET_AUTOSTART = 48, /* autogen autogen priority:high */
> +    REMOTE_PROC_NETWORK_UNDEFINE = 49, /* autogen autogen priority:high */
> +    REMOTE_PROC_NUM_OF_DEFINED_NETWORKS = 50, /* autogen autogen priority:high */
> +
> +    REMOTE_PROC_NUM_OF_DOMAINS = 51, /* autogen autogen priority:high */
> +    REMOTE_PROC_NUM_OF_NETWORKS = 52, /* autogen autogen priority:high */
> +    REMOTE_PROC_DOMAIN_CORE_DUMP = 53, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_RESTORE = 54, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_SAVE = 55, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_GET_SCHEDULER_TYPE = 56, /* skipgen skipgen priority:low */
> +    REMOTE_PROC_DOMAIN_GET_SCHEDULER_PARAMETERS = 57, /* skipgen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_SET_SCHEDULER_PARAMETERS = 58, /* autogen autogen priority:low */
> +    REMOTE_PROC_GET_HOSTNAME = 59, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_SUPPORTS_FEATURE = 60, /* autogen autogen priority:low */

high

> +
> +    REMOTE_PROC_DOMAIN_MIGRATE_PREPARE = 61, /* skipgen skipgen priority:low */
> +    REMOTE_PROC_DOMAIN_MIGRATE_PERFORM = 62, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_MIGRATE_FINISH = 63, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_BLOCK_STATS = 64, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_INTERFACE_STATS = 65, /* autogen autogen priority:high */
> +    REMOTE_PROC_AUTH_LIST = 66, /* skipgen skipgen priority:high */
> +    REMOTE_PROC_AUTH_SASL_INIT = 67, /* skipgen skipgen priority:high */
> +    REMOTE_PROC_AUTH_SASL_START = 68, /* skipgen skipgen priority:high */
> +    REMOTE_PROC_AUTH_SASL_STEP = 69, /* skipgen skipgen priority:high */
> +    REMOTE_PROC_AUTH_POLKIT = 70, /* skipgen skipgen priority:high */
> +
> +    REMOTE_PROC_NUM_OF_STORAGE_POOLS = 71, /* autogen autogen priority:high */
> +    REMOTE_PROC_LIST_STORAGE_POOLS = 72, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_NUM_OF_DEFINED_STORAGE_POOLS = 73, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_LIST_DEFINED_STORAGE_POOLS = 74, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_FIND_STORAGE_POOL_SOURCES = 75, /* autogen skipgen priority:low */
> +    REMOTE_PROC_STORAGE_POOL_CREATE_XML = 76, /* autogen autogen priority:low */
> +    REMOTE_PROC_STORAGE_POOL_DEFINE_XML = 77, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_STORAGE_POOL_CREATE = 78, /* autogen autogen priority:low */
> +    REMOTE_PROC_STORAGE_POOL_BUILD = 79, /* autogen autogen priority:low */
> +    REMOTE_PROC_STORAGE_POOL_DESTROY = 80, /* autogen autogen priority:low */

high

> +
> +    REMOTE_PROC_STORAGE_POOL_DELETE = 81, /* autogen autogen priority:low */
> +    REMOTE_PROC_STORAGE_POOL_UNDEFINE = 82, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_STORAGE_POOL_REFRESH = 83, /* autogen autogen priority:low */
> +    REMOTE_PROC_STORAGE_POOL_LOOKUP_BY_NAME = 84, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_STORAGE_POOL_LOOKUP_BY_UUID = 85, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_STORAGE_POOL_LOOKUP_BY_VOLUME = 86, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_STORAGE_POOL_GET_INFO = 87, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_STORAGE_POOL_GET_XML_DESC = 88, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_STORAGE_POOL_GET_AUTOSTART = 89, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_STORAGE_POOL_SET_AUTOSTART = 90, /* autogen autogen priority:low */

high

> +
> +    REMOTE_PROC_STORAGE_POOL_NUM_OF_VOLUMES = 91, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_STORAGE_POOL_LIST_VOLUMES = 92, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_STORAGE_VOL_CREATE_XML = 93, /* autogen autogen priority:low */
> +    REMOTE_PROC_STORAGE_VOL_DELETE = 94, /* autogen autogen priority:low */
> +    REMOTE_PROC_STORAGE_VOL_LOOKUP_BY_NAME = 95, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_STORAGE_VOL_LOOKUP_BY_KEY = 96, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_STORAGE_VOL_LOOKUP_BY_PATH = 97, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_STORAGE_VOL_GET_INFO = 98, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_STORAGE_VOL_GET_XML_DESC = 99, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_STORAGE_VOL_GET_PATH = 100, /* autogen autogen priority:low */

high

> +
> +    REMOTE_PROC_NODE_GET_CELLS_FREE_MEMORY = 101, /* autogen skipgen priority:high */
> +    REMOTE_PROC_NODE_GET_FREE_MEMORY = 102, /* autogen autogen priority:high */
> +    REMOTE_PROC_DOMAIN_BLOCK_PEEK = 103, /* skipgen skipgen priority:low */
> +    REMOTE_PROC_DOMAIN_MEMORY_PEEK = 104, /* skipgen skipgen priority:low */
> +    REMOTE_PROC_DOMAIN_EVENTS_REGISTER = 105, /* skipgen skipgen priority:low */

high

> +    REMOTE_PROC_DOMAIN_EVENTS_DEREGISTER = 106, /* skipgen skipgen priority:low */

high

> +    REMOTE_PROC_DOMAIN_EVENT_LIFECYCLE = 107, /* autogen autogen priority:low */

n/a

> +    REMOTE_PROC_DOMAIN_MIGRATE_PREPARE2 = 108, /* skipgen skipgen priority:low */
> +    REMOTE_PROC_DOMAIN_MIGRATE_FINISH2 = 109, /* autogen autogen priority:low */
> +    REMOTE_PROC_GET_URI = 110, /* autogen skipgen priority:high */
> +
> +    REMOTE_PROC_NODE_NUM_OF_DEVICES = 111, /* autogen autogen priority:high */
> +    REMOTE_PROC_NODE_LIST_DEVICES = 112, /* autogen autogen priority:high */
> +    REMOTE_PROC_NODE_DEVICE_LOOKUP_BY_NAME = 113, /* autogen autogen priority:high */
> +    REMOTE_PROC_NODE_DEVICE_GET_XML_DESC = 114, /* autogen autogen priority:high */

low

> +    REMOTE_PROC_NODE_DEVICE_GET_PARENT = 115, /* skipgen autogen priority:high */
> +    REMOTE_PROC_NODE_DEVICE_NUM_OF_CAPS = 116, /* autogen autogen priority:high */
> +    REMOTE_PROC_NODE_DEVICE_LIST_CAPS = 117, /* autogen autogen priority:high */
> +    REMOTE_PROC_NODE_DEVICE_DETTACH = 118, /* autogen skipgen priority:high */

low

> +    REMOTE_PROC_NODE_DEVICE_RE_ATTACH = 119, /* autogen skipgen priority:high */

low

> +    REMOTE_PROC_NODE_DEVICE_RESET = 120, /* autogen skipgen priority:high */

low

> +
> +    REMOTE_PROC_DOMAIN_GET_SECURITY_LABEL = 121, /* skipgen skipgen priority:low */

high

> +    REMOTE_PROC_NODE_GET_SECURITY_MODEL = 122, /* skipgen skipgen priority:high */
> +    REMOTE_PROC_NODE_DEVICE_CREATE_XML = 123, /* autogen autogen priority:high */

low

> +    REMOTE_PROC_NODE_DEVICE_DESTROY = 124, /* autogen autogen priority:high */
> +    REMOTE_PROC_STORAGE_VOL_CREATE_XML_FROM = 125, /* autogen autogen priority:low */
> +    REMOTE_PROC_NUM_OF_INTERFACES = 126, /* autogen autogen priority:high */
> +    REMOTE_PROC_LIST_INTERFACES = 127, /* autogen autogen priority:high */
> +    REMOTE_PROC_INTERFACE_LOOKUP_BY_NAME = 128, /* autogen autogen priority:high */
> +    REMOTE_PROC_INTERFACE_LOOKUP_BY_MAC_STRING = 129, /* autogen autogen priority:high */
> +    REMOTE_PROC_INTERFACE_GET_XML_DESC = 130, /* autogen autogen priority:high */

low

> +
> +    REMOTE_PROC_INTERFACE_DEFINE_XML = 131, /* autogen autogen priority:high */
> +    REMOTE_PROC_INTERFACE_UNDEFINE = 132, /* autogen autogen priority:high */
> +    REMOTE_PROC_INTERFACE_CREATE = 133, /* autogen autogen priority:high */

low

> +    REMOTE_PROC_INTERFACE_DESTROY = 134, /* autogen autogen priority:high */
> +    REMOTE_PROC_DOMAIN_XML_FROM_NATIVE = 135, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_XML_TO_NATIVE = 136, /* autogen autogen priority:low */
> +    REMOTE_PROC_NUM_OF_DEFINED_INTERFACES = 137, /* autogen autogen priority:high */
> +    REMOTE_PROC_LIST_DEFINED_INTERFACES = 138, /* autogen autogen priority:high */
> +    REMOTE_PROC_NUM_OF_SECRETS = 139, /* autogen autogen priority:high */
> +    REMOTE_PROC_LIST_SECRETS = 140, /* autogen autogen priority:high */
> +
> +    REMOTE_PROC_SECRET_LOOKUP_BY_UUID = 141, /* autogen autogen priority:high */
> +    REMOTE_PROC_SECRET_DEFINE_XML = 142, /* autogen autogen priority:high */
> +    REMOTE_PROC_SECRET_GET_XML_DESC = 143, /* autogen autogen priority:high */
> +    REMOTE_PROC_SECRET_SET_VALUE = 144, /* autogen autogen priority:high */
> +    REMOTE_PROC_SECRET_GET_VALUE = 145, /* skipgen skipgen priority:high */
> +    REMOTE_PROC_SECRET_UNDEFINE = 146, /* autogen autogen priority:high */
> +    REMOTE_PROC_SECRET_LOOKUP_BY_USAGE = 147, /* autogen autogen priority:high */
> +    REMOTE_PROC_DOMAIN_MIGRATE_PREPARE_TUNNEL = 148, /* autogen autogen | writestream at 1 priority:low */
> +    REMOTE_PROC_IS_SECURE = 149, /* autogen skipgen priority:low */

high

> +    REMOTE_PROC_DOMAIN_IS_ACTIVE = 150, /* autogen autogen priority:low */

high

> +
> +    REMOTE_PROC_DOMAIN_IS_PERSISTENT = 151, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_NETWORK_IS_ACTIVE = 152, /* autogen autogen priority:high */
> +    REMOTE_PROC_NETWORK_IS_PERSISTENT = 153, /* autogen autogen priority:high */
> +    REMOTE_PROC_STORAGE_POOL_IS_ACTIVE = 154, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_STORAGE_POOL_IS_PERSISTENT = 155, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_INTERFACE_IS_ACTIVE = 156, /* autogen autogen priority:high */
> +    REMOTE_PROC_GET_LIB_VERSION = 157, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_CPU_COMPARE = 158, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_DOMAIN_MEMORY_STATS = 159, /* skipgen skipgen priority:low */
> +    REMOTE_PROC_DOMAIN_ATTACH_DEVICE_FLAGS = 160, /* autogen autogen priority:low */
> +
> +    REMOTE_PROC_DOMAIN_DETACH_DEVICE_FLAGS = 161, /* autogen autogen priority:low */
> +    REMOTE_PROC_CPU_BASELINE = 162, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_GET_JOB_INFO = 163, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_ABORT_JOB = 164, /* autogen autogen priority:low */
> +    REMOTE_PROC_STORAGE_VOL_WIPE = 165, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_MIGRATE_SET_MAX_DOWNTIME = 166, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_EVENTS_REGISTER_ANY = 167, /* skipgen skipgen priority:low */

high

> +    REMOTE_PROC_DOMAIN_EVENTS_DEREGISTER_ANY = 168, /* skipgen skipgen priority:low */

high

> +    REMOTE_PROC_DOMAIN_EVENT_REBOOT = 169, /* autogen autogen priority:low */

n/a

> +    REMOTE_PROC_DOMAIN_EVENT_RTC_CHANGE = 170, /* autogen autogen priority:low */

n/a

> +
> +    REMOTE_PROC_DOMAIN_EVENT_WATCHDOG = 171, /* autogen autogen priority:low */

n/a

> +    REMOTE_PROC_DOMAIN_EVENT_IO_ERROR = 172, /* autogen autogen priority:low */

n/a

> +    REMOTE_PROC_DOMAIN_EVENT_GRAPHICS = 173, /* autogen autogen priority:low */

n/a

> +    REMOTE_PROC_DOMAIN_UPDATE_DEVICE_FLAGS = 174, /* autogen autogen priority:low */
> +    REMOTE_PROC_NWFILTER_LOOKUP_BY_NAME = 175, /* autogen autogen priority:high */
> +    REMOTE_PROC_NWFILTER_LOOKUP_BY_UUID = 176, /* autogen autogen priority:high */
> +    REMOTE_PROC_NWFILTER_GET_XML_DESC = 177, /* autogen autogen priority:high */
> +    REMOTE_PROC_NUM_OF_NWFILTERS = 178, /* autogen autogen priority:high */
> +    REMOTE_PROC_LIST_NWFILTERS = 179, /* autogen autogen priority:high */
> +    REMOTE_PROC_NWFILTER_DEFINE_XML = 180, /* autogen autogen priority:high */
> +
> +    REMOTE_PROC_NWFILTER_UNDEFINE = 181, /* autogen autogen priority:high */
> +    REMOTE_PROC_DOMAIN_MANAGED_SAVE = 182, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_HAS_MANAGED_SAVE_IMAGE = 183, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_MANAGED_SAVE_REMOVE = 184, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_SNAPSHOT_CREATE_XML = 185, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_SNAPSHOT_GET_XML_DESC = 186, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_DOMAIN_SNAPSHOT_NUM = 187, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_DOMAIN_SNAPSHOT_LIST_NAMES = 188, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_DOMAIN_SNAPSHOT_LOOKUP_BY_NAME = 189, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_DOMAIN_HAS_CURRENT_SNAPSHOT = 190, /* autogen autogen priority:low */
> +
> +    REMOTE_PROC_DOMAIN_SNAPSHOT_CURRENT = 191, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_REVERT_TO_SNAPSHOT = 192, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_SNAPSHOT_DELETE = 193, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_GET_BLOCK_INFO = 194, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_EVENT_IO_ERROR_REASON = 195, /* autogen autogen priority:low */

n/a

> +    REMOTE_PROC_DOMAIN_CREATE_WITH_FLAGS = 196, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_SET_MEMORY_PARAMETERS = 197, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_GET_MEMORY_PARAMETERS = 198, /* skipgen skipgen priority:low */
> +    REMOTE_PROC_DOMAIN_SET_VCPUS_FLAGS = 199, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_GET_VCPUS_FLAGS = 200, /* autogen autogen priority:low */
> +
> +    REMOTE_PROC_DOMAIN_OPEN_CONSOLE = 201, /* autogen autogen | readstream at 2 priority:low */
> +    REMOTE_PROC_DOMAIN_IS_UPDATED = 202, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_GET_SYSINFO = 203, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_DOMAIN_SET_MEMORY_FLAGS = 204, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_SET_BLKIO_PARAMETERS = 205, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_GET_BLKIO_PARAMETERS = 206, /* skipgen skipgen priority:low */
> +    REMOTE_PROC_DOMAIN_MIGRATE_SET_MAX_SPEED = 207, /* autogen autogen priority:low */
> +    REMOTE_PROC_STORAGE_VOL_UPLOAD = 208, /* autogen autogen | writestream at 1 priority:low */
> +    REMOTE_PROC_STORAGE_VOL_DOWNLOAD = 209, /* autogen autogen | readstream at 1 priority:low */
> +    REMOTE_PROC_DOMAIN_INJECT_NMI = 210, /* autogen autogen priority:low */
> +
> +    REMOTE_PROC_DOMAIN_SCREENSHOT = 211, /* autogen autogen | readstream at 1 priority:low */
> +    REMOTE_PROC_DOMAIN_GET_STATE = 212, /* skipgen skipgen priority:high */
> +    REMOTE_PROC_DOMAIN_MIGRATE_BEGIN3 = 213, /* skipgen skipgen priority:low */
> +    REMOTE_PROC_DOMAIN_MIGRATE_PREPARE3 = 214, /* skipgen skipgen priority:low */
> +    REMOTE_PROC_DOMAIN_MIGRATE_PREPARE_TUNNEL3 = 215, /* autogen skipgen | writestream at 1 priority:low */
> +    REMOTE_PROC_DOMAIN_MIGRATE_PERFORM3 = 216, /* skipgen skipgen priority:low */
> +    REMOTE_PROC_DOMAIN_MIGRATE_FINISH3 = 217, /* skipgen skipgen priority:low */
> +    REMOTE_PROC_DOMAIN_MIGRATE_CONFIRM3 = 218, /* skipgen skipgen priority:low */
> +    REMOTE_PROC_DOMAIN_SET_SCHEDULER_PARAMETERS_FLAGS = 219, /* autogen autogen priority:low */
> +    REMOTE_PROC_INTERFACE_CHANGE_BEGIN = 220, /* autogen autogen priority:high */

low

> +
> +    REMOTE_PROC_INTERFACE_CHANGE_COMMIT = 221, /* autogen autogen priority:high */

low

> +    REMOTE_PROC_INTERFACE_CHANGE_ROLLBACK = 222, /* autogen autogen priority:high */

low

> +    REMOTE_PROC_DOMAIN_GET_SCHEDULER_PARAMETERS_FLAGS = 223, /* skipgen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_EVENT_CONTROL_ERROR = 224, /* skipgen skipgen priority:low */

n/a

> +    REMOTE_PROC_DOMAIN_PIN_VCPU_FLAGS = 225, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_SEND_KEY = 226, /* autogen autogen priority:low */
> +    REMOTE_PROC_NODE_GET_CPU_STATS = 227, /* skipgen skipgen priority:high */
> +    REMOTE_PROC_NODE_GET_MEMORY_STATS = 228, /* skipgen skipgen priority:high */
> +    REMOTE_PROC_DOMAIN_GET_CONTROL_INFO = 229, /* autogen autogen priority:high */
> +    REMOTE_PROC_DOMAIN_GET_VCPU_PIN_INFO = 230, /* skipgen skipgen priority:low */
> +
> +    REMOTE_PROC_DOMAIN_UNDEFINE_FLAGS = 231, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_DOMAIN_SAVE_FLAGS = 232, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_RESTORE_FLAGS = 233, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_DESTROY_FLAGS = 234, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_DOMAIN_SAVE_IMAGE_GET_XML_DESC = 235, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_DOMAIN_SAVE_IMAGE_DEFINE_XML = 236, /* autogen autogen priority:low */

high

> +    REMOTE_PROC_DOMAIN_BLOCK_JOB_ABORT = 237, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_GET_BLOCK_JOB_INFO = 238, /* skipgen skipgen priority:low */
> +    REMOTE_PROC_DOMAIN_BLOCK_JOB_SET_SPEED = 239, /* autogen autogen priority:low */
> +    REMOTE_PROC_DOMAIN_BLOCK_PULL = 240, /* autogen autogen priority:low */
> +
> +    REMOTE_PROC_DOMAIN_EVENT_BLOCK_JOB = 241 /* skipgen skipgen priority:low */

> diff --git a/src/rpc/gendispatch.pl b/src/rpc/gendispatch.pl
> index 0d344e8..1ca3bc0 100755
> --- a/src/rpc/gendispatch.pl
> +++ b/src/rpc/gendispatch.pl
> @@ -146,12 +146,13 @@ while (<PROTOCOL>) {
>          }
>  
>          if ($opt_b or $opt_k) {
> -            if (!($flags =~ m/^\s*\/\*\s*(\S+)\s+(\S+)\s*(.*)\*\/\s*$/)) {
> +            if (!($flags =~ m/^\s*\/\*\s*(\S+)\s+(\S+)\s*(.*)\s+priority:(\S+)\s*\*\/\s*$/)) {
>                  die "invalid generator flags for ${procprefix}_PROC_${name}"
>              }

To make priority optional use:

             if (!($flags =~ m/^\s*\/\*\s*(\S+)\s+(\S+)\s*(.*)(\s+priority:(\S+)\s*\*\/\s*$/)?)) {

>  
>              my $genmode = $opt_b ? $1 : $2;
>              my $genflags = $3;
> +            my $priority = $4;

And change to:

              my $priority = defined $4 ? $4 : "low";

thus we can leave out all the priority:low annotations by default


The rest of the patch looks fine to me


Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list