From: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
To: Masami Hiramatsu <mhiramat@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
Nick Piggin <npiggin@suse.de>, akpm <akpm@linux-foundation.org>,
linux-kernel <linux-kernel@vger.kernel.org>,
Ingo Molnar <mingo@elte.hu>,
Ananth N Mavinakayanahalli <ananth@in.ibm.com>,
Jim Keniston <jkenisto@us.ibm.com>
Subject: Re: irq-disabled vs vmap vs text_poke
Date: Fri, 13 Feb 2009 13:57:25 -0500 [thread overview]
Message-ID: <20090213185725.GC7124@Krystal> (raw)
In-Reply-To: <4995B88C.2090900@redhat.com>
* Masami Hiramatsu (mhiramat@redhat.com) wrote:
> Mathieu Desnoyers wrote:
> >>> text_poke should actually use local_irq_disable/enable rather than
> >>> local_irq_save/restore because it _must_ be called with interrupts on.
> >> Could you tell me why it must be called with irq on?
> >>
> >
> > Because it uses vmap, but see below..
> >
> >>>> Anybody got an idea on how to fix this?
> >>> There is probably something wrong with the caller, kprobes, which calls
> >>> text_poke with interrupts off.
> >> Hmm, kprobe's smoke test caused this problem. Since (un)register_kprobe()
> >> may sleep for waiting a mutex, it should not be called with interrupts off.
> >> So, it's not text_poke()'s issue nor vmap().
> >>
> >> BTW, what about using map_vm_area() in text_poke() instead of vmap()?
> >> Since text_poke() just maps text pages to alias pages temporarily,
> >> I think we don't need to use delayed vunmap().
> >>
> >
> > As with this patch from you ? Sorry, when it has been initially
> > submitted, the discussion turned in a different direction. Please see
> > comments inline.
>
> No, sorry for confusing, vm_unmap_ram() is basically same as vunmap().
> (The root cause of that bug which I had been reported was not in text_poke())
>
> Here I said is (maybe) improving text_poke() by using map_vm_area() which
> simply maps pages to pre-allocated vm_area. And when unmapping, we just
> cleanup pte by unmap_kernel_range().
> For pre-allocating vm_area, we can use get_vm_area().
>
> If we can use kmap for this purpose, it will be better solution.
> However, kmap can not be used for making alias pages.
>
> Thanks,
>
That sounds clean, and would improve the current way we (mis)use vmap
for this tiny mapping. I always felt like I was using a sledgehammer
when only a hammer was necessary. :)
Do you have a patch that implements this ?
Mathieu
> --
> Masami Hiramatsu
>
> Software Engineer
> Hitachi Computer Products (America) Inc.
> Software Solutions Division
>
> e-mail: mhiramat@redhat.com
>
--
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
next prev parent reply other threads:[~2009-02-13 18:57 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-02-13 12:50 irq-disabled vs vmap vs text_poke Peter Zijlstra
2009-02-13 12:55 ` Nick Piggin
2009-02-13 13:02 ` Peter Zijlstra
2009-02-13 13:04 ` Ingo Molnar
2009-02-13 14:25 ` Mathieu Desnoyers
2009-02-13 14:33 ` Peter Zijlstra
2009-02-13 14:43 ` Mathieu Desnoyers
2009-02-13 18:05 ` Ingo Molnar
2009-02-13 13:05 ` Peter Zijlstra
2009-02-13 13:09 ` Nick Piggin
2009-02-13 14:18 ` Mathieu Desnoyers
2009-02-13 14:28 ` Peter Zijlstra
2009-02-13 16:32 ` Masami Hiramatsu
2009-02-13 16:38 ` Peter Zijlstra
2009-02-13 16:55 ` Mathieu Desnoyers
2009-02-13 18:14 ` Masami Hiramatsu
2009-02-13 18:57 ` Mathieu Desnoyers [this message]
2009-02-13 21:41 ` Masami Hiramatsu
2009-02-16 15:04 ` Masami Hiramatsu
2009-02-16 15:31 ` Nick Piggin
2009-02-16 17:24 ` Mathieu Desnoyers
2009-02-17 2:00 ` Masami Hiramatsu
2009-02-17 3:03 ` Nick Piggin
2009-02-17 8:31 ` Peter Zijlstra
2009-02-17 17:13 ` Masami Hiramatsu
2009-02-17 16:48 ` Masami Hiramatsu
2009-02-17 17:02 ` Steven Rostedt
2009-02-17 17:18 ` Mathieu Desnoyers
2009-02-17 17:24 ` Steven Rostedt
2009-02-17 17:28 ` Mathieu Desnoyers
2009-02-17 17:48 ` Steven Rostedt
2009-02-13 14:27 ` [PATCH] x86: text_poke might sleep Mathieu Desnoyers
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=20090213185725.GC7124@Krystal \
--to=mathieu.desnoyers@polymtl.ca \
--cc=akpm@linux-foundation.org \
--cc=ananth@in.ibm.com \
--cc=jkenisto@us.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mhiramat@redhat.com \
--cc=mingo@elte.hu \
--cc=npiggin@suse.de \
--cc=peterz@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: 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.