Revert "kmod-kvdo package is retired on branch c10s for CS-2551"

This reverts commit e08f34cdfc.
This commit is contained in:
dfan 2024-10-04 17:06:12 +01:00
parent e08f34cdfc
commit 3b248c2c2d
17 changed files with 2451 additions and 4 deletions

15
.gitignore vendored Normal file
View File

@ -0,0 +1,15 @@
/kvdo-36c3e1c.tar.gz
/kvdo-2e1a578.tar.gz
/kvdo-000a4c2.tar.gz
/kvdo-3f9bde5.tar.gz
/kvdo-f9d6d18.tar.gz
/kvdo-819203a.tar.gz
/kvdo-e209cfe.tar.gz
/kvdo-127a993.tar.gz
/kvdo-6077a12.tar.gz
/kvdo-883a960.tar.gz
/kvdo-e2a5ebb.tar.gz
/kvdo-c9bd224.tar.gz
/kvdo-c6254c6.tar.gz
/kvdo-9b37ab4.tar.gz
/kvdo-7c54552.tar.gz

View File

@ -1,3 +0,0 @@
# Package Not Available
This package is not available on CentOS Stream 10.
It may be available on another branch.

1193
add_lz4_dependency.patch Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1 +0,0 @@
kmod-kvdo package is retired on branch c10s for CS-2551

6
gating.yaml Normal file
View File

@ -0,0 +1,6 @@
--- !Policy
product_versions:
- rhel-9
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}

824
kmod-kvdo.spec Normal file
View File

