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
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20080516195223.GA5308@beyonder.ift.unesp.br>
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