From patchwork Wed Aug 1 23:00:58 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Martin Xu X-Patchwork-Id: 952471 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=openvswitch.org (client-ip=140.211.169.12; helo=mail.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Cfjjew7h"; dkim-atps=neutral Received: from mail.linuxfoundation.org (mail.linuxfoundation.org [140.211.169.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 41gph54JDjz9s3Z for ; Thu, 2 Aug 2018 09:01:08 +1000 (AEST) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id 981C7D9B; Wed, 1 Aug 2018 23:01:05 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@mail.linuxfoundation.org Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 8C3E3D61 for ; Wed, 1 Aug 2018 23:01:04 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.7.6 Received: from mail-pg1-f194.google.com (mail-pg1-f194.google.com [209.85.215.194]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id E93986C5 for ; Wed, 1 Aug 2018 23:01:03 +0000 (UTC) Received: by mail-pg1-f194.google.com with SMTP id y5-v6so143091pgv.1 for ; Wed, 01 Aug 2018 16:01:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=v+KRhIRZerXl5QLoiHx5aq/bYV6oQf1poo9OpGhntiY=; b=Cfjjew7hcJRMJlGbevEwF9OjlKhRyg9bttnGfUpA0GTK5FL2ih3xgWPszU9Hf7329c zDn/sD1AOt5LY0dkUhjJFxHAHa3pLcNLYJHlkDvUjpspNBJVjunKqzUdIAc67WRS0aeP OgYQ74W+y0XoHh/qrKXaL1THMIJQvTL8/K0JRUhjKc+AF2lzrEIHOZrWdBOR6Upmrhsk BmkPVhJ0j594eV3jvbn7qBw2cWMXlzFPoY02FiNOX5FXU5FPvi8+QCgSuoFVESemPw5i M/bCX20aWNyPmGNZM/b4zOD+R3lbPMN/Qb/YNKaOO+Oa01sekdbIqQ+yMG6ZJwkD+JzY jU1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=v+KRhIRZerXl5QLoiHx5aq/bYV6oQf1poo9OpGhntiY=; b=djQscj7ihVaCSsnOL1QugrtlbSfXevqniM1UgqeJpkFXl/WXzSpkDuz3rUNWYotkJf uTvHgCZZjWaoehZ8DIPk93ZaiH1nEfeOk5L7jQ8U8G/kw6hHq6DQgZbZIG2JfUPp9lds LnfDeAJ2n5XUqdUeIvaHWrp1pHik3LfDTv2t6/RlSZe2Ro3sFf2xgv93T3Mo0yyVM09P 7lclKQVL1u64mPIgpmXrb1W0l3F/D6UGafK5YMkCnj9x0YKmW/XDHsIc+L8ACI3F7P5/ awjANQnHJBhdkEfoHkvBKSH1LJxAPrtyxA3wugOCnvGmGrT0CKHQjxo29GFnElEMcPmc 9sJQ== X-Gm-Message-State: AOUpUlGTvaEbNji6i/0KH85xEPK1gFsp1AcJgbn/aRzXtuALuRiSxS+9 7cS0n5rYvkvkZTTDBATXOpn4/5J3 X-Google-Smtp-Source: AAOMgpeGtNW3Xp4Of89MDvgG55dGI+ibJdIIot28gntpjDxUVha2UY+9dGg/cvhDNCh1AYmoq1Kl+Q== X-Received: by 2002:a65:5284:: with SMTP id y4-v6mr242857pgp.283.1533164463278; Wed, 01 Aug 2018 16:01:03 -0700 (PDT) Received: from rhel72-vm1-local.eng.vmware.com. ([66.170.99.1]) by smtp.gmail.com with ESMTPSA id z20-v6sm217685pfd.99.2018.08.01.16.01.02 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 01 Aug 2018 16:01:02 -0700 (PDT) From: Martin Xu To: dev@openvswitch.org Date: Wed, 1 Aug 2018 16:00:58 -0700 Message-Id: <1533164459-37727-1-git-send-email-martinxu9.ovs@gmail.com> X-Mailer: git-send-email 1.8.3.1 X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Cc: Flavio Leitner Subject: [ovs-dev] [PATCH v6 1/2] rhel: support kmod build against multiple 7.2 kernels, rhel6 X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: ovs-dev-bounces@openvswitch.org Errors-To: ovs-dev-bounces@openvswitch.org This patch extends commit 89dd5819cf18 (rhel: support kmod-openvswitch build against multiple kernels, rhel6) to support building kmod RPMs with multiple minor revisions within 3.10.0-327 kernels. It was discovered for RHEL 7.2 that 41.3 minor revision introduced backward incompatible changes. VMware-BZ: #2170334 Signed-off-by: Martin Xu CC: Greg Rose CC: Ben Pfaff CC: Flavio Leitner CC: Yi-Hung Wei Acked-by: Yi-Hung Wei --- v1->v2: added author sign-off signature v2->v3: instead of using hard coded versions for openvswitch kernel modules, retrieve the information from kmod package v3->v4: sent wrong v3 patch, some echo's for debugging not removed v4->v5: fix one line that exceeded 79 chars v5->v6: separate bug fix to a separate commit rhel/kmod-openvswitch-rhel6.spec.in | 7 ++- ...sr_share_openvswitch_scripts_ovs-kmod-manage.sh | 68 +++++++++++++++++++--- 2 files changed, 63 insertions(+), 12 deletions(-) diff --git a/rhel/kmod-openvswitch-rhel6.spec.in b/rhel/kmod-openvswitch-rhel6.spec.in index f18802d..7ca4853 100644 --- a/rhel/kmod-openvswitch-rhel6.spec.in +++ b/rhel/kmod-openvswitch-rhel6.spec.in @@ -31,7 +31,8 @@ BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) # for specified kernel version. # Use -D 'kversion 3.10.0-693.1.1.el7.x86_64 3.10.0-693.17.1.el7.x86_64' # to build package for mulitple kernel versions in the same package -# This only works for kernel 3.10.0 major revision 693 +# This only works for kernel 3.10.0 major revision 693 (RHEL 7.4) +# and major revision 327 (RHEL 7.2) # By default, build against the latest installed kernel-devel %{!?kversion:%global kversion %(rpm -qa | egrep "^kernel(-rt|-aarch64)?-devel" | /usr/lib/rpm/redhat/rpmsort -r | head -n 1| sed "s/^kernel.*-devel-//")} @@ -86,8 +87,8 @@ install -p -m 0755 rhel/usr_share_openvswitch_scripts_ovs-kmod-manage.sh \ current_kernel=$(uname -r) IFS=. read installed_major installed_minor installed_micro installed_arch \ installed_build <<<"${current_kernel##*-}" -if [ "$installed_major" = "693" ]; then - # Workaround for RHEL 7.4 +if [ "$installed_major" = "327" ] || [ "$installed_major" = "693" ]; then + # Workaround for RHEL 7.2 and 7.4 if [ -x "/usr/share/%{oname}/scripts/ovs-kmod-manage.sh" ]; then /usr/share/%{oname}/scripts/ovs-kmod-manage.sh fi diff --git a/rhel/usr_share_openvswitch_scripts_ovs-kmod-manage.sh b/rhel/usr_share_openvswitch_scripts_ovs-kmod-manage.sh index a6c738f..6beabeb 100644 --- a/rhel/usr_share_openvswitch_scripts_ovs-kmod-manage.sh +++ b/rhel/usr_share_openvswitch_scripts_ovs-kmod-manage.sh @@ -14,23 +14,39 @@ # See the License for the specific language governing permissions and # limitations under the License. -# This version of the script is intended to be used on kernel version -# 3.10.0 major revision 693 only. It is packaged in the openvswitch kmod RPM -# built using the rhel6 spec file, and run in the post-install for minor -# revision 693 kernels. +# This version of the script is intended to be used on kernel version 3.10.0 +# major revision 327 and 693 only. It is packaged in the openvswitch kmod RPM +# built using the rhel6 spec file, and run in the post-install for major +# revision 327/693 kernels. # -# Due to some backward incompatible changes introduced in minor revision 17.1, +# For kernel 3.10.0-693, +# due to some backward incompatible changes introduced in minor revision 17.1, # kernel modules built against kernels newer than 17.1 cannot be loaded on # system running kernels older than 17.1, vice versa. # +# For kernel 3.10.0-327, +# due to some backward incompatible changes introduced in minor revision 41.3, +# kernel modules built against kernels newer than 41.3 cannot be loaded on +# system running kernels older than 41.3, vice versa. +# # This script checks the current running kernel version, and update symlinks # for the openvswitch kernel modules in the appropriate kernel directory, # provided the kmod RPM has installed kernel modules files built from both -# 1.1 and 17.1 minor revisions. +# minor revisions. # # In case of a kernel minor revision change after the openvswitch kmod package # is installed, this script shall be run manually after system reboots and # switches to a different kernel +if [ -n "$(rpm -qa kmod-openvswitch)" ]; then + rpmname="kmod-openvswitch" +elif [ -n "$(rpm -qa openvswitch-kmod)" ]; then + rpmname="openvswitch-kmod" +else + echo "openvswitch kmod package not installed, existing" + exit 1 +fi +#echo $rpmname + script_name=$(basename -- "$0") current_kernel=$(uname -r) echo current kernel is $current_kernel @@ -42,7 +58,41 @@ IFS=. read installed_major installed_minor installed_micro \ # installed_build=$installed_build expected_base_minor="el7" -expected_minor=11 +if [ "$installed_major" = "327" ]; then + expected_minor=36 +elif [ "$installed_major" = "693" ]; then + expected_minor=11 +else + echo "This script is not intended to run on kernel $(uname -r)" + exit 1 +fi + +kmod_minor_versions=() +kversion=$(rpm -ql ${rpmname} | grep '\.ko$' | \ + sed -n -e 's/^\/lib\/modules\/\(.*\)\/extra\/.*$/\1/p' | \ + sort | uniq) +for kv in $kversion; do + IFS=. read kmod_major kmod_minor kmod_micro kmod_arch \ + kmod_build <<<"${kv##*-}" +# echo kmod_major=$kmod_major kmod_minor=$kmod_minor \ +# kmod_micro=$kmod_micro kmod_arch=$kmod_arch \ +# kmod_build=$kmod_build + kmod_minor_versions+=($kmod_minor) +done +sorted_kmod_minor_versions=$(printf "%s\n" "${kmod_minor_versions[@]}" | \ + sort -n) +#echo "$sorted_kmod_minor_versions" + +if [ ! -n "$sorted_kmod_minor_versions" ]; then + echo "No kernel modules found from package $rpmname, exiting" + exit 1 +else + # first line for kmod_minor_low_ver, last for kmod_minor_high_ver + kmod_minor_low_ver=$(echo "$sorted_kmod_minor_versions" | head -1) + kmod_minor_high_ver=$(echo "$sorted_kmod_minor_versions" | tail -1) +fi +#echo "Installing KMOD with minor revisions $kmod_minor_low_ver and \ +# $kmod_minor_high_ver" found_match=false for kname in `ls -d /lib/modules/*` @@ -51,14 +101,14 @@ do # echo major=$major minor=$minor micro=$micro arch=$arch build=$build if [ "$installed_minor" = "$expected_base_minor" ] || [ "$installed_minor" -le "$expected_minor" ]; then - if [ "$minor" = "1" ]; then + if [ "$minor" = "$kmod_minor_low_ver" ]; then requested_kernel=$kname found_match="true" echo "Installing Openvswitch KMOD from kernel $kname" break fi else - if [ "$minor" = "17" ]; then + if [ "$minor" = "$kmod_minor_high_ver" ]; then requested_kernel=$kname found_match="true" echo "Installing Openvswitch KMOD from kernel $kname" From patchwork Wed Aug 1 23:00:59 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Martin Xu X-Patchwork-Id: 952472 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=openvswitch.org (client-ip=140.211.169.12; helo=mail.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="RsWoMPy0"; dkim-atps=neutral Received: from mail.linuxfoundation.org (mail.linuxfoundation.org [140.211.169.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 41gphg3ZfYz9s3Z for ; Thu, 2 Aug 2018 09:01:39 +1000 (AEST) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id A4975E35; Wed, 1 Aug 2018 23:01:07 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@mail.linuxfoundation.org Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 2B801D96 for ; Wed, 1 Aug 2018 23:01:06 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.7.6 Received: from mail-pf1-f195.google.com (mail-pf1-f195.google.com [209.85.210.195]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id CEA80F1 for ; Wed, 1 Aug 2018 23:01:05 +0000 (UTC) Received: by mail-pf1-f195.google.com with SMTP id a26-v6so148873pfo.4 for ; Wed, 01 Aug 2018 16:01:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=pGNeKJXPf44MhLnkKqhCe5fVkz9B0iV7DG6kQOeZqdg=; b=RsWoMPy0RTrOsvfwICrBBHAZDIwru2WYah9wMuOg974KIH5za1OwqDN2HcXZOQrDVS K+0rnmfCOce7Vny/yR2RDcjZDJx3fbTCAvwVYeGQev8trqiWAXK/srDTOqdxsMi4PYql STTq1uSxpNlYY11/3Vj1r1CtX2DMe/mp994+M2yoxxqN2QlFJI5UCJNBh9boTon94FUa tv493OBQL+N2ZdlA9DCIa15HpVgCcZuysLpg/ZM4aJFs9LlxhpqNuRfat7EyV5SS8Nlz cyi9LFhwgusfECVuB/VERQNzXK93zX/mM4EZXcMyM1oqXyeb+OGqWNC2dFF97DG7uLQf W+1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=pGNeKJXPf44MhLnkKqhCe5fVkz9B0iV7DG6kQOeZqdg=; b=X0Ph+CAAa5dFfM2REWAwMZxruL8iOTrAEUIQtjViGnu/vmvMVkMVHcOEP84NSPoJZR 4SCggU9EeJJOQ8HpQBRaNpZhcPyf73cxx4CUIvM3XKOICew+CpLte4YpRU4XrM9JW2zC I+/OGaMZFGrGIJ9reylY6Lx6Q4Qbj78pEieIJdSHTEfYhaprQ9dBglazsruYjBpuh4pX ZGnx5ijoRUAckHC1BIjZ+DKfS1NQmQkw/omXWoNfWeo4GzWj77H6yemQkSU9t8MrlxE8 1agMawaGJur0utcRZ+ZgNQvdop5rp/jsOjo9ktsUFYvf+rfwo2PZ7+YThneMYgJeJprv TNiw== X-Gm-Message-State: AOUpUlFIKN8W88/jA89doGFZR6FOtJXbZOmGeHiFBRHkVAtePa6xeShc mNy9IVW2JCPZRrTMRRKyAmmNpw81 X-Google-Smtp-Source: AAOMgpf+oueX+YmpLDq8nWtZcnSuvXve7yd+99PIb/wwGZZkzltJ0mzujt5ePvA54DEh4wkbPKVVIA== X-Received: by 2002:a65:5cc5:: with SMTP id b5-v6mr243834pgt.425.1533164465129; Wed, 01 Aug 2018 16:01:05 -0700 (PDT) Received: from rhel72-vm1-local.eng.vmware.com. ([66.170.99.1]) by smtp.gmail.com with ESMTPSA id z20-v6sm217685pfd.99.2018.08.01.16.01.04 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 01 Aug 2018 16:01:04 -0700 (PDT) From: Martin Xu To: dev@openvswitch.org Date: Wed, 1 Aug 2018 16:00:59 -0700 Message-Id: <1533164459-37727-2-git-send-email-martinxu9.ovs@gmail.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1533164459-37727-1-git-send-email-martinxu9.ovs@gmail.com> References: <1533164459-37727-1-git-send-email-martinxu9.ovs@gmail.com> X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Cc: Flavio Leitner Subject: [ovs-dev] [PATCH v6 2/2] rhel: bug fix kmod spec file, rhel6 X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: ovs-dev-bounces@openvswitch.org Errors-To: ovs-dev-bounces@openvswitch.org This patch fixes a scenario not working for RHEL7.3 in commit 89dd5819cf18. When multiple versions passed into the kversion for the spec file, the variable is used as is for the kernel module paths for command weak-modules --add-modules. Then the modules cannot be found. Fixes: 89dd5819cf18 (rhel: support kmod-openvswitch build against multiple kernels, rhel6) Signed-off-by: Martin Xu CC: Greg Rose CC: Ben Pfaff CC: Flavio Leitner CC: Yi-Hung Wei Acked-by: Yi-Hung Wei --- v5->v6: bug fix separated to its own patch rhel/kmod-openvswitch-rhel6.spec.in | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/rhel/kmod-openvswitch-rhel6.spec.in b/rhel/kmod-openvswitch-rhel6.spec.in index 7ca4853..afbad96 100644 --- a/rhel/kmod-openvswitch-rhel6.spec.in +++ b/rhel/kmod-openvswitch-rhel6.spec.in @@ -98,10 +98,8 @@ else [ -d "/lib/modules/$k/kernel/" ] && depmod -a "$k" done if [ -x "/sbin/weak-modules" ]; then - for m in openvswitch vport-gre vport-stt vport-geneve \ - vport-lisp vport-vxlan; do - echo "/lib/modules/%{kversion}/extra/%{oname}/$m.ko" - done | /sbin/weak-modules --add-modules + rpm -ql kmod-%{oname} | grep '\.ko$' | \ + /sbin/weak-modules --add-modules fi fi