linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Adrian Bunk <bunk@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Rusty Russell <rusty@rustcorp.com.au>,
	"Alan D. Brunelle" <Alan.Brunelle@hp.com>,
	"Rafael J. Wysocki" <rjw@sisk.pl>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Kernel Testers List <kernel-testers@vger.kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Arjan van de Ven <arjan@linux.intel.com>,
	Ingo Molnar <mingo@elte.hu>,
	linux-embedded@vger.kernel.org
Subject: Re: [Bug #11342] Linux 2.6.27-rc3: kernel BUG at mm/vmalloc.c - bisected
Date: Tue, 26 Aug 2008 23:21:34 +0300	[thread overview]
Message-ID: <20080826202134.GA11734@cs181140183.pp.htv.fi> (raw)
In-Reply-To: <alpine.LFD.1.10.0808261134530.3363@nehalem.linux-foundation.org>

On Tue, Aug 26, 2008 at 11:40:10AM -0700, Linus Torvalds wrote:
> 
> 
> On Tue, 26 Aug 2008, Adrian Bunk wrote:
> > 
> > A debugging option (for better traces) to disallow gcc some inlining 
> > might make sense (and might even make sense for distributions to 
> > enable in their kernels), but when you go to use cases that require
> > really small kernels the cost is too high.
> 
> You ignore the fact that it's really not just about debugging.

I had in mind that we anyway have to support it for tiny kernels.

I simply don't see that we add kconfig options for 5kB of code for
tiny kernels but remove something like this that can cause size
increases > 1%.

> Inlining really isn't the great tool some people think it is. Especially 
> not since gcc stack allocation is so horrid that it won't re-use stack 
> slots etc (which I don't disagree with per se - it's _hard_ to re-use 
> stack slots while still allowing code scheduling).

gcc's stack allocation has become better
(that's why we disable unit-at-a-time only for gcc 3.4 on i386).

> NOTE! I also would never claim that _our_ choices of "inline" are all that 
> great, and we've often inlined too much or not inlined things that really 
> could be inlined. But at least when a developer says "inline" (or forgets 
> to say it), we have somebody to blame. When the compiler does insane 
> things that doesn't suit us, we're just screwed.

Most LOCs of the kernel are not written by people like you or Al Viro or 
David Miller, and the average kernel developer is unlikely to do it as 
good as gcc.

For the average driver the choice is realistically between
"inline's randomly sprinkled across the driver" and
"no inline's, leave it to gcc".

And code evolves during the years from tiny with 1 caller to huge with 
many callers.

BTW:
I just ran checkstack on a (roughly) allyesconfig kernel, and we have a 
new driver that allocates "unsigned char recvbuf[1500];" on the stack...

> > But if you don't trust gcc's inlining you should revert
> > commit 3f9b5cc018566ad9562df0648395649aebdbc5e0 that increases gcc's 
> > freedom regarding what to inline in 2.6.27
> 
> Actually, that just allows gcc to _not_ inline. Which is probably ok.
> 
> (Well, it would be ok if gcc did it well enough, it obviously has some 
> problems at times).

With the "gcc inline's static functions" you complain about we have
4-5 years of experience.

Suddenly allowing 4 release series of gcc to ignore any inline's is a 
completely new area for us. I'd generally agree with giving gcc more 
freedom here, but I'd rather do it right by removing tons of wrong 
inline's than doing one global change hoping that it will make things 
better.

And whether the "optimized inlining" actually makes the kernel bigger or 
smaller depends in my experience on the .config and the gcc version.

> 			Linus

cu
Adrian

[1] there are some rare exceptions

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


  reply	other threads:[~2008-08-26 20:22 UTC|newest]

Thread overview: 222+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-23 18:07 2.6.27-rc4-git1: Reported regressions from 2.6.26 Rafael J. Wysocki
2008-08-23 18:07 ` [Bug #11141] no battery or DC status - Dell i1501 Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11191] 2.6.26-git8: spinlock lockup in c1e_idle() Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11207] VolanoMark regression with 2.6.27-rc1 Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11215] INFO: possible recursive locking detected ps2_command Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11220] Screen stays black after resume Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11219] KVM modules break emergency reboot Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11210] libata badness Rafael J. Wysocki
2008-08-23 22:23   ` Jeff Garzik
2008-08-24 21:04     ` Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11209] 2.6.27-rc1 process time accounting Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11230] Kconfig no longer outputs a .config with freshly updated defconfigs Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11237] corrupt PMD after resume Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11224] Only three cores found on quad-core machine Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11264] Invalid op opcode in kernel/workqueue Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11254] KVM: fix userspace ABI breakage Rafael J. Wysocki
2008-08-24 19:27   ` Adrian Bunk
2008-08-25 10:23     ` Avi Kivity
2008-08-23 18:10 ` [Bug #11271] BUG: fealnx in 2.6.27-rc1 Rafael J. Wysocki
2008-08-23 22:26   ` Jeff Garzik
2008-08-23 18:10 ` [Bug #11272] BUG: parport_serial in 2.6.27-rc1 for NetMos Technology PCI 9835 Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11276] build error: CONFIG_OPTIMIZE_INLINING=y causes gcc 4.2 to do stupid things Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11279] 2.6.27-rc0 Power Bugs with HP/Compaq Laptops Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11282] Please fix x86 defconfig regression Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11308] tbench regression on each kernel release from 2.6.22 -&gt; 2.6.28 Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11336] 2.6.27-rc2:stall while mounting root fs Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11334] myri10ge: use ioremap_wc: compilation failure on ARM Rafael J. Wysocki
2008-08-24 12:26   ` Martin Michlmayr
2008-08-24 21:05     ` Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11335] 2.6.27-rc2-git5 BUG: unable to handle kernel paging request Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11342] Linux 2.6.27-rc3: kernel BUG at mm/vmalloc.c - bisected Rafael J. Wysocki
2008-08-23 20:10   ` Linus Torvalds
2008-08-23 20:15     ` Arjan van de Ven
2008-08-25 12:07       ` Alan D. Brunelle
2008-08-23 20:17     ` Linus Torvalds
2008-08-25 12:03       ` Alan D. Brunelle
2008-08-25 12:22         ` Alan D. Brunelle
2008-08-25 18:00           ` Linus Torvalds
2008-08-25 18:09             ` Linus Torvalds
2008-08-25 20:19               ` Alan D. Brunelle
2008-08-25 20:43                 ` Linus Torvalds
2008-08-25 20:45                   ` Arjan van de Ven
2008-08-25 20:52                   ` Linus Torvalds
2008-08-25 21:15                     ` Linus Torvalds
2008-08-26  7:22                       ` Ingo Molnar
2008-08-26  7:46                         ` David Miller
2008-08-26  7:53                           ` Ingo Molnar
2008-08-26  8:36                             ` Yinghai Lu
2008-08-26 16:51                               ` Linus Torvalds
2008-08-26 17:08                                 ` Yinghai Lu
2008-09-25  1:50                                 ` Rusty Russell
2008-09-25  8:55                                   ` Ingo Molnar
2008-09-25 15:42                                   ` Linus Torvalds
2008-09-25 20:59                                     ` Subject: [RFC 1/1] cpumask: Provide new cpumask API Mike Travis
2008-09-26  5:25                                     ` [Bug #11342] Linux 2.6.27-rc3: kernel BUG at mm/vmalloc.c - bisected Rusty Russell
2008-09-26  5:53                                       ` Mike Travis
2008-09-27 19:16                                         ` Ingo Molnar
2008-09-29 14:33                                           ` Mike Travis
2008-09-30 11:04                                             ` Ingo Molnar
2008-09-30 16:14                                               ` Mike Travis
2008-09-30 16:46                                                 ` Linus Torvalds
2008-09-30 18:02                                                   ` Mike Travis
2008-09-30 22:22                                                     ` [RFC 1/1] cpumask: New cpumask API - take 2 - use unsigned longs Mike Travis
2008-10-01  0:45                                                       ` Rusty Russell
2008-10-01  0:44                                                   ` [Bug #11342] Linux 2.6.27-rc3: kernel BUG at mm/vmalloc.c - bisected Rusty Russell
2008-08-26 19:11                             ` Mike Travis
2008-08-26 19:06                           ` Mike Travis
2008-08-26 20:45                             ` David Miller
2008-08-29 12:42                               ` Jes Sorensen
2008-08-29 16:14                                 ` Linus Torvalds
2008-08-29 20:04                                   ` David Miller
2008-09-01 11:53                                   ` Jes Sorensen
2008-09-02 14:27                                   ` Jes Sorensen
2008-08-26 19:03                         ` Mike Travis
2008-08-26 19:40                           ` Linus Torvalds
2008-08-26 19:01                       ` Mike Travis
2008-08-26 19:09                         ` Linus Torvalds
2008-08-26 19:28                           ` Dave Jones
2008-08-26 20:01                             ` Mike Travis
2008-08-27  6:54                               ` Nick Piggin
2008-08-27  7:05                                 ` David Miller
2008-08-27  7:47                                   ` Nick Piggin
2008-08-27  8:44                                     ` David Miller
2008-08-27 14:48                                       ` Mike Travis
2008-08-27 14:36                                   ` Mike Travis
2008-08-27 14:35                                 ` Mike Travis
2008-08-26 19:35                           ` Mike Travis
2008-08-25 21:30                     ` Alan D. Brunelle
2008-08-25 22:07                       ` Christoph Lameter
2008-08-26  7:59                         ` Ingo Molnar
2008-08-26 19:48                           ` Mike Travis
2008-08-26  1:11                   ` Rusty Russell
2008-08-26 17:35                     ` Linus Torvalds
2008-08-26 18:30                       ` Adrian Bunk
2008-08-26 18:40                         ` Linus Torvalds
2008-08-26 20:21                           ` Adrian Bunk [this message]
2008-08-26 20:41                             ` Linus Torvalds
2008-08-27 16:21                               ` Jamie Lokier
2008-08-26 18:47                         ` Linus Torvalds
2008-08-26 19:02                           ` Jamie Lokier
2008-08-26 19:18                             ` Linus Torvalds
2008-08-26 20:59                           ` Adrian Bunk
2008-08-26 21:04                             ` Linus Torvalds
2008-08-26 22:54                               ` Parag Warudkar
2008-08-26 23:00                                 ` David VomLehn
2008-08-26 23:45                                   ` Adrian Bunk
2008-08-26 23:47                                 ` Linus Torvalds
2008-08-27  0:53                                   ` Greg Ungerer
2008-08-27  1:08                                     ` Parag Warudkar
2008-08-27  1:31                                       ` Greg Ungerer
2008-08-27  2:16                                         ` Parag Warudkar
2008-08-27  8:44                                           ` Bernd Petrovitsch
2008-08-27  0:58                                   ` Parag Warudkar
2008-08-27  1:49                                     ` Linus Torvalds
2008-08-27  2:36                                       ` Parag Warudkar
2008-08-27  2:52                                         ` Linus Torvalds
2008-08-27  8:32                                         ` Alan Cox
2008-08-27  6:01                                       ` Paul Mackerras
2008-08-27 10:58                                         ` Arjan van de Ven
2008-08-27 15:18                                         ` Linus Torvalds
2008-08-27 11:58                                       ` Adrian Bunk
2008-08-27  9:00                                     ` Bernd Petrovitsch
2008-08-27 12:56                                       ` Parag Warudkar
2008-08-27 13:17                                         ` Bernd Petrovitsch
2008-08-27 15:48                                           ` Jamie Lokier
2008-08-27 16:38                                             ` Bernd Petrovitsch
2008-08-27 17:51                                               ` Jamie Lokier
2008-08-27 19:30                                                 ` Bernd Petrovitsch
2008-08-28  0:06                                                 ` Greg Ungerer
2008-08-28  0:11                                             ` Greg Ungerer
2008-08-27  8:34                                 ` Bernd Petrovitsch
2008-08-26 23:24                               ` Adrian Bunk
2008-08-26 23:51                                 ` Linus Torvalds
2008-08-27  0:23                                   ` Adrian Bunk
2008-08-27  0:28                                     ` Linus Torvalds
2008-08-27 11:58                                       ` Adrian Bunk
2008-08-27 16:00                                         ` Paul Mundt
2008-08-27 17:35                                           ` Adrian Bunk
2008-08-28  0:32                                             ` Paul Mundt
2008-08-28  0:46                                               ` David Miller
2008-08-28  1:02                                                 ` Paul Mundt
2008-08-28 16:16                                               ` Adrian Bunk
2008-08-28  1:05                                           ` Greg Ungerer
2008-08-27  8:25                                 ` Alan Cox
2008-08-27 12:52                                   ` Parag Warudkar
2008-08-27 13:21                                     ` Alan Cox
2008-08-27 16:24                                       ` Parag Warudkar
2008-08-26 19:55                       ` Jeff Garzik
2008-08-26 20:06                         ` e1000 horridness (was Re: [Bug #11342] Linux 2.6.27-rc3: kernel BUG at mm/vmalloc.c - bisected) Linus Torvalds
2008-08-26 20:14                           ` Kok, Auke
2008-08-26 22:04                             ` Jeff Kirsher
2008-08-25 12:44       ` [Bug #11342] Linux 2.6.27-rc3: kernel BUG at mm/vmalloc.c - bisected Alan D. Brunelle
2008-08-25 13:13         ` Alan D. Brunelle
2008-08-25 18:02         ` Linus Torvalds
2008-08-25 14:05       ` Alan D. Brunelle
2008-08-23 18:10 ` [Bug #11340] LTP overnight run resulted in unusable box Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11343] SATA Cold Boot Problems with 2.6.27-rc[23] on nVidia 680i Rafael J. Wysocki
2008-08-23 22:34   ` Jeff Garzik
2008-08-23 18:10 ` [Bug #11357] Can not boot up with zd1211rw USB-Wlan Stick Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11354] AMD Elan regression with 2.6.27-rc3 Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11356] Linux 2.6.27-rc3 - build failure: undefined reference to `.lockdep_count_forward_deps' Rafael J. Wysocki
2008-08-24  6:13   ` Frans Pop
2008-08-24 21:10     ` Rafael J. Wysocki
2008-08-25 14:03     ` Adrian Bunk
2008-08-23 18:10 ` [Bug #11355] Regression in 2.6.27-rc2 when cross-building the kernel Rafael J. Wysocki
2008-08-24 21:34   ` Rafael J. Wysocki
2008-09-01  9:35     ` David Woodhouse
2008-09-01 16:51       ` Larry Finger
2008-09-01 17:37         ` David Woodhouse
2008-08-23 18:10 ` [Bug #11358] net: forcedeth call restore mac addr in nv_shutdown path Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11380] lockdep warning: cpu_add_remove_lock at:cpu_maps_update_begin+0x14/0x16 Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11361] my servers with nvidia mcp55 nic don't work with msi in second kernel by kexec Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11379] char/tpm: tpm_infineon no longer loaded for HP 2510p laptop Rafael J. Wysocki
2008-08-24  6:18   ` Frans Pop
2008-08-24 21:12     ` Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11360] mpc8xxx_wdt.c doesn't build modular Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11388] 2.6.27-rc3 warns about MTRR range; only 3 of 16gb of memory is usable Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11401] pktcdvd: BUG, NULL pointer dereference in pkt_ioctl, bisected Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11398] hda_intel: IRQ timing workaround is activated for card #0. Suggest a bigger bdl_pos_adj Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11382] e1000e: 2.6.27-rc1 corrupts EEPROM/NVM Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11403] 2.6.27-rc2 USB suspend regression Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11406] patch "x86: MOVE PCI IO ECS code to x86/pci" breaks CPU hotplug Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11405] 2.6.27-rc3 segfault on cold boot; not on warm boot Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11404] BUG: in 2.6.23-rc3-git7 in do_cciss_intr Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11402] skbuff bug? Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11407] suspend: unable to handle kernel paging request Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11409] build issue #564 for v2.6.27-rc4 : undefined reference to `NS8390p_init' Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11410] SLUB list_lock vs obj_hash.lock Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11413] get_rtc_time() triggers NMI watchdog in hpet_rtc_interrupt() Rafael J. Wysocki
2008-08-23 18:10 ` [Bug #11414] Random crashes with 2.6.27-rc3 on PPC Rafael J. Wysocki
2008-08-24 17:48 ` 2.6.27-rc4-git1: Reported regressions from 2.6.26 Linus Torvalds
2008-08-24 19:23   ` David Greaves
2008-08-25  0:51     ` Linus Torvalds
2008-08-24 18:03 ` Linus Torvalds
2008-08-24 18:43   ` Vegard Nossum
2008-08-24 18:58     ` Linus Torvalds
2008-08-25 13:03       ` Daniel J Blueman
2008-08-24 18:34 ` Linus Torvalds
2008-08-27 20:17   ` Peter Osterlund
2008-08-27 20:40     ` Linus Torvalds
2008-08-27 20:45       ` Linus Torvalds
2008-08-28 13:52       ` Christoph Hellwig
2008-09-02  7:26         ` Jens Axboe
2008-09-03  2:06           ` Al Viro
2008-09-04 10:13             ` Jens Axboe
2008-09-15  5:30               ` Al Viro
2008-08-27 22:08     ` Alan Cox
2008-08-27 22:38       ` Linus Torvalds
2008-08-27 22:28         ` Alan Cox
2008-08-27 23:00           ` Linus Torvalds
2008-08-27 23:12             ` Linus Torvalds
2008-08-28  0:35               ` Linus Torvalds
2008-08-27 22:43         ` David Miller
2008-08-27 22:45         ` Alexey Dobriyan
2008-08-24 18:52 ` Linus Torvalds
2008-08-24 22:50   ` Sean Young
2008-08-25  0:16   ` H. Peter Anvin
2008-08-24 19:03 ` Linus Torvalds
2008-08-24 19:23   ` Adrian Bunk
2008-08-24 21:40 ` Rafael J. Wysocki
2008-08-25  0:48 ` Benjamin Herrenschmidt
2008-08-25 11:40   ` Rafael J. Wysocki

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=20080826202134.GA11734@cs181140183.pp.htv.fi \
    --to=bunk@kernel.org \
    --cc=Alan.Brunelle@hp.com \
    --cc=akpm@linux-foundation.org \
    --cc=arjan@linux.intel.com \
    --cc=kernel-testers@vger.kernel.org \
    --cc=linux-embedded@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=rjw@sisk.pl \
    --cc=rusty@rustcorp.com.au \
    --cc=torvalds@linux-foundation.org \
    /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;
as well as URLs for NNTP newsgroup(s).