LKML Archive on lore.kernel.org help / color / mirror / Atom feed
From: Igor Stoppa <igor.stoppa@huawei.com> To: Matthew Wilcox <willy@infradead.org> Cc: <keescook@chromium.org>, <david@fromorbit.com>, <rppt@linux.vnet.ibm.com>, <mhocko@kernel.org>, <labbott@redhat.com>, <linux-security-module@vger.kernel.org>, <linux-mm@kvack.org>, <linux-kernel@vger.kernel.org>, <kernel-hardening@lists.openwall.com> Subject: Re: [RFC PATCH v19 0/8] mm: security: ro protection for dynamic data Date: Wed, 14 Mar 2018 14:55:10 +0200 [thread overview] Message-ID: <8623382b-cdbe-8862-8c2f-fa5bc6a1213a@huawei.com> (raw) In-Reply-To: <20180314115653.GD29631@bombadil.infradead.org> On 14/03/18 13:56, Matthew Wilcox wrote: > On Wed, Mar 14, 2018 at 01:21:54PM +0200, Igor Stoppa wrote: [...] > You misread my proposal. I did not suggest storing the 'start', but the > 'end'. Ok, but doesn't that only change the race scenario? Attempting to free one allocation, while it is in progress, so that all the "space" bits are written, but the "end bit" is not yet written. That will eat up also the following, complete allocation, if there is no locking in place. [...] >> The implementation which interleaves "space" and "start" does not suffer >> from this sort of races, because the alteration of the interleaved >> bitmaps is atomic. > > This would be a bug in the allocator implementation. Obviously it has to > maintain the integrity of its own data structures. But I cannot imagine how to do it, with the split bitmaps, without a lock :-/ And genalloc is supposed to be lockless. >> Does this justification for the use of interleaved bitmaps (iow the >> current implementation) make sense? > > I think you're making a mistake by basing the pmalloc allocator on > genalloc. It was recommended to me because it was a close match to the allocator that I was writing from scratch and, when I looked at it, I could only agree that it was very close. But I have no particular reason for preferring it, if something better is available. It was just never brought up before. At least not that I noticed. > The page_frag allocator seems like a much better place to > start than genalloc. It has a significantly lower overhead and is > much more suited to the kind of probably-identical-lifespan that the > pmalloc API is going to persuade its users to have. Could you please provide me a pointer? I did a quick search on 4.16-rc5 and found the definition of page_frag and sk_page_frag(). Is this what you are referring to? -- igor
next prev parent reply other threads:[~2018-03-14 12:55 UTC|newest] Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-03-13 21:45 [RFC PATCH v19 0/8] mm: security: ro protection for dynamic data Igor Stoppa 2018-03-13 21:45 ` [PATCH 1/8] genalloc: track beginning of allocations Igor Stoppa 2018-03-13 21:45 ` [PATCH 2/8] Add label to genalloc.rst for cross reference Igor Stoppa 2018-03-13 21:45 ` [PATCH 3/8] genalloc: selftest Igor Stoppa 2018-03-13 21:45 ` [PATCH 4/8] struct page: add field for vm_struct Igor Stoppa 2018-03-13 22:00 ` Matthew Wilcox 2018-03-14 17:43 ` J Freyensee 2018-03-15 9:38 ` Igor Stoppa 2018-03-15 18:51 ` J Freyensee 2018-03-13 21:45 ` [PATCH 5/8] Protectable Memory Igor Stoppa 2018-03-14 12:15 ` Matthew Wilcox 2018-03-14 13:02 ` Igor Stoppa 2018-03-14 17:40 ` J Freyensee 2018-03-13 21:45 ` [PATCH 6/8] Pmalloc selftest Igor Stoppa 2018-03-14 12:25 ` Matthew Wilcox 2018-03-25 1:32 ` Igor Stoppa 2018-03-13 21:45 ` [PATCH 7/8] lkdtm: crash on overwriting protected pmalloc var Igor Stoppa 2018-03-13 21:45 ` [PATCH 8/8] Documentation for Pmalloc Igor Stoppa 2018-03-14 11:21 ` [RFC PATCH v19 0/8] mm: security: ro protection for dynamic data Igor Stoppa 2018-03-14 11:56 ` Matthew Wilcox 2018-03-14 12:55 ` Igor Stoppa [this message] 2018-03-14 13:04 ` Matthew Wilcox 2018-03-14 16:11 ` Igor Stoppa 2018-03-14 17:33 ` Matthew Wilcox 2018-03-15 13:43 ` Igor Stoppa 2018-03-19 18:04 ` Igor Stoppa
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=8623382b-cdbe-8862-8c2f-fa5bc6a1213a@huawei.com \ --to=igor.stoppa@huawei.com \ --cc=david@fromorbit.com \ --cc=keescook@chromium.org \ --cc=kernel-hardening@lists.openwall.com \ --cc=labbott@redhat.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=linux-security-module@vger.kernel.org \ --cc=mhocko@kernel.org \ --cc=rppt@linux.vnet.ibm.com \ --cc=willy@infradead.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: linkBe 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).