From: Roland McGrath <roland@redhat.com>
To: Oleg Nesterov <oleg@redhat.com>
Cc: dhowells@redhat.com, yasutake.koichi@jp.panasonic.com,
linux-kernel@vger.kernel.org
Cc: Christoph Hellwig <hch@lst.de>
Subject: Re: arch/ && tracehook_report_syscall_xxx()
Date: Mon, 27 Apr 2009 11:29:19 -0700 (PDT) [thread overview]
Message-ID: <20090427182919.B923DFC3BF@magilla.sf.frob.com> (raw)
In-Reply-To: Oleg Nesterov's message of Monday, 27 April 2009 20:04:55 +0200 <20090427180455.GA32509@redhat.com>
> We have a lot of code like arch/alpha/kernel/ptrace.c:syscall_trace()
> in arch/ and I can't see how to convert them to use tracehooks.
>
> The first problem, we don't know which hook should be called, there is
> no entry/exit argument.
These arch maintainers just need to update their code. Christoph has
started poking arch folks individually about getting up to speed.
IMHO, it is better anyway to use separate entry/exit calls. For that
change, it is often easy to see how to do it correctly in the assembly code
without really knowing the arch at all. (There are separate assembly paths
leading to the calls for entry vs exit cases already, just change the
symbol names. Adding an argument would require a bit of a clue about
assembly on the arch.)
> Still, I think it is better to change this code right now, and call
> ptrace_report_syscall() directly.
I disagree. Let the arch code get with the modern style.
It is just a minute's hack for the arch maintainer.
> But, the second problem, there is no "struct pt_regs *".
They can use task_pt_regs(), it gets the same pointer. It's passed in as
an argument because usually the arch really does have it handy right there
in a register so it's cheaper than recalculating. (All the non-ancient
arch code uses it there for audit_syscall_{entry,exit} calls too.)
> However. I can't imagine how ptrace_report_syscall(regs) can actually
> use "regs". Perhaps we can remove this argument?
ptrace_report_syscall doesn't need it, it could be removed. But that is
not apropos to the arch code, which should use tracehook_* properly.
> Hmm... and I can't understand how to change
> arch/mn10300/kernel/ptrace.c:do_syscall_trace(), it does something
> strange with TIF_SINGLESTEP. (maintainers cc'ed).
We can leave those details to the arch maintainers. That case looks to me
like old hacks for step-over-syscall behavior, which made the opposite
choice (between |0x80 or not for stepping) from what x86 made. Probably
they just want to match the new "norms" and not try to do anything
different for single-step in syscall tracing.
Thanks,
Roland
next prev parent reply other threads:[~2009-04-27 18:29 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-27 18:04 Oleg Nesterov
2009-04-27 18:29 ` Roland McGrath [this message]
2009-04-27 18:32 ` Christoph Hellwig
2009-04-29 19:08 ` Fwd: " Oleg Nesterov
2009-04-29 19:17 ` Roland McGrath
2009-04-29 19:30 ` Ingo Molnar
2009-04-29 19:44 ` Christoph Hellwig
2009-04-29 19:53 ` Kyle McMartin
2009-04-27 18:43 ` Oleg Nesterov
2009-04-27 19:24 ` David Howells
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=20090427182919.B923DFC3BF@magilla.sf.frob.com \
--to=roland@redhat.com \
--cc=dhowells@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=oleg@redhat.com \
--cc=yasutake.koichi@jp.panasonic.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®