@ -0,0 +1,824 @@
%global commit 7c5455297c90653c85fb9f99aa1fe3f5b8008966
%global gittag 8.2.4.15
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%define spec_release 141
%define kmod_name kvdo
%define kmod_driver_version %{gittag}
%define kmod_rpm_release %{spec_release}
%define kmod_kernel_version 5.14.0-503.4.1.el9_5
%define kmod_kernel_extra %(sed 's/.*-\\([0-9]\\+\\).*/\\1/' <<< "%{kmod_kernel_version}")
%define kmod_headers_version %(rpm -qa kernel-devel | sed 's/^kernel-devel-//')
%define kmod_kbuild_dir .
%define kmod_devel_package 0
Source0: https://github.com/dm-vdo/%{kmod_name}/archive/%{commit}/%{kmod_name}-%{shortcommit}.tar.gz
Patch0: add_lz4_dependency.patch
Patch1: removed-logical-space-check-from-table-line.patch
%define findpat %( echo "%""P" )
Name: kmod-kvdo
Version: %{kmod_driver_version}
Release: %{kmod_rpm_release}%{?dist}
Summary: Kernel Modules for Virtual Data Optimizer
License: GPLv2+
URL: http://github.com/dm-vdo/kvdo
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
BuildRequires: elfutils-libelf-devel
BuildRequires: glibc
BuildRequires: kernel-devel >= %{kmod_kernel_version}
# Disable the kernel-debug requirement for now
BuildRequires: libuuid-devel
BuildRequires: redhat-rpm-config
ExcludeArch: i686
ExcludeArch: ppc
ExcludeArch: ppc64
ExcludeArch: s390
%global kernel_source() /usr/src/kernels/%{kmod_headers_version}
%global _use_internal_dependency_generator 0
Provides: kmod-%{kmod_name} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires(post): %{_sbindir}/weak-modules
Requires(postun): %{_sbindir}/weak-modules
Requires: kernel-core-uname-r >= %{kmod_kernel_version}
Requires: kernel-modules-uname-r >= %{kmod_kernel_version}
Conflicts: kernel-64k
%description
Virtual Data Optimizer (VDO) is a device mapper target that delivers
block-level deduplication, compression, and thin provisioning.
This package provides the kernel modules for VDO.
%pre
# During the install, check whether kvdo or uds is loaded. A warning here
# indicates that a previous install was not completely removed. This message
# is purely informational to the user.
for module in kvdo uds; do
if grep -q "^${module}" /proc/modules; then
if [ "${module}" == "kvdo" ]; then
echo "WARNING: Found ${module} module previously loaded (Version: $(cat /sys/kvdo/version 2>/dev/null || echo Unknown)). A reboot is recommended before attempting to use the newly installed module."
else
echo "WARNING: Found ${module} module previously loaded. A reboot is recommended before attempting to use the newly installed module."
fi
fi
done
%post
modules=( $(find /lib/modules/%{kmod_headers_version}/extra/kmod-%{kmod_name} | grep '\.ko$') )
printf '%s\n' "${modules[@]}" >> /usr/lib/rpm-kmod-posttrans-weak-modules-add
%pretrans -p <lua>
posix.unlink("/usr/lib/rpm-kmod-posttrans-weak-modules-add")
%posttrans
if [ -f "/usr/lib/rpm-kmod-posttrans-weak-modules-add" ]; then
modules=( $(cat /usr/lib/rpm-kmod-posttrans-weak-modules-add) )
rm -rf /usr/lib/rpm-kmod-posttrans-weak-modules-add
printf '%s\n' "${modules[@]}" | %{_sbindir}/weak-modules --dracut=/usr/bin/dracut --add-modules
fi
%preun
rpm -ql kmod-kvdo-%{kmod_driver_version}-%{kmod_rpm_release}%{?dist}.$(arch) | grep '\.ko$' > /var/run/rpm-kmod-%{kmod_name}-modules
# Check whether kvdo or uds is loaded, and if so attempt to remove it. A
# failure to unload means there is still something using the module. To make
# sure the user is aware, we print a warning with recommended instructions.
for module in kvdo uds; do
if grep -q "^${module}" /proc/modules; then
warnMessage="WARNING: ${module} in use. Changes will take effect after a reboot."
modprobe -r ${module} 2>/dev/null || echo ${warnMessage} && /usr/bin/true
fi
done
%postun
modules=( $(cat /var/run/rpm-kmod-%{kmod_name}-modules) )
rm /var/run/rpm-kmod-%{kmod_name}-modules
printf '%s\n' "${modules[@]}" | %{_sbindir}/weak-modules --dracut=/usr/bin/dracut --remove-modules
%files
%defattr(644,root,root,755)
/lib/modules/%{kmod_headers_version}
/etc/depmod.d/%{kmod_name}.conf
/usr/share/doc/kmod-%{kmod_name}/greylist.txt
%prep
%setup -n %{kmod_name}-%{commit}
%patch0 -p1
%patch1 -p1
%{nil}
set -- *
mkdir source
mv "$@" source/
mkdir obj
%build
rm -rf obj
cp -r source obj
make -C %{kernel_source} M=$PWD/obj/%{kmod_kbuild_dir} V=1 \
NOSTDINC_FLAGS="-I $PWD/obj/include -I $PWD/obj/include/uapi" \
RHEL_RELEASE_EXTRA=%{kmod_kernel_extra}
# mark modules executable so that strip-to-file can strip them
find obj/%{kmod_kbuild_dir} -name "*.ko" -type f -exec chmod u+x '{}' +
whitelist="/lib/modules/kabi-current/kabi_whitelist_%{_target_cpu}"
for modules in $( find obj/%{kmod_kbuild_dir} -name "*.ko" -type f -printf "%{findpat}\n" | sed 's|\.ko$||' | sort -u ) ; do
# update depmod.conf
module_weak_path=$(echo $modules | sed 's/[\/]*[^\/]*$//')
if [ -z "$module_weak_path" ]; then
module_weak_path=%{name}
else
module_weak_path=%{name}/$module_weak_path
fi
echo "override $(echo $modules | sed 's/.*\///') $(echo %{kmod_headers_version} | sed 's/\.[^\.]*$//').* weak-updates/$module_weak_path" >> source/depmod.conf
# update greylist
nm -u obj/%{kmod_kbuild_dir}/$modules.ko | sed 's/.*U //' | sed 's/^\.//' | sort -u | while read -r symbol; do
grep -q "^\s*$symbol\$" $whitelist || echo "$symbol" >> source/greylist
done
done
sort -u source/greylist | uniq > source/greylist.txt
%install
export INSTALL_MOD_PATH=$RPM_BUILD_ROOT
export INSTALL_MOD_DIR=extra/%{name}
make -C %{kernel_source} modules_install V=1 \
M=$PWD/obj/%{kmod_kbuild_dir}
# Cleanup unnecessary kernel-generated module dependency files.
find $INSTALL_MOD_PATH/lib/modules -iname 'modules.*' -exec rm {} \;
install -m 644 -D source/depmod.conf $RPM_BUILD_ROOT/etc/depmod.d/%{kmod_name}.conf
install -m 644 -D source/greylist.txt $RPM_BUILD_ROOT/usr/share/doc/kmod-%{kmod_name}/greylist.txt
%clean
rm -rf $RPM_BUILD_ROOT
%changelog
* Tue Sep 17 2024 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.4.15-141.el9_5
- Rebuilt for latest kernel.
- Related: RHEL-30884
* Tue Sep 17 2024 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.4.15-140.el9_5
- Rebuilt for latest kernel.
- Related: RHEL-30884
* Tue Aug 27 2024 - Chung Chung <cchung@redhat.com> - 8.2.4.15-139.el9
- Rebuilt for latest kernel.
- Related: RHEL-30884
* Thu Aug 08 2024 - Chung Chung <cchung@redhat.com> - 8.2.4.15-138.el9
- Rebuilt for latest kernel.
- Related: RHEL-30884
* Mon Aug 05 2024 - Chung Chung <cchung@redhat.com> - 8.2.4.15-137.el9
- Rebuilt for latest kernel.
- Related: RHEL-30884
* Thu Aug 01 2024 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.4.15-136.el9
- Fixed null pointer error with timed-out dedupt contexts.
- Made timed-out dedupe contexts available for reuse sooner.
- Added build support for more kernel versions.
- Resolves: RHEL-42515
* Tue Jul 30 2024 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.4.10-136.el9
- Rebuilt for latest kernel.
- Related: RHEL-30884
* Thu Jul 11 2024 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.4.10-135.el9
- Rebuilt for latest kernel.
- Related: RHEL-30884
* Mon Jul 08 2024 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.4.10-134.el9
- Rebuilt for latest kernel.
- Related: RHEL-30884
* Wed Jul 03 2024 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.4.10-133.el9
- Rebuilt for latest kernel.
- Related: RHEL-30884
* Thu Jun 20 2024 - Chung Chung <cchung@redhat.com> - 8.2.4.10-132.el9
- Rebuilt for latest kernel.
- Related: RHEL-30884
* Thu Jun 20 2024 - Chung Chung <cchung@redhat.com> - 8.2.4.10-131.el9
- Rebuilt for latest kernel.
- Related: RHEL-30884
* Fri Jun 14 2024 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.4.10-130.el9
- Adapt to backported kernel changes and function deprecations.
- Resolves: RHEL-35753
* Wed Jun 12 2024 - Chung Chung <cchung@redhat.com> - 8.2.3.3-129.el9
- Rebuilt for latest kernel.
- Related: RHEL-30884
* Fri Jun 07 2024 - Chung Chung <cchung@redhat.com> - 8.2.3.3-128.el9
- Rebuilt for latest kernel.
- Related: RHEL-30884
* Tue Jun 04 2024 - Chung Chung <cchung@redhat.com> - 8.2.3.3-127.el9
- Rebuilt for latest kernel.
- Related: RHEL-30884
* Tue Jun 04 2024 - Chung Chung <cchung@redhat.com> - 8.2.3.3-126.el9
- Rebuilt for latest kernel.
- Related: RHEL-30884
* Wed May 22 2024 - Chung Chung <cchung@redhat.com> - 8.2.3.3-125.el9
- Rebuilt for latest kernel.
- Related: RHEL-30884
* Wed May 15 2024 - Chung Chung <cchung@redhat.com> - 8.2.3.3-124.el9
- Rebuilt for latest kernel.
- Related: RHEL-30884
* Tue May 07 2024 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-123.el9
- Add temporary patch to correct build failures.
- Related: RHEL-30884
* Mon May 06 2024 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-123.el9
- Rebuilt for latest kernel.
- Related: RHEL-30884
* Tue Apr 30 2024 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-122.el9
- Rebuilt for latest kernel.
- Related: RHEL-30884
* Mon Apr 29 2024 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-121.el9
- Rebuilt for latest kernel.
- Related: RHEL-30884
* Thu Apr 25 2024 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-120.el9
- Rebuilt for latest kernel.
- Related: RHEL-30884
* Tue Apr 23 2024 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-119.el9
- Rebuilt for latest kernel.
- Related: RHEL-30884
* Tue Apr 02 2024 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-118.el9
- Rebuilt for latest kernel.
- Related: RHEL-30884
* Wed Feb 14 2024 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-117.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Mon Feb 12 2024 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-116.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Tue Jan 23 2024 - Chung Chung <cchung@redhat.com> - 8.2.3.3-115.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Fri Jan 19 2024 - Chung Chung <cchung@redhat.com> - 8.2.3.3-114.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Thu Jan 18 2024 - Chung Chung <cchung@redhat.com> - 8.2.3.3-113.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Mon Jan 15 2024 - Chung Chung <cchung@redhat.com> - 8.2.3.3-112.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Tue Jan 09 2024 - Chung Chung <cchung@redhat.com> - 8.2.3.3-111.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Wed Jan 03 2024 - Chung Chung <cchung@redhat.com> - 8.2.3.3-110.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Tue Dec 19 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-109.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Wed Dec 06 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-108.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Tue Dec 05 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-107.el9
- Revert previous changes and add kernel-64k as a conflict.
- Resolves: RHEL-8354
* Tue Nov 28 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-106.el9
- Modify to accommodate kernel-64k packages.
- Resolves: RHEL-8354
* Mon Nov 27 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-105.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Mon Nov 20 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-104.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Mon Nov 13 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-103.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Fri Nov 03 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-102.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Thu Oct 26 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-101.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Fri Oct 20 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-100.el9
- Adapted to backported kernel changes.
- Resolves: RHEL-11975
* Tue Oct 10 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-100.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Fri Oct 06 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-99.el9
- Added temporary patch file to correct build failures regarding io-factory.c
- Related: RHEL-11426
* Fri Oct 06 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-99.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Thu Aug 24 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-98.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Mon Jul 31 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-97.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Fri Jul 21 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-96.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Tue Jul 18 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-95.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Wed Jul 12 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-94.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Wed Jul 05 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-93.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Tue Jun 27 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-92.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Tue Jun 20 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-91.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Wed Jun 14 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-90.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Mon Jun 12 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-89.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Tue May 30 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-88.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Tue May 23 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-87.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Fri May 19 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-86.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Wed May 17 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-85.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Thu May 11 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-84.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Thu May 04 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-83.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Mon May 01 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-82.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Tue Apr 25 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-81.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Fri Apr 14 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-80.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Tue Apr 11 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-79.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Mon Apr 03 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-78.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Thu Mar 30 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-77.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Mon Mar 20 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-76.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Mon Mar 13 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-75.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Mon Feb 27 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-74.el9
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Tue Feb 21 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-73.el9
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Tue Feb 14 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-72.el9
- Fixed bug in read-only rebuild when the logical size of the volume is an
exact multiple of 821 4K blocks.
- Resolves: rhbz#2166132
* Thu Feb 09 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.3-72.el9
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Wed Feb 01 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.3-71.el9
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Mon Jan 30 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.3-70.el9
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Mon Jan 23 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.3-69.el9
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Fri Jan 13 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.3-68.el9
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Fri Jan 13 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.3-67.el9
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Wed Jan 04 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.3-66.el9
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Thu Dec 22 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.3-65.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Thu Dec 15 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.3-64.el9_2
- Added a check for 0 length table line arguments.
- Resolves: rhbz#2142084
* Mon Dec 12 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.2-64.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Wed Dec 07 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.2-63.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Mon Nov 28 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.2-62.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Tue Nov 22 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.2-61.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Fri Nov 18 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.2-60.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Tue Nov 15 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.2-59.el9_2
- Adapted to backported kernel changes.
- Resolves: rhbz#2139179
* Fri Nov 11 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.0.18-59.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Wed Nov 9 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.0.18-58.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Tue Nov 8 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.0.18-57.el9_2
- Rebuilt for latest kernel.
- Related: RHELPLAN-131751
* Mon Nov 7 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.0.18-56.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Thu Nov 3 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.0.18-55.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Mon Oct 31 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.0.18-54.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Thu Oct 27 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.0.18-53.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Wed Oct 26 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.0.18-52.el9_2
- Temporarily patched to remove bdevname usage and correct build failure.
- Related: rhbz#2119820
* Wed Oct 26 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.0.18-52.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Mon Oct 17 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.0.18-51.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Wed Oct 12 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.0.18-50.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Wed Sep 28 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.0.18-49.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Fri Sep 23 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.0.18-48.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Mon Sep 19 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.0.18-47.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
- Adjust scriplets that use /var/lib to use /usr/lib for ostree environments.
- Resolves: rhbz#2105013
* Tue Sep 13 2022 - Andy Walsh <awalsh@redhat.com> - 8.2.0.18-46.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Wed Aug 24 2022 - Andy Walsh <awalsh@redhat.com> - 8.2.0.18-46
- Temporarily dropped a check that validates the logical size specified from
the table line.
- Related: rhbz#2071648
* Tue Aug 23 2022 - Andy Walsh <awalsh@redhat.com> - 8.2.0.18-45
- Fixed a race handling timeouts of dedupe requests.
- Resolves: rhbz#2115504
* Tue Aug 23 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.0.2-45
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Thu Aug 18 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.0.2-44
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Wed Aug 10 2022 - Chung Chung <cchung@redhat.com> - 8.2.0.2-43
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Wed Jul 27 2022 - Andy Walsh <awalsh@redhat.com> - 8.2.0.2-42
- Added missing lz4 libs to rebased code
- Resolves: rhbz#2071648
* Tue Jul 19 2022 - Andy Walsh <awalsh@redhat.com> - 8.2.0.2-41
- Rebased to latest upstream candidate.
- Resolves: rhbz#2071648
* Sat Jul 16 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.1.1.371-41
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Fri Jul 15 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.1.1.371-40
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Mon Jul 11 2022 - Chung Chung <cchung@redhat.com> - 8.1.1.371-39
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Tue Jul 05 2022 - Chung Chung <cchung@redhat.com> - 8.1.1.371-38
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Mon Jul 04 2022 - Chung Chung <cchung@redhat.com> - 8.1.1.371-37
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Tue Jun 28 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.1.1.371-36
- TEMPORARY FIX to correct build failures regarding bio_reset(), __bio_clone_fast(), and bio_init().
- Related: rhbz#2060486
* Tue Jun 28 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.1.1.371-36
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Sun Jun 26 2022 - Chung Chung <cchung@redhat.com> - 8.1.1.371-35
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Wed Jun 15 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.371-34
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Tue Jun 07 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.371-33
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Wed Jun 01 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.371-32
- Rebased to newer version.
- Related: rhbz#2071648
* Tue May 31 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-32
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Sat May 28 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-31
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Mon May 23 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-30
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Mon May 16 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-29
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Fri May 13 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-28
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Thu May 12 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-27
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Tue May 10 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-26
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Sat May 07 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-25
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Thu May 05 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-24
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Wed May 04 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-23
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Fri Apr 29 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-22
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Fri Apr 22 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-21
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Thu Apr 21 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-20
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Wed Apr 13 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-19
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Mon Apr 11 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-18
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Mon Mar 28 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-17
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Mon Mar 21 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-16
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Mon Feb 28 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-15
- Rebuilt for latest kernel.
- Related: rhbz#2000926
* Mon Feb 21 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-14
- Rebuilt for latest kernel.
- Related: rhbz#2000926
* Wed Feb 16 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-13
- Rebuilt for latest kernel.
- Related: rhbz#2000926
* Sat Feb 12 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-12
- Fixed a compilation issue due to changes in stdarg.h.
- Resolves: rhbz#2035003
- Modified the UDS index to handle backing store changes while suspended.
- Resolves: rhbz#2007803
- Fixed a bug which prevented the resumption of a suspended read-only vdo.
- Resolves: rhbz#2004206
* Thu Feb 03 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.287-12
- Adjusted kernel dependencies to grab the right packages.
- Resolves: rhbz#2022464
- Rebuilt for latest kernel.
- Related: rhbz#2000926
* Mon Jan 31 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.287-11
- Rebuilt for latest kernel.
- Related: rhbz#2000926
* Sun Jan 23 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.287-10
- Eliminated uses of "master" as part of the conscious language initiative.
- Resolves: rhbz#2023970
- Fixed potential use-after-free error found by Coverity.
- Resolves: rhbz#1999056
- Fixed bug which could result in empty flushes being issued to the storage
below vdo while suspended.
- Resolves: rhbz#2013057
- Added optional table line parameters for enabling or disabling
deduplication and compression.
- Resolves: rhbz#2007444
- Adapted to kernel API changes.
- Resolves: rhbz#2035003
* Thu Jan 06 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.0.316-10
- Rebuilt for latest kernel.
- Related: rhbz#2000926
- Temporarily disabled creation of sysfs nodes.
- Related: rhbz#2035003
* Sun Dec 19 2021 - Andy Walsh <awalsh@redhat.com> - 8.1.0.316-9
- Rebuilt for latest kernel.
- Related: rhbz#2000926
- Stopped using bvec_kmap_irq as it has been removed.
- Removed usage of removed elevator constants
- Resolves: rhbz#2035003
* Wed Dec 15 2021 - Andy Walsh <awalsh@redhat.com> - 8.1.0.316-8
- Rebuilt for latest kernel.
- Related: rhbz#2000926
* Tue Dec 07 2021 - Andy Walsh <awalsh@redhat.com> - 8.1.0.316-7
- Rebuilt for latest kernel.
- Related: rhbz#2000926
* Tue Dec 07 2021 - Andy Walsh <awalsh@redhat.com> - 8.1.0.316-6
- Rebuilt for latest kernel.
- Related: rhbz#2000926
* Thu Nov 11 2021 - Andy Walsh <awalsh@redhat.com> - 8.1.0.316-5
- Rebuilt for latest kernel.
- Related: rhbz#2000926
* Wed Oct 13 2021 - Andy Walsh <awalsh@redhat.com> - 8.1.0.316-4
- Rebuilt for latest kernel.
- Related: rhbz#2000926
* Thu Sep 30 2021 - Andy Walsh <awalsh@redhat.com> - 8.1.0.316-3
- Rebuilt for latest kernel.
- Related: rhbz#2000926
* Mon Aug 09 2021 - Andy Walsh <awalsh@redhat.com> - 8.1.0.316-2
- Rebased to upstream candidate.
- Resolves: rhbz#1955374
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 8.1.0.316-1.1
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Sat Aug 07 2021 - Andy Walsh <awalsh@redhat.com> - 8.1.0.316-1
- Rebased to upstream candidate.
- Resolves: rhbz#1955374
* Thu Jul 29 2021 - Andy Walsh <awalsh@redhat.com> - 8.1.0.264-1
- Rebased to upstream candidate.
- Related: rhbz#1955374
- Fixed GCC implicit-fallthrough errors when building for latest kernel
- Resolves: rhbz#1984814
* Tue May 04 2021 - Andy Walsh <awalsh@redhat.com> - 8.1.0.4-1
- Initial build for EL9
- Related: rhbz#1955374

View File

@ -0,0 +1,34 @@
From 8fb4ef85097e7b46cb3604612a49e480efd4465a Mon Sep 17 00:00:00 2001
From: Andrew Walsh <awalsh@redhat.com>
Date: Wed, 24 Aug 2022 12:00:12 -0400
Subject: [PATCH] Removed logical space check from table line.
Until the LVM tooling can be updated to use accurate sizes, this check
can't be implemented.
Signed-off-by: Andrew Walsh <awalsh@redhat.com>
---
vdo/vdo-component.c | 7 -------
1 file changed, 7 deletions(-)
diff --git a/vdo/vdo-component.c b/vdo/vdo-component.c
index ac1ac1f7..50ba438b 100644
--- a/vdo/vdo-component.c
+++ b/vdo/vdo-component.c
@@ -303,13 +303,6 @@ int vdo_validate_config(const struct vdo_config *config,
if (result != UDS_SUCCESS) {
return result;
}
-
- if (logical_block_count != config->logical_blocks) {
- uds_log_error("A logical size of %llu blocks was specified, but that differs from the %llu blocks configured in the vdo super block",
- (unsigned long long) logical_block_count,
- (unsigned long long) config->logical_blocks);
- return VDO_PARAMETER_MISMATCH;
- }
}
result = ASSERT(config->logical_blocks <= MAXIMUM_VDO_LOGICAL_BLOCKS,
--
2.37.1

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (kvdo-7c54552.tar.gz) = f931a3cf94263776a1a25caffd96e3a7084901c5d25af2ce7c19cc9e67d32b7ba18158efbf7138287937b7aa035ead5e49307b24fafcc19f6389f0f2d63eed41

1
tests/.fmf/version Normal file
View File

@ -0,0 +1 @@
1

4
tests/provision.fmf Normal file
View File

@ -0,0 +1,4 @@
---
standard-inventory-qcow2:
qemu:
m: 4G

62
tests/sanity/Makefile Normal file
View File

@ -0,0 +1,62 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Makefile of /kernel/test_beakertask/Sanity/beaker_test
# Description: Install VDO
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2018 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
export TEST=/beaker_test
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
test -x runtest.sh || chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Andy Walsh <awalsh@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: Loads VDO kernel modules" >> $(METADATA)
@echo "Type: Sanity" >> $(METADATA)
@echo "TestTime: 5m" >> $(METADATA)
@echo "RunFor: test_beakertask" >> $(METADATA)
@echo "Requires: test_beakertask" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2+" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
@echo "Releases: -RHEL4 -RHELClient5 -RHELServer5" >> $(METADATA)
rhts-lint $(METADATA)

3
tests/sanity/PURPOSE Normal file
View File

@ -0,0 +1,3 @@
PURPOSE Test the kmod-kvdo packaged drivers
Description: Load the VDO modules into the kernel.
Author: Andy Walsh <awalsh@redhat.com>

57
tests/sanity/runtest.sh Normal file
View File

@ -0,0 +1,57 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of kmod-kvdo/sanity
# Description: Checking that the kmod-kvdo kernel modules can be loaded.
# Author: Andy Walsh <awalsh@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2019 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/bin/rhts-environment.sh || exit 1
. /usr/share/beakerlib/beakerlib.sh || exit 1
rlJournalStart
rlPhaseStartSetup
# Collect information
rlLog "uname: $(uname -a)"
rlPhaseEnd
rlPhaseStartTest "Confirm kvdo module is installed"
rlRun "find /lib/modules -type f -name kvdo.ko"
rlPhaseEnd
rlPhaseStartTest "Validate module information"
rlRun "modinfo -l kvdo"
rlPhaseEnd
rlPhaseStartTest "Confirm the kvdo module can be loaded"
rlRun "modprobe kvdo"
rlRun "lsmod | grep kvdo"
rlPhaseEnd
rlPhaseStartCleanup "Unload the kvdo module"
rlRun "modprobe -r kvdo"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

62
tests/smoke/Makefile Normal file
View File

@ -0,0 +1,62 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Makefile of /kernel/test_beakertask/Sanity/beaker_test
# Description: Install VDO
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2018 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
export TEST=/beaker_test
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
test -x runtest.sh || chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Andy Walsh <awalsh@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: Installs VDO" >> $(METADATA)
@echo "Type: Sanity" >> $(METADATA)
@echo "TestTime: 5m" >> $(METADATA)
@echo "RunFor: test_beakertask" >> $(METADATA)
@echo "Requires: test_beakertask" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2+" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
@echo "Releases: -RHEL4 -RHELClient5 -RHELServer5" >> $(METADATA)
rhts-lint $(METADATA)

3
tests/smoke/PURPOSE Normal file
View File

@ -0,0 +1,3 @@
PURPOSE Test the kmod-kvdo package for basic functionality
Description: Tests the VDO software for basic functionality.
Author: Andy Walsh <awalsh@redhat.com>

170
tests/smoke/runtest.sh Normal file
View File

@ -0,0 +1,170 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of VDO smoke test
# Description: Check that VDO is able to read/write data and start/stop
# Author: Andy Walsh <awalsh@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2018 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/bin/rhts-environment.sh || exit 1
. /usr/share/beakerlib/beakerlib.sh || exit 1
function insertModuleWithDMesgOutput() {
moduleName=$1
modulePath=$(rpm -ql kmod-kvdo | grep "${1}.ko$")
exitVal=0
rlRun "dmesg -c > /dev/null"
rlRun "insmod ${modulePath}" || exitVal=255
rlRun "dmesg"
if [ ${exitVal} -ne 0 ]; then
rlDie "Exiting with failure due to module/kernel incompatibility"
fi
}
rlJournalStart
rlPhaseStartSetup "Create backing device"
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
rlRun "pushd $TmpDir"
rlRun "df ."
# If we end up with less than 15G of available space, then we can't
# create a VDO volume sufficient for testing. We should bail out as a
# result.
loopbackSize=$(($(df --sync --output=avail / | tail -1) * 1024 - 1024*1024*1024))
if [ ${loopbackSize} -lt $((1024*1024*1024*15)) ]; then
rlDie "Not enough space to create loopback device."
fi
rlRun "truncate -s ${loopbackSize} $TmpDir/loop0.bin" 0 "Laying out loopfile backing"
rlRun "losetup /dev/loop0 $TmpDir/loop0.bin" 0 "Creating loopdevice"
rlRun "mkdir -p /mnt/testmount" 0 "Creating test mountpoint dir"
rlPhaseEnd
rlPhaseStartTest "Gather Relevant Info"
# Gather some system information for debug purposes
rlRun "uname -a"
rlRun "find /lib/modules -name kvdo.ko"
rlRun "modinfo kvdo" || insertModuleWithDMesgOutput kvdo
rlPhaseEnd
rlPhaseStartTest "Generate Test Data"
# Write some data, check statistics
rlRun "dd if=/dev/urandom of=${TmpDir}/urandom_fill_file bs=1M count=100"
rlRun "ls -lh ${TmpDir}/urandom_fill_file"
rlPhaseEnd
for partition_type in "raw" "lvm"
do
case $partition_type in
"raw"*)
backing_device=/dev/loop0
;;
"lvm"*)
rlPhaseStartTest "Create LVM backing device"
rlRun "pvcreate /dev/loop0" 0 "Creating PV"
rlRun "vgcreate vdo_base /dev/loop0" 0 "Creating VG"
rlRun "lvcreate -n vdo_base -l100%FREE vdo_base" 0 "Creating LV"
rlPhaseEnd
backing_device=/dev/vdo_base/vdo_base
;;
*)
;;
esac
rlPhaseStartTest "LVM-VDO Smoke Test"
# Create the VDO volume and get the initial statistics
rlRun "pvcreate --config devices/scan_lvs=1 ${backing_device}"
rlRun "vgcreate --config devices/scan_lvs=1 vdo_data ${backing_device}"
rlRun "lvcreate --config devices/scan_lvs=1 --type vdo -L 9G -V 100G -n vdo0 vdo_data/vdopool"
# Create a filesystem and mount the device, check statistics
rlRun "mkfs.xfs -K /dev/vdo_data/vdo0" 0 "Making xfs filesystem on VDO volume"
rlRun "mount -o discard /dev/vdo_data/vdo0 /mnt/testmount" 0 "Mounting xfs filesystem on VDO volume"
rlRun "df --sync /mnt/testmount"
rlRun "vdostats vdo_data-vdopool-vpool"
# Copy the test data onto VDO volume 4 times to get some deduplication
for i in {1..4}
do
rlRun "cp ${TmpDir}/urandom_fill_file /mnt/testmount/test_file-${i}"
done
rlRun "df --sync /mnt/testmount"
rlRun "vdostats vdo_data-vdopool-vpool"
# Verify the data
for i in {1..4}
do
rlRun "cmp ${TmpDir}/urandom_fill_file /mnt/testmount/test_file-${i}"
done
# Unmount and stop the volume, check statistics
rlRun "umount /mnt/testmount" 0 "Unmounting testmount"
rlRun "vdostats vdo_data-vdopool-vpool"
rlRun "lvchange --config devices/scan_lvs=1 -an vdo_data/vdo0"
# Start the VDO volume, mount it, check statistics, verify data.
rlRun "lvchange --config devices/scan_lvs=1 -ay vdo_data/vdo0"
rlRun "mount -o discard /dev/vdo_data/vdo0 /mnt/testmount" 0 "Mounting xfs filesystem on VDO volume"
rlRun "df --sync /mnt/testmount"
rlRun "vdostats vdo_data-vdopool-vpool"
# Verify the data
for i in {1..4}
do
rlRun "cmp ${TmpDir}/urandom_fill_file /mnt/testmount/test_file-${i}"
done
rlPhaseEnd
rlPhaseStartCleanup
rlRun "umount /mnt/testmount" 0 "Unmounting testmount"
rlRun "lvremove --config devices/scan_lvs=1 -ff vdo_data/vdo0" 0 "Removing VDO volume vdo0"
case $partition_type in
"lvm"*)
rlPhaseStartCleanup
rlRun "lvremove -ff ${backing_device}" 0 "Removing LV"
rlRun "vgremove vdo_base" 0 "Removing VG"
rlRun "pvremove /dev/loop0" 0 "Removing PV"
rlPhaseEnd
;;
*)
;;
esac
rlRun "dd if=/dev/zero of=/dev/loop0 bs=1M count=10 oflag=direct" 0 "Wiping Block Device"
rlPhaseEnd
done
rlPhaseStartCleanup
rlRun "losetup -d /dev/loop0" 0 "Deleting loopdevice"
rlRun "rm -f $TmpDir/loop0.bin" 0 "Removing loopfile backing"
rlRun "popd"
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

16
tests/tests.yml Normal file
View File

@ -0,0 +1,16 @@
- hosts: localhost
tags:
- classic
roles:
- role: standard-test-beakerlib
tests:
- sanity
- smoke
required_packages:
- vdo
- device-mapper-event
- device-mapper-event-libs
- device-mapper-persistent-data
- libaio
- lvm2
- lvm2-libs