From: Jason Gunthorpe <jgg@ziepe.ca>
To: Jerome Glisse <jglisse@redhat.com>
Cc: "Leon Romanovsky" <leon@kernel.org>,
"Kenneth Lee" <liguozhu@hisilicon.com>,
"Tim Sell" <timothy.sell@unisys.com>,
linux-doc@vger.kernel.org,
"Alexander Shishkin" <alexander.shishkin@linux.intel.com>,
"Zaibo Xu" <xuzaibo@huawei.com>,
zhangfei.gao@foxmail.com, linuxarm@huawei.com,
haojian.zhuang@linaro.org, "Christoph Lameter" <cl@linux.com>,
"Hao Fang" <fanghao11@huawei.com>,
"Gavin Schenk" <g.schenk@eckelmann.de>,
"RDMA mailing list" <linux-rdma@vger.kernel.org>,
"Zhou Wang" <wangzhou1@hisilicon.com>,
"Doug Ledford" <dledford@redhat.com>,
"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
"David Kershner" <david.kershner@unisys.com>,
"Kenneth Lee" <nek.in.cn@gmail.com>,
"Johan Hovold" <johan@kernel.org>,
"Cyrille Pitchen" <cyrille.pitchen@free-electrons.com>,
"Sagar Dharia" <sdharia@codeaurora.org>,
"Jens Axboe" <axboe@kernel.dk>,
guodong.xu@linaro.org, linux-netdev <netdev@vger.kernel.org>,
"Randy Dunlap" <rdunlap@infradead.org>,
linux-kernel@vger.kernel.org, "Vinod Koul" <vkoul@kernel.org>,
linux-crypto@vger.kernel.org,
"Philippe Ombredanne" <pombredanne@nexb.com>,
"Sanyog Kale" <sanyog.r.kale@intel.com>,
"David S. Miller" <davem@davemloft.net>,
linux-accelerators@lists.ozlabs.org
Subject: Re: [RFCv3 PATCH 1/6] uacce: Add documents for WarpDrive/uacce
Date: Mon, 19 Nov 2018 11:27:52 -0700 [thread overview]
Message-ID: <20181119182752.GA4890@ziepe.ca> (raw)
In-Reply-To: <20181119164853.GA4593@redhat.com>
On Mon, Nov 19, 2018 at 11:48:54AM -0500, Jerome Glisse wrote:
> Just to comment on this, any infiniband driver which use umem and do
> not have ODP (here ODP for me means listening to mmu notifier so all
> infiniband driver except mlx5) will be affected by same issue AFAICT.
>
> AFAICT there is no special thing happening after fork() inside any of
> those driver. So if parent create a umem mr before fork() and program
> hardware with it then after fork() the parent might start using new
> page for the umem range while the old memory is use by the child. The
> reverse is also true (parent using old memory and child new memory)
> bottom line you can not predict which memory the child or the parent
> will use for the range after fork().
>
> So no matter what you consider the child or the parent, what the hw
> will use for the mr is unlikely to match what the CPU use for the
> same virtual address. In other word:
>
> Before fork:
> CPU parent: virtual addr ptr1 -> physical address = 0xCAFE
> HARDWARE: virtual addr ptr1 -> physical address = 0xCAFE
>
> Case 1:
> CPU parent: virtual addr ptr1 -> physical address = 0xCAFE
> CPU child: virtual addr ptr1 -> physical address = 0xDEAD
> HARDWARE: virtual addr ptr1 -> physical address = 0xCAFE
>
> Case 2:
> CPU parent: virtual addr ptr1 -> physical address = 0xBEEF
> CPU child: virtual addr ptr1 -> physical address = 0xCAFE
> HARDWARE: virtual addr ptr1 -> physical address = 0xCAFE
IIRC this is solved in IB by automatically calling
madvise(MADV_DONTFORK) before creating the MR.
MADV_DONTFORK
.. This is useful to prevent copy-on-write semantics from changing the
physical location of a page if the parent writes to it after a
fork(2) ..
Jason
next prev parent reply other threads:[~2018-11-19 18:27 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-12 7:58 [RFCv3 PATCH 0/6] A General Accelerator Framework, WarpDrive Kenneth Lee
2018-11-12 7:58 ` [RFCv3 PATCH 1/6] uacce: Add documents for WarpDrive/uacce Kenneth Lee
2018-11-13 0:23 ` Leon Romanovsky
2018-11-14 2:58 ` Kenneth Lee
2018-11-14 16:00 ` Leon Romanovsky
2018-11-15 8:51 ` Kenneth Lee
2018-11-15 14:54 ` Leon Romanovsky
2018-11-19 9:14 ` Kenneth Lee
2018-11-19 9:19 ` Kenneth Lee
2018-11-19 10:48 ` Leon Romanovsky
2018-11-19 16:48 ` Jerome Glisse
2018-11-19 18:27 ` Jason Gunthorpe [this message]
2018-11-19 18:42 ` Jerome Glisse
2018-11-19 18:53 ` Jason Gunthorpe
2018-11-19 19:17 ` Jerome Glisse
2018-11-19 19:27 ` Jason Gunthorpe
2018-11-19 19:46 ` Jerome Glisse
2018-11-19 20:11 ` Jason Gunthorpe
2018-11-19 20:26 ` Jerome Glisse
2018-11-19 21:26 ` Jason Gunthorpe
2018-11-19 21:33 ` Jerome Glisse
2018-11-19 21:41 ` Jason Gunthorpe
2018-11-19 19:02 ` Leon Romanovsky
2018-11-19 19:19 ` Christopher Lameter
2018-11-19 19:25 ` Jerome Glisse
2018-11-20 2:30 ` Kenneth Lee
2018-11-27 2:52 ` Kenneth Lee
2018-11-19 18:49 ` Jason Gunthorpe
2018-11-20 3:07 ` Kenneth Lee
2018-11-20 3:29 ` Jason Gunthorpe
2018-11-20 9:16 ` Jonathan Cameron
2018-11-20 12:19 ` Jean-Philippe Brucker
2018-11-21 6:08 ` Kenneth Lee
2018-11-22 2:58 ` Jason Gunthorpe
2018-11-23 8:02 ` Kenneth Lee
2018-11-23 18:05 ` Jason Gunthorpe
2018-11-24 4:13 ` Kenneth Lee
2018-11-20 5:17 ` Leon Romanovsky
2018-11-21 3:02 ` Kenneth Lee
2018-11-12 7:58 ` [RFCv3 PATCH 2/6] uacce: add uacce module Kenneth Lee
2018-11-12 7:58 ` [RFCv3 PATCH 3/6] crypto/hisilicon: add hisilicon Queue Manager driver Kenneth Lee
2018-11-12 7:58 ` [RFCv3 PATCH 4/6] crypto/hisilicon: add Hisilicon zip driver Kenneth Lee
2018-11-12 7:58 ` [RFCv3 PATCH 5/6] crypto: add uacce support to Hisilicon qm Kenneth Lee
2018-11-12 7:58 ` [RFCv3 PATCH 6/6] uacce: add user sample for uacce/warpdrive Kenneth Lee
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=20181119182752.GA4890@ziepe.ca \
--to=jgg@ziepe.ca \
--cc=alexander.shishkin@linux.intel.com \
--cc=axboe@kernel.dk \
--cc=cl@linux.com \
--cc=cyrille.pitchen@free-electrons.com \
--cc=davem@davemloft.net \
--cc=david.kershner@unisys.com \
--cc=dledford@redhat.com \
--cc=fanghao11@huawei.com \
--cc=g.schenk@eckelmann.de \
--cc=guodong.xu@linaro.org \
--cc=haojian.zhuang@linaro.org \
--cc=jglisse@redhat.com \
--cc=johan@kernel.org \
--cc=leon@kernel.org \
--cc=liguozhu@hisilicon.com \
--cc=linux-accelerators@lists.ozlabs.org \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=linuxarm@huawei.com \
--cc=nek.in.cn@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=pombredanne@nexb.com \
--cc=rdunlap@infradead.org \
--cc=sanyog.r.kale@intel.com \
--cc=sdharia@codeaurora.org \
--cc=timothy.sell@unisys.com \
--cc=u.kleine-koenig@pengutronix.de \
--cc=vkoul@kernel.org \
--cc=wangzhou1@hisilicon.com \
--cc=xuzaibo@huawei.com \
--cc=zhangfei.gao@foxmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).