Compare commits

...

11 Commits

Author SHA1 Message Date
Alexander Usyskin
e84c763090 lms: add recipe for lms 1921.0.0.0
This is a new release of Local Manageability Service.
This open-source release deprecates unsupported lms7 and lms8.

This recipe depends on ACE and MeTee library recipes.

Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
2019-06-20 06:25:48 +08:00
Alexander Usyskin
6565114688 metee: add new recipe for version 2.1.0
Intel(R) ME TEE Library is the cross-platform access
library for Intel(R) CSME HECI interface.
Sources at: https://github.com/intel/metee

To be used by LMS service.

Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
2019-06-20 06:25:37 +08:00
Alexander Usyskin
91752ad5bc ace: add recipe for 6.5.3 version
The ADAPTIVE Communication Environment library.
Sources: http://download.dre.vanderbilt.edu/

To be used by LMS service.

Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
2019-06-20 06:25:25 +08:00
Anuj Mittal
92236c1025 intel-microcode: upgrade to 20190514a
Include the microcode from caveats as well since all kernels supported
have those patches. Also point to the new git repo and corrected
license.

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
2019-05-30 14:31:02 +08:00
Naveen Saini
59fbdb2901 linux-intel_4.19: update to v4.19.40
This update has CVEs fixed
CVE-2019-5489
CVE-2018-20669

Merge "[keystore] Change keystore applets store path" into base
Linux 4.19.40
ath10k: Drop WARN_ON()s that always trigger during system resume
ALSA: line6: use dynamic buffers
KVM: nVMX: Fix size checks in vmx_set_nested_state
KVM: x86: Whitelist port 0x7e for pre-incrementing %rip
net/tls: fix copy to fragments in reencrypt
net/tls: don't copy negative amounts of data in reencrypt
bnxt_en: Fix uninitialized variable usage in bnxt_rx_pkt().
bnxt_en: Free short FW command HWRM memory in error path in bnxt_init_one()
bnxt_en: Improve multicast address setup logic.
packet: validate msg_namelen in send directly
selftests: fib_rule_tests: print the result and return 1 if any tests failed
sctp: avoid running the sctp state machine recursively
rxrpc: Fix net namespace cleanup
net/tls: avoid NULL pointer deref on nskb->sk in fallback
net: phy: marvell: Fix buffer overrun with stats counters
net: dsa: bcm_sf2: fix buffer overflow doing set_rxnfc
l2tp: use rcu_dereference_sk_user_data() in l2tp_udp_encap_recv()
l2ip: fix possible use-after-free
ipv6: invert flowlabel sharing check in process and user mode
...

Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
2019-05-30 14:31:02 +08:00
Naveen Saini
1bbd18500c lttng-modules: add bbappend
Backport patches from upstream to fix build errors when building
with kernel v5.1. These patches are backported from stable branch.

The code v5.1 is protected by ifdefs so v4.19 works as well.

Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
2019-05-22 10:39:07 +08:00
sangeeta jain
2c011359d3 README: Updated Tested Hardware
Target Test devices for test coverage are updated for intel-corei7-64 architecture
Removed Minnowboard Turbot
Added NUC7i7BNH and Coffee Lake-H

Signed-off-by: sangeeta jain <sangeeta.jain@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
2019-05-21 09:35:32 +08:00
Naveen Saini
5fdf87b25a linux-intel-dev: add recipe
Builds base from mainline-tracking production kernel.

In addition to intel-common kernel configs from yocto-kernel-cache, this
also includes security.scc feature which enables a set of configs with
the aim of reducing the kernel attack surface and/or of performing
additional checks and validation of commonly used structures in kernel.

Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
2019-05-21 09:35:25 +08:00
Anuj Mittal
fbee167d43 README: update to warrior branch for OE-Core
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
2019-05-13 10:25:16 +08:00
Anuj Mittal
9238c15842 README: remove reference to bitbake version
That should be handled and dicatated by the core layer.

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
2019-05-13 10:24:57 +08:00
Naveen Saini
3f5ba3d051 linux-intel-rt/4.19: update meta SRCREVs to v4.19.31
Updates rt patchset to -rt18.

Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
2019-05-13 10:12:05 +08:00
20 changed files with 815 additions and 256 deletions

6
README
View File

@ -21,11 +21,10 @@ Dependencies
This layer depends on:
URI: git://git.openembedded.org/bitbake
branch: master
URI: git://git.openembedded.org/openembedded-core
layers: meta
branch: master
branch: warrior
Table of Contents
@ -369,7 +368,8 @@ Turbot, so it is tested against both intel-corei7-64 and intel-core2-32.
intel-corei7-64:
NUC6i5SYH
MinnowBoard Turbot
NUC7i7BNH
Coffee Lake-H
intel-core2-32:
MinnowBoard Turbot

View File

@ -21,4 +21,9 @@ LAYERVERSION_intel = "5"
LAYERSERIES_COMPAT_intel = "thud warrior"
BBFILES_DYNAMIC += " \
openembedded-layer:${LAYERDIR}/dynamic-layers/openembedded-layer/*/*/*.bb \
openembedded-layer:${LAYERDIR}/dynamic-layers/openembedded-layer/*/*/*.bbappend \
"
require ${LAYERDIR}/conf/include/maintainers.inc

View File

