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 17:05:52 +0530 [thread overview]
Message-ID: <50C5C918.4040708@linux.vnet.ibm.com> (raw)
In-Reply-To: <50C58FF3.20905@linux.vnet.ibm.com>
On 2012-12-10 13:02, Aravinda Prasad wrote:
>
>
> 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
Correction: it is just 450 lines of code not 450K !!
> 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
next prev parent reply other threads:[~2012-12-10 11:36 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
2012-12-10 11:35 ` Aravinda Prasad [this message]
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=50C5C918.4040708@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 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.