All of lore.kernel.org
 help / color / mirror / Atom feed
From: Maxim Uvarov <muvarov@ru.mvista.com>
To: Linas Vepstas <linas@austin.ibm.com>
Cc: linuxppc-dev@ozlabs.org,
	Andrew Morton <akpm@linux-foundation.org>,
	pavel@ucw.cz, wli@holomorphy.com, dada1@cosmosbay.com
Subject: Re: [PATCH] Performance Stats: Kernel patch
Date: Thu, 10 May 2007 10:22:54 +0000	[thread overview]
Message-ID: <4642F27E.10700@ru.mvista.com> (raw)
In-Reply-To: <20070508233200.GO4452@austin.ibm.com>

Linas Vepstas wrote:

>Hi,
>
>On Tue, May 08, 2007 at 04:26:51PM +0000, Maxim Uvarov wrote:
>  
>
>>Patch makes available to the user the following
>>task and process performance statistics:
>>    
>>
>
>[...]
>
>  
>
>>diff --git a/arch/i386/kernel/entry.S b/arch/i386/kernel/entry.S
>>index 5e47683..26f0cc0 100644
>>--- a/arch/i386/kernel/entry.S
>>+++ b/arch/i386/kernel/entry.S
>>@@ -331,6 +331,7 @@ sysenter_past_esp:
>> 	CFI_ADJUST_CFA_OFFSET 4
>> 	SAVE_ALL
>> 	GET_THREAD_INFO(%ebp)
>>+	incl	TI_syscall_count(%ebp)	# Increment syscalls counter
>>    
>>
>
>Other arches have this protected with #ifdef CONFIG_TASKSTATS
>why not here?
>
>  
>
Thank you. It should be protected.

>>diff --git a/arch/powerpc/kernel/entry_32.S b/arch/powerpc/kernel/entry_32.S
>>index c03e829..329c2f8 100644
>>--- a/arch/powerpc/kernel/entry_32.S
>>+++ b/arch/powerpc/kernel/entry_32.S
>>@@ -202,6 +202,11 @@ _GLOBAL(DoSyscall)
>> 	bl	do_show_syscall
>> #endif /* SHOW_SYSCALLS */
>> 	rlwinm	r10,r1,0,0,(31-THREAD_SHIFT)	/* current_thread_info() */
>>+#ifdef CONFIG_THREAD_PERF_STAT_SYSC
>>+	lwz r11,TI_SYSC_CNT(r10)
>>+	addi r11,r11,1
>>+	stw r11,TI_SYSC_CNT(r10)
>>+#endif /* CONFIG_THREAD_PERF_STAT_SYSC */
>>    
>>
>
>Why not CONFIG_TASKSTATS, as in entry_64.S ?
>
>Actually, grep shows that CONFIG_THREAD_PERF_STAT_SYSC is not defined
>anywhere.
>
>  
>
This is mistake, thank you. I have to be more considerate.

>>diff --git a/arch/x86_64/kernel/entry.S b/arch/x86_64/kernel/entry.S
>>index 9f5dac6..9fd97df 100644
>>--- a/arch/x86_64/kernel/entry.S
>>+++ b/arch/x86_64/kernel/entry.S
>>@@ -229,6 +229,7 @@ ENTRY(system_call)
>> 	movq  %rcx,RIP-ARGOFFSET(%rsp)
>> 	CFI_REL_OFFSET rip,RIP-ARGOFFSET
>> 	GET_THREAD_INFO(%rcx)
>>+	addq $1, threadinfo_syscall_count(%rcx)   # Increment syscalls counter
>>    
>>
>
>again, #ifdef CONFIG_TASKSTATS,
>
>--linas
>  
>

In general I had the following idea. Defend with CONFIG_TASKSTATS all
syscall increment counters in  arch/*/entry.S  code.  It will allow to
avoid this overhead if task stats interface is not supported by kernel.
The overhead is too small but,  it is not needed to increment counters 
without interface
to get them.

In first version of patch I have used only /proc interface. And it is 
available now.
So I don't really sure if  defines are needed in  entry.S code. I tried 
to do
some tests and  it is impossible to catch the performance difference (small
overhead).

  reply	other threads:[~2007-05-10 10:44 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-08 16:26 [PATCH] Performance Stats: Kernel patch Maxim Uvarov
2007-05-08 19:32 ` Andrew Morton
2007-05-10 11:11   ` Maxim Uvarov
2007-05-10 18:12     ` Andrew Morton
2007-05-11 16:51       ` Maxim Uvarov
2007-05-11 17:23       ` Using kprobes [was " Linas Vepstas
2007-05-12  9:15         ` Christoph Hellwig
2007-05-21 15:28         ` Maxim Uvarov
2007-05-08 23:32 ` Linas Vepstas
2007-05-10 10:22   ` Maxim Uvarov [this message]
2007-05-10 16:47     ` Linas Vepstas
  -- strict thread matches above, loose matches on Subject: below --
2007-06-05 14:43 Maxim Uvarov
2007-06-06  6:38 ` Andrew Morton
2007-06-06 17:29   ` Jay Lan
2007-05-30 18:49 Maxim Uvarov
2007-06-04 19:19 ` Andrew Morton
2007-06-04 19:33   ` Jay Lan
2007-06-04 19:49     ` Jonathan Lim
2007-06-04 20:13   ` Jay Lan
2007-06-05  6:50   ` Balbir Singh
2007-05-22 17:19 Maxim Uvarov
2007-05-22 17:19 ` Maxim Uvarov
2007-05-22 18:48 ` Dave Jones
2007-05-22 18:48   ` Dave Jones
2007-05-22 20:08 ` Andrew Morton
2007-05-22 20:08   ` Andrew Morton
2007-05-11 17:13 Maxim Uvarov
2007-05-11 17:13 ` Maxim Uvarov
2007-05-12 10:39 ` Andrea Righi
2007-05-12 10:39   ` Andrea Righi
2007-05-10 17:19 Maxim Uvarov
2007-05-10 23:31 ` Andi Kleen
2007-05-11 16:55   ` Maxim Uvarov
2007-05-10 12:39 Maxim Uvarov
2007-05-10 12:38 ` Josh Boyer
2007-05-10 18:23   ` Maxim Uvarov
2007-05-10 11:42 Maxim Uvarov
2007-05-10 12:03 ` Pavel Machek
2007-05-10 18:25 ` Andrew Morton
     [not found] <4625FFCF.8040402@ru.mvista.com>
2007-04-20  4:36 ` [patch] " Andrew Morton
2007-04-25 10:59   ` Maxim Uvarov

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=4642F27E.10700@ru.mvista.com \
    --to=muvarov@ru.mvista.com \
    --cc=akpm@linux-foundation.org \
    --cc=dada1@cosmosbay.com \
    --cc=linas@austin.ibm.com \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=pavel@ucw.cz \
    --cc=wli@holomorphy.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.