@ -0,0 +1,111 @@
_________________________________________________________________
Copyright and Licensing Information for ACE(TM), TAO(TM), CIAO(TM),
DAnCE(TM), and CoSMIC(TM)
[1]ACE(TM), [2]TAO(TM), [3]CIAO(TM), DAnCE(TM), and [4]CoSMIC(TM)
(henceforth referred to as "DOC software") are copyrighted by
[5]Douglas C. Schmidt and his [6]research group at [7]Washington
University, [8]University of California, Irvine, and [9]Vanderbilt
University, Copyright (c) 1993-2018, all rights reserved. Since DOC
software is open-source, freely available software, you are free to
use, modify, copy, and distribute--perpetually and irrevocably--the
DOC software source code and object code produced from the source, as
well as copy and distribute modified versions of this software. You
must, however, include this copyright statement along with any code
built using DOC software that you release. No copyright statement
needs to be provided if you just ship binary executables of your
software products.
You can use DOC software in commercial and/or binary software releases
and are under no obligation to redistribute any of your source code
that is built using DOC software. Note, however, that you may not
misappropriate the DOC software code, such as copyrighting it yourself
or claiming authorship of the DOC software code, in a way that will
prevent DOC software from being distributed freely using an
open-source development model. You needn't inform anyone that you're
using DOC software in your software, though we encourage you to let
[10]us know so we can promote your project in the [11]DOC software
success stories.
The [12]ACE, [13]TAO, [14]CIAO, [15]DAnCE, and [16]CoSMIC web sites
are maintained by the [17]DOC Group at the [18]Institute for Software
Integrated Systems (ISIS) and the [19]Center for Distributed Object
Computing of Washington University, St. Louis for the development of
open-source software as part of the open-source software community.
Submissions are provided by the submitter ``as is'' with no warranties
whatsoever, including any warranty of merchantability, noninfringement
of third party intellectual property, or fitness for any particular
purpose. In no event shall the submitter be liable for any direct,
indirect, special, exemplary, punitive, or consequential damages,
including without limitation, lost profits, even if advised of the
possibility of such damages. Likewise, DOC software is provided as is
with no warranties of any kind, including the warranties of design,
merchantability, and fitness for a particular purpose,
noninfringement, or arising from a course of dealing, usage or trade
practice. Washington University, UC Irvine, Vanderbilt University,
their employees, and students shall have no liability with respect to
the infringement of copyrights, trade secrets or any patents by DOC
software or any part thereof. Moreover, in no event will Washington
University, UC Irvine, or Vanderbilt University, their employees, or
students be liable for any lost revenue or profits or other special,
indirect and consequential damages.
DOC software is provided with no support and without any obligation on
the part of Washington University, UC Irvine, Vanderbilt University,
their employees, or students to assist in its use, correction,
modification, or enhancement. A [20]number of companies around the
world provide commercial support for DOC software, however. DOC
software is Y2K-compliant, as long as the underlying OS platform is
Y2K-compliant. Likewise, DOC software is compliant with the new US
daylight savings rule passed by Congress as "The Energy Policy Act of
2005," which established new daylight savings times (DST) rules for
the United States that expand DST as of March 2007. Since DOC software
obtains time/date and calendaring information from operating systems
users will not be affected by the new DST rules as long as they
upgrade their operating systems accordingly.
The names ACE(TM), TAO(TM), CIAO(TM), DAnCE(TM), CoSMIC(TM),
Washington University, UC Irvine, and Vanderbilt University, may not
be used to endorse or promote products or services derived from this
source without express written permission from Washington University,
UC Irvine, or Vanderbilt University. This license grants no permission
to call products or services derived from this source ACE(TM),
TAO(TM), CIAO(TM), DAnCE(TM), or CoSMIC(TM), nor does it grant
permission for the name Washington University, UC Irvine, or
Vanderbilt University to appear in their names.
If you have any suggestions, additions, comments, or questions, please
let [21]me know.
[22]Douglas C. Schmidt
_________________________________________________________________
Back to the [23]ACE home page.
References
1. http://www.dre.vanderbilt.edu/~schmidt/ACE.html
2. http://www.dre.vanderbilt.edu/~schmidt/TAO.html
3. http://www.dre.vanderbilt.edu/CIAO/
4. http://www.dre.vanderbilt.edu/cosmic/
5. http://www.dre.vanderbilt.edu/~schmidt/
6. http://www.dre.vanderbilt.edu/~schmidt/ACE-members.html
7. http://www.wustl.edu/
8. http://www.uci.edu/
9. http://www.vanderbilt.edu/
10. mailto:doc_group@cs.wustl.edu
11. http://www.dre.vanderbilt.edu/~schmidt/ACE-users.html
12. http://www.dre.vanderbilt.edu/~schmidt/ACE.html
13. http://www.dre.vanderbilt.edu/~schmidt/TAO.html
14. http://www.dre.vanderbilt.edu/CIAO/
15. http://www.dre.vanderbilt.edu/~schmidt/DOC_ROOT/DAnCE/
16. http://www.dre.vanderbilt.edu/cosmic/
17. http://www.dre.vanderbilt.edu/
18. http://www.isis.vanderbilt.edu/
19. http://www.cs.wustl.edu/~schmidt/doc-center.html
20. http://www.dre.vanderbilt.edu/~schmidt/commercial-support.html
21. mailto:d.schmidt@vanderbilt.edu
22. http://www.dre.vanderbilt.edu/~schmidt/
23. http://www.dre.vanderbilt.edu/~schmidt/ACE.html

View File

