From: David Vrabel <david.vrabel@citrix.com>
To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
David Vrabel <david.vrabel@citrix.com>
Cc: xen-devel@lists.xenproject.org,
Boris Ostrovsky <boris.ostrovsky@oracle.com>
Subject: Re: [PATCHv4 10/14] xen/gntdev: convert priv->lock to a mutex
Date: Tue, 27 Jan 2015 10:00:36 +0000 [thread overview]
Message-ID: <54C761C4.1070700@citrix.com> (raw)
In-Reply-To: <alpine.DEB.2.02.1501262101070.9702@kaball.uk.xensource.com>
On 26/01/15 21:07, Stefano Stabellini wrote:
> On Mon, 26 Jan 2015, David Vrabel wrote:
>> On 26/01/15 18:57, Stefano Stabellini wrote:
>>>
>>>> @@ -443,14 +443,14 @@ static void mn_invl_range_start(struct mmu_notifier *mn,
>>>> struct gntdev_priv *priv = container_of(mn, struct gntdev_priv, mn);
>>>> struct grant_map *map;
>>>>
>>>> - spin_lock(&priv->lock);
>>>> + mutex_lock(&priv->lock);
>>>> list_for_each_entry(map, &priv->maps, next) {
>>>> unmap_if_in_range(map, start, end);
>>>> }
>>>> list_for_each_entry(map, &priv->freeable_maps, next) {
>>>> unmap_if_in_range(map, start, end);
>>>> }
>>>> - spin_unlock(&priv->lock);
>>>> + mutex_unlock(&priv->lock);
>>>> }
>>>
>>> I don't think that mmu_notifier callbacks are allowed to sleep:
>>>
>>> https://lkml.org/lkml/2010/1/25/187
>>
>> I don't think that limitation exists any more. SRCU is used and you can
>> sleep between tlb_gather_mmu()/tlb_finish_mmu().
>>
>> Perhaps you could point to something that isn't 5 years old?
>
> Point taken.
>
> However the problem is that I couldn't find anything that points in the
> other direction either. If you look at include/linux/mmu_notifier.h, it
> doesn't state that the callbacks can sleep, except for:
>
> * The invalidate_range() function is called under the ptl
> * spin-lock and not allowed to sleep.
>
> Therefore maybe we can assume that the others are allowed to sleep,
> because there are no comments about it?
1. DEBUG_ATOMIC_SLEEP didn't trigger.
2. The documentation doesn't exclude sleeping (unlike for other ops).
3. Looking at the code I see nothing that would prevent sleeping and
plenty of changes to actually allow this.
4. Other drivers (e.g., the i915 driver) sleep.
David
next prev parent reply other threads:[~2015-01-27 10:00 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-26 17:01 [PATCHv4 00/14] xen: fix many long-standing grant mapping bugs David Vrabel
2015-01-26 17:01 ` [PATCHv4 01/14] mm: provide a find_special_page vma operation David Vrabel
2015-01-26 17:01 ` [PATCHv4 02/14] mm: add 'foreign' alias for the 'pinned' page flag David Vrabel
2015-01-26 17:01 ` [PATCHv4 03/14] xen/grant-table: pre-populate kernel unmap ops for xen_gnttab_unmap_refs() David Vrabel
2015-01-26 18:31 ` Stefano Stabellini
2015-01-27 11:55 ` David Vrabel
2015-01-26 17:01 ` [PATCHv4 04/14] xen: remove scratch frames for ballooned pages and m2p override David Vrabel
2015-01-27 10:57 ` Stefano Stabellini
2015-01-27 11:00 ` David Vrabel
2015-01-27 11:10 ` Stefano Stabellini
2015-01-27 11:14 ` David Vrabel
2015-01-27 11:17 ` Stefano Stabellini
2015-01-26 17:01 ` [PATCHv4 05/14] x86/xen: require ballooned pages for grant maps David Vrabel
2015-01-27 11:08 ` Stefano Stabellini
2015-01-26 17:01 ` [PATCHv4 06/14] xen/grant-table: add helpers for allocating pages David Vrabel
2015-01-27 11:13 ` Stefano Stabellini
2015-01-26 17:01 ` [PATCHv4 07/14] xen: mark grant mapped pages as foreign David Vrabel
2015-01-27 11:32 ` Stefano Stabellini
2015-01-26 17:01 ` [PATCHv4 08/14] xen-netback: use foreign page information from the pages themselves David Vrabel
2015-01-26 17:01 ` [PATCHv4 09/14] xen/grant-table: add a mechanism to safely unmap pages that are in use David Vrabel
2015-01-26 19:14 ` Stefano Stabellini
2015-01-26 17:01 ` [PATCHv4 10/14] xen/gntdev: convert priv->lock to a mutex David Vrabel
2015-01-26 18:57 ` Stefano Stabellini
2015-01-26 19:17 ` David Vrabel
2015-01-26 21:07 ` Stefano Stabellini
2015-01-27 10:00 ` David Vrabel [this message]
2015-01-27 10:20 ` Stefano Stabellini
2015-01-26 17:01 ` [PATCHv4 11/14] xen/gntdev: safely unmap grants in case they are still in use David Vrabel
2015-01-27 11:37 ` Stefano Stabellini
2015-01-26 17:01 ` [PATCHv4 12/14] xen-blkback: " David Vrabel
2015-01-26 19:21 ` Roger Pau Monné
2015-01-27 11:34 ` Stefano Stabellini
2015-01-26 17:01 ` [PATCHv4 13/14] xen/gntdev: mark userspace PTEs as special on x86 PV guests David Vrabel
2015-01-27 11:42 ` Stefano Stabellini
2015-01-26 17:01 ` [PATCHv4 14/14] xen/gntdev: provide find_special_page VMA operation David Vrabel
2015-01-27 11:45 ` Stefano Stabellini
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=54C761C4.1070700@citrix.com \
--to=david.vrabel@citrix.com \
--cc=boris.ostrovsky@oracle.com \
--cc=stefano.stabellini@eu.citrix.com \
--cc=xen-devel@lists.xenproject.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.