NAK/cmnt: [ACT][PATCH 2/3] UBUNTU: SAUCE: ubuntu_ltp_syscalls: import pending LTP patches for several failures

Krzysztof Kozlowski krzysztof.kozlowski at canonical.com
Wed Jul 7 07:15:13 UTC 2021


On 07/07/2021 08:08, Po-Hsu Lin wrote:
> On Wed, Jun 30, 2021 at 7:38 PM Krzysztof Kozlowski
> <krzysztof.kozlowski at canonical.com> wrote:
>>
>> On 30/06/2021 13:27, Po-Hsu Lin wrote:
>>>
>>> On Mon, Jun 28, 2021 at 3:52 PM Krzysztof Kozlowski <krzysztof.kozlowski at canonical.com> wrote:
>>>>
>>>> Few patches to upstream LTP project are pending for longer time (2-3
>>>> weeks).  Either the discussion is on-going (and not necessarily going
>>>> anywhere like in case of controllers/memcg patches) or they are ignored.
>>>>
>>>> These patches fix real test issues, so apply them here.  The patchset
>>>> contains fixes for ubuntu_ltp and ubuntu_ltp_syscalls, because it is
>>>> easier to keep one set.
>>>>
>>>> Move the existing syscalls "UBUNTU: SAUCE: skip fanotify09 test #2 for
>>>> older kernels" to same folder and share it with ubuntu_ltp to keep
>>>> out-of-tree patches consistent.
>>>>
>>>> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski at canonical.com>
>>>> ---
>>>>  ...p-fanotify09-test-2-for-older-kernel.patch |  0
>>>>  ubuntu_ltp/ubuntu_ltp.py                      |  2 ++
>>>>  ubuntu_ltp_syscalls/patches                   |  1 +
>>>>  ubuntu_ltp_syscalls/ubuntu_ltp_syscalls.py    | 34 +++++++++++++++++++
>>>>  4 files changed, 37 insertions(+)
>>>>  rename {ubuntu_ltp_syscalls => ubuntu_ltp/patches}/0001-skip-fanotify09-test-2-for-older-kernel.patch (100%)
>>>>  create mode 120000 ubuntu_ltp_syscalls/patches
>>>>
>>>> diff --git a/ubuntu_ltp_syscalls/0001-skip-fanotify09-test-2-for-older-kernel.patch b/ubuntu_ltp/patches/0001-skip-fanotify09-test-2-for-older-kernel.patch
>>>> similarity index 100%
>>>> rename from ubuntu_ltp_syscalls/0001-skip-fanotify09-test-2-for-older-kernel.patch
>>>> rename to ubuntu_ltp/patches/0001-skip-fanotify09-test-2-for-older-kernel.patch
>>>> diff --git a/ubuntu_ltp/ubuntu_ltp.py b/ubuntu_ltp/ubuntu_ltp.py
>>>> index 3b89d21d2c92..9d0f96d4730c 100644
>>>> --- a/ubuntu_ltp/ubuntu_ltp.py
>>>> +++ b/ubuntu_ltp/ubuntu_ltp.py
>>>> @@ -13,6 +13,8 @@ class ubuntu_ltp(test.test):
>>>>      version = 1
>>>>      patches = [
>>>>          # Each element is also a list of patch title (user printable) and relative path to patch from bindir
>>>> +        ['UBUNTU: SAUCE: skip fanotify09 test #2 for older kernels',
>>>> +         'patches/0001-skip-fanotify09-test-2-for-older-kernel.patch'],
>>>>          ['controllers/cpuacct: skip cpuacct_100_100 on small memory systems',
>>>>           'patches/0001-controllers-cpuacct-skip-cpuacct_100_100-on-small-me.patch'],
>>>>          ['include/tst_pid.h: fix language typo (subtraction)',
>>>> diff --git a/ubuntu_ltp_syscalls/patches b/ubuntu_ltp_syscalls/patches
>>>> new file mode 120000
>>>> index 000000000000..bd31461cfab9
>>>> --- /dev/null
>>>> +++ b/ubuntu_ltp_syscalls/patches
>>>> @@ -0,0 +1 @@
>>>> +../ubuntu_ltp/patches
>>>> \ No newline at end of file
>>>> diff --git a/ubuntu_ltp_syscalls/ubuntu_ltp_syscalls.py b/ubuntu_ltp_syscalls/ubuntu_ltp_syscalls.py
>>>> index b6b09246393b..1f8bbfee46d0 100644
>>>> --- a/ubuntu_ltp_syscalls/ubuntu_ltp_syscalls.py
>>>> +++ b/ubuntu_ltp_syscalls/ubuntu_ltp_syscalls.py
>>>> @@ -22,6 +22,35 @@ except Exception, e:
>>>>
>>>>  class ubuntu_ltp_syscalls(test.test):
>>>>      version = 1
>>>> +    patches = [
>>>> +        # Each element is also a list of patch title (user printable) and relative path to patch from bindir
>>>> +        ['UBUNTU: SAUCE: skip fanotify09 test #2 for older kernels',
>>>> +         'patches/0001-skip-fanotify09-test-2-for-older-kernel.patch'],
>>>> +        ['controllers/cpuacct: skip cpuacct_100_100 on small memory systems',
>>>> +         'patches/0001-controllers-cpuacct-skip-cpuacct_100_100-on-small-me.patch'],
>>>> +        ['include/tst_pid.h: fix language typo (subtraction)',
>>>> +         'patches/0002-include-tst_pid.h-fix-language-typo-subtraction.patch'],
>>>> +        ['syscalls/msgstress04: fix fork failure on small memory systems',
>>>> +         'patches/0003-syscalls-msgstress04-fix-fork-failure-on-small-memor.patch'],
>>>> +        ['syscalls/msgstress03: fix fork failure on small memory systems',
>>>> +         'patches/0004-syscalls-msgstress03-fix-fork-failure-on-small-memor.patch'],
>>>> +        ['syscalls/msgstress: tune limit of processes for small machines',
>>>> +         'patches/0005-syscalls-msgstress-tune-limit-of-processes-for-small.patch'],
>>>> +        ['patches/device-drivers/cpufreq_boost: skip test on virtual machines',
>>>> +         'patches/0006-device-drivers-cpufreq_boost-skip-test-on-virtual-ma.patch'],
>>>> +        ['lib: memutils: don\'t pollute entire system memory to avoid OoM',
>>>> +         'patches/0007-lib-memutils-don-t-pollute-entire-system-memory-to-a.patch'],
>>>> +        ['controllers/memcg: accept range of max_usage_in_bytes/memcg: accept range of max_usage_in_bytes',
>>>> +         'patches/0008-controllers-memcg-accept-range-of-max_usage_in_bytes.patch'],
>>>> +        ['controllers/memcg: accept range of usage_in_bytes',
>>>> +         'patches/0009-controllers-memcg-accept-range-of-usage_in_bytes.patch'],
>>>> +        ['controllers/memcg: accept non-zero max_usage_in_bytes after reset',
>>>> +          'patches/0010-controllers-memcg-accept-non-zero-max_usage_in_bytes.patch'],
>>>> +        ['controllers/memcg: increase memory limit in subgroup charge',
>>>> +         'patches/0011-controllers-memcg-increase-memory-limit-in-subgroup-.patch'],
>>>> +        ['tpci: accept ENOMEM resource failure with virtio-pci',
>>>> +         'patches/0012-tpci-accept-ENOMEM-resource-failure-with-virtio-pci.patch'],
>>>> +    ]
>>>>
>>>>      def install_required_pkgs(self):
>>>>          arch = platform.processor()
>>>> @@ -42,6 +71,7 @@ class ubuntu_ltp_syscalls(test.test):
>>>>              'libselinux1-dev',
>>>>              'libssl-dev',
>>>>              'libtirpc-dev',
>>>> +            'patchutils',
>>>>              'pkg-config',
>>>>              'quota',
>>>>              'virt-what',
>>>> @@ -97,6 +127,10 @@ class ubuntu_ltp_syscalls(test.test):
>>>>          print("Patching fanotify09 for older kernels...")
>>>>          utils.system('patch -N -p1 < %s/0001-skip-fanotify09-test-2-for-older-kernel.patch' % self.bindir)
>>>>
>>> Hi Krzysztof,
>>>
>>> code below will conflict with the existing patch command above.
>>
>> I thought I removed it... my bad.
>>
>>>
>>> Also, there is another tricky part is that we kinda "freeze" the LTP
>>> repo for ESM releases like trusty (b938c86be UBUNTU: SAUCE:
>>> ubuntu_ltp_syscalls: use a fixed SHA1 for ESM releases) since they're
>>> not going to receive any other non-CVE related patches. By doing so
>>> it can help us to narrow down failing cases that we need to fix on
>>> these ESM releases, otherwise we can alway expect to see newer test
>>> cases failing on them.
>>> (And we might need to do this for Xenial as well.)
>>
>> How about then mirroring the LTP repo and having dedicated (obvious)
>> branches for xenial and current testing? Rebasing patches would be also
>> much easier. Usually rebase and cherry-pick can work around significant
>> hunk differences. Manual patching - cannot.
> 
> Hi Krzysztof,
> after discussing this with Francis, we decided to:
>   1. Host a mirror LTP repo from upstream
>   2. Apply our SAUCE patch on top of it
>   3. Use a script to do automatic pull and rebase periodically
>   4. Change the SHA1 printing code in ubuntu_ltp* to print the first
> SHA1 that is not a SAUCE patch
>   5. We will keep an extra branch for ESM series, to help us filter
> out know (and won't fix) issues.
> 
> Thoughts?
> 
> We will update the repo location in ubuntu_ltp* once it's ready.
> Thanks

Great! Let me know when I can refresh the patches (I have updates for
the memcg limits) or optionally you can take them directly from:
https://github.com/krzk/ltp
branch: canonical-set


Best regards,
Krzysztof



More information about the kernel-team mailing list