public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Get rid of __syscall_count.
@ 2003-07-01  5:36 Rusty Russell
  2003-07-01  6:13 ` Keith Owens
  0 siblings, 1 reply; 2+ messages in thread
From: Rusty Russell @ 2003-07-01  5:36 UTC (permalink / raw)
  To: torvalds; +Cc: linux-kernel, trivial

Linus, please apply, unless someone has plans for this field.

Noone seems to use __syscall_count.  Remove the field from i386
irq_cpustat_t struct, and the generic accessor macros.

Because some archs have hardcoded asm references to offsets in this
structure, I haven't touched non-x86, but doing so is usually
trivial.
--
  Anyone who quotes me in their sig is an idiot. -- Rusty Russell.

Name: Remove unused __syscall_count from irq_stat struct.
Author: Rusty Russell
Status: Tested on 2.5.73-bk8

D: Noone seems to use __syscall_count.  Remove the field from i386
D: irq_cpustat_t struct, and the generic accessor macros.
D: 
D: Because some archs have hardcoded asm references to offsets in this
D: structure, I haven't touched non-x86, but doing so is usually
D: trivial.

diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .2143-linux-2.5.73-bk8/include/asm-i386/hardirq.h .2143-linux-2.5.73-bk8.updated/include/asm-i386/hardirq.h
--- .2143-linux-2.5.73-bk8/include/asm-i386/hardirq.h	2003-04-08 11:14:55.000000000 +1000
+++ .2143-linux-2.5.73-bk8.updated/include/asm-i386/hardirq.h	2003-07-01 13:49:21.000000000 +1000
@@ -7,7 +7,6 @@
 
 typedef struct {
 	unsigned int __softirq_pending;
-	unsigned int __syscall_count;
 	struct task_struct * __ksoftirqd_task; /* waitqueue is too large */
 	unsigned long idle_timestamp;
 	unsigned int __nmi_count;	/* arch dependent */
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .2143-linux-2.5.73-bk8/include/linux/irq_cpustat.h .2143-linux-2.5.73-bk8.updated/include/linux/irq_cpustat.h
--- .2143-linux-2.5.73-bk8/include/linux/irq_cpustat.h	2003-06-15 11:30:08.000000000 +1000
+++ .2143-linux-2.5.73-bk8.updated/include/linux/irq_cpustat.h	2003-07-01 13:48:58.000000000 +1000
@@ -29,8 +29,6 @@ extern irq_cpustat_t irq_stat[];		/* def
   /* arch independent irq_stat fields */
 #define softirq_pending(cpu)	__IRQ_STAT((cpu), __softirq_pending)
 #define local_softirq_pending()	softirq_pending(smp_processor_id())
-#define syscall_count(cpu)	__IRQ_STAT((cpu), __syscall_count)
-#define local_syscall_count()	syscall_count(smp_processor_id())
 #define ksoftirqd_task(cpu)	__IRQ_STAT((cpu), __ksoftirqd_task)
 #define local_ksoftirqd_task()	ksoftirqd_task(smp_processor_id())
 

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] Get rid of __syscall_count.
  2003-07-01  5:36 [PATCH] Get rid of __syscall_count Rusty Russell
@ 2003-07-01  6:13 ` Keith Owens
  0 siblings, 0 replies; 2+ messages in thread
From: Keith Owens @ 2003-07-01  6:13 UTC (permalink / raw)
  To: linux-kernel

On Tue, 01 Jul 2003 15:36:25 +1000, 
Rusty Russell <rusty@rustcorp.com.au> wrote:
>Linus, please apply, unless someone has plans for this field.
>
>Noone seems to use __syscall_count.  Remove the field from i386
>irq_cpustat_t struct, and the generic accessor macros.

The __syscall_count field was added around 2.4.0-test5-pre6 for
performance monitoring and detection of runaway processes.  For reasons
that have long since passed beyond recall, the asm specific bits never
got added.  This was the original patch.

--- linux/include/asm-i386/hardirq.h.orig	Thu Jul 20 09:38:50 2000
+++ linux/include/asm-i386/hardirq.h	Thu Jul 20 09:35:26 2000
@@ -9,7 +9,8 @@
 	unsigned int __local_irq_count;
 	unsigned int __local_bh_count;
 	unsigned int __nmi_counter;
-	unsigned int __pad[5];
+	unsigned int __syscall_counter; /* this is updated in entry.S */
+	unsigned int __pad[4];
 } ____cacheline_aligned irq_cpustat_t;
 
 extern irq_cpustat_t irq_stat [NR_CPUS];
--- linux/arch/i386/kernel/entry.S.orig	Thu Jul 20 09:39:21 2000
+++ linux/arch/i386/kernel/entry.S	Thu Jul 20 09:34:44 2000
@@ -206,9 +206,11 @@
 #ifdef CONFIG_SMP
 	movl processor(%ebx),%eax
 	shll $5,%eax
+	incl SYMBOL_NAME(irq_stat)+12(,%eax) # irq_stat.__syscall_counter
 	movl SYMBOL_NAME(softirq_state)(,%eax),%ecx
 	testl SYMBOL_NAME(softirq_state)+4(,%eax),%ecx
 #else
+	incl SYMBOL_NAME(irq_stat)+12	# irq_stat.__syscall_counter
 	movl SYMBOL_NAME(softirq_state),%ecx
 	testl SYMBOL_NAME(softirq_state)+4,%ecx
 #endif
--- linux/arch/i386/kernel/irq.c.orig	Thu Jul 20 09:39:41 2000
+++ linux/arch/i386/kernel/irq.c	Thu Jul 20 09:34:44 2000
@@ -170,6 +170,13 @@
 	p += sprintf(p, "\n");
 #endif
 	p += sprintf(p, "ERR: %10lu\n", irq_err_count);
+
+	p += sprintf(p, "SYS: ");
+	for (j = 0; j < smp_num_cpus; j++)
+		p += sprintf(p, "%10u ",
+			irq_stat[cpu_logical_map(j)].__syscall_counter);
+	p += sprintf(p, " %14s\n", "system calls");
+
 	return p - buf;
 }


# cat /proc/interrupts
           CPU0       CPU1
  0:      89722      99730    IO-APIC-edge  timer
  1:          2          0    IO-APIC-edge  keyboard
  2:          0          0          XT-PIC  cascade
  4:        168        162    IO-APIC-edge  serial
 13:          1          0          XT-PIC  fpu
 15:          1          3    IO-APIC-edge  ide1
 19:      27408      27300   IO-APIC-level  aic7xxx, aic7xxx
 21:      13432      13948   IO-APIC-level  eth0
NMI:     189327     189327
LOC:     189299     189289
ERR:          0
SYS:  130768636   69891376    system calls


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2003-07-01  5:59 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-07-01  5:36 [PATCH] Get rid of __syscall_count Rusty Russell
2003-07-01  6:13 ` Keith Owens

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox