public inbox for kexec@lists.infradead.org
 help / color / mirror / Atom feed
From: Aravinda Prasad <aravinda@linux.vnet.ibm.com>
To: Vivek Goyal <vgoyal@redhat.com>
Cc: ananth@in.ibm.com, mahesh@linux.vnet.ibm.com,
	kexec@lists.infradead.org, Luc Chouinard <LChouinard@s2sys.com>,
	tachibana@mxm.nes.nec.co.jp, Dave Anderson <anderson@redhat.com>,
	Atsushi Kumagai <kumagai-atsushi@mxc.nes.nec.co.jp>,
	buendgen@de.ibm.com
Subject: Re: [PATCH v2 0/7] makedumpfile security key filtering with eppic
Date: Mon, 10 Dec 2012 13:02:03 +0530	[thread overview]
Message-ID: <50C58FF3.20905@linux.vnet.ibm.com> (raw)
In-Reply-To: <20121207215930.GE4928@redhat.com>



On 2012-12-08 03:29, Vivek Goyal wrote:

> On Fri, Dec 07, 2012 at 08:46:33AM -0500, Luc Chouinard wrote:
> 
> [..]
>>> This is what I am planning.
>>>
>>> A new extension_eppic.c file will be created under makedumpfile source
>>> directory. This file is equivalent to applications/crash/eppic.c in
>> upstream eppic
>>> repository. A new target will be added to the Makefile of makedumpfile
>> to build
>>> the shared library and to build this shared library libeppic.a would
>> be required.
>>> The makedumpfile specific shared library will be named different - say
>>> eppic_mkdumpfile.so to avoid conflict with crash specific libeppic.so.
>>>
>>> The reason for including extension_eppic.c under makedumpfile source
>> is
>>> because it will be dependent on other functions in makedumpfile code
>> like dwarf
>>> related calls etc. People modifying those functions should be aware of
>> the
>>> callers in extension_eppic.c and if this is included in upstream eppic
>> code, it will
>>> be easily overlooked (or may not be aware of its existence).
>>
>> The same reasons exists for applications/crash/eppic.c. It only ended up
>> on eppic's git for two reasons. To provide for a complete example of
>> integration into a tool and, because I originally wrote it,  I could
>> support it from there without having to send a patch Dave's way.
>>  
>> I expect other applications to own their glue/integration file(s) and
>> only grab libeppic from the git. These applications, will comply to
>> libeppic's APIs and only fixes or new functions will be added to
>> libeppic to support these applications and valid new requirements they
>> may have. Like we did for mkdumpfile.
>>
>> Same libeppic.so and same libeppic Makefile for all.
> 
> I am lost here. Can somebody explain this thing in layman's terms with
> simple example. (We have a function foo() in libeppic which makeudmpfile
> wants to call. Now what?)
> 
> Few questions come to my mind.
> 
> - What is glue logic and why do we need application specific glue
>   logic to use this library.


Consider this simple eppic macro, which prints the value of the global
kernel variable "modules":

smod()
{
	struct list_head *mod;

	mod = (struct list_head *)modules;
	printf("Modules = %p \n", mod);
}

Eppic has logic to interpret this C program, but needs some help in
resolving the actual value of "modules" (as well as members of struct
list_head) and defines few call-back functions to help it. This generic
logic forms libeppic.a. The glue logic implements these call back
function to help libeppic.a.

Eg: whenever libeppic.a encounters struct list_head, it calls
apimember("list_head") call back function to learn about the details of
the members of the structure. Glue logic implement this call-back
function and calls libeppic.a calls with information -
eppic_member_sname("list_head", "next"), eppic_member_sname("list_head",
"prev") etc., inside apimember("list_head").

In crash, the glue logic contains gdb related calls and in makedumpfile
it contains dwarf related calls to get the structure members, value of
global variables etc. However, libeppic.a does not care what calls we
use in the background. It just needs the data. This makes it very
generic and powerful.

Now the glue logic along with libeppic.a makes the shared library *.so
(named eppic.so for crash, planning to name eppic_makedumpfile.so for
makedumpfile), which applications can dlopen().

Hope this helps.

