Use a devd event to start hv_kvpd instead of doing so in rc.d script.

This is cleaner and eliminates the unneeded startup of KVP daemon on
systems that do not run as a Hyper-V guest.

Submitted by:	hrs
X-MFC-with:	271493, 271688, 271699
This commit is contained in:
Xin LI 2014-09-17 02:32:22 +00:00
parent 6574b8ed19
commit 76cd7220b5
7 changed files with 26 additions and 24 deletions

View File

@ -38,6 +38,8 @@
# xargs -n1 | sort | uniq -d;
# done
# 20140917: hv_kvpd rc.d script removed in favor of devd configuration
OLD_FILES+=etc/rc.d/hv_kvpd
# 20140814: libopie version bump
OLD_LIBS+=usr/lib/libopie.so.7
OLD_LIBS+=usr/lib32/libopie.so.7

View File

@ -684,8 +684,6 @@ jail_enable="NO" # Set to NO to disable starting of any jails
jail_parallel_start="NO" # Start jails in the background
jail_list="" # Space separated list of names of jails
hv_kvpd_enable="NO" # Start the Hyper-V key-value Pair Driver hv_kvp(4)
##############################################################
### Define source_rc_confs, the mechanism used by /etc/rc.* ##
### scripts to source rc_conf_files overrides safely. ##

View File

@ -18,6 +18,10 @@ FILES+= uath.conf usb.conf
FILES+= zfs.conf
.endif
.if ${MK_HYPERV} != "no"
FILES+= hyperv.conf
.endif
NO_OBJ=
FILESDIR= /etc/devd
FILESMODE= 644

19
etc/devd/hyperv.conf Normal file
View File

@ -0,0 +1,19 @@
# $FreeBSD$
#
# Hyper-V specific events
notify 10 {
match "system" "DEVFS";
match "subsystem" "CDEV";
match "type" "CREATE";
match "cdev" "/dev/hv_kvp_dev";
action "/usr/sbin/hv_kvp_daemon";
};
notify 10 {
match "system" "DEVFS";
match "subsystem" "CDEV";
match "type" "DESTROY";
match "cdev" "/dev/hv_kvp_dev";
action "pkill -x hv_kvp_daemon";
};

View File

@ -57,7 +57,6 @@ FILES= DAEMON \
hostid \
hostid_save \
hostname \
${_hv_kvpd} \
inetd \
initrandom \
ip6addrctl \
@ -193,10 +192,6 @@ _ubthidhci= ubthidhci
_casperd= casperd
.endif
.if ${MK_HYPERV} != "no"
_hv_kvpd= hv_kvpd
.endif
.if ${MK_UNBOUND} != "no"
_unbound= local_unbound
.endif

View File

@ -1,16 +0,0 @@
#!/bin/sh
#
# $FreeBSD$
#
# PROVIDE: hv_kvpd
. /etc/rc.subr
name="hv_kvp_daemon"
rcvar="hv_kvpd_enable"
command="/usr/sbin/${name}"
required_dirs="/var/db/hyperv"
load_rc_config $name
run_rc_command "$1"

View File

@ -4768,7 +4768,7 @@ OLD_FILES+=usr/share/examples/dma/mailer.conf
.endif
.if ${MK_HYPERV} == no
OLD_FILES+=etc/rc.d/hv_kvpd
OLD_FILES+=etc/devd/hyperv.conf
OLD_FILES+=usr/libexec/hyperv/hv_set_ifconfig
OLD_FILES+=usr/libexec/hyperv/hv_get_dns_info
OLD_FILES+=usr/libexec/hyperv/hv_get_dhcp_info