lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Tue, 6 Feb 2018 10:48:44 -0800
From:   Davidlohr Bueso <dave@...olabs.net>
To:     Laurent Dufour <ldufour@...ux.vnet.ibm.com>
Cc:     Davidlohr Bueso <dbueso@...e.de>, akpm@...ux-foundation.org,
        mingo@...nel.org, peterz@...radead.org, jack@...e.cz,
        mhocko@...nel.org, kirill.shutemov@...ux.intel.com,
        mawilcox@...rosoft.com, mgorman@...hsingularity.net,
        linux-mm@...ck.org, linux-kernel@...r.kernel.org
Subject: Re: [RFC PATCH 00/64] mm: towards parallel address space operations

On Mon, 05 Feb 2018, Laurent Dufour wrote:

>On 05/02/2018 02:26, Davidlohr Bueso wrote:
>> From: Davidlohr Bueso <dave@...olabs.net>
>>
>> Hi,
>>
>> This patchset is a new version of both the range locking machinery as well
>> as a full mmap_sem conversion that makes use of it -- as the worst case
>> scenario as all mmap_sem calls are converted to a full range mmap_lock
>> equivalent. As such, while there is no improvement of concurrency perse,
>> these changes aim at adding the machinery to permit this in the future.
>
>Despite the massive rebase, what are the changes in this series compared to
>the one I sent in last May - you silently based on, by the way :
>https://lkml.org/lkml/2017/5/24/409

Hardly, but yes I meant to reference that. It ended up being easier to just
do a from scratch version. I haven't done a comparison, but at first I thought
you missed gup users (now not so much), this patchset allows testing on more
archs (see below), we remove the trylock in vm_insert_page(), etc.

>>
>> Direct users of the mm->mmap_sem can be classified as those that (1) acquire
>> and release the lock within the same context, and (2) those who directly
>> manipulate the mmap_sem down the callchain. For example:
>>
>> (1)  down_read(&mm->mmap_sem);
>>      /* do something */
>>      /* nobody down the chain uses mmap_sem directly */
>>      up_read(&mm->mmap_sem);
>>
>> (2a)  down_read(&mm->mmap_sem);
>>       /* do something that retuns mmap_sem unlocked */
>>       fn(mm, &locked);
>>       if (locked)
>>         up_read(&mm->mmap_sem);
>>
>> (2b)  down_read(&mm->mmap_sem);
>>       /* do something that in between released and reacquired mmap_sem */
>>       fn(mm);
>>       up_read(&mm->mmap_sem);
>
>Unfortunately, there are also indirect users which rely on the mmap_sem
>locking to protect their data. For the first step using a full range this
>doesn't matter, but when refining the range, these one would be the most
>critical ones as they would have to be reworked to take the range in account.

Of course. The value I see in this patchset is that we can determine whether or
not we move forward based on the worst case scenario numbers.

>> Testing: I have setup an mmtests config file with all the workloads described:
>> http://linux-scalability.org/mmtests-config
>
>Is this link still valid, I can't reach it ?

Sorry, that should have been:

https://linux-scalability.org/range-mmap_lock/mmtests-config

Thanks,
Davidlohr

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