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 for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Tue, 25 Sep 2018 00:22:47 +0300
From:   "Kirill A. Shutemov" <kirill@...temov.name>
To:     Yury Norov <ynorov@...iumnetworks.com>
Cc:     Andrew Morton <akpm@...ux-foundation.org>,
        Al Viro <viro@...iv.linux.org.uk>,
        Dan Williams <dan.j.williams@...el.com>,
        Huang Ying <ying.huang@...el.com>,
        "Michael S . Tsirkin" <mst@...hat.com>,
        Michel Lespinasse <walken@...gle.com>,
        Souptick Joarder <jrdr.linux@...il.com>,
        Willy Tarreau <w@....eu>, linux-kernel@...r.kernel.org,
        linux-mm@...ck.org
Subject: Re: [PATCH] mm: fix COW faults after mlock()

On Mon, Sep 24, 2018 at 04:08:52PM +0300, Yury Norov wrote:
> After mlock() on newly mmap()ed shared memory I observe page faults.
> 
> The problem is that populate_vma_page_range() doesn't set FOLL_WRITE
> flag for writable shared memory in mlock() path, arguing that like:
> /*
>  * We want to touch writable mappings with a write fault in order
>  * to break COW, except for shared mappings because these don't COW
>  * and we would not want to dirty them for nothing.
>  */
> 
> But they are actually COWed. The most straightforward way to avoid it
> is to set FOLL_WRITE flag for shared mappings as well as for private ones.

Huh? How do shared mapping get CoWed?

In this context CoW means to create a private copy of the  page for the
process. It only makes sense for private mappings as all pages in shared
mappings do not belong to the process.

Shared mappings will still get faults, but a bit later -- after the page
is written back to disc, the page get clear and write protected to catch
the next write access.

Noticeable exception is tmpfs/shmem. These pages do not belong to normal
write back process. But the code path is used for other filesystems as
well.

Therefore, NAK. You only create unneeded write back traffic.

-- 
 Kirill A. Shutemov

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