@ -1,123 +1,37 @@
INTEL SOFTWARE LICENSE AGREEMENT
Copyright (c) 2018-2019 Intel Corporation.
All rights reserved.
IMPORTANT - READ BEFORE COPYING, INSTALLING OR USING.
Do not use or load this software and any associated materials (collectively,
the "Software") until you have carefully read the following terms and
conditions. By loading or using the Software, you agree to the terms of this
Agreement. If you do not wish to so agree, do not install or use the Software.
Redistribution.
LICENSES: Please Note:
- If you are a network administrator, the "Site License" below shall
apply to you.
- If you are an end user, the "Single User License" shall apply to you.
- If you are an original equipment manufacturer (OEM), the "OEM License"
shall apply to you.
Redistribution and use in binary form, without modification, are permitted,
provided that the following conditions are met:
SITE LICENSE. You may copy the Software onto your organization's computers
for your organization's use, and you may make a reasonable number of
back-up copies of the Software, subject to these conditions:
1. Redistributions must reproduce the above copyright notice and the
following disclaimer in the documentation and/or other materials provided
with the distribution.
1. This Software is licensed for use only in conjunction with Intel
component products. Use of the Software in conjunction with non-Intel
component products is not licensed hereunder.
2. You may not copy, modify, rent, sell, distribute or transfer any part
of the Software except as provided in this Agreement, and you agree to
prevent unauthorized copying of the Software.
3. You may not reverse engineer, decompile, or disassemble the Software.
4. You may not sublicense or permit simultaneous use of the Software by
more than one user.
5. The Software may include portions offered on terms in addition to those
set out here, as set out in a license accompanying those portions.
2. Neither the name of Intel Corporation nor the names of its suppliers may
be used to endorse or promote products derived from this software without
specific prior written permission.
SINGLE USER LICENSE. You may copy the Software onto a single computer for
your personal, noncommercial use, and you may make one back-up copy of the
Software, subject to these conditions:
3. No reverse engineering, decompilation, or disassembly of this software
is permitted.
1. This Software is licensed for use only in conjunction with Intel
component products. Use of the Software in conjunction with non-Intel
component products is not licensed hereunder.
2. You may not copy, modify, rent, sell, distribute or transfer any part
of the Software except as provided in this Agreement, and you agree to
prevent unauthorized copying of the Software.
3. You may not reverse engineer, decompile, or disassemble the Software.
4. You may not sublicense or permit simultaneous use of the Software by
more than one user.
5. The Software may include portions offered on terms in addition to those
set out here, as set out in a license accompanying those portions.
OEM LICENSE: You may reproduce and distribute the Software only as an
integral part of or incorporated in Your product or as a standalone
Software maintenance update for existing end users of Your products,
excluding any other standalone products, subject to these conditions:
"Binary form" includes any format that is commonly used for electronic
conveyance that is a reversible, bit-exact translation of binary
representation to ASCII or ISO text, for example "uuencode".
1. This Software is licensed for use only in conjunction with Intel
component products. Use of the Software in conjunction with non-Intel
component products is not licensed hereunder.
2. You may not copy, modify, rent, sell, distribute or transfer any part
of the Software except as provided in this Agreement, and you agree to
prevent unauthorized copying of the Software.
3. You may not reverse engineer, decompile, or disassemble the Software.
4. You may only distribute the Software to your customers pursuant to a
written license agreement. Such license agreement may be a "break-the-
seal" license agreement. At a minimum such license shall safeguard
Intel's ownership rights to the Software.
5. The Software may include portions offered on terms in addition to those
set out here, as set out in a license accompanying those portions.
DISCLAIMER.
NO OTHER RIGHTS. No rights or licenses are granted by Intel to You, expressly
or by implication, with respect to any proprietary information or patent,
copyright, mask work, trademark, trade secret, or other intellectual property
right owned or controlled by Intel, except as expressly provided in this
Agreement.
OWNERSHIP OF SOFTWARE AND COPYRIGHTS. Title to all copies of the Software
remains with Intel or its suppliers. The Software is copyrighted and
protected by the laws of the United States and other countries, and
international treaty provisions. You may not remove any copyright notices
from the Software. Intel may make changes to the Software, or to items
referenced therein, at any time without notice, but is not obligated to
support or update the Software. Except as otherwise expressly provided, Intel
grants no express or implied right under Intel patents, copyrights,
trademarks, or other intellectual property rights. You may transfer the
Software only if the recipient agrees to be fully bound by these terms and if
you retain no copies of the Software.
LIMITED MEDIA WARRANTY. If the Software has been delivered by Intel on
physical media, Intel warrants the media to be free from material physical
defects for a period of ninety days after delivery by Intel. If such a defect
is found, return the media to Intel for replacement or alternate delivery of
the Software as Intel may select.
EXCLUSION OF OTHER WARRANTIES. EXCEPT AS PROVIDED ABOVE, THE SOFTWARE IS
PROVIDED "AS IS" WITHOUT ANY EXPRESS OR IMPLIED WARRANTY OF ANY KIND
INCLUDING WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT, OR FITNESS FOR A
PARTICULAR PURPOSE. Intel does not warrant or assume responsibility for the
accuracy or completeness of any information, text, graphics, links or other
items contained within the Software.
LIMITATION OF LIABILITY. IN NO EVENT SHALL INTEL OR ITS SUPPLIERS BE LIABLE
FOR ANY DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, LOST PROFITS,
BUSINESS INTERRUPTION, OR LOST INFORMATION) ARISING OUT OF THE USE OF OR
INABILITY TO USE THE SOFTWARE, EVEN IF INTEL HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES. SOME JURISDICTIONS PROHIBIT EXCLUSION OR
LIMITATION OF LIABILITY FOR IMPLIED WARRANTIES OR CONSEQUENTIAL OR INCIDENTAL
DAMAGES, SO THE ABOVE LIMITATION MAY NOT APPLY TO YOU. YOU MAY ALSO HAVE
OTHER LEGAL RIGHTS THAT VARY FROM JURISDICTION TO JURISDICTION.
TERMINATION OF THIS AGREEMENT. Intel may terminate this Agreement at any time
if you violate its terms. Upon termination, you will immediately destroy the
Software or return all copies of the Software to Intel.
APPLICABLE LAWS. Claims arising under this Agreement shall be governed by the
laws of California, excluding its principles of conflict of laws and the
United Nations Convention on Contracts for the Sale of Goods. You may not
export the Software in violation of applicable export laws and regulations.
Intel is not obligated under any other agreements unless they are in writing
and signed by an authorized representative of Intel.
GOVERNMENT RESTRICTED RIGHTS. The Software is provided with "RESTRICTED
RIGHTS." Use, duplication, or disclosure by the Government is subject to
restrictions as set forth in FAR52.227-14 and DFAR252.227-7013 et seq. or its
successor. Use of the Software by the Government constitutes acknowledgment
of Intel's proprietary rights therein. Contractor or Manufacturer is Intel
2200 Mission College Blvd., Santa Clara, CA 95052.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

View File

@ -0,0 +1,31 @@
From b92a5bda8015454a570990a3d9c4fba87010f1af Mon Sep 17 00:00:00 2001
From: Alexander Usyskin <alexander.usyskin@intel.com>
Date: Mon, 17 Jun 2019 13:27:33 +0300
Subject: [PATCH] lms: drop rpath definitions
Yocto fail to compile with this definitions.
Upstream-Status: Inappropriate [configuration]
Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
---
CMakeLists.txt | 4 ----
1 file changed, 4 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 04257fb..85d0445 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -107,10 +107,6 @@ install (DIRECTORY Docs/Licenses
FILES_MATCHING PATTERN "LICENSE.*"
)
-list (APPEND CMAKE_INSTALL_RPATH "${PROJECT_BINARY_DIR}/UNS/GMS_COMMON")
-list (APPEND CMAKE_INSTALL_RPATH "${PROJECT_BINARY_DIR}/WsmanClient")
-list (APPEND CMAKE_INSTALL_RPATH "${PROJECT_BINARY_DIR}/UNS/StatusEventHandler")
-
if (BUILD_TESTS)
include (gtest.cmake)
endif (BUILD_TESTS)
--
2.7.4

View File

@ -0,0 +1,39 @@
SUMMARY = "Intel(R) Local Managability Service"
DESCRIPTION = "Intel Local Manageability Service allows applications \
to access the Intel Active Management Technology (AMT) firmware via \
the Intel Management Engine Interface (MEI)."
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://COPYING;md5=2ee41112a44fe7014dce33e26468ba93"
COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
inherit cmake systemd
DEPENDS = "metee ace xerces-c libnl libxml2 glib-2.0 glib-2.0-native connman"
EXTRA_OECMAKE += "-DPYTHON_EXECUTABLE=${HOSTTOOLS_DIR}/python3"
REQUIRED_DISTRO_FEATURES= "systemd"
FILES_${PN} += "${datadir}/dbus-1/system-services/*.service"
FILES_${PN} += "${libdir}/libLms*.so"
FILES_SOLIBSDEV = ""
INSANE_SKIP_${PN} += "dev-so"
S = "${WORKDIR}/git"
SYSTEMD_SERVICE_${PN} = "lms.service"
SRC_URI = "git://github.com/intel/lms.git"
SRCREV = "f7c374745ae7efb3ed7860fdc3f8abbb52dc9f8f"
SRC_URI_append = " file://lms_drop_rpath_${PV}.diff"
do_install_append() {
install -d ${D}${systemd_system_unitdir}
install -m 0644 ${B}/UNS/lms.service ${D}${systemd_system_unitdir}
}
RDEPENDS_${PN} += "ace"

View File

