From: Oleg Nesterov <oleg@redhat.com>
To: Andy Lutomirski <luto@amacapital.net>
Cc: Dmitry Safonov <dsafonov@virtuozzo.com>,
Michal Hocko <mhocko@suse.com>,
Vladimir Davydov <vdavydov@virtuozzo.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Dmitry Safonov <0x7f454c46@gmail.com>,
"linux-mm@kvack.org" <linux-mm@kvack.org>,
Ingo Molnar <mingo@redhat.com>,
Cyrill Gorcunov <gorcunov@openvz.org>,
xemul@virtuozzo.com, Andy Lutomirski <luto@kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
"H. Peter Anvin" <hpa@zytor.com>, X86 ML <x86@kernel.org>
Subject: Re: [PATCHv2 3/6] x86/arch_prctl/vdso: add ARCH_MAP_VDSO_*
Date: Tue, 12 Jul 2016 16:14:46 +0200 [thread overview]
Message-ID: <20160712141446.GB28837@redhat.com> (raw)
In-Reply-To: <CALCETrVaO_E923KY2bKGfG1tH75JBtEns4nKc+GWsYAx9NT0hQ@mail.gmail.com>
On 07/11, Andy Lutomirski wrote:
>
> On Mon, Jul 11, 2016 at 11:26 AM, Oleg Nesterov <oleg@redhat.com> wrote:
> >
> > Do we really care? I mean, the kernel can't crash or something like this,
> > just the old vdso mapping can faultin the "wrong" page from the new
> > vdso_image, right?
>
> That makes me nervous. IMO a mapping should have well-defined
> semantics.
Perhaps. but map_vdso() will be special anyway, it also changes ->vdso.
For example, if a 32-bit application calls prctl(ARCH_MAP_VDSO) from a
signal handler and we unmap the old vdso mapping, it will crash later
trying to call the (unmapped) restorer == kernel_rt_sigreturn.
> If nothing else, could be really messy if the list of
> pages were wrong.
I do not see anything really wrong, but I can easily miss something.
And don't get me wrong, I agree that any cleanup (say, associate vdso
image with vma) makes sense.
> My real concern is DoS: I doubt that __install_special_mapping gets
> all the accounting right.
Yes, and if it was not clear I fully agree. Even if we forget about the
accounting, I feel that special mappings must not be abused by userspace.
> > So it seems that we should do this by hand somehow. But in fact, what
> > I actually think right now is that I am totally confused and got lost ;)
>
> I'm starting to wonder if we should finally suck it up and give
> special mappings a non-NULL vm_file so we can track them properly.
> Oleg, weren't you thinking of doing that for some other reason?
Yes, uprobes. Currently we can't probe vdso page(s).
Oleg.
--
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>
WARNING: multiple messages have this Message-ID (diff)
From: Oleg Nesterov <oleg@redhat.com>
To: Andy Lutomirski <luto@amacapital.net>
Cc: Dmitry Safonov <dsafonov@virtuozzo.com>,
Michal Hocko <mhocko@suse.com>,
Vladimir Davydov <vdavydov@virtuozzo.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Dmitry Safonov <0x7f454c46@gmail.com>,
"linux-mm@kvack.org" <linux-mm@kvack.org>,
Ingo Molnar <mingo@redhat.com>,
Cyrill Gorcunov <gorcunov@openvz.org>,
xemul@virtuozzo.com, Andy Lutomirski <luto@kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
"H. Peter Anvin" <hpa@zytor.com>, X86 ML <x86@kernel.org>
Subject: Re: [PATCHv2 3/6] x86/arch_prctl/vdso: add ARCH_MAP_VDSO_*
Date: Tue, 12 Jul 2016 16:14:46 +0200 [thread overview]
Message-ID: <20160712141446.GB28837@redhat.com> (raw)
In-Reply-To: <CALCETrVaO_E923KY2bKGfG1tH75JBtEns4nKc+GWsYAx9NT0hQ@mail.gmail.com>
On 07/11, Andy Lutomirski wrote:
>
> On Mon, Jul 11, 2016 at 11:26 AM, Oleg Nesterov <oleg@redhat.com> wrote:
> >
> > Do we really care? I mean, the kernel can't crash or something like this,
> > just the old vdso mapping can faultin the "wrong" page from the new
> > vdso_image, right?
>
> That makes me nervous. IMO a mapping should have well-defined
> semantics.
Perhaps. but map_vdso() will be special anyway, it also changes ->vdso.
For example, if a 32-bit application calls prctl(ARCH_MAP_VDSO) from a
signal handler and we unmap the old vdso mapping, it will crash later
trying to call the (unmapped) restorer == kernel_rt_sigreturn.
> If nothing else, could be really messy if the list of
> pages were wrong.
I do not see anything really wrong, but I can easily miss something.
And don't get me wrong, I agree that any cleanup (say, associate vdso
image with vma) makes sense.
> My real concern is DoS: I doubt that __install_special_mapping gets
> all the accounting right.
Yes, and if it was not clear I fully agree. Even if we forget about the
accounting, I feel that special mappings must not be abused by userspace.
> > So it seems that we should do this by hand somehow. But in fact, what
> > I actually think right now is that I am totally confused and got lost ;)
>
> I'm starting to wonder if we should finally suck it up and give
> special mappings a non-NULL vm_file so we can track them properly.
> Oleg, weren't you thinking of doing that for some other reason?
Yes, uprobes. Currently we can't probe vdso page(s).
Oleg.
next prev parent reply other threads:[~2016-07-12 14:14 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-29 10:57 [PATCHv2 0/6] x86: 32-bit compatible C/R on x86_64 Dmitry Safonov
2016-06-29 10:57 ` Dmitry Safonov
2016-06-29 10:57 ` [PATCHv2 1/6] x86/vdso: unmap vdso blob on vvar mapping failure Dmitry Safonov
2016-06-29 10:57 ` Dmitry Safonov
2016-07-06 14:16 ` Andy Lutomirski
2016-07-06 14:16 ` Andy Lutomirski
2016-06-29 10:57 ` [PATCHv2 2/6] x86/vdso: introduce do_map_vdso() and vdso_type enum Dmitry Safonov
2016-06-29 10:57 ` Dmitry Safonov
2016-07-06 14:21 ` Andy Lutomirski
2016-07-06 14:21 ` Andy Lutomirski
2016-07-07 11:04 ` Dmitry Safonov
2016-07-07 11:04 ` Dmitry Safonov
2016-06-29 10:57 ` [PATCHv2 3/6] x86/arch_prctl/vdso: add ARCH_MAP_VDSO_* Dmitry Safonov
2016-06-29 10:57 ` Dmitry Safonov
2016-07-06 14:30 ` Andy Lutomirski
2016-07-06 14:30 ` Andy Lutomirski
2016-07-07 11:11 ` Dmitry Safonov
2016-07-07 11:11 ` Dmitry Safonov
2016-07-10 12:44 ` Andy Lutomirski
2016-07-10 12:44 ` Andy Lutomirski
2016-07-11 18:26 ` Oleg Nesterov
2016-07-11 18:26 ` Oleg Nesterov
2016-07-11 18:28 ` Andy Lutomirski
2016-07-11 18:28 ` Andy Lutomirski
2016-07-12 14:14 ` Oleg Nesterov [this message]
2016-07-12 14:14 ` Oleg Nesterov
2016-08-02 10:59 ` Dmitry Safonov
2016-08-02 10:59 ` Dmitry Safonov
2016-08-10 8:35 ` Andy Lutomirski
2016-08-10 8:35 ` Andy Lutomirski
2016-08-10 10:49 ` Dmitry Safonov
2016-08-10 10:49 ` Dmitry Safonov
2016-06-29 10:57 ` [PATCHv2 4/6] x86/coredump: use pr_reg size, rather that TIF_IA32 flag Dmitry Safonov
2016-06-29 10:57 ` Dmitry Safonov
2016-06-29 10:57 ` Dmitry Safonov
2016-06-29 10:57 ` [PATCHv2 5/6] x86/ptrace: down with test_thread_flag(TIF_IA32) Dmitry Safonov
2016-06-29 10:57 ` Dmitry Safonov
2016-07-06 14:32 ` Andy Lutomirski
2016-07-06 14:32 ` Andy Lutomirski
2016-06-29 10:57 ` [PATCHv2 6/6] x86/signal: add SA_{X32,IA32}_ABI sa_flags Dmitry Safonov
2016-06-29 10:57 ` Dmitry Safonov
2016-07-06 14:36 ` Andy Lutomirski
2016-07-06 14:36 ` Andy Lutomirski
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=20160712141446.GB28837@redhat.com \
--to=oleg@redhat.com \
--cc=0x7f454c46@gmail.com \
--cc=dsafonov@virtuozzo.com \
--cc=gorcunov@openvz.org \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=luto@amacapital.net \
--cc=luto@kernel.org \
--cc=mhocko@suse.com \
--cc=mingo@redhat.com \
--cc=tglx@linutronix.de \
--cc=vdavydov@virtuozzo.com \
--cc=x86@kernel.org \
--cc=xemul@virtuozzo.com \
/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.