Release linux-tools (4.4-3).
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIVAwUAVsnSzee/yOyVhhEJAQp6HQ//YtPneFvZF7XJoJMsl8cqEWM1NKw85YJy R6zWvohaMRxvKxmessZAgSSXLRfyJB6aob5XafbRwSwGSc99AZYOKqYhf8Qz8nx+ STXGEjGB/mzlJvswz79BGxUN32lVvoV1V3YzHpWRveBClYTiefenj6RmJdVlECnv cyRRKxhHumkueKtBfTISvsh+jTBu7aZtXh/GV7aLDSlhzzSGCzLZWmtKiKOKH+xX ta49mLV1kWLJHfBaJg23a5YiIFmKi4+n1EX7T7H9ivgMbIDXKrGPQ7oC1hza1ZrF xZjS5HHUjlRylwextlzIYKK7kkm3JROWjSWJyxzFGHNH4UC8kKmChovrq93q3Cuu 3rHz5/nuuLsoxjpyk1U97mPGzGpfB+LES45GZq6E8/LejrFVX/HkX9tD92mJB1yt oBAskRVRKVIHgf9fG3XD8ACBEf8n6Y1gBwJ2DVXY8tacMRTEBe99BN5DCsojjm9X BZFPlATDhB+ZMFBpmUTYa3pMIs5Pat2to6F6MRTNWNiSn1tbDJj3LrY/yQQJGwUw I+SYgnQm8vvhjfN64kAu/AgYz5WFv1vk6YvcTKrXuJv2vuMvcV7SqoBSHQgCcHVU N/H1e5XHBN4KMY9EsSyawLV6Q+Libo5SGDcrzoA80BE5sXwiCbQ5zx2sp17LRJeC YD67dnle7s0= =6e+I -----END PGP SIGNATURE----- Merge tag 'debian/4.4-3' Move check-hyperv.c under debian/rules.d.
This commit is contained in:
commit
eb215f16de
|
@ -7,6 +7,21 @@ linux-tools (4.5~rc4-1~exp1) UNRELEASED; urgency=medium
|
||||||
|
|
||||||
-- Ben Hutchings <ben@decadent.org.uk> Thu, 18 Feb 2016 03:19:14 +0000
|
-- Ben Hutchings <ben@decadent.org.uk> Thu, 18 Feb 2016 03:19:14 +0000
|
||||||
|
|
||||||
|
linux-tools (4.4-3) unstable; urgency=medium
|
||||||
|
|
||||||
|
* hyperv-daemons: Add init scripts
|
||||||
|
|
||||||
|
-- Ben Hutchings <ben@decadent.org.uk> Sun, 21 Feb 2016 15:07:55 +0000
|
||||||
|
|
||||||
|
linux-tools (4.4-2) unstable; urgency=medium
|
||||||
|
|
||||||
|
* linux-perf: Include version number in strace groups installation directory
|
||||||
|
(Closes: #813080)
|
||||||
|
* [alpha,sh4] Attempt to fix build failures
|
||||||
|
* Build fixdep under debian/build and clean it up properly
|
||||||
|
|
||||||
|
-- Ben Hutchings <ben@decadent.org.uk> Fri, 19 Feb 2016 17:11:29 +0000
|
||||||
|
|
||||||
linux-tools (4.4-1) unstable; urgency=medium
|
linux-tools (4.4-1) unstable; urgency=medium
|
||||||
|
|
||||||
* Upload to unstable
|
* Upload to unstable
|
||||||
|
|
|
@ -30,3 +30,22 @@ License: GPL-2
|
||||||
Files: debian/*
|
Files: debian/*
|
||||||
Copyright: 2006-2012 Debian kernel team
|
Copyright: 2006-2012 Debian kernel team
|
||||||
License: GPL-2
|
License: GPL-2
|
||||||
|
|
||||||
|
Files: debian/build/tools/hv/check-hyperv.c
|
||||||
|
Copyright: 2011 Lennart Poettering
|
||||||
|
License: LGPL-2.1
|
||||||
|
This program is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU Lesser General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
.
|
||||||
|
This program is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Lesser General Public License for more details.
|
||||||
|
.
|
||||||
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
|
along with this program; If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
.
|
||||||
|
On Debian systems, the complete text of the GNU Lesser General Public
|
||||||
|
License version 2.1 can be found in `/usr/share/common-licenses/LGPL-2.1'.
|
||||||
|
|
|
@ -0,0 +1,110 @@
|
||||||
|
#! /bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides: hyperv-daemons.hv-fcopy-daemon
|
||||||
|
# Required-Start: $remote_fs $syslog
|
||||||
|
# Required-Stop: $remote_fs $syslog
|
||||||
|
# Default-Start: 2 3 4 5
|
||||||
|
# Default-Stop: 0 1 6
|
||||||
|
# Short-Description: Hyper-V file copy service (FCOPY) daemon
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
||||||
|
DESC="Hyper-V file copy service (FCOPY) daemon"
|
||||||
|
NAME=hv_fcopy_daemon
|
||||||
|
DAEMON=/usr/sbin/$NAME
|
||||||
|
PIDFILE=/var/run/$NAME.pid
|
||||||
|
SCRIPTNAME=/etc/init.d/hyperv-daemons.hv-fcopy-daemon
|
||||||
|
|
||||||
|
# Exit if the package is not installed
|
||||||
|
[ -x "$DAEMON" ] || exit 0
|
||||||
|
|
||||||
|
# Exit if we are not running under Hyper-V or the kernel device does not exist
|
||||||
|
/lib/hyperv-daemons/check-hyperv || exit 0
|
||||||
|
[ -e "/dev/vmbus/hv_fcopy" ] || exit 0
|
||||||
|
|
||||||
|
# Load the VERBOSE setting and other rcS variables
|
||||||
|
. /lib/init/vars.sh
|
||||||
|
|
||||||
|
# Define LSB log_* functions.
|
||||||
|
. /lib/lsb/init-functions
|
||||||
|
|
||||||
|
#
|
||||||
|
# Function that starts the daemon/service
|
||||||
|
#
|
||||||
|
do_start()
|
||||||
|
{
|
||||||
|
# Return
|
||||||
|
# 0 if daemon has been started
|
||||||
|
# 1 if daemon was already running
|
||||||
|
# 2 if daemon could not be started
|
||||||
|
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
|
||||||
|
|| return 1
|
||||||
|
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --background --make-pidfile -- -n \
|
||||||
|
|| return 2
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Function that stops the daemon/service
|
||||||
|
#
|
||||||
|
do_stop()
|
||||||
|
{
|
||||||
|
# Return
|
||||||
|
# 0 if daemon has been stopped
|
||||||
|
# 1 if daemon was already stopped
|
||||||
|
# 2 if daemon could not be stopped
|
||||||
|
# other if a failure occurred
|
||||||
|
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
|
||||||
|
[ "$?" = 2 ] && return 2
|
||||||
|
start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
|
||||||
|
RETVAL=$?
|
||||||
|
[ "$RETVAL" = 2 ] && return 2
|
||||||
|
# Many daemons don't delete their pidfiles when they exit.
|
||||||
|
rm -f $PIDFILE
|
||||||
|
return "$RETVAL"
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
|
||||||
|
do_start
|
||||||
|
case "$?" in
|
||||||
|
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
||||||
|
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
|
||||||
|
do_stop
|
||||||
|
case "$?" in
|
||||||
|
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
||||||
|
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
status)
|
||||||
|
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
|
||||||
|
;;
|
||||||
|
restart|force-reload)
|
||||||
|
log_daemon_msg "Restarting $DESC" "$NAME"
|
||||||
|
do_stop
|
||||||
|
case "$?" in
|
||||||
|
0|1)
|
||||||
|
do_start
|
||||||
|
case "$?" in
|
||||||
|
0) log_end_msg 0 ;;
|
||||||
|
1) log_end_msg 1 ;; # Old process is still running
|
||||||
|
*) log_end_msg 1 ;; # Failed to start
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# Failed to stop
|
||||||
|
log_end_msg 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
|
||||||
|
exit 3
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
:
|
|
@ -0,0 +1,109 @@
|
||||||
|
#! /bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides: hyperv-daemons.hv-kvp-daemon
|
||||||
|
# Required-Start: $remote_fs $syslog
|
||||||
|
# Required-Stop: $remote_fs $syslog
|
||||||
|
# Default-Start: 2 3 4 5
|
||||||
|
# Default-Stop: 0 1 6
|
||||||
|
# Short-Description: Hyper-V key-value pair (KVP) daemon
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
||||||
|
DESC="Hyper-V key-value pair (KVP) daemon"
|
||||||
|
NAME=hv_kvp_daemon
|
||||||
|
DAEMON=/usr/sbin/$NAME
|
||||||
|
PIDFILE=/var/run/$NAME.pid
|
||||||
|
SCRIPTNAME=/etc/init.d/hyperv-daemons.hv-kvp-daemon
|
||||||
|
|
||||||
|
# Exit if the package is not installed
|
||||||
|
[ -x "$DAEMON" ] || exit 0
|
||||||
|
|
||||||
|
# Exit if we are not running under Hyper-V
|
||||||
|
/lib/hyperv-daemons/check-hyperv || exit 0
|
||||||
|
|
||||||
|
# Load the VERBOSE setting and other rcS variables
|
||||||
|
. /lib/init/vars.sh
|
||||||
|
|
||||||
|
# Define LSB log_* functions.
|
||||||
|
. /lib/lsb/init-functions
|
||||||
|
|
||||||
|
#
|
||||||
|
# Function that starts the daemon/service
|
||||||
|
#
|
||||||
|
do_start()
|
||||||
|
{
|
||||||
|
# Return
|
||||||
|
# 0 if daemon has been started
|
||||||
|
# 1 if daemon was already running
|
||||||
|
# 2 if daemon could not be started
|
||||||
|
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
|
||||||
|
|| return 1
|
||||||
|
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --background --make-pidfile -- -n \
|
||||||
|
|| return 2
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Function that stops the daemon/service
|
||||||
|
#
|
||||||
|
do_stop()
|
||||||
|
{
|
||||||
|
# Return
|
||||||
|
# 0 if daemon has been stopped
|
||||||
|
# 1 if daemon was already stopped
|
||||||
|
# 2 if daemon could not be stopped
|
||||||
|
# other if a failure occurred
|
||||||
|
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
|
||||||
|
[ "$?" = 2 ] && return 2
|
||||||
|
start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
|
||||||
|
RETVAL=$?
|
||||||
|
[ "$RETVAL" = 2 ] && return 2
|
||||||
|
# Many daemons don't delete their pidfiles when they exit.
|
||||||
|
rm -f $PIDFILE
|
||||||
|
return "$RETVAL"
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
|
||||||
|
do_start
|
||||||
|
case "$?" in
|
||||||
|
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
||||||
|
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
|
||||||
|
do_stop
|
||||||
|
case "$?" in
|
||||||
|
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
||||||
|
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
status)
|
||||||
|
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
|
||||||
|
;;
|
||||||
|
restart|force-reload)
|
||||||
|
log_daemon_msg "Restarting $DESC" "$NAME"
|
||||||
|
do_stop
|
||||||
|
case "$?" in
|
||||||
|
0|1)
|
||||||
|
do_start
|
||||||
|
case "$?" in
|
||||||
|
0) log_end_msg 0 ;;
|
||||||
|
1) log_end_msg 1 ;; # Old process is still running
|
||||||
|
*) log_end_msg 1 ;; # Failed to start
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# Failed to stop
|
||||||
|
log_end_msg 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
|
||||||
|
exit 3
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
:
|
|
@ -0,0 +1,109 @@
|
||||||
|
#! /bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides: hyperv-daemons.hv-vss-daemon
|
||||||
|
# Required-Start: $remote_fs $syslog
|
||||||
|
# Required-Stop: $remote_fs $syslog
|
||||||
|
# Default-Start: 2 3 4 5
|
||||||
|
# Default-Stop: 0 1 6
|
||||||
|
# Short-Description: Hyper-V volume shadow copy service (VSS) daemon
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
||||||
|
DESC="Hyper-V volume shadow copy service (VSS) daemon"
|
||||||
|
NAME=hv_vss_daemon
|
||||||
|
DAEMON=/usr/sbin/$NAME
|
||||||
|
PIDFILE=/var/run/$NAME.pid
|
||||||
|
SCRIPTNAME=/etc/init.d/hyperv-daemons.hv-vss-daemon
|
||||||
|
|
||||||
|
# Exit if the package is not installed
|
||||||
|
[ -x "$DAEMON" ] || exit 0
|
||||||
|
|
||||||
|
# Exit if we are not running under Hyper-V
|
||||||
|
/lib/hyperv-daemons/check-hyperv || exit 0
|
||||||
|
|
||||||
|
# Load the VERBOSE setting and other rcS variables
|
||||||
|
. /lib/init/vars.sh
|
||||||
|
|
||||||
|
# Define LSB log_* functions.
|
||||||
|
. /lib/lsb/init-functions
|
||||||
|
|
||||||
|
#
|
||||||
|
# Function that starts the daemon/service
|
||||||
|
#
|
||||||
|
do_start()
|
||||||
|
{
|
||||||
|
# Return
|
||||||
|
# 0 if daemon has been started
|
||||||
|
# 1 if daemon was already running
|
||||||
|
# 2 if daemon could not be started
|
||||||
|
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
|
||||||
|
|| return 1
|
||||||
|
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --background --make-pidfile -- -n \
|
||||||
|
|| return 2
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Function that stops the daemon/service
|
||||||
|
#
|
||||||
|
do_stop()
|
||||||
|
{
|
||||||
|
# Return
|
||||||
|
# 0 if daemon has been stopped
|
||||||
|
# 1 if daemon was already stopped
|
||||||
|
# 2 if daemon could not be stopped
|
||||||
|
# other if a failure occurred
|
||||||
|
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
|
||||||
|
[ "$?" = 2 ] && return 2
|
||||||
|
start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
|
||||||
|
RETVAL=$?
|
||||||
|
[ "$RETVAL" = 2 ] && return 2
|
||||||
|
# Many daemons don't delete their pidfiles when they exit.
|
||||||
|
rm -f $PIDFILE
|
||||||
|
return "$RETVAL"
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
|
||||||
|
do_start
|
||||||
|
case "$?" in
|
||||||
|
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
||||||
|
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
|
||||||
|
do_stop
|
||||||
|
case "$?" in
|
||||||
|
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
||||||
|
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
status)
|
||||||
|
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
|
||||||
|
;;
|
||||||
|
restart|force-reload)
|
||||||
|
log_daemon_msg "Restarting $DESC" "$NAME"
|
||||||
|
do_stop
|
||||||
|
case "$?" in
|
||||||
|
0|1)
|
||||||
|
do_start
|
||||||
|
case "$?" in
|
||||||
|
0) log_end_msg 0 ;;
|
||||||
|
1) log_end_msg 1 ;; # Old process is still running
|
||||||
|
*) log_end_msg 1 ;; # Failed to start
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# Failed to stop
|
||||||
|
log_end_msg 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
|
||||||
|
exit 3
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
:
|
|
@ -0,0 +1,57 @@
|
||||||
|
From d9ea89d8408f647c05c720bf35a1fba4992dd4a8 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ben Hutchings <ben@decadent.org.uk>
|
||||||
|
Date: Thu, 18 Feb 2016 23:37:19 +0000
|
||||||
|
Subject: [PATCH] Revert "perf tools, x86: Build perf on older user-space as
|
||||||
|
well"
|
||||||
|
|
||||||
|
This reverts commit eae7a755ee81129370c8f555b0d5672e6673735d.
|
||||||
|
The empty unistd_{32,64}.h headers prevent building on sh, which also
|
||||||
|
now splits its unistd.h this way.
|
||||||
|
|
||||||
|
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
||||||
|
---
|
||||||
|
tools/perf/perf-sys.h | 6 ------
|
||||||
|
tools/perf/util/include/asm/unistd_32.h | 1 -
|
||||||
|
tools/perf/util/include/asm/unistd_64.h | 1 -
|
||||||
|
3 files changed, 8 deletions(-)
|
||||||
|
delete mode 100644 tools/perf/util/include/asm/unistd_32.h
|
||||||
|
delete mode 100644 tools/perf/util/include/asm/unistd_64.h
|
||||||
|
|
||||||
|
diff --git a/tools/perf/perf-sys.h b/tools/perf/perf-sys.h
|
||||||
|
index 83a25cef82fd..182a84eb5bd6 100644
|
||||||
|
--- a/tools/perf/perf-sys.h
|
||||||
|
+++ b/tools/perf/perf-sys.h
|
||||||
|
@@ -11,9 +11,6 @@
|
||||||
|
#if defined(__i386__)
|
||||||
|
#define cpu_relax() asm volatile("rep; nop" ::: "memory");
|
||||||
|
#define CPUINFO_PROC {"model name"}
|
||||||
|
-#ifndef __NR_perf_event_open
|
||||||
|
-# define __NR_perf_event_open 336
|
||||||
|
-#endif
|
||||||
|
#ifndef __NR_futex
|
||||||
|
# define __NR_futex 240
|
||||||
|
#endif
|
||||||
|
@@ -25,9 +22,6 @@
|
||||||
|
#if defined(__x86_64__)
|
||||||
|
#define cpu_relax() asm volatile("rep; nop" ::: "memory");
|
||||||
|
#define CPUINFO_PROC {"model name"}
|
||||||
|
-#ifndef __NR_perf_event_open
|
||||||
|
-# define __NR_perf_event_open 298
|
||||||
|
-#endif
|
||||||
|
#ifndef __NR_futex
|
||||||
|
# define __NR_futex 202
|
||||||
|
#endif
|
||||||
|
diff --git a/tools/perf/util/include/asm/unistd_32.h b/tools/perf/util/include/asm/unistd_32.h
|
||||||
|
deleted file mode 100644
|
||||||
|
index 8b137891791f..000000000000
|
||||||
|
--- a/tools/perf/util/include/asm/unistd_32.h
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1 +0,0 @@
|
||||||
|
-
|
||||||
|
diff --git a/tools/perf/util/include/asm/unistd_64.h b/tools/perf/util/include/asm/unistd_64.h
|
||||||
|
deleted file mode 100644
|
||||||
|
index 8b137891791f..000000000000
|
||||||
|
--- a/tools/perf/util/include/asm/unistd_64.h
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1 +0,0 @@
|
||||||
|
-
|
|
@ -16,4 +16,5 @@ revert-perf-build-fix-libunwind-feature-detection-on.patch
|
||||||
alpha-uapi-add-support-for-__sane_userspace_types__.patch
|
alpha-uapi-add-support-for-__sane_userspace_types__.patch
|
||||||
perf-fix-misleadingly-indented-assignment-whitespace.patch
|
perf-fix-misleadingly-indented-assignment-whitespace.patch
|
||||||
perf-tools-fix-unused-variables-x86_-32-64-_regoffse.patch
|
perf-tools-fix-unused-variables-x86_-32-64-_regoffse.patch
|
||||||
|
revert-perf-tools-x86-build-perf-on-older-user-space.patch
|
||||||
lockdep-add-missing-macros.patch
|
lockdep-add-missing-macros.patch
|
||||||
|
|
|
@ -1,14 +1,16 @@
|
||||||
PROGS = \
|
PROGS = \
|
||||||
hv_fcopy_daemon \
|
hv_fcopy_daemon \
|
||||||
hv_kvp_daemon \
|
hv_kvp_daemon \
|
||||||
hv_vss_daemon
|
hv_vss_daemon \
|
||||||
|
check-hyperv
|
||||||
|
|
||||||
prefix = /usr/sbin
|
prefix = /usr/sbin
|
||||||
|
|
||||||
include $(top_rulesdir)/Makefile.inc
|
include $(top_rulesdir)/Makefile.inc
|
||||||
|
|
||||||
install-local-progs: $(PROGS)
|
install-local-progs: $(PROGS)
|
||||||
@for p in $^; do \
|
@for p in $(filter-out check-hyperv,$^); do \
|
||||||
echo " install -m755 '$$p' '$(DESTDIR)/$(prefix)'"; \
|
echo " install -m755 '$$p' '$(DESTDIR)/$(prefix)'"; \
|
||||||
install -D -m755 "$$p" "$(DESTDIR)/$(prefix)/$$(basename $$p)"; \
|
install -D -m755 "$$p" "$(DESTDIR)/$(prefix)/$$(basename $$p)"; \
|
||||||
done
|
done
|
||||||
|
install -D -m755 check-hyperv '$(DESTDIR)/lib/hyperv-daemons/check-hyperv'
|
||||||
|
|
|
@ -0,0 +1,103 @@
|
||||||
|
/*
|
||||||
|
* This program is derived from systemd.
|
||||||
|
*
|
||||||
|
* Copyright 2011 Lennart Poettering
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but
|
||||||
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
|
* along with this program; If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#define streq(a, b) (!strcmp(a, b))
|
||||||
|
#define ELEMENTSOF(a) (sizeof(a) / sizeof((a)[0]))
|
||||||
|
|
||||||
|
enum {
|
||||||
|
VIRTUALIZATION_NONE,
|
||||||
|
VIRTUALIZATION_VM_OTHER,
|
||||||
|
VIRTUALIZATION_MICROSOFT,
|
||||||
|
};
|
||||||
|
|
||||||
|
static int detect_vm_cpuid(void) {
|
||||||
|
|
||||||
|
static const struct {
|
||||||
|
const char *cpuid;
|
||||||
|
int id;
|
||||||
|
} cpuid_vendor_table[] = {
|
||||||
|
/* http://msdn.microsoft.com/en-us/library/ff542428.aspx */
|
||||||
|
{ "Microsoft Hv", VIRTUALIZATION_MICROSOFT },
|
||||||
|
};
|
||||||
|
|
||||||
|
uint32_t eax, ecx;
|
||||||
|
bool hypervisor;
|
||||||
|
|
||||||
|
/* http://lwn.net/Articles/301888/ */
|
||||||
|
|
||||||
|
#if defined (__i386__)
|
||||||
|
#define REG_a "eax"
|
||||||
|
#define REG_b "ebx"
|
||||||
|
#elif defined (__amd64__)
|
||||||
|
#define REG_a "rax"
|
||||||
|
#define REG_b "rbx"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* First detect whether there is a hypervisor */
|
||||||
|
eax = 1;
|
||||||
|
__asm__ __volatile__ (
|
||||||
|
/* ebx/rbx is being used for PIC! */
|
||||||
|
" push %%"REG_b" \n\t"
|
||||||
|
" cpuid \n\t"
|
||||||
|
" pop %%"REG_b" \n\t"
|
||||||
|
|
||||||
|
: "=a" (eax), "=c" (ecx)
|
||||||
|
: "0" (eax)
|
||||||
|
);
|
||||||
|
|
||||||
|
hypervisor = !!(ecx & 0x80000000U);
|
||||||
|
|
||||||
|
if (hypervisor) {
|
||||||
|
union {
|
||||||
|
uint32_t sig32[3];
|
||||||
|
char text[13];
|
||||||
|
} sig = {};
|
||||||
|
unsigned j;
|
||||||
|
|
||||||
|
/* There is a hypervisor, see what it is */
|
||||||
|
eax = 0x40000000U;
|
||||||
|
__asm__ __volatile__ (
|
||||||
|
/* ebx/rbx is being used for PIC! */
|
||||||
|
" push %%"REG_b" \n\t"
|
||||||
|
" cpuid \n\t"
|
||||||
|
" mov %%ebx, %1 \n\t"
|
||||||
|
" pop %%"REG_b" \n\t"
|
||||||
|
|
||||||
|
: "=a" (eax), "=r" (sig.sig32[0]), "=c" (sig.sig32[1]), "=d" (sig.sig32[2])
|
||||||
|
: "0" (eax)
|
||||||
|
);
|
||||||
|
|
||||||
|
for (j = 0; j < ELEMENTSOF(cpuid_vendor_table); j ++)
|
||||||
|
if (streq(sig.text, cpuid_vendor_table[j].cpuid))
|
||||||
|
return cpuid_vendor_table[j].id;
|
||||||
|
|
||||||
|
return VIRTUALIZATION_VM_OTHER;
|
||||||
|
}
|
||||||
|
|
||||||
|
return VIRTUALIZATION_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
return detect_vm_cpuid() != VIRTUALIZATION_MICROSOFT;
|
||||||
|
}
|
|
@ -33,7 +33,7 @@ MAKE_PERF := $(MAKE) O=$(CURDIR) prefix=/usr V=1 ARCH=$(KERNEL_ARCH_PERF) EXTRA_
|
||||||
MAKE_PERF += NO_GTK2=1
|
MAKE_PERF += NO_GTK2=1
|
||||||
|
|
||||||
# Include version in all directory names
|
# Include version in all directory names
|
||||||
MAKE_PERF += perfexecdir=lib/perf_$(VERSION)-core plugindir=/usr/lib/traceevent_$(VERSION)/plugins
|
MAKE_PERF += perfexecdir=lib/perf_$(VERSION)-core plugindir=/usr/lib/traceevent_$(VERSION)/plugins STRACE_GROUPS_DIR=share/perf_$(VERSION)-core/strace/groups
|
||||||
|
|
||||||
# perf can link against libbfd if available, but the result is
|
# perf can link against libbfd if available, but the result is
|
||||||
# undistributable as they are licenced under GPL v2 and v3+
|
# undistributable as they are licenced under GPL v2 and v3+
|
||||||
|
|
|
@ -99,9 +99,19 @@ install-hyperv-daemons: $(STAMPS_DIR)/build
|
||||||
dh_prep
|
dh_prep
|
||||||
$(call submake,tools/hv) install DESTDIR=$(DIR)
|
$(call submake,tools/hv) install DESTDIR=$(DIR)
|
||||||
dh_install
|
dh_install
|
||||||
|
for service in fcopy kvp vss; do \
|
||||||
|
install -D -m755 debian/hyperv-daemons.hv-$$service-daemon.init \
|
||||||
|
$(DIR)/etc/init.d/hyperv-daemons.hv-$$service-daemon \
|
||||||
|
|| break; \
|
||||||
|
done
|
||||||
dh_installchangelogs
|
dh_installchangelogs
|
||||||
dh_installdocs
|
dh_installdocs
|
||||||
dh_systemd_enable
|
dh_systemd_enable
|
||||||
|
for service in fcopy kvp vss; do \
|
||||||
|
dh_installinit --name hyperv-daemons.hv-$$service-daemon \
|
||||||
|
--onlyscripts \
|
||||||
|
|| break; \
|
||||||
|
done
|
||||||
dh_systemd_start
|
dh_systemd_start
|
||||||
dh_lintian
|
dh_lintian
|
||||||
dh_strip
|
dh_strip
|
||||||
|
|
|
@ -55,7 +55,7 @@ Description: USB device sharing system over IP network
|
||||||
|
|
||||||
Package: hyperv-daemons
|
Package: hyperv-daemons
|
||||||
Architecture: i386 amd64 x32
|
Architecture: i386 amd64 x32
|
||||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
Depends: lsb-base (>= 3.2-14), ${shlibs:Depends}, ${misc:Depends}
|
||||||
Section: admin
|
Section: admin
|
||||||
Description: Support daemons for Linux running on Hyper-V
|
Description: Support daemons for Linux running on Hyper-V
|
||||||
Suite of daemons for Linux guests running on Hyper-V, consisting of
|
Suite of daemons for Linux guests running on Hyper-V, consisting of
|
||||||
|
|
Loading…
Reference in New Issue