From: Thomas Gleixner <tglx@linutronix.de>
To: Ren Qiaowei <qiaowei.ren@intel.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
Dave Hansen <dave.hansen@intel.com>,
x86@kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org,
linux-ia64@vger.kernel.org, linux-mips@linux-mips.org
Subject: Re: [PATCH v9 11/12] x86, mpx: cleanup unused bound tables
Date: Tue, 28 Oct 2014 11:42:45 +0100 (CET) [thread overview]
Message-ID: <alpine.DEB.2.11.1410281044420.5308@nanos> (raw)
In-Reply-To: <544F300B.7050002@intel.com>
On Tue, 28 Oct 2014, Ren Qiaowei wrote:
> On 10/28/2014 04:49 AM, Thomas Gleixner wrote:
> > On Mon, 27 Oct 2014, Ren Qiaowei wrote:
> > > If so, I guess that there are some questions needed to be considered:
> > >
> > > 1) Almost all palces which call do_munmap() will need to add
> > > mpx_pre_unmap/post_unmap calls, like vm_munmap(), mremap(), shmdt(), etc..
> >
> > What's the problem with that?
> >
>
> For example:
>
> shmdt()
> down_write(mm->mmap_sem);
> vma = find_vma();
> while (vma)
> do_munmap();
> up_write(mm->mmap_sem);
>
> We could not simply add mpx_pre_unmap() before do_munmap() or down_write().
> And seems like it is a little hard for shmdt() to be changed to match this
> solution, right?
Everything which does not fall in place right away seems to be a
little hard, heavy weight or whatever excuses you have for it.
It's not that hard, really. We can simply split out the search code
into a seperate function and use it for both problems.
Yes, it is quite some work to do, but its straight forward.
> > > 3) According to Dave, those bounds tables related to adjacent VMAs within
> > > the
> > > start and the end possibly don't have to be fully unmmaped, and we only
> > > need
> > > free the part of backing physical memory.
> >
> > Care to explain why that's a problem?
> >
>
> I guess you mean one new field mm->bd_remove_vmas should be added into staruct
> mm, right?
That was just to demonstrate the approach. I'm giving you a hint how
to do it, I'm not telling you what the exact solution will be. If I
need to do that, then I can implement it myself right away.
> For those VMAs which we only need to free part of backing physical memory, we
> could not clear bounds directory entries and should also mark the range of
> backing physical memory within this vma. If so, maybe there are too many new
> fields which will be added into mm struct, right?
If we need more data to carry over from pre to post, we can allocate a
proper data structure and just add a pointer to that to mm. And it's
not written in stone, that you need to carry that information from pre
to post. You could do the unmap/zap work in the pre phase already and
reduce mpx_post_unmap() to up_write(mm->bt_sem).
I gave you an idea and the center point of that idea is to have a
separate rwsem to protect against the various races, fault handling
etc. You still have to think about the implementation details.
Thanks,
tglx
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2014-10-28 10:42 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-12 4:41 [PATCH v9 00/12] Intel MPX support Qiaowei Ren
2014-10-12 4:41 ` [PATCH v9 01/12] x86, mpx: introduce VM_MPX to indicate that a VMA is MPX specific Qiaowei Ren
2014-10-12 4:41 ` [PATCH v9 02/12] x86, mpx: rename cfg_reg_u and status_reg Qiaowei Ren
2014-10-12 4:41 ` [PATCH v9 03/12] x86, mpx: add MPX specific mmap interface Qiaowei Ren
2014-10-12 4:41 ` [PATCH v9 04/12] x86, mpx: add MPX to disaabled features Qiaowei Ren
2014-10-12 4:41 ` [PATCH v9 05/12] x86, mpx: on-demand kernel allocation of bounds tables Qiaowei Ren
2014-10-24 12:08 ` Thomas Gleixner
2014-10-27 3:20 ` Ren Qiaowei
2014-10-28 17:43 ` Dave Hansen
2014-10-28 17:57 ` Thomas Gleixner
2014-10-12 4:41 ` [PATCH v9 06/12] mpx: extend siginfo structure to include bound violation information Qiaowei Ren
2014-10-12 4:41 ` [PATCH v9 07/12] mips: sync struct siginfo with general version Qiaowei Ren
2014-10-12 4:41 ` [PATCH v9 08/12] ia64: " Qiaowei Ren
2014-10-12 4:41 ` [PATCH v9 09/12] x86, mpx: decode MPX instruction to get bound violation information Qiaowei Ren
2014-10-24 12:36 ` Thomas Gleixner
2014-10-27 1:43 ` Ren, Qiaowei
2014-10-27 20:36 ` Thomas Gleixner
2014-10-28 5:58 ` Ren Qiaowei
2014-10-31 20:16 ` Dave Hansen
2014-10-31 20:33 ` Thomas Gleixner
2014-10-30 22:38 ` Dave Hansen
2014-10-31 2:12 ` Ren Qiaowei
2014-10-31 9:09 ` Thomas Gleixner
2014-10-12 4:41 ` [PATCH v9 10/12] x86, mpx: add prctl commands PR_MPX_ENABLE_MANAGEMENT, PR_MPX_DISABLE_MANAGEMENT Qiaowei Ren
2014-10-24 12:49 ` Thomas Gleixner
2014-10-24 15:10 ` Thomas Gleixner
2014-10-27 2:17 ` Ren, Qiaowei
2014-10-27 20:38 ` Thomas Gleixner
2014-10-28 5:57 ` Ren Qiaowei
2014-10-12 4:41 ` [PATCH v9 11/12] x86, mpx: cleanup unused bound tables Qiaowei Ren
2014-10-24 14:40 ` Thomas Gleixner
2014-10-27 3:13 ` Ren Qiaowei
2014-10-27 20:49 ` Thomas Gleixner
2014-10-28 5:56 ` Ren Qiaowei
2014-10-28 10:42 ` Thomas Gleixner [this message]
2014-11-03 20:53 ` Dave Hansen
2014-11-03 21:29 ` Thomas Gleixner
2014-11-04 16:00 ` Dave Hansen
2014-11-04 17:02 ` Thomas Gleixner
2014-11-06 21:50 ` Dave Hansen
2014-11-11 18:27 ` Thomas Gleixner
2014-11-11 20:44 ` Dave Hansen
2014-11-11 21:36 ` Thomas Gleixner
2014-10-12 4:41 ` [PATCH v9 12/12] x86, mpx: add documentation on Intel MPX Qiaowei Ren
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=alpine.DEB.2.11.1410281044420.5308@nanos \
--to=tglx@linutronix.de \
--cc=dave.hansen@intel.com \
--cc=hpa@zytor.com \
--cc=linux-ia64@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@linux-mips.org \
--cc=linux-mm@kvack.org \
--cc=mingo@redhat.com \
--cc=qiaowei.ren@intel.com \
--cc=x86@kernel.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