lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 16 May 2008 16:52:23 -0300 From: "Carlos R. Mafra" <crmafra2@...il.com> To: "Paul E. McKenney" <paulmck@...ux.vnet.ibm.com> Cc: linux-kernel@...r.kernel.org, matthew@....cx Subject: Re: [PATCH] Remove argument from open_softirq which is always NULL On Fri 16.May'08 at 11:28:07 -0700, Paul E. McKenney wrote: > On Thu, May 15, 2008 at 11:15:37AM -0300, Carlos R. Mafra wrote: > > From 9371c45e92c308425c0aad4794f61acb6fe6d140 Mon Sep 17 00:00:00 2001 > > From: Carlos R. Mafra <crmafra@....unesp.br> > > Date: Wed, 14 May 2008 18:26:06 -0300 > > Subject: [PATCH] Remove argument from open_softirq which is always NULL > > > > As git-grep shows, open_softirq() is always called with the last argument > > being NULL > > > > block/blk-core.c: open_softirq(BLOCK_SOFTIRQ, blk_done_softirq, NULL); > > kernel/hrtimer.c: open_softirq(HRTIMER_SOFTIRQ, run_hrtimer_softirq, NULL); > > kernel/rcuclassic.c: open_softirq(RCU_SOFTIRQ, rcu_process_callbacks, NULL); > > kernel/rcupreempt.c: open_softirq(RCU_SOFTIRQ, rcu_process_callbacks, NULL); > > kernel/sched.c: open_softirq(SCHED_SOFTIRQ, run_rebalance_domains, NULL); > > kernel/softirq.c: open_softirq(TASKLET_SOFTIRQ, tasklet_action, NULL); > > kernel/softirq.c: open_softirq(HI_SOFTIRQ, tasklet_hi_action, NULL); > > kernel/timer.c: open_softirq(TIMER_SOFTIRQ, run_timer_softirq, NULL); > > net/core/dev.c: open_softirq(NET_TX_SOFTIRQ, net_tx_action, NULL); > > net/core/dev.c: open_softirq(NET_RX_SOFTIRQ, net_rx_action, NULL); > > > > This observation has already been made by Matthew Wilcox in June 2002 > > (http://www.cs.helsinki.fi/linux/linux-kernel/2002-25/0687.html) > > > > "I notice that none of the current softirq routines use the data element > > passed to them." > > > > and the situation hasn't changed since them. So it appears we can safely > > remove that extra argument to save 128 (54) bytes of kernel data (text). > > Good stuff!!! Thanks a lot! > Will there also be a similar set of patches that removes the extra > argument from the invoked function? For example: > > static void rcu_process_callbacks(struct softirq_action *unused) > > could now become: > > static void rcu_process_callbacks(void) That was my intention at first when I came acroos run_hrtimer_softirq(struct softirq_action *h) in hrtimer.c, which then led me to read more code and notice that I could do the cleanup in this patch. You've just gave me the motivation I needed to keep cleaning (and learning) further, as the original bug which motivated me to look at those things does not happen anymore in my laptop :-) I will try to do another patch soon, but I will travel tomorrow so it may take a few days. > Acked-by: Paul E. McKenney <paulmck@...ux.vnet.ibm.com> Thanks, Carlos -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists