All of lore.kernel.org
 help / color / mirror / Atom feed
From: Muhammad Usama Anjum <usama.anjum@collabora.com>
To: Jason Gunthorpe <jgg@ziepe.ca>
Cc: Muhammad Usama Anjum <usama.anjum@collabora.com>,
	kernel@collabora.com, iommu@lists.linux.dev,
	linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org,
	Kevin Tian <kevin.tian@intel.com>, Shuah Khan <shuah@kernel.org>
Subject: Re: [PATCH] selftests: iommu: add config needed for iommufd_fail_nth
Date: Wed, 27 Mar 2024 15:14:25 +0500	[thread overview]
Message-ID: <56cc8b9e-c1cf-4520-ba45-b1237e8b7b64@collabora.com> (raw)
In-Reply-To: <20240326150340.GE8419@ziepe.ca>

[-- Attachment #1: Type: text/plain, Size: 1246 bytes --]

On 3/26/24 8:03 PM, Jason Gunthorpe wrote:
> On Tue, Mar 26, 2024 at 06:09:34PM +0500, Muhammad Usama Anjum wrote:
>> Even after applying this config patch and following snippet (which doesn't
>> terminate the program if mmap doesn't allocate exactly as the hint), I'm
>> finding failed tests.
>>
>> @@ -1746,7 +1748,7 @@ FIXTURE_SETUP(iommufd_dirty_tracking)
>>         assert((uintptr_t)self->buffer % HUGEPAGE_SIZE == 0);
>>         vrc = mmap(self->buffer, variant->buffer_size, PROT_READ | PROT_WRITE,
>>                    mmap_flags, -1, 0);
>> -       assert(vrc == self->buffer);
>> +       assert(vrc == self->buffer);// ???
>>
>> On x86:
>> # Totals: pass:176 fail:4 xfail:0 xpass:0 skip:0 error:0
>> On ARM64:
>> # Totals: pass:166 fail:14 xfail:0 xpass:0 skip:0 error:0
>>
>> The log files are attached.
> 
> You probably don't have enough transparent huge pages available to the process
> 
>       echo 1024 > /proc/sys/vm/nr_hugepages
After making huge pages available, the iommufd test always passed on x86.
But there are still failures on arm64. I'm looking into the failures.

cat /proc/sys/vm/nr_hugepages
1024
./iommufd
...
# Totals: pass:166 fail:14 xfail:0 xpass:0 skip:0 error:0

> 
> Jason
> 

-- 
BR,
Muhammad Usama Anjum

[-- Attachment #2: iommufd_arm.log --]
[-- Type: text/x-log, Size: 34970 bytes --]

TAP version 13
1..180
# Starting 180 tests from 18 test cases.
#  RUN           iommufd.simple_close ...
#            OK  iommufd.simple_close
ok 1 iommufd.simple_close
#  RUN           iommufd.cmd_fail ...
#            OK  iommufd.cmd_fail
ok 2 iommufd.cmd_fail
#  RUN           iommufd.cmd_length ...
#            OK  iommufd.cmd_length
ok 3 iommufd.cmd_length
#  RUN           iommufd.cmd_ex_fail ...
#            OK  iommufd.cmd_ex_fail
ok 4 iommufd.cmd_ex_fail
#  RUN           iommufd.global_options ...
#            OK  iommufd.global_options
ok 5 iommufd.global_options
#  RUN           iommufd.simple_ioctls ...
#            OK  iommufd.simple_ioctls
ok 6 iommufd.simple_ioctls
#  RUN           iommufd.unmap_cmd ...
#            OK  iommufd.unmap_cmd
ok 7 iommufd.unmap_cmd
#  RUN           iommufd.map_cmd ...
#            OK  iommufd.map_cmd
ok 8 iommufd.map_cmd
#  RUN           iommufd.info_cmd ...
#            OK  iommufd.info_cmd
ok 9 iommufd.info_cmd
#  RUN           iommufd.set_iommu_cmd ...
#            OK  iommufd.set_iommu_cmd
ok 10 iommufd.set_iommu_cmd
#  RUN           iommufd.vfio_ioas ...
#            OK  iommufd.vfio_ioas
ok 11 iommufd.vfio_ioas
#  RUN           iommufd_ioas.no_domain.ioas_auto_destroy ...
#            OK  iommufd_ioas.no_domain.ioas_auto_destroy
ok 12 iommufd_ioas.no_domain.ioas_auto_destroy
#  RUN           iommufd_ioas.no_domain.ioas_destroy ...
#            OK  iommufd_ioas.no_domain.ioas_destroy
ok 13 iommufd_ioas.no_domain.ioas_destroy
#  RUN           iommufd_ioas.no_domain.alloc_hwpt_nested ...
#            OK  iommufd_ioas.no_domain.alloc_hwpt_nested
ok 14 iommufd_ioas.no_domain.alloc_hwpt_nested
#  RUN           iommufd_ioas.no_domain.hwpt_attach ...
#            OK  iommufd_ioas.no_domain.hwpt_attach
ok 15 iommufd_ioas.no_domain.hwpt_attach
#  RUN           iommufd_ioas.no_domain.ioas_area_destroy ...
#            OK  iommufd_ioas.no_domain.ioas_area_destroy
ok 16 iommufd_ioas.no_domain.ioas_area_destroy
#  RUN           iommufd_ioas.no_domain.ioas_area_auto_destroy ...
#            OK  iommufd_ioas.no_domain.ioas_area_auto_destroy
ok 17 iommufd_ioas.no_domain.ioas_area_auto_destroy
#  RUN           iommufd_ioas.no_domain.get_hw_info ...
#            OK  iommufd_ioas.no_domain.get_hw_info
ok 18 iommufd_ioas.no_domain.get_hw_info
#  RUN           iommufd_ioas.no_domain.area ...
#            OK  iommufd_ioas.no_domain.area
ok 19 iommufd_ioas.no_domain.area
#  RUN           iommufd_ioas.no_domain.unmap_fully_contained_areas ...
#            OK  iommufd_ioas.no_domain.unmap_fully_contained_areas
ok 20 iommufd_ioas.no_domain.unmap_fully_contained_areas
#  RUN           iommufd_ioas.no_domain.area_auto_iova ...
#            OK  iommufd_ioas.no_domain.area_auto_iova
ok 21 iommufd_ioas.no_domain.area_auto_iova
#  RUN           iommufd_ioas.no_domain.area_allowed ...
#            OK  iommufd_ioas.no_domain.area_allowed
ok 22 iommufd_ioas.no_domain.area_allowed
#  RUN           iommufd_ioas.no_domain.copy_area ...
#            OK  iommufd_ioas.no_domain.copy_area
ok 23 iommufd_ioas.no_domain.copy_area
#  RUN           iommufd_ioas.no_domain.iova_ranges ...
#            OK  iommufd_ioas.no_domain.iova_ranges
ok 24 iommufd_ioas.no_domain.iova_ranges
#  RUN           iommufd_ioas.no_domain.access_domain_destory ...
#            OK  iommufd_ioas.no_domain.access_domain_destory
ok 25 iommufd_ioas.no_domain.access_domain_destory
#  RUN           iommufd_ioas.no_domain.access_pin ...
#            OK  iommufd_ioas.no_domain.access_pin
ok 26 iommufd_ioas.no_domain.access_pin
#  RUN           iommufd_ioas.no_domain.access_pin_unmap ...
#            OK  iommufd_ioas.no_domain.access_pin_unmap
ok 27 iommufd_ioas.no_domain.access_pin_unmap
#  RUN           iommufd_ioas.no_domain.access_rw ...
#            OK  iommufd_ioas.no_domain.access_rw
ok 28 iommufd_ioas.no_domain.access_rw
#  RUN           iommufd_ioas.no_domain.access_rw_unaligned ...
#            OK  iommufd_ioas.no_domain.access_rw_unaligned
ok 29 iommufd_ioas.no_domain.access_rw_unaligned
#  RUN           iommufd_ioas.no_domain.fork_gone ...
#            OK  iommufd_ioas.no_domain.fork_gone
ok 30 iommufd_ioas.no_domain.fork_gone
#  RUN           iommufd_ioas.no_domain.fork_present ...
#            OK  iommufd_ioas.no_domain.fork_present
ok 31 iommufd_ioas.no_domain.fork_present
#  RUN           iommufd_ioas.no_domain.ioas_option_huge_pages ...
#            OK  iommufd_ioas.no_domain.ioas_option_huge_pages
ok 32 iommufd_ioas.no_domain.ioas_option_huge_pages
#  RUN           iommufd_ioas.no_domain.ioas_iova_alloc ...
#            OK  iommufd_ioas.no_domain.ioas_iova_alloc
ok 33 iommufd_ioas.no_domain.ioas_iova_alloc
#  RUN           iommufd_ioas.no_domain.ioas_align_change ...
#            OK  iommufd_ioas.no_domain.ioas_align_change
ok 34 iommufd_ioas.no_domain.ioas_align_change
#  RUN           iommufd_ioas.no_domain.copy_sweep ...
#            OK  iommufd_ioas.no_domain.copy_sweep
ok 35 iommufd_ioas.no_domain.copy_sweep
#  RUN           iommufd_ioas.mock_domain.ioas_auto_destroy ...
#            OK  iommufd_ioas.mock_domain.ioas_auto_destroy
ok 36 iommufd_ioas.mock_domain.ioas_auto_destroy
#  RUN           iommufd_ioas.mock_domain.ioas_destroy ...
#            OK  iommufd_ioas.mock_domain.ioas_destroy
ok 37 iommufd_ioas.mock_domain.ioas_destroy
#  RUN           iommufd_ioas.mock_domain.alloc_hwpt_nested ...
#            OK  iommufd_ioas.mock_domain.alloc_hwpt_nested
ok 38 iommufd_ioas.mock_domain.alloc_hwpt_nested
#  RUN           iommufd_ioas.mock_domain.hwpt_attach ...
#            OK  iommufd_ioas.mock_domain.hwpt_attach
ok 39 iommufd_ioas.mock_domain.hwpt_attach
#  RUN           iommufd_ioas.mock_domain.ioas_area_destroy ...
#            OK  iommufd_ioas.mock_domain.ioas_area_destroy
ok 40 iommufd_ioas.mock_domain.ioas_area_destroy
#  RUN           iommufd_ioas.mock_domain.ioas_area_auto_destroy ...
#            OK  iommufd_ioas.mock_domain.ioas_area_auto_destroy
ok 41 iommufd_ioas.mock_domain.ioas_area_auto_destroy
#  RUN           iommufd_ioas.mock_domain.get_hw_info ...
#            OK  iommufd_ioas.mock_domain.get_hw_info
ok 42 iommufd_ioas.mock_domain.get_hw_info
#  RUN           iommufd_ioas.mock_domain.area ...
#            OK  iommufd_ioas.mock_domain.area
ok 43 iommufd_ioas.mock_domain.area
#  RUN           iommufd_ioas.mock_domain.unmap_fully_contained_areas ...
#            OK  iommufd_ioas.mock_domain.unmap_fully_contained_areas
ok 44 iommufd_ioas.mock_domain.unmap_fully_contained_areas
#  RUN           iommufd_ioas.mock_domain.area_auto_iova ...
#            OK  iommufd_ioas.mock_domain.area_auto_iova
ok 45 iommufd_ioas.mock_domain.area_auto_iova
#  RUN           iommufd_ioas.mock_domain.area_allowed ...
#            OK  iommufd_ioas.mock_domain.area_allowed
ok 46 iommufd_ioas.mock_domain.area_allowed
#  RUN           iommufd_ioas.mock_domain.copy_area ...
#            OK  iommufd_ioas.mock_domain.copy_area
ok 47 iommufd_ioas.mock_domain.copy_area
#  RUN           iommufd_ioas.mock_domain.iova_ranges ...
#            OK  iommufd_ioas.mock_domain.iova_ranges
ok 48 iommufd_ioas.mock_domain.iova_ranges
#  RUN           iommufd_ioas.mock_domain.access_domain_destory ...
#            OK  iommufd_ioas.mock_domain.access_domain_destory
ok 49 iommufd_ioas.mock_domain.access_domain_destory
#  RUN           iommufd_ioas.mock_domain.access_pin ...
#            OK  iommufd_ioas.mock_domain.access_pin
ok 50 iommufd_ioas.mock_domain.access_pin
#  RUN           iommufd_ioas.mock_domain.access_pin_unmap ...
#            OK  iommufd_ioas.mock_domain.access_pin_unmap
ok 51 iommufd_ioas.mock_domain.access_pin_unmap
#  RUN           iommufd_ioas.mock_domain.access_rw ...
#            OK  iommufd_ioas.mock_domain.access_rw
ok 52 iommufd_ioas.mock_domain.access_rw
#  RUN           iommufd_ioas.mock_domain.access_rw_unaligned ...
#            OK  iommufd_ioas.mock_domain.access_rw_unaligned
ok 53 iommufd_ioas.mock_domain.access_rw_unaligned
#  RUN           iommufd_ioas.mock_domain.fork_gone ...
#            OK  iommufd_ioas.mock_domain.fork_gone
ok 54 iommufd_ioas.mock_domain.fork_gone
#  RUN           iommufd_ioas.mock_domain.fork_present ...
#            OK  iommufd_ioas.mock_domain.fork_present
ok 55 iommufd_ioas.mock_domain.fork_present
#  RUN           iommufd_ioas.mock_domain.ioas_option_huge_pages ...
#            OK  iommufd_ioas.mock_domain.ioas_option_huge_pages
ok 56 iommufd_ioas.mock_domain.ioas_option_huge_pages
#  RUN           iommufd_ioas.mock_domain.ioas_iova_alloc ...
#            OK  iommufd_ioas.mock_domain.ioas_iova_alloc
ok 57 iommufd_ioas.mock_domain.ioas_iova_alloc
#  RUN           iommufd_ioas.mock_domain.ioas_align_change ...
#            OK  iommufd_ioas.mock_domain.ioas_align_change
ok 58 iommufd_ioas.mock_domain.ioas_align_change
#  RUN           iommufd_ioas.mock_domain.copy_sweep ...
#            OK  iommufd_ioas.mock_domain.copy_sweep
ok 59 iommufd_ioas.mock_domain.copy_sweep
#  RUN           iommufd_ioas.two_mock_domain.ioas_auto_destroy ...
#            OK  iommufd_ioas.two_mock_domain.ioas_auto_destroy
ok 60 iommufd_ioas.two_mock_domain.ioas_auto_destroy
#  RUN           iommufd_ioas.two_mock_domain.ioas_destroy ...
#            OK  iommufd_ioas.two_mock_domain.ioas_destroy
ok 61 iommufd_ioas.two_mock_domain.ioas_destroy
#  RUN           iommufd_ioas.two_mock_domain.alloc_hwpt_nested ...
#            OK  iommufd_ioas.two_mock_domain.alloc_hwpt_nested
ok 62 iommufd_ioas.two_mock_domain.alloc_hwpt_nested
#  RUN           iommufd_ioas.two_mock_domain.hwpt_attach ...
#            OK  iommufd_ioas.two_mock_domain.hwpt_attach
ok 63 iommufd_ioas.two_mock_domain.hwpt_attach
#  RUN           iommufd_ioas.two_mock_domain.ioas_area_destroy ...
#            OK  iommufd_ioas.two_mock_domain.ioas_area_destroy
ok 64 iommufd_ioas.two_mock_domain.ioas_area_destroy
#  RUN           iommufd_ioas.two_mock_domain.ioas_area_auto_destroy ...
#            OK  iommufd_ioas.two_mock_domain.ioas_area_auto_destroy
ok 65 iommufd_ioas.two_mock_domain.ioas_area_auto_destroy
#  RUN           iommufd_ioas.two_mock_domain.get_hw_info ...
#            OK  iommufd_ioas.two_mock_domain.get_hw_info
ok 66 iommufd_ioas.two_mock_domain.get_hw_info
#  RUN           iommufd_ioas.two_mock_domain.area ...
#            OK  iommufd_ioas.two_mock_domain.area
ok 67 iommufd_ioas.two_mock_domain.area
#  RUN           iommufd_ioas.two_mock_domain.unmap_fully_contained_areas ...
#            OK  iommufd_ioas.two_mock_domain.unmap_fully_contained_areas
ok 68 iommufd_ioas.two_mock_domain.unmap_fully_contained_areas
#  RUN           iommufd_ioas.two_mock_domain.area_auto_iova ...
#            OK  iommufd_ioas.two_mock_domain.area_auto_iova
ok 69 iommufd_ioas.two_mock_domain.area_auto_iova
#  RUN           iommufd_ioas.two_mock_domain.area_allowed ...
#            OK  iommufd_ioas.two_mock_domain.area_allowed
ok 70 iommufd_ioas.two_mock_domain.area_allowed
#  RUN           iommufd_ioas.two_mock_domain.copy_area ...
#            OK  iommufd_ioas.two_mock_domain.copy_area
ok 71 iommufd_ioas.two_mock_domain.copy_area
#  RUN           iommufd_ioas.two_mock_domain.iova_ranges ...
#            OK  iommufd_ioas.two_mock_domain.iova_ranges
ok 72 iommufd_ioas.two_mock_domain.iova_ranges
#  RUN           iommufd_ioas.two_mock_domain.access_domain_destory ...
#            OK  iommufd_ioas.two_mock_domain.access_domain_destory
ok 73 iommufd_ioas.two_mock_domain.access_domain_destory
#  RUN           iommufd_ioas.two_mock_domain.access_pin ...
#            OK  iommufd_ioas.two_mock_domain.access_pin
ok 74 iommufd_ioas.two_mock_domain.access_pin
#  RUN           iommufd_ioas.two_mock_domain.access_pin_unmap ...
#            OK  iommufd_ioas.two_mock_domain.access_pin_unmap
ok 75 iommufd_ioas.two_mock_domain.access_pin_unmap
#  RUN           iommufd_ioas.two_mock_domain.access_rw ...
#            OK  iommufd_ioas.two_mock_domain.access_rw
ok 76 iommufd_ioas.two_mock_domain.access_rw
#  RUN           iommufd_ioas.two_mock_domain.access_rw_unaligned ...
#            OK  iommufd_ioas.two_mock_domain.access_rw_unaligned
ok 77 iommufd_ioas.two_mock_domain.access_rw_unaligned
#  RUN           iommufd_ioas.two_mock_domain.fork_gone ...
#            OK  iommufd_ioas.two_mock_domain.fork_gone
ok 78 iommufd_ioas.two_mock_domain.fork_gone
#  RUN           iommufd_ioas.two_mock_domain.fork_present ...
#            OK  iommufd_ioas.two_mock_domain.fork_present
ok 79 iommufd_ioas.two_mock_domain.fork_present
#  RUN           iommufd_ioas.two_mock_domain.ioas_option_huge_pages ...
#            OK  iommufd_ioas.two_mock_domain.ioas_option_huge_pages
ok 80 iommufd_ioas.two_mock_domain.ioas_option_huge_pages
#  RUN           iommufd_ioas.two_mock_domain.ioas_iova_alloc ...
#            OK  iommufd_ioas.two_mock_domain.ioas_iova_alloc
ok 81 iommufd_ioas.two_mock_domain.ioas_iova_alloc
#  RUN           iommufd_ioas.two_mock_domain.ioas_align_change ...
#            OK  iommufd_ioas.two_mock_domain.ioas_align_change
ok 82 iommufd_ioas.two_mock_domain.ioas_align_change
#  RUN           iommufd_ioas.two_mock_domain.copy_sweep ...
#            OK  iommufd_ioas.two_mock_domain.copy_sweep
ok 83 iommufd_ioas.two_mock_domain.copy_sweep
#  RUN           iommufd_ioas.mock_domain_limit.ioas_auto_destroy ...
#            OK  iommufd_ioas.mock_domain_limit.ioas_auto_destroy
ok 84 iommufd_ioas.mock_domain_limit.ioas_auto_destroy
#  RUN           iommufd_ioas.mock_domain_limit.ioas_destroy ...
#            OK  iommufd_ioas.mock_domain_limit.ioas_destroy
ok 85 iommufd_ioas.mock_domain_limit.ioas_destroy
#  RUN           iommufd_ioas.mock_domain_limit.alloc_hwpt_nested ...
#            OK  iommufd_ioas.mock_domain_limit.alloc_hwpt_nested
ok 86 iommufd_ioas.mock_domain_limit.alloc_hwpt_nested
#  RUN           iommufd_ioas.mock_domain_limit.hwpt_attach ...
#            OK  iommufd_ioas.mock_domain_limit.hwpt_attach
ok 87 iommufd_ioas.mock_domain_limit.hwpt_attach
#  RUN           iommufd_ioas.mock_domain_limit.ioas_area_destroy ...
#            OK  iommufd_ioas.mock_domain_limit.ioas_area_destroy
ok 88 iommufd_ioas.mock_domain_limit.ioas_area_destroy
#  RUN           iommufd_ioas.mock_domain_limit.ioas_area_auto_destroy ...
#            OK  iommufd_ioas.mock_domain_limit.ioas_area_auto_destroy
ok 89 iommufd_ioas.mock_domain_limit.ioas_area_auto_destroy
#  RUN           iommufd_ioas.mock_domain_limit.get_hw_info ...
#            OK  iommufd_ioas.mock_domain_limit.get_hw_info
ok 90 iommufd_ioas.mock_domain_limit.get_hw_info
#  RUN           iommufd_ioas.mock_domain_limit.area ...
#            OK  iommufd_ioas.mock_domain_limit.area
ok 91 iommufd_ioas.mock_domain_limit.area
#  RUN           iommufd_ioas.mock_domain_limit.unmap_fully_contained_areas ...
#            OK  iommufd_ioas.mock_domain_limit.unmap_fully_contained_areas
ok 92 iommufd_ioas.mock_domain_limit.unmap_fully_contained_areas
#  RUN           iommufd_ioas.mock_domain_limit.area_auto_iova ...
#            OK  iommufd_ioas.mock_domain_limit.area_auto_iova
ok 93 iommufd_ioas.mock_domain_limit.area_auto_iova
#  RUN           iommufd_ioas.mock_domain_limit.area_allowed ...
#            OK  iommufd_ioas.mock_domain_limit.area_allowed
ok 94 iommufd_ioas.mock_domain_limit.area_allowed
#  RUN           iommufd_ioas.mock_domain_limit.copy_area ...
#            OK  iommufd_ioas.mock_domain_limit.copy_area
ok 95 iommufd_ioas.mock_domain_limit.copy_area
#  RUN           iommufd_ioas.mock_domain_limit.iova_ranges ...
#            OK  iommufd_ioas.mock_domain_limit.iova_ranges
ok 96 iommufd_ioas.mock_domain_limit.iova_ranges
#  RUN           iommufd_ioas.mock_domain_limit.access_domain_destory ...
#            OK  iommufd_ioas.mock_domain_limit.access_domain_destory
ok 97 iommufd_ioas.mock_domain_limit.access_domain_destory
#  RUN           iommufd_ioas.mock_domain_limit.access_pin ...
#            OK  iommufd_ioas.mock_domain_limit.access_pin
ok 98 iommufd_ioas.mock_domain_limit.access_pin
#  RUN           iommufd_ioas.mock_domain_limit.access_pin_unmap ...
#            OK  iommufd_ioas.mock_domain_limit.access_pin_unmap
ok 99 iommufd_ioas.mock_domain_limit.access_pin_unmap
#  RUN           iommufd_ioas.mock_domain_limit.access_rw ...
#            OK  iommufd_ioas.mock_domain_limit.access_rw
ok 100 iommufd_ioas.mock_domain_limit.access_rw
#  RUN           iommufd_ioas.mock_domain_limit.access_rw_unaligned ...
#            OK  iommufd_ioas.mock_domain_limit.access_rw_unaligned
ok 101 iommufd_ioas.mock_domain_limit.access_rw_unaligned
#  RUN           iommufd_ioas.mock_domain_limit.fork_gone ...
#            OK  iommufd_ioas.mock_domain_limit.fork_gone
ok 102 iommufd_ioas.mock_domain_limit.fork_gone
#  RUN           iommufd_ioas.mock_domain_limit.fork_present ...
#            OK  iommufd_ioas.mock_domain_limit.fork_present
ok 103 iommufd_ioas.mock_domain_limit.fork_present
#  RUN           iommufd_ioas.mock_domain_limit.ioas_option_huge_pages ...
#            OK  iommufd_ioas.mock_domain_limit.ioas_option_huge_pages
ok 104 iommufd_ioas.mock_domain_limit.ioas_option_huge_pages
#  RUN           iommufd_ioas.mock_domain_limit.ioas_iova_alloc ...
#            OK  iommufd_ioas.mock_domain_limit.ioas_iova_alloc
ok 105 iommufd_ioas.mock_domain_limit.ioas_iova_alloc
#  RUN           iommufd_ioas.mock_domain_limit.ioas_align_change ...
#            OK  iommufd_ioas.mock_domain_limit.ioas_align_change
ok 106 iommufd_ioas.mock_domain_limit.ioas_align_change
#  RUN           iommufd_ioas.mock_domain_limit.copy_sweep ...
#            OK  iommufd_ioas.mock_domain_limit.copy_sweep
ok 107 iommufd_ioas.mock_domain_limit.copy_sweep
#  RUN           iommufd_mock_domain.one_domain.basic ...
#            OK  iommufd_mock_domain.one_domain.basic
ok 108 iommufd_mock_domain.one_domain.basic
#  RUN           iommufd_mock_domain.one_domain.ro_unshare ...
#            OK  iommufd_mock_domain.one_domain.ro_unshare
ok 109 iommufd_mock_domain.one_domain.ro_unshare
#  RUN           iommufd_mock_domain.one_domain.all_aligns ...
#            OK  iommufd_mock_domain.one_domain.all_aligns
ok 110 iommufd_mock_domain.one_domain.all_aligns
#  RUN           iommufd_mock_domain.one_domain.all_aligns_copy ...
#            OK  iommufd_mock_domain.one_domain.all_aligns_copy
ok 111 iommufd_mock_domain.one_domain.all_aligns_copy
#  RUN           iommufd_mock_domain.one_domain.user_copy ...
#            OK  iommufd_mock_domain.one_domain.user_copy
ok 112 iommufd_mock_domain.one_domain.user_copy
#  RUN           iommufd_mock_domain.one_domain.replace ...
#            OK  iommufd_mock_domain.one_domain.replace
ok 113 iommufd_mock_domain.one_domain.replace
#  RUN           iommufd_mock_domain.one_domain.alloc_hwpt ...
#            OK  iommufd_mock_domain.one_domain.alloc_hwpt
ok 114 iommufd_mock_domain.one_domain.alloc_hwpt
#  RUN           iommufd_mock_domain.two_domains.basic ...
#            OK  iommufd_mock_domain.two_domains.basic
ok 115 iommufd_mock_domain.two_domains.basic
#  RUN           iommufd_mock_domain.two_domains.ro_unshare ...
#            OK  iommufd_mock_domain.two_domains.ro_unshare
ok 116 iommufd_mock_domain.two_domains.ro_unshare
#  RUN           iommufd_mock_domain.two_domains.all_aligns ...
#            OK  iommufd_mock_domain.two_domains.all_aligns
ok 117 iommufd_mock_domain.two_domains.all_aligns
#  RUN           iommufd_mock_domain.two_domains.all_aligns_copy ...
#            OK  iommufd_mock_domain.two_domains.all_aligns_copy
ok 118 iommufd_mock_domain.two_domains.all_aligns_copy
#  RUN           iommufd_mock_domain.two_domains.user_copy ...
#            OK  iommufd_mock_domain.two_domains.user_copy
ok 119 iommufd_mock_domain.two_domains.user_copy
#  RUN           iommufd_mock_domain.two_domains.replace ...
#            OK  iommufd_mock_domain.two_domains.replace
ok 120 iommufd_mock_domain.two_domains.replace
#  RUN           iommufd_mock_domain.two_domains.alloc_hwpt ...
#            OK  iommufd_mock_domain.two_domains.alloc_hwpt
ok 121 iommufd_mock_domain.two_domains.alloc_hwpt
#  RUN           iommufd_mock_domain.one_domain_hugepage.basic ...
#            OK  iommufd_mock_domain.one_domain_hugepage.basic
ok 122 iommufd_mock_domain.one_domain_hugepage.basic
#  RUN           iommufd_mock_domain.one_domain_hugepage.ro_unshare ...
#            OK  iommufd_mock_domain.one_domain_hugepage.ro_unshare
ok 123 iommufd_mock_domain.one_domain_hugepage.ro_unshare
#  RUN           iommufd_mock_domain.one_domain_hugepage.all_aligns ...
#            OK  iommufd_mock_domain.one_domain_hugepage.all_aligns
ok 124 iommufd_mock_domain.one_domain_hugepage.all_aligns
#  RUN           iommufd_mock_domain.one_domain_hugepage.all_aligns_copy ...
#            OK  iommufd_mock_domain.one_domain_hugepage.all_aligns_copy
ok 125 iommufd_mock_domain.one_domain_hugepage.all_aligns_copy
#  RUN           iommufd_mock_domain.one_domain_hugepage.user_copy ...
#            OK  iommufd_mock_domain.one_domain_hugepage.user_copy
ok 126 iommufd_mock_domain.one_domain_hugepage.user_copy
#  RUN           iommufd_mock_domain.one_domain_hugepage.replace ...
#            OK  iommufd_mock_domain.one_domain_hugepage.replace
ok 127 iommufd_mock_domain.one_domain_hugepage.replace
#  RUN           iommufd_mock_domain.one_domain_hugepage.alloc_hwpt ...
#            OK  iommufd_mock_domain.one_domain_hugepage.alloc_hwpt
ok 128 iommufd_mock_domain.one_domain_hugepage.alloc_hwpt
#  RUN           iommufd_mock_domain.two_domains_hugepage.basic ...
#            OK  iommufd_mock_domain.two_domains_hugepage.basic
ok 129 iommufd_mock_domain.two_domains_hugepage.basic
#  RUN           iommufd_mock_domain.two_domains_hugepage.ro_unshare ...
#            OK  iommufd_mock_domain.two_domains_hugepage.ro_unshare
ok 130 iommufd_mock_domain.two_domains_hugepage.ro_unshare
#  RUN           iommufd_mock_domain.two_domains_hugepage.all_aligns ...
#            OK  iommufd_mock_domain.two_domains_hugepage.all_aligns
ok 131 iommufd_mock_domain.two_domains_hugepage.all_aligns
#  RUN           iommufd_mock_domain.two_domains_hugepage.all_aligns_copy ...
#            OK  iommufd_mock_domain.two_domains_hugepage.all_aligns_copy
ok 132 iommufd_mock_domain.two_domains_hugepage.all_aligns_copy
#  RUN           iommufd_mock_domain.two_domains_hugepage.user_copy ...
#            OK  iommufd_mock_domain.two_domains_hugepage.user_copy
ok 133 iommufd_mock_domain.two_domains_hugepage.user_copy
#  RUN           iommufd_mock_domain.two_domains_hugepage.replace ...
#            OK  iommufd_mock_domain.two_domains_hugepage.replace
ok 134 iommufd_mock_domain.two_domains_hugepage.replace
#  RUN           iommufd_mock_domain.two_domains_hugepage.alloc_hwpt ...
#            OK  iommufd_mock_domain.two_domains_hugepage.alloc_hwpt
ok 135 iommufd_mock_domain.two_domains_hugepage.alloc_hwpt
#  RUN           iommufd_dirty_tracking.domain_dirty128k.enforce_dirty ...
#            OK  iommufd_dirty_tracking.domain_dirty128k.enforce_dirty
ok 136 iommufd_dirty_tracking.domain_dirty128k.enforce_dirty
#  RUN           iommufd_dirty_tracking.domain_dirty128k.set_dirty_tracking ...
#            OK  iommufd_dirty_tracking.domain_dirty128k.set_dirty_tracking
ok 137 iommufd_dirty_tracking.domain_dirty128k.set_dirty_tracking
#  RUN           iommufd_dirty_tracking.domain_dirty128k.device_dirty_capability ...
#            OK  iommufd_dirty_tracking.domain_dirty128k.device_dirty_capability
ok 138 iommufd_dirty_tracking.domain_dirty128k.device_dirty_capability
#  RUN           iommufd_dirty_tracking.domain_dirty128k.get_dirty_bitmap ...
# iommufd_utils.h:374:get_dirty_bitmap:Expected j < npte (1) == test_bit(i + j, (unsigned long *)bitmap) (0)
# get_dirty_bitmap: Test terminated by assertion
#          FAIL  iommufd_dirty_tracking.domain_dirty128k.get_dirty_bitmap
not ok 139 iommufd_dirty_tracking.domain_dirty128k.get_dirty_bitmap
#  RUN           iommufd_dirty_tracking.domain_dirty128k.get_dirty_bitmap_no_clear ...
# iommufd_utils.h:374:get_dirty_bitmap_no_clear:Expected j < npte (1) == test_bit(i + j, (unsigned long *)bitmap) (0)
# get_dirty_bitmap_no_clear: Test terminated by assertion
#          FAIL  iommufd_dirty_tracking.domain_dirty128k.get_dirty_bitmap_no_clear
not ok 140 iommufd_dirty_tracking.domain_dirty128k.get_dirty_bitmap_no_clear
#  RUN           iommufd_dirty_tracking.domain_dirty256k.enforce_dirty ...
#            OK  iommufd_dirty_tracking.domain_dirty256k.enforce_dirty
ok 141 iommufd_dirty_tracking.domain_dirty256k.enforce_dirty
#  RUN           iommufd_dirty_tracking.domain_dirty256k.set_dirty_tracking ...
#            OK  iommufd_dirty_tracking.domain_dirty256k.set_dirty_tracking
ok 142 iommufd_dirty_tracking.domain_dirty256k.set_dirty_tracking
#  RUN           iommufd_dirty_tracking.domain_dirty256k.device_dirty_capability ...
#            OK  iommufd_dirty_tracking.domain_dirty256k.device_dirty_capability
ok 143 iommufd_dirty_tracking.domain_dirty256k.device_dirty_capability
#  RUN           iommufd_dirty_tracking.domain_dirty256k.get_dirty_bitmap ...
# iommufd_utils.h:374:get_dirty_bitmap:Expected j < npte (1) == test_bit(i + j, (unsigned long *)bitmap) (0)
# get_dirty_bitmap: Test terminated by assertion
#          FAIL  iommufd_dirty_tracking.domain_dirty256k.get_dirty_bitmap
not ok 144 iommufd_dirty_tracking.domain_dirty256k.get_dirty_bitmap
#  RUN           iommufd_dirty_tracking.domain_dirty256k.get_dirty_bitmap_no_clear ...
# iommufd_utils.h:374:get_dirty_bitmap_no_clear:Expected j < npte (1) == test_bit(i + j, (unsigned long *)bitmap) (0)
# get_dirty_bitmap_no_clear: Test terminated by assertion
#          FAIL  iommufd_dirty_tracking.domain_dirty256k.get_dirty_bitmap_no_clear
not ok 145 iommufd_dirty_tracking.domain_dirty256k.get_dirty_bitmap_no_clear
#  RUN           iommufd_dirty_tracking.domain_dirty640k.enforce_dirty ...
#            OK  iommufd_dirty_tracking.domain_dirty640k.enforce_dirty
ok 146 iommufd_dirty_tracking.domain_dirty640k.enforce_dirty
#  RUN           iommufd_dirty_tracking.domain_dirty640k.set_dirty_tracking ...
#            OK  iommufd_dirty_tracking.domain_dirty640k.set_dirty_tracking
ok 147 iommufd_dirty_tracking.domain_dirty640k.set_dirty_tracking
#  RUN           iommufd_dirty_tracking.domain_dirty640k.device_dirty_capability ...
#            OK  iommufd_dirty_tracking.domain_dirty640k.device_dirty_capability
ok 148 iommufd_dirty_tracking.domain_dirty640k.device_dirty_capability
#  RUN           iommufd_dirty_tracking.domain_dirty640k.get_dirty_bitmap ...
# iommufd_utils.h:374:get_dirty_bitmap:Expected j < npte (1) == test_bit(i + j, (unsigned long *)bitmap) (0)
# get_dirty_bitmap: Test terminated by assertion
#          FAIL  iommufd_dirty_tracking.domain_dirty640k.get_dirty_bitmap
not ok 149 iommufd_dirty_tracking.domain_dirty640k.get_dirty_bitmap
#  RUN           iommufd_dirty_tracking.domain_dirty640k.get_dirty_bitmap_no_clear ...
# iommufd_utils.h:374:get_dirty_bitmap_no_clear:Expected j < npte (1) == test_bit(i + j, (unsigned long *)bitmap) (0)
# get_dirty_bitmap_no_clear: Test terminated by assertion
#          FAIL  iommufd_dirty_tracking.domain_dirty640k.get_dirty_bitmap_no_clear
not ok 150 iommufd_dirty_tracking.domain_dirty640k.get_dirty_bitmap_no_clear
#  RUN           iommufd_dirty_tracking.domain_dirty128M.enforce_dirty ...
#            OK  iommufd_dirty_tracking.domain_dirty128M.enforce_dirty
ok 151 iommufd_dirty_tracking.domain_dirty128M.enforce_dirty
#  RUN           iommufd_dirty_tracking.domain_dirty128M.set_dirty_tracking ...
#            OK  iommufd_dirty_tracking.domain_dirty128M.set_dirty_tracking
ok 152 iommufd_dirty_tracking.domain_dirty128M.set_dirty_tracking
#  RUN           iommufd_dirty_tracking.domain_dirty128M.device_dirty_capability ...
#            OK  iommufd_dirty_tracking.domain_dirty128M.device_dirty_capability
ok 153 iommufd_dirty_tracking.domain_dirty128M.device_dirty_capability
#  RUN           iommufd_dirty_tracking.domain_dirty128M.get_dirty_bitmap ...
# iommufd_utils.h:374:get_dirty_bitmap:Expected j < npte (1) == test_bit(i + j, (unsigned long *)bitmap) (0)
# get_dirty_bitmap: Test terminated by assertion
#          FAIL  iommufd_dirty_tracking.domain_dirty128M.get_dirty_bitmap
not ok 154 iommufd_dirty_tracking.domain_dirty128M.get_dirty_bitmap
#  RUN           iommufd_dirty_tracking.domain_dirty128M.get_dirty_bitmap_no_clear ...
# iommufd_utils.h:374:get_dirty_bitmap_no_clear:Expected j < npte (1) == test_bit(i + j, (unsigned long *)bitmap) (0)
# get_dirty_bitmap_no_clear: Test terminated by assertion
#          FAIL  iommufd_dirty_tracking.domain_dirty128M.get_dirty_bitmap_no_clear
not ok 155 iommufd_dirty_tracking.domain_dirty128M.get_dirty_bitmap_no_clear
#  RUN           iommufd_dirty_tracking.domain_dirty128M_huge.enforce_dirty ...
#            OK  iommufd_dirty_tracking.domain_dirty128M_huge.enforce_dirty
ok 156 iommufd_dirty_tracking.domain_dirty128M_huge.enforce_dirty
#  RUN           iommufd_dirty_tracking.domain_dirty128M_huge.set_dirty_tracking ...
#            OK  iommufd_dirty_tracking.domain_dirty128M_huge.set_dirty_tracking
ok 157 iommufd_dirty_tracking.domain_dirty128M_huge.set_dirty_tracking
#  RUN           iommufd_dirty_tracking.domain_dirty128M_huge.device_dirty_capability ...
#            OK  iommufd_dirty_tracking.domain_dirty128M_huge.device_dirty_capability
ok 158 iommufd_dirty_tracking.domain_dirty128M_huge.device_dirty_capability
#  RUN           iommufd_dirty_tracking.domain_dirty128M_huge.get_dirty_bitmap ...
# iommufd_utils.h:374:get_dirty_bitmap:Expected j < npte (1) == test_bit(i + j, (unsigned long *)bitmap) (0)
# get_dirty_bitmap: Test terminated by assertion
#          FAIL  iommufd_dirty_tracking.domain_dirty128M_huge.get_dirty_bitmap
not ok 159 iommufd_dirty_tracking.domain_dirty128M_huge.get_dirty_bitmap
#  RUN           iommufd_dirty_tracking.domain_dirty128M_huge.get_dirty_bitmap_no_clear ...
# iommufd_utils.h:374:get_dirty_bitmap_no_clear:Expected j < npte (1) == test_bit(i + j, (unsigned long *)bitmap) (0)
# get_dirty_bitmap_no_clear: Test terminated by assertion
#          FAIL  iommufd_dirty_tracking.domain_dirty128M_huge.get_dirty_bitmap_no_clear
not ok 160 iommufd_dirty_tracking.domain_dirty128M_huge.get_dirty_bitmap_no_clear
#  RUN           iommufd_dirty_tracking.domain_dirty256M.enforce_dirty ...
#            OK  iommufd_dirty_tracking.domain_dirty256M.enforce_dirty
ok 161 iommufd_dirty_tracking.domain_dirty256M.enforce_dirty
#  RUN           iommufd_dirty_tracking.domain_dirty256M.set_dirty_tracking ...
#            OK  iommufd_dirty_tracking.domain_dirty256M.set_dirty_tracking
ok 162 iommufd_dirty_tracking.domain_dirty256M.set_dirty_tracking
#  RUN           iommufd_dirty_tracking.domain_dirty256M.device_dirty_capability ...
#            OK  iommufd_dirty_tracking.domain_dirty256M.device_dirty_capability
ok 163 iommufd_dirty_tracking.domain_dirty256M.device_dirty_capability
#  RUN           iommufd_dirty_tracking.domain_dirty256M.get_dirty_bitmap ...
# iommufd_utils.h:374:get_dirty_bitmap:Expected j < npte (1) == test_bit(i + j, (unsigned long *)bitmap) (0)
# get_dirty_bitmap: Test terminated by assertion
#          FAIL  iommufd_dirty_tracking.domain_dirty256M.get_dirty_bitmap
not ok 164 iommufd_dirty_tracking.domain_dirty256M.get_dirty_bitmap
#  RUN           iommufd_dirty_tracking.domain_dirty256M.get_dirty_bitmap_no_clear ...
# iommufd_utils.h:374:get_dirty_bitmap_no_clear:Expected j < npte (1) == test_bit(i + j, (unsigned long *)bitmap) (0)
# get_dirty_bitmap_no_clear: Test terminated by assertion
#          FAIL  iommufd_dirty_tracking.domain_dirty256M.get_dirty_bitmap_no_clear
not ok 165 iommufd_dirty_tracking.domain_dirty256M.get_dirty_bitmap_no_clear
#  RUN           iommufd_dirty_tracking.domain_dirty256M_huge.enforce_dirty ...
#            OK  iommufd_dirty_tracking.domain_dirty256M_huge.enforce_dirty
ok 166 iommufd_dirty_tracking.domain_dirty256M_huge.enforce_dirty
#  RUN           iommufd_dirty_tracking.domain_dirty256M_huge.set_dirty_tracking ...
#            OK  iommufd_dirty_tracking.domain_dirty256M_huge.set_dirty_tracking
ok 167 iommufd_dirty_tracking.domain_dirty256M_huge.set_dirty_tracking
#  RUN           iommufd_dirty_tracking.domain_dirty256M_huge.device_dirty_capability ...
#            OK  iommufd_dirty_tracking.domain_dirty256M_huge.device_dirty_capability
ok 168 iommufd_dirty_tracking.domain_dirty256M_huge.device_dirty_capability
#  RUN           iommufd_dirty_tracking.domain_dirty256M_huge.get_dirty_bitmap ...
# iommufd_utils.h:374:get_dirty_bitmap:Expected j < npte (1) == test_bit(i + j, (unsigned long *)bitmap) (0)
# get_dirty_bitmap: Test terminated by assertion
#          FAIL  iommufd_dirty_tracking.domain_dirty256M_huge.get_dirty_bitmap
not ok 169 iommufd_dirty_tracking.domain_dirty256M_huge.get_dirty_bitmap
#  RUN           iommufd_dirty_tracking.domain_dirty256M_huge.get_dirty_bitmap_no_clear ...
# iommufd_utils.h:374:get_dirty_bitmap_no_clear:Expected j < npte (1) == test_bit(i + j, (unsigned long *)bitmap) (0)
# get_dirty_bitmap_no_clear: Test terminated by assertion
#          FAIL  iommufd_dirty_tracking.domain_dirty256M_huge.get_dirty_bitmap_no_clear
not ok 170 iommufd_dirty_tracking.domain_dirty256M_huge.get_dirty_bitmap_no_clear
#  RUN           vfio_compat_mock_domain.Ver1v2.simple_close ...
#            OK  vfio_compat_mock_domain.Ver1v2.simple_close
ok 171 vfio_compat_mock_domain.Ver1v2.simple_close
#  RUN           vfio_compat_mock_domain.Ver1v2.option_huge_pages ...
#            OK  vfio_compat_mock_domain.Ver1v2.option_huge_pages
ok 172 vfio_compat_mock_domain.Ver1v2.option_huge_pages
#  RUN           vfio_compat_mock_domain.Ver1v2.get_info ...
#            OK  vfio_compat_mock_domain.Ver1v2.get_info
ok 173 vfio_compat_mock_domain.Ver1v2.get_info
#  RUN           vfio_compat_mock_domain.Ver1v2.map ...
#            OK  vfio_compat_mock_domain.Ver1v2.map
ok 174 vfio_compat_mock_domain.Ver1v2.map
#  RUN           vfio_compat_mock_domain.Ver1v2.huge_map ...
#            OK  vfio_compat_mock_domain.Ver1v2.huge_map
ok 175 vfio_compat_mock_domain.Ver1v2.huge_map
#  RUN           vfio_compat_mock_domain.Ver1v0.simple_close ...
#            OK  vfio_compat_mock_domain.Ver1v0.simple_close
ok 176 vfio_compat_mock_domain.Ver1v0.simple_close
#  RUN           vfio_compat_mock_domain.Ver1v0.option_huge_pages ...
#            OK  vfio_compat_mock_domain.Ver1v0.option_huge_pages
ok 177 vfio_compat_mock_domain.Ver1v0.option_huge_pages
#  RUN           vfio_compat_mock_domain.Ver1v0.get_info ...
#            OK  vfio_compat_mock_domain.Ver1v0.get_info
ok 178 vfio_compat_mock_domain.Ver1v0.get_info
#  RUN           vfio_compat_mock_domain.Ver1v0.map ...
#            OK  vfio_compat_mock_domain.Ver1v0.map
ok 179 vfio_compat_mock_domain.Ver1v0.map
#  RUN           vfio_compat_mock_domain.Ver1v0.huge_map ...
#            OK  vfio_compat_mock_domain.Ver1v0.huge_map
ok 180 vfio_compat_mock_domain.Ver1v0.huge_map
# FAILED: 166 / 180 tests passed.
# Totals: pass:166 fail:14 xfail:0 xpass:0 skip:0 error:0

  reply	other threads:[~2024-03-27 10:14 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-25  9:00 [PATCH] selftests: iommu: add config needed for iommufd_fail_nth Muhammad Usama Anjum
2024-03-25  9:11 ` Muhammad Usama Anjum
2024-04-05  0:10   ` Jason Gunthorpe
2024-04-14 14:39     ` Muhammad Usama Anjum
2024-04-15 16:09       ` Jason Gunthorpe
2024-03-26 13:09 ` Muhammad Usama Anjum
2024-03-26 15:03   ` Jason Gunthorpe
2024-03-27 10:14     ` Muhammad Usama Anjum [this message]
2024-03-27 11:49       ` Jason Gunthorpe
2024-03-27 14:59         ` Joao Martins
2024-03-27 17:49           ` Muhammad Usama Anjum
2024-03-27 18:09             ` Joao Martins
2024-03-27 18:17               ` Muhammad Usama Anjum
2024-03-27 18:33                 ` Joao Martins
2024-03-27 18:20               ` Jason Gunthorpe
2024-03-27 18:34                 ` Joao Martins
2024-03-27 20:13                 ` Muhammad Usama Anjum
2024-04-04 11:48                   ` Muhammad Usama Anjum

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56cc8b9e-c1cf-4520-ba45-b1237e8b7b64@collabora.com \
    --to=usama.anjum@collabora.com \
    --cc=iommu@lists.linux.dev \
    --cc=jgg@ziepe.ca \
    --cc=kernel@collabora.com \
    --cc=kevin.tian@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=shuah@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.