[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt PATCH 01/14] remove HAL node device driver



On 9/17/20 10:29 AM, Pavel Hrdina wrote:
There was one attempt a year ago done by me to drop HAL [1] but it was
never resolved. There was another time when Dan suggested to drop HAL
driver [2] but it was decided to keep it around in case device
assignment will be implemented for FreeBSD and the fact that
virt-manager uses node device driver [3].

I checked git history and code and it doesn't look like bhyve supports
device assignment so from that POV it should not block removing HAL.

The argument about virt-manager is not strong as well because libvirt
installed from FreeBSD packages doesn't have HAL support so it will not
affect these users as well [4].

The only users affected by this change would be the ones compiling
libvirt from GIT on FreeBSD.

I looked into alternatives and there is libudev-devd package on FreeBSD
but unfortunately it doesn't work as it doesn't list any devices when
used with libvirt. It provides libudev APIs using devd.

I also looked into devd directly and it provides some APIs but there are
no APIs for device monitoring and events so that would have to be
somehow done by libvirt.

Main motivation for dropping HAL support is to replace libdbus with GLib
dbus implementation and it cannot be done with HAL driver present in
libvirt because HAL APIs heavily depends on symbols provided by libdbus.

[1] <https://www.redhat.com/archives/libvir-list/2019-May/msg00203.html>
[2] <https://www.redhat.com/archives/libvir-list/2016-April/msg00992.html>
[3] <https://www.redhat.com/archives/libvir-list/2016-April/msg00994.html>
[4] <https://svnweb.freebsd.org/ports/head/devel/libvirt/Makefile?view=markup>

Signed-off-by: Pavel Hrdina <phrdina redhat com>
---
  meson.build                          |   9 +-
  meson_options.txt                    |   1 -
  po/POTFILES.in                       |   1 -
  src/node_device/meson.build          |   5 -
  src/node_device/node_device_driver.c |  10 +-
  src/node_device/node_device_driver.h |   5 -
  src/node_device/node_device_hal.c    | 843 ---------------------------
  src/node_device/node_device_hal.h    |  22 -
  8 files changed, 3 insertions(+), 893 deletions(-)
  delete mode 100644 src/node_device/node_device_hal.c
  delete mode 100644 src/node_device/node_device_hal.h

Couple of missed occurrences:

diff --git i/docs/drvnodedev.html.in w/docs/drvnodedev.html.in
index ab87b6bbd2..0823c1888d 100644
--- i/docs/drvnodedev.html.in
+++ w/docs/drvnodedev.html.in
@@ -23,8 +23,7 @@
(<a href="https://wiki.libvirt.org/page/NPIV_in_libvirt";>more info about NPIV)</a>). Devices on the host system are arranged in a tree-like hierarchy, with the root node being called <code>computer</code>. The node device driver - supports two backends to manage the devices, HAL and udev, with the former
-      being deprecated in favour of the latter.
+ supports udev backend (HAL backend was removed in <code>6.8.0</code>).
     </p>

     <p>
diff --git i/libvirt.spec.in w/libvirt.spec.in
index 62b401bd08..d9bfed0bef 100644
--- i/libvirt.spec.in
+++ w/libvirt.spec.in
@@ -1166,7 +1166,6 @@ export SOURCE_DATE_EPOCH=$(stat --printf='%Y' %{_specdir}/%{name}.spec)
            %{?arg_selinux_mount} \
            -Dapparmor=disabled \
            -Dsecdriver_apparmor=disabled \
-           -Dhal=disabled \
            -Dudev=enabled \
            -Dyajl=enabled \
            %{?arg_sanlock} \
diff --git i/scripts/hvsupport.py w/scripts/hvsupport.py
index 14c41da348..e2aab8feff 100755
--- i/scripts/hvsupport.py
+++ w/scripts/hvsupport.py
@@ -60,7 +60,6 @@ for root, dirs, files in os.walk(os.path.join(srcdir, "src")):
                 file.endswith("common.c") or
                 file.endswith("tmpl.c") or
                 file.endswith("monitor.c") or
-                file.endswith("hal.c") or
                 file.endswith("udev.c")):
             srcs.append(os.path.join(root, file))


And also it would be nice to mention this in the news file.

Michal


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]