@ -0,0 +1,37 @@
DESCRIPTION = "C++ network programming framework that implements many core \
patterns for concurrent communication software"
LICENSE = "ACE-TAO-CIAO"
LIC_FILES_CHKSUM = "file://COPYING;md5=407a202d1b887b998dc9480442840630"
DEPENDS += "openssl gperf-native"
SRC_URI = "ftp://download.dre.vanderbilt.edu/previous_versions/ACE-${PV}.tar.bz2 \
file://ace_config.patch \
"
SRC_URI[md5sum] = "4cc5f109ebd17cd56f0539d1b47d16b3"
SRC_URI[sha256sum] = "b1d6a716394bd15c21bb90037b8a12a4d8034cc9d8878b0ad39b3c467df19b1a"
COMPATIBLE_HOST_libc-musl = "null"
S = "${WORKDIR}/ACE_wrappers"
B = "${WORKDIR}/ACE_wrappers/ace"
export ACE_ROOT="${WORKDIR}/ACE_wrappers"
inherit pkgconfig
CXXFLAGS_append = " -fpermissive -Wnodeprecated-declarations"
do_install() {
export D="${D}"
oe_runmake install
for i in $(find ${D} -name "*.pc") ; do
sed -i -e s:${D}::g \
-e s:/${TARGET_SYS}::g \
$i
done
rm -r ${D}/usr/share
}

View File

@ -0,0 +1,12 @@
diff -ruN ACE_wrappers1/ace/config.h ACE_wrappers/ace/config.h
--- ACE_wrappers1/ace/config.h 1970-01-01 02:00:00.000000000 +0200
+++ ACE_wrappers/ace/config.h 2019-01-10 13:36:52.698012477 +0200
@@ -0,0 +1,1 @@
+#include "ace/config-linux.h"
diff -ruN ACE_wrappers1/include/makeinclude/platform_macros.GNU ACE_wrappers/include/makeinclude/platform_macros.GNU
--- ACE_wrappers1/include/makeinclude/platform_macros.GNU 1970-01-01 02:00:00.000000000 +0200
+++ ACE_wrappers/include/makeinclude/platform_macros.GNU 2018-10-31 15:11:18.265392460 +0200
@@ -0,0 +1,3 @@
+INSTALL_PREFIX = $(D)$(exec_prefix)
+INSTALL_LIB = $(base_libdir)
+include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU

View File

@ -0,0 +1,19 @@
SUMMARY = "Intel(R) METEE Library"
DESCRIPTION = "MEETEE library provides a cross-platform simple \
programing interface for accessing Intel HECI interfaces on devices \
found in BigCore and Atom based products."
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://COPYING;md5=2ee41112a44fe7014dce33e26468ba93"
COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
inherit cmake
SRC_URI = "git://github.com/intel/metee.git"
SRCREV = "642eedfcacc677fc43181f0b7c16d8f90724a9cb"
COMPATIBLE_HOST_libc-musl = "null"
S = "${WORKDIR}/git"

View File

@ -1,123 +0,0 @@
INTEL SOFTWARE LICENSE AGREEMENT
IMPORTANT - READ BEFORE COPYING, INSTALLING OR USING.
Do not use or load this software and any associated materials (collectively,
the "Software") until you have carefully read the following terms and
conditions. By loading or using the Software, you agree to the terms of this
Agreement. If you do not wish to so agree, do not install or use the Software.
LICENSES: Please Note:
- If you are a network administrator, the "Site License" below shall
apply to you.
- If you are an end user, the "Single User License" shall apply to you.
- If you are an original equipment manufacturer (OEM), the "OEM License"
shall apply to you.
SITE LICENSE. You may copy the Software onto your organization's computers
for your organization's use, and you may make a reasonable number of
back-up copies of the Software, subject to these conditions:
1. This Software is licensed for use only in conjunction with Intel
component products. Use of the Software in conjunction with non-Intel
component products is not licensed hereunder.
2. You may not copy, modify, rent, sell, distribute or transfer any part
of the Software except as provided in this Agreement, and you agree to
prevent unauthorized copying of the Software.
3. You may not reverse engineer, decompile, or disassemble the Software.
4. You may not sublicense or permit simultaneous use of the Software by
more than one user.
5. The Software may include portions offered on terms in addition to those
set out here, as set out in a license accompanying those portions.
SINGLE USER LICENSE. You may copy the Software onto a single computer for
your personal, noncommercial use, and you may make one back-up copy of the
Software, subject to these conditions:
1. This Software is licensed for use only in conjunction with Intel
component products. Use of the Software in conjunction with non-Intel
component products is not licensed hereunder.
2. You may not copy, modify, rent, sell, distribute or transfer any part
of the Software except as provided in this Agreement, and you agree to
prevent unauthorized copying of the Software.
3. You may not reverse engineer, decompile, or disassemble the Software.
4. You may not sublicense or permit simultaneous use of the Software by
more than one user.
5. The Software may include portions offered on terms in addition to those
set out here, as set out in a license accompanying those portions.
OEM LICENSE: You may reproduce and distribute the Software only as an
integral part of or incorporated in Your product or as a standalone
Software maintenance update for existing end users of Your products,
excluding any other standalone products, subject to these conditions:
1. This Software is licensed for use only in conjunction with Intel
component products. Use of the Software in conjunction with non-Intel
component products is not licensed hereunder.
2. You may not copy, modify, rent, sell, distribute or transfer any part
of the Software except as provided in this Agreement, and you agree to
prevent unauthorized copying of the Software.
3. You may not reverse engineer, decompile, or disassemble the Software.
4. You may only distribute the Software to your customers pursuant to a
written license agreement. Such license agreement may be a "break-the-
seal" license agreement. At a minimum such license shall safeguard
Intel's ownership rights to the Software.
5. The Software may include portions offered on terms in addition to those
set out here, as set out in a license accompanying those portions.
NO OTHER RIGHTS. No rights or licenses are granted by Intel to You, expressly
or by implication, with respect to any proprietary information or patent,
copyright, mask work, trademark, trade secret, or other intellectual property
right owned or controlled by Intel, except as expressly provided in this
Agreement.
OWNERSHIP OF SOFTWARE AND COPYRIGHTS. Title to all copies of the Software
remains with Intel or its suppliers. The Software is copyrighted and
protected by the laws of the United States and other countries, and
international treaty provisions. You may not remove any copyright notices
from the Software. Intel may make changes to the Software, or to items
referenced therein, at any time without notice, but is not obligated to
support or update the Software. Except as otherwise expressly provided, Intel
grants no express or implied right under Intel patents, copyrights,
trademarks, or other intellectual property rights. You may transfer the
Software only if the recipient agrees to be fully bound by these terms and if
you retain no copies of the Software.
LIMITED MEDIA WARRANTY. If the Software has been delivered by Intel on
physical media, Intel warrants the media to be free from material physical
defects for a period of ninety days after delivery by Intel. If such a defect
is found, return the media to Intel for replacement or alternate delivery of
the Software as Intel may select.
EXCLUSION OF OTHER WARRANTIES. EXCEPT AS PROVIDED ABOVE, THE SOFTWARE IS
PROVIDED "AS IS" WITHOUT ANY EXPRESS OR IMPLIED WARRANTY OF ANY KIND
INCLUDING WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT, OR FITNESS FOR A
PARTICULAR PURPOSE. Intel does not warrant or assume responsibility for the
accuracy or completeness of any information, text, graphics, links or other
items contained within the Software.
LIMITATION OF LIABILITY. IN NO EVENT SHALL INTEL OR ITS SUPPLIERS BE LIABLE
FOR ANY DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, LOST PROFITS,
BUSINESS INTERRUPTION, OR LOST INFORMATION) ARISING OUT OF THE USE OF OR
INABILITY TO USE THE SOFTWARE, EVEN IF INTEL HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES. SOME JURISDICTIONS PROHIBIT EXCLUSION OR
LIMITATION OF LIABILITY FOR IMPLIED WARRANTIES OR CONSEQUENTIAL OR INCIDENTAL
DAMAGES, SO THE ABOVE LIMITATION MAY NOT APPLY TO YOU. YOU MAY ALSO HAVE
OTHER LEGAL RIGHTS THAT VARY FROM JURISDICTION TO JURISDICTION.
TERMINATION OF THIS AGREEMENT. Intel may terminate this Agreement at any time
if you violate its terms. Upon termination, you will immediately destroy the
Software or return all copies of the Software to Intel.
APPLICABLE LAWS. Claims arising under this Agreement shall be governed by the
laws of California, excluding its principles of conflict of laws and the
United Nations Convention on Contracts for the Sale of Goods. You may not
export the Software in violation of applicable export laws and regulations.
Intel is not obligated under any other agreements unless they are in writing
and signed by an authorized representative of Intel.
GOVERNMENT RESTRICTED RIGHTS. The Software is provided with "RESTRICTED
RIGHTS." Use, duplication, or disclosure by the Government is subject to
restrictions as set forth in FAR52.227-14 and DFAR252.227-7013 et seq. or its
successor. Use of the Software by the Government constitutes acknowledgment
of Intel's proprietary rights therein. Contractor or Manufacturer is Intel
2200 Mission College Blvd., Santa Clara, CA 95052.

