From: Sasha Levin <sashal@kernel.org>
To: Thomas Backlund <tmb@mageia.org>
Cc: linux-kernel@vger.kernel.org, stable@vger.kernel.org,
Jani Nikula <jani.nikula@intel.com>,
intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org
Subject: Re: [PATCH AUTOSEL 5.2 13/23] drm/i915/userptr: Acquire the page lock around set_page_dirty()
Date: Thu, 12 Sep 2019 18:50:43 -0400 [thread overview]
Message-ID: <20190912225043.GE1546@sasha-vm> (raw)
In-Reply-To: <36993214-6ce7-260f-68c7-6fbb0630143f@mageia.org>
On Thu, Sep 12, 2019 at 11:51:33PM +0300, Thomas Backlund wrote:
>Den 03-09-2019 kl. 19:24, skrev Sasha Levin:
>>From: Chris Wilson <chris@chris-wilson.co.uk>
>>
>>[ Upstream commit aa56a292ce623734ddd30f52d73f527d1f3529b5 ]
>>
>>set_page_dirty says:
>>
>> For pages with a mapping this should be done under the page lock
>> for the benefit of asynchronous memory errors who prefer a
>> consistent dirty state. This rule can be broken in some special
>> cases, but should be better not to.
>>
>>Under those rules, it is only safe for us to use the plain set_page_dirty
>>calls for shmemfs/anonymous memory. Userptr may be used with real
>>mappings and so needs to use the locked version (set_page_dirty_lock).
>>
>>Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=203317
>>Fixes: 5cc9ed4b9a7a ("drm/i915: Introduce mapping of user pages into video memory (userptr) ioctl")
>>References: 6dcc693bc57f ("ext4: warn when page is dirtied without buffers")
>>Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
>>Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>Cc: stable@vger.kernel.org
>>Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>Link: https://patchwork.freedesktop.org/patch/msgid/20190708140327.26825-1-chris@chris-wilson.co.uk
>>(cherry picked from commit cb6d7c7dc7ff8cace666ddec66334117a6068ce2)
>>Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>>Signed-off-by: Sasha Levin <sashal@kernel.org>
>>---
>> drivers/gpu/drm/i915/i915_gem_userptr.c | 10 +++++++++-
>> 1 file changed, 9 insertions(+), 1 deletion(-)
>>
>>diff --git a/drivers/gpu/drm/i915/i915_gem_userptr.c b/drivers/gpu/drm/i915/i915_gem_userptr.c
>>index 8079ea3af1039..b1fc15c7f5997 100644
>>--- a/drivers/gpu/drm/i915/i915_gem_userptr.c
>>+++ b/drivers/gpu/drm/i915/i915_gem_userptr.c
>>@@ -678,7 +678,15 @@ i915_gem_userptr_put_pages(struct drm_i915_gem_object *obj,
>> for_each_sgt_page(page, sgt_iter, pages) {
>> if (obj->mm.dirty)
>>- set_page_dirty(page);
>>+ /*
>>+ * As this may not be anonymous memory (e.g. shmem)
>>+ * but exist on a real mapping, we have to lock
>>+ * the page in order to dirty it -- holding
>>+ * the page reference is not sufficient to
>>+ * prevent the inode from being truncated.
>>+ * Play safe and take the lock.
>>+ */
>>+ set_page_dirty_lock(page);
>> mark_page_accessed(page);
>> put_page(page);
>>
>
>
>Please drop this one from all 5.2 and 4.19 stable queues
>
>It has now been reverted in Linus tree:
>https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=505a8ec7e11ae5236c4a154a1e24ef49a8349600
Now dropped, thank you.
--
Thanks,
Sasha
next prev parent reply other threads:[~2019-09-12 22:50 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-03 16:24 [PATCH AUTOSEL 5.2 01/23] bcache: only clear BTREE_NODE_dirty bit when it is set Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 5.2 02/23] bcache: add comments for mutex_lock(&b->write_lock) Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 5.2 03/23] bcache: fix race in btree_flush_write() Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 5.2 04/23] iwlwifi: add new cards for 22000 and fix struct name Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 5.2 05/23] iwlwifi: add new cards for 22000 and change wrong structs Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 5.2 06/23] iwlwifi: add new cards for 9000 and 20000 series Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 5.2 07/23] iwlwifi: change 0x02F0 fw from qu to quz Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 5.2 08/23] iwlwifi: pcie: add support for qu c-step devices Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 5.2 09/23] IB/rdmavt: Add new completion inline Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 5.2 10/23] IB/{rdmavt, qib, hfi1}: Convert to new completion API Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 5.2 11/23] IB/hfi1: Unreserve a flushed OPFN request Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 5.2 12/23] drm/i915: Disable SAMPLER_STATE prefetching on all Gen11 steppings Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 5.2 13/23] drm/i915/userptr: Acquire the page lock around set_page_dirty() Sasha Levin
2019-09-12 20:51 ` Thomas Backlund
2019-09-12 22:50 ` Sasha Levin [this message]
2019-09-03 16:24 ` [PATCH AUTOSEL 5.2 14/23] drm/i915: Make sure cdclk is high enough for DP audio on VLV/CHV Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 5.2 15/23] mmc: sdhci-sprd: Fix the incorrect soft reset operation when runtime resuming Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 5.2 16/23] usb: chipidea: imx: add imx7ulp support Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 5.2 17/23] usb: chipidea: imx: fix EPROBE_DEFER support during driver probe Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 5.2 18/23] virtio/s390: fix race on airq_areas[] Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 5.2 19/23] drm/i915: Support flags in whitlist WAs Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 5.2 20/23] drm/i915: Support whitelist workarounds on all engines Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 5.2 21/23] drm/i915: whitelist PS_(DEPTH|INVOCATION)_COUNT Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 5.2 22/23] drm/i915: Add whitelist workarounds for ICL Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 5.2 23/23] drm/i915/icl: whitelist PS_(DEPTH|INVOCATION)_COUNT Sasha Levin
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=20190912225043.GE1546@sasha-vm \
--to=sashal@kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jani.nikula@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=stable@vger.kernel.org \
--cc=tmb@mageia.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox