public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro>
To: Peter Teoh <htmldeveloper@gmail.com>
Cc: Pekka Enberg <penberg@cs.helsinki.fi>,
	zanussi@comcast.net, jens.axboe@oracle.com,
	linux-kernel@vger.kernel.org
Subject: Re: [PROBLEM] hard-lock with kmemtrace, relayfs, and splice
Date: Sat, 25 Oct 2008 17:04:29 +0300	[thread overview]
Message-ID: <20081025140429.GA5222@localhost> (raw)
In-Reply-To: <804dabb00810241756x2b7a35e0v8593451285582267@mail.gmail.com>

On Sat, Oct 25, 2008 at 08:56:07AM +0800, Peter Teoh wrote:
> ok.   just ignore it.   i think based on "git log" of
> "git://repo.or.cz/linux-2.6/kmemtrace.git":
> 
> commit 0441e5ff6ab71cf7a3e9ec3116f14d0fd7d20d51
> Author: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro>
> Date:   Thu Jul 10 20:20:05 2008 +0300
> 
>     kmemtrace: SLOB hooks.
> 
> the repo seemed way out of date.   But a clone of Pekka's slab-2.6's
> topic/kmemtrace branch have no problem.   The steps are as follows:
> 
> 1.   git clone git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6.git
> 2.   git checkout -m  origin/topic/kmemtrace
> 3.   git checkout -b kmemtrace

Hi,

Yes, that repo may be outdated, please use Pekka's for the latest
working stuff.

> git log gives:
> 
> commit 51b19be3535c8fbcce6b6f838d89b9a6a4cc5b92
> Author: Tom Zanussi <zanussi@comcast.net>
> Date:   Fri Oct 10 23:58:51 2008 -0500
> 
>     relayfs: fix infinite loop with splice()
> 
> But the userspace tool I still get it from: git://repo.or.cz/kmemtrace-user.git
> 
> Correct?

Yes, I maintain this one and it's up-to-date.

> Now I have some problems:
> 
> a.   I would like to extract out all the commit as diff - may I know
> how to do that? ("git log" only gives the descriptive part).

You can use "git-log -p" to get diffs along with commit history.

> b.   boot-time memory profiling....how can it be done (or extracted
> out)?  (kmemtrace-user does not have that?)

If you enable kmemtrace at boot-time using the "kmemtrace.enabled=yes"
parameter, kmemtrace will start logging just after kmem_cache_init()
finishes. There are plans for making tracing possible even earlier,
however it involves quite a big rework of how relay allocates its
buffers.

> c.   please provide some pointers to documentation:   how do I
> interpret the following:
> 
> Allocation #83468 (CPU0) already exists!
>         by __kmalloc_track_caller+25
>         last touched by __kmalloc_track_caller
> Allocation #83740 (CPU0) already exists!
>         by __kmalloc_track_caller+25
>         last touched by __kmalloc_track_caller

The userspace app writes out those messages when it looks like a memory
region has been allocated twice. In reality, it's most likely a free
hasn't been traced (because a misc free function isn't traced).

> For my purpose, I would like to trace how and where is memory
> allocated - just one one single userspace program which access the
> mmap("/dev/mem") to read the memory.   How can it be done?   "Tracing
> memory" in my context will mean list all the kernel-function +
> memory-allocated-within-the-function + its-PFN-or-PTE-information (to
> pinpoint the exact physical page).   My understanding is that these
> can be done, via checking the value of "current", as each userspace
> program started will have a unique "current" context value, and
> therefore within any kernel function, just check this value, to focus
> tracing on just one particular userspace program.   Correct?

I have made provisions for exporting the whole stack trace, however it
is not yet implemented.

> d.   The following:
> 
> /sys/kernel/debug/kmemtrace>ls -al
> ???? 0
> drwxr-xr-x 2 root root          0 2008-10-25 .
> drwxr-xr-x 9 root root          0 2008-10-25 ..
> -r-------- 1 root root          0 2008-10-25 abi_version
> -r-------- 1 root root 2946936192 2008-10-25 cpu0
> -r-------- 1 root root 1701263952 2008-10-25 cpu1
> -rw------- 1 root root          0 2008-10-25 enabled
> -r-------- 1 root root          0 2008-10-25 total_overruns
> 
> So the information is stored in memory, right?   Is it possible to
> reset it?   I don't want these information to clog up the memory.

Relay uses fixed size buffers, so there is no point in clearing them.

> e.   The balance between cpu0 and cpu1 does not seemed equal, any
> implications on the scheduler/ IO Scheduler?   or memory allocation
> scheduler (if there exists one :-))....sorry about that....my
> knowledge is limited.

Much of the booting sequence is done on a single CPU, then the kernel
switches to SMP. It is natural to see one CPU log more allocations.

> -- 
> Regards,
> Peter Teoh

Thanks for testing.


	Cheers,
	Eduard


      reply	other threads:[~2008-10-25 14:04 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-23 21:29 [ANNOUNCE] kmemtrace-user repo update Eduard - Gabriel Munteanu
     [not found] ` <1223386477.28348.42.camel@penberg-laptop>
     [not found]   ` <1223623191.8959.26.camel@penberg-laptop>
     [not found]     ` <1223628687.8959.37.camel@penberg-laptop>
     [not found]       ` <1223629803.8959.40.camel@penberg-laptop>
2008-10-10  9:42         ` [PROBLEM] hard-lock with kmemtrace, relayfs, and splice Pekka Enberg
2008-10-10 11:51           ` Eduard - Gabriel Munteanu
2008-10-11  4:58           ` Tom Zanussi
2008-10-11 18:17             ` Eduard - Gabriel Munteanu
2008-10-13  6:57             ` Pekka Enberg
2008-10-14  4:03               ` Tom Zanussi
2008-10-14  5:13                 ` Pekka Enberg
2008-10-14  5:46                   ` Tom Zanussi
2008-10-14  6:58                     ` Pekka Enberg
2008-10-14  7:30                     ` Eduard - Gabriel Munteanu
2008-10-14  7:05                   ` Pekka Enberg
2008-10-24  4:44           ` Peter Teoh
2008-10-24 14:15             ` Pekka Enberg
2008-10-25  0:56               ` Peter Teoh
2008-10-25 14:04                 ` Eduard - Gabriel Munteanu [this message]

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=20081025140429.GA5222@localhost \
    --to=eduard.munteanu@linux360.ro \
    --cc=htmldeveloper@gmail.com \
    --cc=jens.axboe@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=penberg@cs.helsinki.fi \
    --cc=zanussi@comcast.net \
    /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