LWN.net Logo

ptrace: implement PTRACE_SEIZE/INTERRUPT and group stop notification, take#5

From:  Tejun Heo <tj@kernel.org>
To:  oleg@redhat.com
Subject:  [PATCHSET ptrace] ptrace: implement PTRACE_SEIZE/INTERRUPT and group stop notification, take#5
Date:  Tue, 14 Jun 2011 11:20:13 +0200
Message-ID:  <1308043218-23619-1-git-send-email-tj@kernel.org>
Cc:  vda.linux@googlemail.com, jan.kratochvil@redhat.com, linux-kernel@vger.kernel.org, torvalds@linux-foundation.org, akpm@linux-foundation.org, indan@nul.nu, bdonlan@gmail.com, pedro@codesourcery.com
Archive-link:  Article, Thread

Hello,

This is the fifth take of PTRACE_SEIZE/INTERRUPT and group stop
notification patchset.

Changes from the last take[1] are,

* Rebased on top of Oleg's ptrace branch[2] which now contains prep
  patches from the last take[1], so prep patches are dropped from this
  series.

* si_pt_flags and PTRACE_SI_STOPPED are dropped in favor of encoding
  the current group stop state in exit_code of STOP traps.  If group
  stop is in effect for the tracee, signr part of exit_code is the
  stopping signal; otherwise, it's SIGTRAP.

  Note that SIGCONT isn't used for NOTIFY traps - SIGTRAP is used
  instead, so signr is either SIG(stop) or SIGTRAP.  NOTIFY traps
  aren't differen't from any other STOP traps and all we need is the
  current state of group stop.  There's no need to distinguish NOTIFY
  traps.

* LISTENING test moved from wait_task_stopped() to
  task_stopped_code().

This patchset contains the following five patches.

  0001-job-control-introduce-JOBCTL_TRAP_STOP-and-use-it-fo.patch
  0002-ptrace-implement-PTRACE_SEIZE.patch
  0003-ptrace-implement-PTRACE_INTERRUPT.patch
  0004-ptrace-implement-TRAP_NOTIFY-and-use-it-for-group-st.patch
  0005-ptrace-implement-PTRACE_LISTEN.patch

and available in the following git branch.

  git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc.git review-ptrace-seize

The HEAD is 20b0913886 (ptrace: implement PTRACE_LISTEN).  If you see
older branch, please retry after a while (korg is still syncing).

The patchset is on top of Oleg's ptrace branch[2] - dd1d677269
(signal: remove three noop tracehooks).

diffstat follows.

 include/linux/ptrace.h |    9 ++
 include/linux/sched.h  |   10 ++-
 kernel/exit.c          |    3
 kernel/ptrace.c        |  116 +++++++++++++++++++++++++++++++----
 kernel/signal.c        |  162 ++++++++++++++++++++++++++++++++++++++-----------
 5 files changed, 249 insertions(+), 51 deletions(-)

Thanks.

--
tejun

[1] http://thread.gmane.org/gmane.linux.kernel/1147384
[2] git://git.kernel.org/pub/scm/linux/kernel/git/oleg/misc.git ptrace
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Copyright © 2011, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds