[libvirt] [PATCH v2 00/37] Change OOM reporting

John Ferlan jferlan at redhat.com
Tue Apr 30 14:19:58 UTC 2013


On 04/29/2013 09:50 AM, Michal Privoznik wrote:
> Previously, the first version dropped virReportOOMError from
> almost everywhere. This series don't set such high goal yet. It
> just prepares ground for doing so. The worst case scenario is the
> OOM error is reported twice. Once in VIR_ALLOC, VIR_STRDUP,
> virAsprintf (or similar), then in virReportOOMError itself.
> However, once this is pushed, it's easy to get rid of the latter
> one.
> 

I've gone through each of the patches and figured I'd do one synopsis
message!

>From the code motion and adjustment, it seems things are OK. I tried to
keep focus, but the monotony of motion could have just as easily played
tricks on my eyes.

I noted a few issues that need cleanup (the missing increment in 12, an
'm' instead of a ',', a couple of spacing things, and the syntax-check
STRUP typo.

While not called out, patches 24 (test), 26 (util), and 30 (xen) also
had a few instances of auto increment inside the STR*DUP macro. It seems
from Eric's comments from 12 that it's OK to do so as long as it's
documented that way.

Beyond that - thanks for a new way to take power naps :-)

John

> Patches available at:
>   git://gitorious.org/~zippy2/libvirt/michal-staging.git
>   branch oom3
> 
> Remember, this will not be pushed until we are after the freeze.
> But the freeze creates a nice steady HEAD which is needed in such
> a giant change like this one.
> 
> Michal Privoznik (37):
>   virutil: Move string related functions to virstring.c
>   virstring: Introduce VIR_STRUP and VIR_STRNDUP
>   Adapt to VIR_STRDUP in daemon/*
>   Adapt to VIR_STRDUP in src/conf/*
>   Adapt to VIR_STRDUP in src/cpu/*
>   Adapt to VIR_STRDUP in src/esx/*
>   Adapt to VIR_STRDUP in src/hyperv/*
>   Adapt to VIR_STRDUP in src/libxl/*
>   Adapt to VIR_STRDUP in src/locking/*
>   Adapt to VIR_STRDUP in src/lxc/*
>   Adapt to VIR_STRDUP in src/network/*
>   Adapt to VIR_STRDUP in src/node_device/*
>   Adapt to VIR_STRDUP in src/interface/
>   Adapt to VIR_STRDUP in src/nwfilter/*
>   Adapt to VIR_STRDUP in src/openvz/*
>   Adapt to VIR_STRDUP in src/parallels/*
>   Adapt to VIR_STRDUP in src/phyp/*
>   Adapt to VIR_STRDUP in src/qemu/*
>   Adapt to VIR_STRDUP in src/remote/*
>   Adapt to VIR_STRDUP in src/rpc/*
>   Adapt to VIR_STRDUP in src/secret/*
>   Adapt to VIR_STRDUP in src/security/*
>   Adapt to VIR_STRDUP in src/storage/*
>   Adapt to VIR_STRDUP in src/test/*
>   Adapt to VIR_STRDUP in src/uml/*
>   Adapt to VIR_STRDUP in src/util/*
>   Adapt to VIR_STRDUP in src/vbox/*
>   Adapt to VIR_STRDUP in src/vmware/*
>   Adapt to VIR_STRDUP in src/vmx/*
>   Adapt to VIR_STRDUP in src/xen/*
>   Adapt to VIR_STRDUP in src/xenapi/*
>   Adapt to VIR_STRDUP in src/xenxs/*
>   Adapt to VIR_STRDUP in tests/*
>   Adapt to VIR_STRDUP in src/*
>   Introduce syntax-check rule to prefer VIR_STRDUP over strdup
>   virstring: Introduce virAsprintfQuiet and virVasprintfQuiet
>   viralloc.c: Do report OOM error in VIR_ALLOC and friends
> 
>  HACKING                                   |  19 ++
>  cfg.mk                                    |  12 +-
>  daemon/libvirtd-config.c                  |  39 +--
>  daemon/libvirtd.c                         |  19 +-
>  daemon/remote.c                           |  97 +++----
>  docs/hacking.html.in                      |  26 ++
>  include/libvirt/libvirt.h.in              |  10 +-
>  po/POTFILES.in                            |   1 +
>  python/libvirt-override.c                 | 103 +++----
>  src/conf/capabilities.c                   |  27 +-
>  src/conf/cpu_conf.c                       |  14 +-
>  src/conf/device_conf.c                    |   2 +-
>  src/conf/domain_audit.c                   |   1 +
>  src/conf/domain_conf.c                    |  66 ++---
>  src/conf/domain_conf.h                    |   1 -
>  src/conf/domain_event.c                   |  31 +-
>  src/conf/interface_conf.c                 |   1 -
>  src/conf/netdev_bandwidth_conf.c          |   2 +-
>  src/conf/netdev_vport_profile_conf.c      |   1 +
>  src/conf/network_conf.c                   |   2 +-
>  src/conf/node_device_conf.c               |  29 +-
>  src/conf/nwfilter_conf.c                  |  20 +-
>  src/conf/nwfilter_conf.h                  |   1 -
>  src/conf/nwfilter_params.c                |  23 +-
>  src/conf/secret_conf.c                    |   1 -
>  src/conf/snapshot_conf.c                  |   8 +-
>  src/conf/storage_conf.c                   |  11 +-
>  src/conf/storage_conf.h                   |   1 -
>  src/conf/storage_encryption_conf.c        |   1 -
>  src/conf/virchrdev.c                      |   7 +-
>  src/cpu/cpu_generic.c                     |   6 +-
>  src/cpu/cpu_map.c                         |   3 +-
>  src/cpu/cpu_powerpc.c                     |  11 +-
>  src/cpu/cpu_x86.c                         |   9 +-
>  src/datatypes.c                           |  26 +-
>  src/driver.c                              |   2 +-
>  src/esx/esx_device_monitor.c              |   1 -
>  src/esx/esx_driver.c                      |  35 +--
>  src/esx/esx_interface_driver.c            |   6 +-
>  src/esx/esx_network_driver.c              |  21 +-
>  src/esx/esx_nwfilter_driver.c             |   1 -
>  src/esx/esx_secret_driver.c               |   1 -
>  src/esx/esx_storage_backend_iscsi.c       |  15 +-
>  src/esx/esx_storage_backend_vmfs.c        |  10 +-
>  src/esx/esx_util.c                        |  39 +--
>  src/esx/esx_vi.c                          |  54 +---
>  src/esx/esx_vi_types.c                    |  24 +-
>  src/fdstream.c                            |   1 +
>  src/hyperv/hyperv_device_monitor.c        |   1 -
>  src/hyperv/hyperv_driver.c                |  37 +--
>  src/hyperv/hyperv_interface_driver.c      |   1 -
>  src/hyperv/hyperv_network_driver.c        |   1 -
>  src/hyperv/hyperv_nwfilter_driver.c       |   1 -
>  src/hyperv/hyperv_secret_driver.c         |   1 -
>  src/hyperv/hyperv_storage_driver.c        |   1 -
>  src/hyperv/hyperv_util.c                  |  16 +-
>  src/hyperv/hyperv_wmi.c                   |   2 +-
>  src/interface/interface_backend_udev.c    |  25 +-
>  src/libvirt.c                             |  10 +-
>  src/libvirt_private.syms                  |  36 +--
>  src/libxl/libxl_conf.c                    |  59 ++--
>  src/libxl/libxl_driver.c                  |  14 +-
>  src/locking/lock_daemon.c                 |  13 +-
>  src/locking/lock_daemon_config.c          |  10 +-
>  src/locking/lock_daemon_dispatch.c        |   4 +-
>  src/locking/lock_driver_lockd.c           |  24 +-
>  src/locking/lock_driver_sanlock.c         |   9 +-
>  src/locking/lock_manager.c                |   4 +-
>  src/lxc/lxc_cgroup.c                      |   3 +-
>  src/lxc/lxc_conf.c                        |  18 +-
>  src/lxc/lxc_container.c                   |  10 +-
>  src/lxc/lxc_controller.c                  |   8 +-
>  src/lxc/lxc_driver.c                      |   9 +-
>  src/lxc/lxc_fuse.c                        |   1 +
>  src/lxc/lxc_fuse.h                        |   1 -
>  src/lxc/lxc_monitor.c                     |   1 +
>  src/lxc/lxc_process.c                     |   5 +-
>  src/network/bridge_driver.c               |  30 +-
>  src/node_device/node_device_driver.c      |  29 +-
>  src/node_device/node_device_hal.c         |  13 +-
>  src/node_device/node_device_linux_sysfs.c |   1 +
>  src/node_device/node_device_udev.c        | 104 +++----
>  src/nodeinfo.c                            |   6 +-
>  src/nwfilter/nwfilter_dhcpsnoop.c         |  16 +-
>  src/nwfilter/nwfilter_driver.c            |   5 +-
>  src/nwfilter/nwfilter_ebiptables_driver.c |  12 +-
>  src/nwfilter/nwfilter_gentech_driver.c    |   4 +-
>  src/nwfilter/nwfilter_learnipaddr.c       |   4 +-
>  src/openvz/openvz_conf.c                  |  33 ++-
>  src/openvz/openvz_driver.c                |  32 +--
>  src/parallels/parallels_driver.c          |  36 +--
>  src/parallels/parallels_network.c         |  14 +-
>  src/parallels/parallels_storage.c         |  40 ++-
>  src/parallels/parallels_utils.c           |   2 +-
>  src/phyp/phyp_driver.c                    |  37 +--
>  src/qemu/qemu_agent.c                     |   1 +
>  src/qemu/qemu_bridge_filter.c             |   1 -
>  src/qemu/qemu_capabilities.c              |  38 +--
>  src/qemu/qemu_cgroup.c                    |   4 +-
>  src/qemu/qemu_command.c                   | 282 ++++++++-----------
>  src/qemu/qemu_conf.c                      |  33 +--
>  src/qemu/qemu_domain.c                    |  17 +-
>  src/qemu/qemu_driver.c                    |  93 +++---
>  src/qemu/qemu_hotplug.c                   |   9 +-
>  src/qemu/qemu_migration.c                 |  17 +-
>  src/qemu/qemu_monitor.c                   |   1 +
>  src/qemu/qemu_monitor_json.c              |  40 ++-
>  src/qemu/qemu_monitor_text.c              |  10 +-
>  src/qemu/qemu_process.c                   |  58 ++--
>  src/remote/remote_driver.c                |  83 +++---
>  src/rpc/gendispatch.pl                    |  13 +-
>  src/rpc/virkeepalive.c                    |   1 -
>  src/rpc/virnetclient.c                    |   8 +-
>  src/rpc/virnetmessage.c                   |  11 +-
>  src/rpc/virnetsaslcontext.c               |   3 +-
>  src/rpc/virnetserver.c                    |   4 +-
>  src/rpc/virnetserverclient.c              |   8 +-
>  src/rpc/virnetservermdns.c                |   4 +-
>  src/rpc/virnetsocket.c                    |   8 +-
>  src/rpc/virnetsshsession.c                |  23 +-
>  src/rpc/virnettlscontext.c                |  14 +-
>  src/secret/secret_driver.c                |   5 +-
>  src/security/security_apparmor.c          |  13 +-
>  src/security/security_dac.c               |   8 +-
>  src/security/security_nop.c               |   4 +-
>  src/security/security_selinux.c           |  51 ++--
>  src/security/virt-aa-helper.c             |   6 +-
>  src/storage/parthelper.c                  |   7 +-
>  src/storage/storage_backend.c             |  18 +-
>  src/storage/storage_backend_disk.c        |  16 +-
>  src/storage/storage_backend_fs.c          |  18 +-
>  src/storage/storage_backend_iscsi.c       |  16 +-
>  src/storage/storage_backend_logical.c     |  25 +-
>  src/storage/storage_backend_mpath.c       |   4 +-
>  src/storage/storage_backend_rbd.c         |   4 +-
>  src/storage/storage_backend_scsi.c        |  17 +-
>  src/storage/storage_backend_sheepdog.c    |   1 -
>  src/storage/storage_driver.c              |  13 +-
>  src/test/test_driver.c                    |  84 +++---
>  src/uml/uml_conf.c                        |   7 +-
>  src/uml/uml_driver.c                      |   8 +-
>  src/util/iohelper.c                       |   1 +
>  src/util/viralloc.c                       |  95 ++++++-
>  src/util/viralloc.h                       |  54 +++-
>  src/util/viraudit.c                       |   6 +-
>  src/util/virauth.c                        |   9 +-
>  src/util/virauthconfig.c                  |   7 +-
>  src/util/virbitmap.c                      |  10 +-
>  src/util/virbuffer.c                      |   8 +-
>  src/util/vircgroup.c                      |  31 +-
>  src/util/vircommand.c                     |  34 ++-
>  src/util/vircommand.h                     |   1 -
>  src/util/virconf.c                        |  21 +-
>  src/util/virdnsmasq.c                     |   5 +-
>  src/util/virebtables.c                    |  36 +--
>  src/util/virerror.c                       |  25 +-
>  src/util/virfile.c                        |   1 +
>  src/util/virhash.c                        |   5 +-
>  src/util/virhook.h                        |   1 -
>  src/util/viridentity.c                    |   9 +-
>  src/util/virinitctl.c                     |   3 +-
>  src/util/viriptables.c                    |   6 +-
>  src/util/virjson.c                        |  18 +-
>  src/util/virkeyfile.c                     |   7 +-
>  src/util/virlockspace.c                   |  14 +-
>  src/util/virlog.c                         |  21 +-
>  src/util/virnetdev.c                      |   2 +
>  src/util/virnetdevbandwidth.c             |   1 +
>  src/util/virnetdevbridge.c                |   1 +
>  src/util/virnetdevmacvlan.c               |  10 +-
>  src/util/virnetdevopenvswitch.c           |   1 +
>  src/util/virnetdevopenvswitch.h           |   1 -
>  src/util/virnetdevtap.c                   |   7 +-
>  src/util/virnetdevveth.c                  |   2 +
>  src/util/virnetdevvportprofile.c          |   4 +-
>  src/util/virobject.c                      |   5 +-
>  src/util/virpci.c                         |   7 +-
>  src/util/virpidfile.c                     |   1 +
>  src/util/virprocess.c                     |   1 +
>  src/util/virrandom.c                      |   1 +
>  src/util/virsexpr.c                       |  27 +-
>  src/util/virsocketaddr.c                  |   6 +-
>  src/util/virstatslinux.c                  |   1 -
>  src/util/virstoragefile.c                 |  13 +-
>  src/util/virstring.c                      | 451 +++++++++++++++++++++++++++++-
>  src/util/virstring.h                      |  74 +++++
>  src/util/virsysinfo.c                     | 170 +++++------
>  src/util/virthreadpthread.c               |   2 +-
>  src/util/virtime.c                        |   1 -
>  src/util/virtpm.c                         |   2 +-
>  src/util/virtypedparam.c                  |   9 +-
>  src/util/viruri.c                         |  20 +-
>  src/util/virusb.c                         |   1 +
>  src/util/virutil.c                        | 393 ++------------------------
>  src/util/virutil.h                        |  49 ----
>  src/util/virxml.c                         |   7 +-
>  src/vbox/vbox_MSCOMGlue.c                 |   1 -
>  src/vbox/vbox_XPCOMCGlue.c                |   5 +-
>  src/vbox/vbox_driver.c                    |   1 -
>  src/vbox/vbox_tmpl.c                      | 191 +++++++------
>  src/vmware/vmware_conf.c                  |  15 +-
>  src/vmware/vmware_driver.c                |  13 +-
>  src/vmx/vmx.c                             |  26 +-
>  src/xen/block_stats.c                     |   2 +-
>  src/xen/xen_driver.c                      |   4 +-
>  src/xen/xen_hypervisor.c                  |  17 +-
>  src/xen/xen_inotify.c                     |  11 +-
>  src/xen/xend_internal.c                   |  55 ++--
>  src/xen/xm_internal.c                     |   8 +-
>  src/xen/xs_internal.c                     |  22 +-
>  src/xenapi/xenapi_driver.c                |  34 ++-
>  src/xenapi/xenapi_utils.c                 |  22 +-
>  src/xenxs/xen_sxpr.c                      | 108 +++----
>  src/xenxs/xen_xm.c                        |  44 +--
>  tests/commandhelper.c                     |  14 +-
>  tests/commandtest.c                       |   4 +-
>  tests/cputest.c                           |   1 +
>  tests/domainsnapshotxml2xmltest.c         |   1 +
>  tests/esxutilstest.c                      |   1 -
>  tests/interfacexml2xmltest.c              |   2 +-
>  tests/libvirtdconftest.c                  |   1 +
>  tests/lxcxml2xmltest.c                    |   1 +
>  tests/networkxml2conftest.c               |   3 +
>  tests/networkxml2xmltest.c                |   1 +
>  tests/nodedevxml2xmltest.c                |   1 +
>  tests/nodeinfotest.c                      |   2 +-
>  tests/nwfilterxml2xmltest.c               |   1 +
>  tests/openvzutilstest.c                   |   8 +-
>  tests/qemuargv2xmltest.c                  |   2 +-
>  tests/qemuhelptest.c                      |   1 +
>  tests/qemumonitortest.c                   |   1 -
>  tests/qemumonitortestutils.c              |  10 +-
>  tests/qemuxml2argvtest.c                  |  28 +-
>  tests/qemuxml2xmltest.c                   |   1 +
>  tests/qemuxmlnstest.c                     |   6 +-
>  tests/securityselinuxhelper.c             |   7 +-
>  tests/securityselinuxlabeltest.c          |   5 +-
>  tests/securityselinuxtest.c               |   9 +-
>  tests/sexpr2xmltest.c                     |   1 +
>  tests/storagebackendsheepdogtest.c        |   6 +-
>  tests/storagepoolxml2xmltest.c            |   1 +
>  tests/storagevolxml2argvtest.c            |   1 +
>  tests/storagevolxml2xmltest.c             |   1 +
>  tests/sysinfotest.c                       |   2 +-
>  tests/test_conf.c                         |   2 +-
>  tests/testutils.c                         |   5 +-
>  tests/testutilsqemu.c                     |   5 +-
>  tests/virauthconfigtest.c                 |   1 -
>  tests/virbuftest.c                        |   2 +-
>  tests/vircgrouptest.c                     |   4 +-
>  tests/virdrivermoduletest.c               |   1 -
>  tests/virhashtest.c                       |   3 +-
>  tests/viridentitytest.c                   |   1 -
>  tests/virkeyfiletest.c                    |   1 -
>  tests/virnetmessagetest.c                 |  22 +-
>  tests/virnetsockettest.c                  |   1 +
>  tests/virportallocatortest.c              |   2 +-
>  tests/virshtest.c                         |   2 +-
>  tests/virstoragetest.c                    |   1 +
>  tests/virstringtest.c                     |   1 -
>  tests/virtimetest.c                       |   1 -
>  tests/viruritest.c                        |   1 -
>  tests/vmx2xmltest.c                       |  11 +-
>  tests/xencapstest.c                       |   1 +
>  tests/xmconfigtest.c                      |   3 +
>  tests/xml2sexprtest.c                     |   1 +
>  tests/xml2vmxtest.c                       |  11 +-
>  tools/console.c                           |   1 -
>  tools/virsh-domain-monitor.c              |   1 +
>  tools/virsh-domain.c                      |   1 -
>  tools/virsh-host.c                        |   2 +-
>  tools/virsh-interface.c                   |   1 +
>  tools/virsh-network.c                     |   1 -
>  tools/virsh-nodedev.c                     |   1 -
>  tools/virsh-pool.c                        |   2 +-
>  tools/virsh-snapshot.c                    |   1 -
>  tools/virsh-volume.c                      |   1 +
>  tools/virsh.c                             |   8 +-
>  tools/virt-host-validate-common.c         |   1 +
>  279 files changed, 2544 insertions(+), 2653 deletions(-)
> 




More information about the libvir-list mailing list