View File

@ -11,16 +11,15 @@ DESCRIPTION = "The microcode data file contains the latest microcode\
if the file is placed in the /etc/firmware directory of the Linux system."
LICENSE = "Intel-Microcode-License"
LIC_FILES_CHKSUM = "file://Intel-Microcode-License;md5=9052c0dbf7250dc0bef70bd8212b0573"
LIC_FILES_CHKSUM = "file://license;md5=99b296eb12723fd1eeb52e24971eed84"
SRC_URI = "https://downloadmirror.intel.com/28039/eng/microcode-${PV}.tgz \
file://Intel-Microcode-License \
SRC_URI = "git://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files.git;protocol=https \
"
SRC_URI[md5sum] = "49f534f1079d3c5bc178a150c1c105aa"
SRC_URI[sha256sum] = "29f9e8dc27e6c9b6488cecd7fe2394030307799e511db2d197d9e6553a7f9e40"
SRCREV = "1dd14da6d1ea5cfbd95923653f31c04aac3aa655"
DEPENDS = "iucode-tool-native"
S = "${WORKDIR}"
S = "${WORKDIR}/git"
COMPATIBLE_HOST = "(i.86|x86_64).*-linux"
PACKAGE_ARCH = "${MACHINE_ARCH}"
@ -32,18 +31,17 @@ inherit deploy
UCODE_FILTER_PARAMETERS ?= ""
do_compile() {
rm -f ${WORKDIR}/intel-ucode/list
${STAGING_DIR_NATIVE}${sbindir_native}/iucode_tool \
${UCODE_FILTER_PARAMETERS} \
--overwrite \
--write-to=${WORKDIR}/microcode_${PV}.bin \
${WORKDIR}/intel-ucode/*
${S}/intel-ucode/* ${S}/intel-ucode-with-caveats/*
${STAGING_DIR_NATIVE}${sbindir_native}/iucode_tool \
${UCODE_FILTER_PARAMETERS} \
--overwrite \
--write-earlyfw=${WORKDIR}/microcode_${PV}.cpio \
${WORKDIR}/intel-ucode/*
${S}/intel-ucode/* ${S}/intel-ucode-with-caveats/*
}
do_install() {
@ -55,7 +53,7 @@ do_install() {
do_deploy() {
install -d ${DEPLOYDIR}
install ${S}/microcode_${PV}.cpio ${DEPLOYDIR}/
install ${WORKDIR}/microcode_${PV}.cpio ${DEPLOYDIR}/
cd ${DEPLOYDIR}
rm -f microcode.cpio
ln -sf microcode_${PV}.cpio microcode.cpio

View File

@ -0,0 +1,35 @@
require recipes-kernel/linux/linux-yocto.inc
require recipes-kernel/linux/meta-intel-compat-kernel.inc
FILESEXTRAPATHS_prepend := "${THISDIR}/linux-intel:"
SRC_URI = " \
git://github.com/intel/mainline-tracking.git;protocol=https;name=machine;branch=${KBRANCH}; \
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=${KMETA_BRANCH};destsuffix=${KMETA} \
file://0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-.patch \
"
SRC_URI_append_core2-32-intel-common = " file://disable_skylake_sound.cfg"
KMETA = "kernel-meta"
KCONF_BSP_AUDIT_LEVEL = "2"
KBRANCH = "base"
KMETA_BRANCH = "master"
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
DEPENDS += "elfutils-native openssl-native util-linux-native"
LINUX_VERSION ?= "5.1.0"
SRCREV_machine ?= "abcfe412cc5140d20a592965744c050fd3cc3d19"
SRCREV_meta ?= "b8bce20786a4063e5f053036e5236d82c8fc3d91"
LINUX_VERSION_EXTENSION ?= "-mainline-tracking-${LINUX_KERNEL_TYPE}"
PV = "${LINUX_VERSION}+git${SRCPV}"
COMPATIBLE_MACHINE ?= "(intel-corei7-64|intel-core2-32)"
# Functionality flags
KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "" ,d)}"
KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/security/security.scc"

View File

@ -17,8 +17,8 @@ KMETA_BRANCH = "yocto-4.19"
DEPENDS += "elfutils-native openssl-native util-linux-native"
LINUX_VERSION ?= "4.19.13"
SRCREV_machine ?= "135ff38d0e187434eb5fcf2c55087d1f0025d76f"
SRCREV_meta ?= "ced14887c323f1cb6b3befe2b29e471e8fee1bc6"
LINUX_VERSION ?= "4.19.31"
SRCREV_machine ?= "8b4bc03e27be3bd3b23249205d11185b2ed21ec6"
SRCREV_meta ?= "d85f07e03c980eca5ffd5ba058985d6ed3a83801"
LINUX_KERNEL_TYPE = "preempt-rt"

View File

@ -9,9 +9,9 @@ SRC_URI_append = " file://0001-menuconfig-mconf-cfg-Allow-specification-of-ncurs
DEPENDS += "elfutils-native openssl-native util-linux-native"
LINUX_VERSION ?= "4.19.34"
SRCREV_machine ?= "0f05ba26d359c104190cd68e04ba4485503840b1"
SRCREV_meta ?= "55b740965496961a660674aa4e5b8568b1b9fb7e"
LINUX_VERSION ?= "4.19.40"
SRCREV_machine ?= "106e1f78760b7e980a9598098ee45ec0a683c7ed"
SRCREV_meta ?= "6fface2df8bc35e72aaf3d79352413fd84175879"
# For Crystalforest and Romley
KERNEL_MODULE_AUTOLOAD_append_core2-32-intel-common = " uio"

View File

@ -0,0 +1,66 @@
From 55026979d71852aa2cf5e19bb4adb2db98affd1e Mon Sep 17 00:00:00 2001
From: Michael Jeanson <mjeanson@efficios.com>
Date: Mon, 18 Mar 2019 16:20:32 -0400
Subject: [PATCH 1/5] Fix: mm: create the new vm_fault_t type (v5.1)
See upstream commit:
commit 3d3539018d2cbd12e5af4a132636ee7fd8d43ef0
Author: Souptick Joarder <jrdr.linux@gmail.com>
Date: Thu Mar 7 16:31:14 2019 -0800
mm: create the new vm_fault_t type
Page fault handlers are supposed to return VM_FAULT codes, but some
drivers/file systems mistakenly return error numbers. Now that all
drivers/file systems have been converted to use the vm_fault_t return
type, change the type definition to no longer be compatible with 'int'.
By making it an unsigned int, the function prototype becomes
incompatible with a function which returns int. Sparse will detect any
attempts to return a value which is not a VM_FAULT code.
VM_FAULT_SET_HINDEX and VM_FAULT_GET_HINDEX values are changed to avoid
conflict with other VM_FAULT codes.
Upstream-Status: Backport [http://git.lttng.org/?p=lttng-modules.git;a=commit;h=2ca0c84f0b4a915c555a0b83102d94ac941619ca]
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
---
lib/ringbuffer/ring_buffer_mmap.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/lib/ringbuffer/ring_buffer_mmap.c b/lib/ringbuffer/ring_buffer_mmap.c
index 4b1b7b3..6592a82 100644
--- a/lib/ringbuffer/ring_buffer_mmap.c
+++ b/lib/ringbuffer/ring_buffer_mmap.c
@@ -32,7 +32,11 @@
/*
* fault() vm_op implementation for ring buffer file mapping.
*/
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,1,0))
+static vm_fault_t lib_ring_buffer_fault_compat(struct vm_area_struct *vma, struct vm_fault *vmf)
+#else
static int lib_ring_buffer_fault_compat(struct vm_area_struct *vma, struct vm_fault *vmf)
+#endif
{
struct lib_ring_buffer *buf = vma->vm_private_data;
struct channel *chan = buf->backend.chan;
@@ -65,7 +69,13 @@ static int lib_ring_buffer_fault_compat(struct vm_area_struct *vma, struct vm_fa
return 0;
}
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0))
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,1,0))
+static vm_fault_t lib_ring_buffer_fault(struct vm_fault *vmf)
+{
+ struct vm_area_struct *vma = vmf->vma;
+ return lib_ring_buffer_fault_compat(vma, vmf);
+}
+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0))
static int lib_ring_buffer_fault(struct vm_fault *vmf)
{
struct vm_area_struct *vma = vmf->vma;
--
2.17.0

View File

@ -0,0 +1,48 @@
From 68f073a5cdd89f905cb39895f5c2f160a6585672 Mon Sep 17 00:00:00 2001
From: Michael Jeanson <mjeanson@efficios.com>
Date: Mon, 18 Mar 2019 16:20:33 -0400
Subject: [PATCH 2/5] Fix: rcu: Remove wrapper definitions for obsolete RCU...
(v5.1)
See upstream commit :
commit 6ba7d681aca22e53385bdb35b1d7662e61905760
Author: Paul E. McKenney <paulmck@linux.ibm.com>
Date: Wed Jan 9 15:22:03 2019 -0800
rcu: Remove wrapper definitions for obsolete RCU update functions
None of synchronize_rcu_bh, synchronize_rcu_bh_expedited, call_rcu_bh,
rcu_barrier_bh, synchronize_sched, synchronize_sched_expedited,
call_rcu_sched, rcu_barrier_sched, get_state_synchronize_sched, and
cond_synchronize_sched are actually used. This commit therefore removes
their trivial wrapper-function definitions.
Upstream-Status: Backport [http://git.lttng.org/?p=lttng-modules.git;a=commit;h=92da05ce1f73488a57e7fd79e9c03113cefdb76f]
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
---
lttng-events.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/lttng-events.c b/lttng-events.c
index 47431ca..3481bd4 100644
--- a/lttng-events.c
+++ b/lttng-events.c
@@ -89,7 +89,12 @@ int _lttng_field_statedump(struct lttng_session *session,
void synchronize_trace(void)
{
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,1,0))
+ synchronize_rcu();
+#else
synchronize_sched();
+#endif
+
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
#ifdef CONFIG_PREEMPT_RT_FULL
synchronize_rcu();
--
2.17.0

View File

@ -0,0 +1,43 @@
From 9a203973ad3cbefb67a6032fd66e746d19b2d1c3 Mon Sep 17 00:00:00 2001
From: Michael Jeanson <mjeanson@efficios.com>
Date: Mon, 18 Mar 2019 16:20:34 -0400
Subject: [PATCH 3/5] Fix: pipe: stop using ->can_merge (v5.1)
See upstream commit:
commit 01e7187b41191376cee8bea8de9f907b001e87b4
Author: Jann Horn <jannh@google.com>
Date: Wed Jan 23 15:19:18 2019 +0100
pipe: stop using ->can_merge
Al Viro pointed out that since there is only one pipe buffer type to which
new data can be appended, it isn't necessary to have a ->can_merge field in
struct pipe_buf_operations, we can just check for a magic type.
Upstream-Status: Backport [http://git.lttng.org/?p=lttng-modules.git;a=commit;h=d6cd2c9598a06f0ba1ba885bbe754e8836528310]
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
---
lib/ringbuffer/ring_buffer_splice.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/lib/ringbuffer/ring_buffer_splice.c b/lib/ringbuffer/ring_buffer_splice.c
index 8d14666..93cad29 100644
--- a/lib/ringbuffer/ring_buffer_splice.c
+++ b/lib/ringbuffer/ring_buffer_splice.c
@@ -56,7 +56,9 @@ static void lib_ring_buffer_pipe_buf_release(struct pipe_inode_info *pipe,
}
static const struct pipe_buf_operations ring_buffer_pipe_buf_ops = {
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,1,0))
.can_merge = 0,
+#endif
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,15,0))
.map = generic_pipe_buf_map,
.unmap = generic_pipe_buf_unmap,
--
2.17.0

