From: Janani Venkataraman <jananive@linux.vnet.ibm.com>
To: linux-kernel@vger.kernel.org
Cc: amwang@redhat.com, procps@freelists.org, rdunlap@xenotime.net,
james.hogan@imgtec.com, aravinda@linux.vnet.ibm.com, hch@lst.de,
mhiramat@redhat.com, jeremy.fitzhardinge@citrix.com,
xemul@parallels.com, d.hatayama@jp.fujitsu.com,
coreutils@gnu.org, kosaki.motohiro@jp.fujitsu.com,
adobriyan@gmail.com, util-linux@vger.kernel.org,
tarundsk@linux.vnet.ibm.com, vapier@gentoo.org,
roland@hack.frob.com, ananth@linux.vnet.ibm.com,
gorcunov@openvz.org, avagin@openvz.org, oleg@redhat.com,
eparis@redhat.com, suzuki@linux.vnet.ibm.com,
andi@firstfloor.org, tj@kernel.org, akpm@linux-foundation.org,
torvalds@linux-foundation.org
Subject: [PATCH 30/33] README, COPYING, Changelog
Date: Thu, 20 Mar 2014 15:13:18 +0530 [thread overview]
Message-ID: <20140320094318.14878.36127.stgit@localhost.localdomain> (raw)
In-Reply-To: <20140320093040.14878.903.stgit@localhost.localdomain>
Adding the README, COPYING and ChangeLog for the package.
Signed-off-by: Janani Venkataraman <jananive@linux.vnet.ibm.com>
---
COPYING | 24 ++++++++++++
COPYING.LIBGENCORE | 24 ++++++++++++
Changelog | 7 +++
README | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 163 insertions(+)
create mode 100644 COPYING
create mode 100644 COPYING.LIBGENCORE
create mode 100644 Changelog
create mode 100644 README
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..a4163ed
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,24 @@
+-------
+GENCORE
+-------
+
+Gencore produces a coredump of a process non-disruptively
+
+Copyright (C) IBM Corporation, 2013
+
+Authors:
+ Janani Venkataraman <jananive@in.ibm.com>
+
+This package is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This package is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software Foundation,
+Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
diff --git a/COPYING.LIBGENCORE b/COPYING.LIBGENCORE
new file mode 100644
index 0000000..e1a7bf6
--- /dev/null
+++ b/COPYING.LIBGENCORE
@@ -0,0 +1,24 @@
+----------
+LIBGENCORE
+----------
+
+Libencore sets up the interface for requesting a selfdump.
+
+Copyright (C) IBM Corporation, 2013
+
+Authors:
+ Janani Venkataraman <jananive@in.ibm.com>
+
+This package is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This package is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with this program; if not, write to the Free Software Foundation,
+Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
diff --git a/Changelog b/Changelog
new file mode 100644
index 0000000..0c780ca
--- /dev/null
+++ b/Changelog
@@ -0,0 +1,7 @@
+---------
+Changelog
+---------
+
+* Thursday Dec 19 2013 Janani Venkataraman <jananive@linux.vnet.ibm.com> 1.0
+
+- Initial Version
diff --git a/README b/README
new file mode 100644
index 0000000..2935ddb
--- /dev/null
+++ b/README
@@ -0,0 +1,108 @@
+-----------------------------------------------
+How to build and install the package -- src.rpm
+-----------------------------------------------
+
+a) Download the gencore-0.1-0.src.rpm
+b) Rebuild the src.rpm using the following command:
+ rpmbuild --rebuild gencore-0.1-0.src.rpm
+c) In the rpmbuild folder created install the RPMs in RPMS folder
+ through the following command:
+ rpm -ivh gencore-0.1-0.x86_64.rpm gencore-debuginfo-0.1-0.x86_64.rpm libgencore-0.1-0.x86_64.rpm libgencore-devel-0.1-0.x86_64.rpm
+c) The library and executables will be installed in /usr/bin
+ and /usr/lib64 and the daemon will be started automatically.
+
+----------------------------------------------
+How to build and install the package -- tar.gz
+----------------------------------------------
+
+a) Untar it firstly
+b) ./autoreconf --force --install
+c) ./configure --prefix="path"
+d) make
+e) make install
+
+The executable the the client libraries are installed in the path specified by
+the user.
+
+--------------------------------
+Command Line Arguments - gencore
+--------------------------------
+
+We can call the gencore command in two ways.
+a) gencore pid [output-file-name]
+b) gencore --daemon
+ -- Creates a daemon, for aiding selfdumps.
+c) gencore --socket
+ -- Post installation, systemd will create the socket and listen for connections.
+ Once a process requests a selfdump, the service will be spawned to handle
+ the request. For this we need to have the correct version of systemd which
+ has this socket option enabled.
+
+In the first case, gencore performs a third party dump and we can specify the
+PID of the process to be dumped. The output-filename is optional. If not
+specified, by default the core filename is core.pid and it is created in the CWD.
+
+In the second case, we start a daemon and we wait for requests from processes
+which requires a self dump. This daemon keeping waiting for such requests.
+It can handle multiple requests for the dump. This method was adapted from the
+CRIU self dump application.
+
+A process which wants a dump, uses the libgencore library and calls the function
+gencore(char *corefile).
+
+----------------------------------
+libgencore - gencore() -- selfdump
+----------------------------------
+
+A program can request a dump of itself. Such a dump is known as a self dump.
+This can be done by using the library libgencore and calling the function
+gencore(char *corefile).
+
+For a selfdump, we need to first start gencore --daemon like mentioned before.
+This daemon waits for requests for dumps. This is already done post installation.
+
+Then in the process, which requests for a dump, we need to call the function
+gencore(char *absolute/relative pathname);
+
+We use libgencore library to set up this interface.
+
+eg. test.c
+
+#include <dlfcn.h>
+#include <stdio.h>
+#include <string.h>
+#include <signal.h>
+
+int (*gencore)(char *name);
+
+void segv_handler(int signo)
+{
+ int ret;
+
+ ret = gencore("/home/janani/demo/test_core");
+
+ fprintf(stderr, "Status of dump: %s\n", strerror(ret));
+}
+
+int main ()
+{
+ void *lib;
+
+ signal(SIGSEGV, segv_handler);
+
+ /* Opening the library, in this case the library is present in the /usr/lib64 */
+ lib = dlopen("libgencore.so", RTLD_LAZY);
+
+ gencore = dlsym(lib, "gencore");
+
+ sleep(100);
+
+ return 0;
+}
+
+-------
+AUTHORS
+-------
+
+Janani Venkataraman <jananive@in.ibm.com>
+
next prev parent reply other threads:[~2014-03-20 9:43 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-20 9:39 [PATCH 00/33] [RFC] Non disruptive application core dump infrastructure Janani Venkataraman
2014-03-20 9:39 ` [PATCH 01/33] Configure and Make files Janani Venkataraman
2014-03-20 9:39 ` [PATCH 02/33] Validity of arguments Janani Venkataraman
2014-03-20 9:39 ` [PATCH 03/33] Process Status Janani Venkataraman
2014-03-20 9:39 ` [PATCH 04/33] Hold threads Janani Venkataraman
2014-03-20 19:01 ` Pavel Emelyanov
2014-03-25 6:58 ` Janani Venkataraman
2014-04-18 14:04 ` Janani Venkataraman
2014-03-20 9:39 ` [PATCH 05/33] Fetching Memory maps Janani Venkataraman
2014-03-20 9:39 ` [PATCH 06/33] Check ELF class Janani Venkataraman
2014-03-20 9:39 ` [PATCH 07/33] Do elf_coredump Janani Venkataraman
2014-03-20 9:40 ` [PATCH 08/33] Fills elf header Janani Venkataraman
2014-03-20 9:40 ` [PATCH 09/33] Adding notes infrastructure Janani Venkataraman
2014-03-20 9:40 ` [PATCH 10/33] Populates PRPS info Janani Venkataraman
2014-03-20 9:40 ` [PATCH 11/33] Populate AUXV Janani Venkataraman
2014-03-20 9:40 ` [PATCH 12/33] Fetch File maps Janani Venkataraman
2014-03-20 9:41 ` [PATCH 13/33] Fetching thread specific Notes Janani Venkataraman
2014-03-20 9:41 ` [PATCH 14/33] Populating Program Headers Janani Venkataraman
2014-03-20 9:41 ` [PATCH 15/33] Updating Offset Janani Venkataraman
2014-03-20 9:41 ` [PATCH 16/33] Writing to core file Janani Venkataraman
2014-03-20 9:41 ` [PATCH 17/33] Daemonizing the Process Janani Venkataraman
2014-03-20 9:41 ` [PATCH 18/33] Socket operations Janani Venkataraman
2014-03-20 9:41 ` [PATCH 19/33] Block till request Janani Venkataraman
2014-03-20 9:41 ` [PATCH 20/33] Handling Requests Janani Venkataraman
2014-03-20 9:41 ` [PATCH 21/33] Get Clients PID Janani Venkataraman
2014-03-20 9:41 ` [PATCH 22/33] Dump the task Janani Venkataraman
2014-03-20 9:42 ` [PATCH 23/33] Handling SIG TERM of the daemon Janani Venkataraman
2014-03-20 9:42 ` [PATCH 24/33] Handling SIG TERM of the child Janani Venkataraman
2014-03-20 9:42 ` [PATCH 25/33] Systemd Socket ID retrieval Janani Venkataraman
2014-03-20 9:42 ` [PATCH 26/33] [libgencore] Setting up Connection Janani Venkataraman
2014-03-20 9:42 ` [PATCH 27/33] [libgencore] Request for dump Janani Venkataraman
2014-03-20 9:43 ` [PATCH 28/33] Man pages Janani Venkataraman
2014-03-20 9:43 ` [PATCH 29/33] Automake files for the doc folder Janani Venkataraman
2014-03-20 9:43 ` Janani Venkataraman [this message]
2014-03-20 9:43 ` [PATCH 31/33] Spec file Janani Venkataraman
2014-03-20 9:43 ` [PATCH 32/33] Socket and Service files Janani Venkataraman
2014-03-20 9:44 ` [PATCH 33/33] Support check Janani Venkataraman
2014-03-20 10:24 ` [PATCH 00/33] [RFC] Non disruptive application core dump infrastructure Pádraig Brady
2014-03-21 8:17 ` Karel Zak
2014-03-21 15:02 ` Phillip Susi
2014-03-24 9:43 ` Janani Venkataraman
2014-03-24 13:54 ` Phillip Susi
2014-07-03 12:59 ` Suzuki K. Poulose
2014-03-24 9:38 ` Janani Venkataraman
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=20140320094318.14878.36127.stgit@localhost.localdomain \
--to=jananive@linux.vnet.ibm.com \
--cc=adobriyan@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=amwang@redhat.com \
--cc=ananth@linux.vnet.ibm.com \
--cc=andi@firstfloor.org \
--cc=aravinda@linux.vnet.ibm.com \
--cc=avagin@openvz.org \
--cc=coreutils@gnu.org \
--cc=d.hatayama@jp.fujitsu.com \
--cc=eparis@redhat.com \
--cc=gorcunov@openvz.org \
--cc=hch@lst.de \
--cc=james.hogan@imgtec.com \
--cc=jeremy.fitzhardinge@citrix.com \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mhiramat@redhat.com \
--cc=oleg@redhat.com \
--cc=procps@freelists.org \
--cc=rdunlap@xenotime.net \
--cc=roland@hack.frob.com \
--cc=suzuki@linux.vnet.ibm.com \
--cc=tarundsk@linux.vnet.ibm.com \
--cc=tj@kernel.org \
--cc=torvalds@linux-foundation.org \
--cc=util-linux@vger.kernel.org \
--cc=vapier@gentoo.org \
--cc=xemul@parallels.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.