> 
> - Assuming we need glue logic and assuming it is small enough, will
>   it make sense to build statically build glue logic in application
>   and build actual libeppic as shared object and do dlopen() on it.
>


Glue logic is 450K lines of code (all of them in extension_eppic.c) and
calls lot of eppic library calls, making this glue logic static requires
libeppic.a to be statically included, which was our first approach.


> Thanks
> Vivek
> 


-- 
Regards,
Aravinda


_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

  reply	other threads:[~2012-12-10  7:32 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-08 13:37 [PATCH v2 0/7] makedumpfile security key filtering with eppic Aravinda Prasad
2012-11-08 13:38 ` [PATCH v2 1/7] Initialize and setup eppic Aravinda Prasad
2012-11-15 16:04   ` Vivek Goyal
2012-11-16  9:43     ` Aravinda Prasad
2012-11-08 13:38 ` [PATCH v2 2/7] makedumpfile and eppic interface layer Aravinda Prasad
2012-11-08 13:38 ` [PATCH v2 3/7] Eppic call back functions to query a dump image Aravinda Prasad
2012-11-08 13:38 ` [PATCH v2 4/7] Implement apigetctype call back function Aravinda Prasad
2012-11-08 13:39 ` [PATCH v2 5/7] Implement apimember and apigetrtype call back functions Aravinda Prasad
2012-11-08 13:39 ` [PATCH v2 6/7] Extend eppic built-in functions to include memset function Aravinda Prasad
2012-11-08 13:39 ` [PATCH v2 7/7] Support fully typed symbol access mode Aravinda Prasad
2012-11-14  1:15 ` [PATCH v2 0/7] makedumpfile security key filtering with eppic Atsushi Kumagai
2012-11-14 14:54 ` Vivek Goyal
2012-11-14 17:06   ` Aravinda Prasad
2012-11-14 17:53     ` Vivek Goyal
2012-11-15 12:50       ` Aravinda Prasad
2012-11-15 14:27         ` Dave Anderson
2012-11-15 15:55           ` Vivek Goyal
2012-11-16  9:52             ` Aravinda Prasad
2012-11-16 14:36               ` Vivek Goyal
2012-11-20  9:47                 ` Atsushi Kumagai
2012-11-21  7:19                   ` Aravinda Prasad
2012-11-21 13:57                     ` Vivek Goyal
2012-11-22 17:14                       ` Aravinda Prasad
2012-11-26 14:04                         ` Vivek Goyal
2012-12-03  6:02                           ` Aravinda Prasad
2012-12-03 13:20                             ` Vivek Goyal
2012-12-03 14:35                               ` Aravinda Prasad
2012-12-03 18:40                                 ` Vivek Goyal
2012-12-04  8:36                                   ` Atsushi Kumagai
2012-12-04  8:56                                     ` Aravinda Prasad
2012-12-06 15:26                             ` Dave Anderson
2012-12-07  6:05                               ` Aravinda Prasad
2012-12-07 13:46                                 ` Luc Chouinard
2012-12-07 21:59                                   ` Vivek Goyal
2012-12-10  7:32                                     ` Aravinda Prasad [this message]
2012-12-10 11:35                                       ` Aravinda Prasad
2012-11-16  9:49           ` Aravinda Prasad
2012-11-15 15:49         ` Vivek Goyal
2012-11-16 11:10           ` Aravinda Prasad
2012-11-16 14:59             ` Vivek Goyal
2012-11-14 20:15     ` Vivek Goyal
2012-11-15 12:55       ` Aravinda Prasad
2012-11-14 20:21     ` Dave Anderson
2012-11-15 13:27       ` Aravinda Prasad

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=50C58FF3.20905@linux.vnet.ibm.com \
    --to=aravinda@linux.vnet.ibm.com \
    --cc=LChouinard@s2sys.com \
    --cc=ananth@in.ibm.com \
    --cc=anderson@redhat.com \
    --cc=buendgen@de.ibm.com \
    --cc=kexec@lists.infradead.org \
    --cc=kumagai-atsushi@mxc.nes.nec.co.jp \
    --cc=mahesh@linux.vnet.ibm.com \
    --cc=tachibana@mxm.nes.nec.co.jp \
    --cc=vgoyal@redhat.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