View File

@ -0,0 +1,52 @@
From f65f074de41fcc2c176397d54947f5ae2104671b Mon Sep 17 00:00:00 2001
From: Michael Jeanson <mjeanson@efficios.com>
Date: Mon, 18 Mar 2019 16:20:35 -0400
Subject: [PATCH 4/5] Fix: Revert "KVM: MMU: show mmu_valid_gen..." (v5.1)
See upstream commit :
commit b59c4830ca185ba0e9f9e046fb1cd10a4a92627a
Author: Sean Christopherson <sean.j.christopherson@intel.com>
Date: Tue Feb 5 13:01:30 2019 -0800
Revert "KVM: MMU: show mmu_valid_gen in shadow page related tracepoints"
...as part of removing x86 KVM's fast invalidate mechanism, i.e. this
is one part of a revert all patches from the series that introduced the
mechanism[1].
This reverts commit 2248b023219251908aedda0621251cffc548f258.
Upstream-Status: Backport [http://git.lttng.org/?p=lttng-modules.git;a=commit;h=8a88382fb09bbeda443044ee8cdb8f92040636bc]
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
---
.../events/lttng-module/arch/x86/kvm/mmutrace.h | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/instrumentation/events/lttng-module/arch/x86/kvm/mmutrace.h b/instrumentation/events/lttng-module/arch/x86/kvm/mmutrace.h
index e3f7abd..71e8b34 100644
--- a/instrumentation/events/lttng-module/arch/x86/kvm/mmutrace.h
+++ b/instrumentation/events/lttng-module/arch/x86/kvm/mmutrace.h
@@ -13,7 +13,15 @@
#undef TRACE_SYSTEM
#define TRACE_SYSTEM kvm_mmu
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,1,0))
+
+#define LTTNG_KVM_MMU_PAGE_FIELDS \
+ ctf_integer(__u64, gfn, (sp)->gfn) \
+ ctf_integer(__u32, role, (sp)->role.word) \
+ ctf_integer(__u32, root_count, (sp)->root_count) \
+ ctf_integer(bool, unsync, (sp)->unsync)
+
+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
#define LTTNG_KVM_MMU_PAGE_FIELDS \
ctf_integer(unsigned long, mmu_valid_gen, (sp)->mmu_valid_gen) \
--
2.17.0

