All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joao Martins <joao.m.martins@oracle.com>
To: Muhammad Usama Anjum <usama.anjum@collabora.com>,
	Jason Gunthorpe <jgg@ziepe.ca>,
	Nicolin Chen <nicolinc@nvidia.com>
Cc: 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 18:33:15 +0000	[thread overview]
Message-ID: <2cb86abd-1c28-4916-8763-9f4e6863bf94@oracle.com> (raw)
In-Reply-To: <b05610de-f102-46d2-abe2-4e9ecbcd42eb@collabora.com>

On 27/03/2024 18:17, Muhammad Usama Anjum wrote:
> On 3/27/24 11:09 PM, Joao Martins wrote:
>> On 27/03/2024 17:49, Muhammad Usama Anjum wrote:
>>> On 3/27/24 7:59 PM, Joao Martins wrote:
>>>> On 27/03/2024 11:49, Jason Gunthorpe wrote:
>>>>> On Wed, Mar 27, 2024 at 03:14:25PM +0500, Muhammad Usama Anjum wrote:
>>>>>> 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.
>>>>>
>>>>> Oh that is really strange. Joao? Nicolin?
>>>>>
>>>> Definitely strange, I'll have a look.
>>>>
>>>> So it set the expected number of dirty bits as that assert doesn't fail, but it
>>>> is failing when we check that even bits are set but not odd ones. Like it's
>>>> hasn't set those bits.
>>>>
>>>> For mock tests there should be no difference between x86 and ARM assuming the
>>>> typical 4K page-size. Maybe this is 64k base pages in ARM? That's the only thing
>>>> that I can think of that affected mock domain.
>>> The config is attached. The defaults are being used i.e., 4k page.
>>
>> Looks like CONFIG_IOMMUFD_DRIVER is not defined :(
> I'll retest with this config and update the patch to include it in the
> config fragment needed for this test. Once we add all required config
> options in config fragment, the test should never fail. Somehow this gets
> included in the x86, but not on ARM.

The option is automatically selected by an user of iova_bitmap_set(). x86 has
AMD and Intel IOMMUs which use it and auto selected (ARM64 doesn't yet, but soon
to be a reality). Some vfio drivers get it auto-selected it as well.

But I forgot to do the same thing for iommufd-test kconfig in commit a9af47e382a
("iommufd/selftest: Test IOMMU_HWPT_GET_DIRTY_BITMAP") where mock domain also
uses iova_bitmap_set(). So your patch is likely not the right place to set
CONFIG_IOMMUFD_DRIVER=y.

See Jason's snip on auto-selecting if IOMMUFD_TEST is set.

  reply	other threads:[~2024-03-27 18:33 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
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 [this message]
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=2cb86abd-1c28-4916-8763-9f4e6863bf94@oracle.com \
    --to=joao.m.martins@oracle.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=nicolinc@nvidia.com \
    --cc=shuah@kernel.org \
    --cc=usama.anjum@collabora.com \
    /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.