From: Joerg Roedel <joro@8bytes.org>
To: Qian Cai <cai@lca.pw>
Cc: iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org
Subject: Re: [RFC PATCH] iommu/amd: fix a race in fetch_pte()
Date: Sat, 18 Apr 2020 14:10:22 +0200 [thread overview]
Message-ID: <20200418121022.GA6113@8bytes.org> (raw)
In-Reply-To: <4FAF3A63-8DC8-4489-B5FE-95B716EF25AE@lca.pw>
On Thu, Apr 16, 2020 at 09:42:41PM -0400, Qian Cai wrote:
> So, this is still not enough that would still trigger storage driver offline under
> memory pressure for a bit longer. It looks to me that in fetch_pte() there are
> could still racy?
Yes, your patch still looks racy. You need to atomically read
domain->pt_root to a stack variable and derive the pt_root pointer and
the mode from that variable instead of domain->pt_root directly. If you
read the domain->pt_root twice there could still be an update between
the two reads.
Probably the lock in increase_address_space() can also be avoided if
pt_root is updated using cmpxchg()?
Regards,
Joerg
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu
WARNING: multiple messages have this Message-ID (diff)
From: Joerg Roedel <joro@8bytes.org>
To: Qian Cai <cai@lca.pw>
Cc: iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org
Subject: Re: [RFC PATCH] iommu/amd: fix a race in fetch_pte()
Date: Sat, 18 Apr 2020 14:10:22 +0200 [thread overview]
Message-ID: <20200418121022.GA6113@8bytes.org> (raw)
In-Reply-To: <4FAF3A63-8DC8-4489-B5FE-95B716EF25AE@lca.pw>
On Thu, Apr 16, 2020 at 09:42:41PM -0400, Qian Cai wrote:
> So, this is still not enough that would still trigger storage driver offline under
> memory pressure for a bit longer. It looks to me that in fetch_pte() there are
> could still racy?
Yes, your patch still looks racy. You need to atomically read
domain->pt_root to a stack variable and derive the pt_root pointer and
the mode from that variable instead of domain->pt_root directly. If you
read the domain->pt_root twice there could still be an update between
the two reads.
Probably the lock in increase_address_space() can also be avoided if
pt_root is updated using cmpxchg()?
Regards,
Joerg
next prev parent reply other threads:[~2020-04-18 12:10 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-07 2:12 [RFC PATCH] iommu/amd: fix a race in fetch_pte() Qian Cai
2020-04-07 2:12 ` Qian Cai
2020-04-07 15:36 ` Qian Cai
2020-04-07 15:36 ` Qian Cai
2020-04-08 14:19 ` Joerg Roedel
2020-04-08 14:19 ` Joerg Roedel
2020-04-14 1:36 ` Qian Cai
2020-04-14 1:36 ` Qian Cai
2020-04-17 1:42 ` Qian Cai
2020-04-17 1:42 ` Qian Cai
2020-04-18 12:10 ` Joerg Roedel [this message]
2020-04-18 12:10 ` Joerg Roedel
2020-04-18 13:01 ` Qian Cai
2020-04-18 13:01 ` Qian Cai
2020-04-18 18:34 ` Joerg Roedel
2020-04-18 18:34 ` Joerg Roedel
2020-04-20 2:07 ` Qian Cai
2020-04-20 2:07 ` Qian Cai
2020-04-20 13:26 ` Qian Cai
2020-04-20 13:26 ` Qian Cai
2020-04-29 8:47 ` Joerg Roedel
2020-04-29 8:47 ` Joerg Roedel
2020-04-29 11:20 ` Joerg Roedel
2020-04-29 11:20 ` Joerg Roedel
2020-04-30 1:04 ` Qian Cai
2020-04-30 1:04 ` Qian Cai
2020-05-03 13:04 ` Qian Cai
2020-05-03 13:04 ` Qian Cai
2020-05-03 18:39 ` Joerg Roedel
2020-05-03 18:39 ` Joerg Roedel
2020-05-03 19:12 ` Qian Cai
2020-05-03 19:12 ` Qian Cai
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=20200418121022.GA6113@8bytes.org \
--to=joro@8bytes.org \
--cc=cai@lca.pw \
--cc=iommu@lists.linux-foundation.org \
--cc=linux-kernel@vger.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.