View File

@ -0,0 +1,260 @@
From bd3fb656df0fedb0f87d1ef3690260a1d4b135e5 Mon Sep 17 00:00:00 2001
From: Michael Jeanson <mjeanson@efficios.com>
Date: Tue, 9 Apr 2019 14:12:41 -0400
Subject: [PATCH 5/5] Fix: Remove start and number from syscall_get_arguments()
args (v5.1)
commit b35f549df1d7520d37ba1e6d4a8d4df6bd52d136
Author: Steven Rostedt (Red Hat) <rostedt@goodmis.org>
Date: Mon Nov 7 16:26:37 2016 -0500
syscalls: Remove start and number from syscall_get_arguments() args
At Linux Plumbers, Andy Lutomirski approached me and pointed out that the
function call syscall_get_arguments() implemented in x86 was horribly
written and not optimized for the standard case of passing in 0 and 6 for
the starting index and the number of system calls to get. When looking at
all the users of this function, I discovered that all instances pass in only
0 and 6 for these arguments. Instead of having this function handle
different cases that are never used, simply rewrite it to return the first 6
arguments of a system call.
This should help out the performance of tracing system calls by ptrace,
ftrace and perf.
Link: http://lkml.kernel.org/r/20161107213233.754809394@goodmis.org
Upstream-Status: Backport [http://git.lttng.org/?p=lttng-modules.git;a=commit;h=1b7b9c650ebb94358365512199559b0ece3e657c]
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
---
lttng-syscalls.c | 57 ++++++++++++++++++++++++-----------------------
wrapper/syscall.h | 34 ++++++++++++++++++++++++++++
2 files changed, 63 insertions(+), 28 deletions(-)
create mode 100644 wrapper/syscall.h
diff --git a/lttng-syscalls.c b/lttng-syscalls.c
index 0b980a1..c9dc275 100644
--- a/lttng-syscalls.c
+++ b/lttng-syscalls.c
@@ -38,6 +38,7 @@
#include <wrapper/tracepoint.h>
#include <wrapper/file.h>
#include <wrapper/rcu.h>
+#include <wrapper/syscall.h>
#include <lttng-events.h>
#ifndef CONFIG_COMPAT
@@ -374,9 +375,9 @@ struct lttng_syscall_filter {
static void syscall_entry_unknown(struct lttng_event *event,
struct pt_regs *regs, unsigned int id)
{
- unsigned long args[UNKNOWN_SYSCALL_NRARGS];
+ unsigned long args[LTTNG_SYSCALL_NR_ARGS];
- syscall_get_arguments(current, regs, 0, UNKNOWN_SYSCALL_NRARGS, args);
+ lttng_syscall_get_arguments(current, regs, args);
if (unlikely(in_compat_syscall()))
__event_probe__compat_syscall_entry_unknown(event, id, args);
else
@@ -445,9 +446,9 @@ void syscall_entry_probe(void *__data, struct pt_regs *regs, long id)
case 1:
{
void (*fptr)(void *__data, unsigned long arg0) = entry->func;
- unsigned long args[1];
+ unsigned long args[LTTNG_SYSCALL_NR_ARGS];
- syscall_get_arguments(current, regs, 0, entry->nrargs, args);
+ lttng_syscall_get_arguments(current, regs, args);
fptr(event, args[0]);
break;
}
@@ -456,9 +457,9 @@ void syscall_entry_probe(void *__data, struct pt_regs *regs, long id)
void (*fptr)(void *__data,
unsigned long arg0,
unsigned long arg1) = entry->func;
- unsigned long args[2];
+ unsigned long args[LTTNG_SYSCALL_NR_ARGS];
- syscall_get_arguments(current, regs, 0, entry->nrargs, args);
+ lttng_syscall_get_arguments(current, regs, args);
fptr(event, args[0], args[1]);
break;
}
@@ -468,9 +469,9 @@ void syscall_entry_probe(void *__data, struct pt_regs *regs, long id)
unsigned long arg0,
unsigned long arg1,
unsigned long arg2) = entry->func;
- unsigned long args[3];
+ unsigned long args[LTTNG_SYSCALL_NR_ARGS];
- syscall_get_arguments(current, regs, 0, entry->nrargs, args);
+ lttng_syscall_get_arguments(current, regs, args);
fptr(event, args[0], args[1], args[2]);
break;
}
@@ -481,9 +482,9 @@ void syscall_entry_probe(void *__data, struct pt_regs *regs, long id)
unsigned long arg1,
unsigned long arg2,
unsigned long arg3) = entry->func;
- unsigned long args[4];
+ unsigned long args[LTTNG_SYSCALL_NR_ARGS];
- syscall_get_arguments(current, regs, 0, entry->nrargs, args);
+ lttng_syscall_get_arguments(current, regs, args);
fptr(event, args[0], args[1], args[2], args[3]);
break;
}
@@ -495,9 +496,9 @@ void syscall_entry_probe(void *__data, struct pt_regs *regs, long id)
unsigned long arg2,
unsigned long arg3,
unsigned long arg4) = entry->func;
- unsigned long args[5];
+ unsigned long args[LTTNG_SYSCALL_NR_ARGS];
- syscall_get_arguments(current, regs, 0, entry->nrargs, args);
+ lttng_syscall_get_arguments(current, regs, args);
fptr(event, args[0], args[1], args[2], args[3], args[4]);
break;
}
@@ -510,9 +511,9 @@ void syscall_entry_probe(void *__data, struct pt_regs *regs, long id)
unsigned long arg3,
unsigned long arg4,
unsigned long arg5) = entry->func;
- unsigned long args[6];
+ unsigned long args[LTTNG_SYSCALL_NR_ARGS];
- syscall_get_arguments(current, regs, 0, entry->nrargs, args);
+ lttng_syscall_get_arguments(current, regs, args);
fptr(event, args[0], args[1], args[2],
args[3], args[4], args[5]);
break;
@@ -525,9 +526,9 @@ void syscall_entry_probe(void *__data, struct pt_regs *regs, long id)
static void syscall_exit_unknown(struct lttng_event *event,
struct pt_regs *regs, int id, long ret)
{
- unsigned long args[UNKNOWN_SYSCALL_NRARGS];
+ unsigned long args[LTTNG_SYSCALL_NR_ARGS];
- syscall_get_arguments(current, regs, 0, UNKNOWN_SYSCALL_NRARGS, args);
+ lttng_syscall_get_arguments(current, regs, args);
if (unlikely(in_compat_syscall()))
__event_probe__compat_syscall_exit_unknown(event, id, ret,
args);
@@ -601,9 +602,9 @@ void syscall_exit_probe(void *__data, struct pt_regs *regs, long ret)
void (*fptr)(void *__data,
long ret,
unsigned long arg0) = entry->func;
- unsigned long args[1];
+ unsigned long args[LTTNG_SYSCALL_NR_ARGS];
- syscall_get_arguments(current, regs, 0, entry->nrargs, args);
+ lttng_syscall_get_arguments(current, regs, args);
fptr(event, ret, args[0]);
break;
}
@@ -613,9 +614,9 @@ void syscall_exit_probe(void *__data, struct pt_regs *regs, long ret)
long ret,
unsigned long arg0,
unsigned long arg1) = entry->func;
- unsigned long args[2];
+ unsigned long args[LTTNG_SYSCALL_NR_ARGS];
- syscall_get_arguments(current, regs, 0, entry->nrargs, args);
+ lttng_syscall_get_arguments(current, regs, args);
fptr(event, ret, args[0], args[1]);
break;
}
@@ -626,9 +627,9 @@ void syscall_exit_probe(void *__data, struct pt_regs *regs, long ret)
unsigned long arg0,
unsigned long arg1,
unsigned long arg2) = entry->func;
- unsigned long args[3];
+ unsigned long args[LTTNG_SYSCALL_NR_ARGS];
- syscall_get_arguments(current, regs, 0, entry->nrargs, args);
+ lttng_syscall_get_arguments(current, regs, args);
fptr(event, ret, args[0], args[1], args[2]);
break;
}
@@ -640,9 +641,9 @@ void syscall_exit_probe(void *__data, struct pt_regs *regs, long ret)
unsigned long arg1,
unsigned long arg2,
unsigned long arg3) = entry->func;
- unsigned long args[4];
+ unsigned long args[LTTNG_SYSCALL_NR_ARGS];
- syscall_get_arguments(current, regs, 0, entry->nrargs, args);
+ lttng_syscall_get_arguments(current, regs, args);
fptr(event, ret, args[0], args[1], args[2], args[3]);
break;
}
@@ -655,9 +656,9 @@ void syscall_exit_probe(void *__data, struct pt_regs *regs, long ret)
unsigned long arg2,
unsigned long arg3,
unsigned long arg4) = entry->func;
- unsigned long args[5];
+ unsigned long args[LTTNG_SYSCALL_NR_ARGS];
- syscall_get_arguments(current, regs, 0, entry->nrargs, args);
+ lttng_syscall_get_arguments(current, regs, args);
fptr(event, ret, args[0], args[1], args[2], args[3], args[4]);
break;
}
@@ -671,9 +672,9 @@ void syscall_exit_probe(void *__data, struct pt_regs *regs, long ret)
unsigned long arg3,
unsigned long arg4,
unsigned long arg5) = entry->func;
- unsigned long args[6];
+ unsigned long args[LTTNG_SYSCALL_NR_ARGS];
- syscall_get_arguments(current, regs, 0, entry->nrargs, args);
+ lttng_syscall_get_arguments(current, regs, args);
fptr(event, ret, args[0], args[1], args[2],
args[3], args[4], args[5]);
break;
diff --git a/wrapper/syscall.h b/wrapper/syscall.h
new file mode 100644
index 0000000..8715f0c
--- /dev/null
+++ b/wrapper/syscall.h
@@ -0,0 +1,34 @@
+/* SPDX-License-Identifier: (GPL-2.0 or LGPL-2.1)
+ *
+ * wrapper/syscall.h
+ *
+ * wrapper around asm/syscall.h.
+ *
+ * Copyright (C) 2019 Michael Jeanson <mjeanson@efficios.com>
+ */
+
+#ifndef _LTTNG_WRAPPER_SYSCALL_H
+#define _LTTNG_WRAPPER_SYSCALL_H
+
+#include <asm/syscall.h>
+#include <lttng-kernel-version.h>
+
+#define LTTNG_SYSCALL_NR_ARGS 6
+
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,1,0))
+
+#define lttng_syscall_get_arguments(task, regs, args) \
+ syscall_get_arguments(task, regs, args)
+
+#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(5,1,0) */
+
+static inline
+void lttng_syscall_get_arguments(struct task_struct *task,
+ struct pt_regs *regs, unsigned long *args)
+{
+ syscall_get_arguments(task, regs, 0, LTTNG_SYSCALL_NR_ARGS, args);
+}
+
+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(5,1,0) */
+
+#endif /* _LTTNG_WRAPPER_SYSCALL_H */
--
2.17.0

View File

@ -0,0 +1,12 @@
FILESEXTRAPATHS_prepend_intel-x86-common := "${THISDIR}/${PN}:"
LTTNG_PATCH_SET = " \
file://0001-Fix-mm-create-the-new-vm_fault_t-type-v5.1.patch \
file://0002-Fix-rcu-Remove-wrapper-definitions-for-obsolete-RCU..patch \
file://0003-Fix-pipe-stop-using-can_merge-v5.1.patch \
file://0004-Fix-Revert-KVM-MMU-show-mmu_valid_gen.-v5.1.patch \
file://0005-Fix-Remove-start-and-number-from-syscall_get_argumen.patch \
"
SRC_URI_append_intel-x86-common = "${@bb.utils.contains_any('PREFERRED_PROVIDER_virtual/kernel','linux-intel-dev','${LTTNG_PATCH_SET}','',d)}"