Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756039AbZCDSr2 (ORCPT ); Wed, 4 Mar 2009 13:47:28 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753659AbZCDSrT (ORCPT ); Wed, 4 Mar 2009 13:47:19 -0500 Received: from mail-ew0-f177.google.com ([209.85.219.177]:65212 "EHLO mail-ew0-f177.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753323AbZCDSrR (ORCPT ); Wed, 4 Mar 2009 13:47:17 -0500 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=subject:from:to:cc:in-reply-to:references:content-type:date :message-id:mime-version:x-mailer; b=lZk+l3UQPfrlbvE29g0p0McWJJJC/Q3Atcc1mf6oIAl+PcjTnCdLX3rQgaez/uCxdR KQK75BSdLOtOU24UF01TSjjixbSla0Yovqspzc3RuZ8I6yl+Um1SgAqldDyhWsWEAle8 0gt7SX4rx/JtnQvHA3SJvhPdLvNTTBQw9GOjM= Subject: Re: [RFC PATCH 0/6] module, kbuild: Faster boot with custom kernel. From: Andreas Robinson To: Arjan van de Ven Cc: Kay Sievers , Rusty Russell , sam@ravnborg.org, linux-kernel@vger.kernel.org In-Reply-To: <20090302102703.50aaf724@infradead.org> References: <1234722028-8110-1-git-send-email-andr345@gmail.com> <200902181528.29697.rusty@rustcorp.com.au> <1234952753.10531.48.camel@andreas-laptop> <1235216636.7025.1023.camel@andreas-laptop> <1236004353.10055.49.camel@andreas-laptop> <20090302082003.1bb7bdc5@infradead.org> <20090302102703.50aaf724@infradead.org> Content-Type: multipart/mixed; boundary="=-gtK0ijxj+2IqmfStKzyo" Date: Wed, 04 Mar 2009 19:47:10 +0100 Message-Id: <1236192430.6785.111.camel@andreas-laptop> Mime-Version: 1.0 X-Mailer: Evolution 2.24.3 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 72540 Lines: 2301 --=-gtK0ijxj+2IqmfStKzyo Content-Type: text/plain Content-Transfer-Encoding: 7bit On Mon, 2009-03-02 at 10:27 -0800, Arjan van de Ven wrote: > On Mon, 2 Mar 2009 17:29:57 +0100 > Kay Sievers wrote: > > > On Mon, Mar 2, 2009 at 17:20, Arjan van de Ven > > wrote: [...] > > > I would strongly suggest that you turn on the async function calls > > > and look at the boot graph of the resulting kernel boot... if you > > > send that to me I can also take a look and make suggestions.... > > > > The "fastboot" kernel commandline option was used, as mentioned in the > > mail. Is there anything else? > > there is some sata level enabling needed depending on the system; > I'd love to see the bootgraph (scripts/bootgraph.pl) for the boot; > that shows exactly what happens when and for how long. > Well, this was certainly an eye opener. I can only say thanks for pointing out bootgraph! You asked for one graph, but Rusty suggested that I compare insmod and modprobe (though in another context), so I did more than one. The (somewhat messy) combined result from booting four initramfs images with slightly different setups is attached. All of them install the 94 modules needed on the test system and all use 2.6.29-rc6 configured like a Ubuntu 8.10 generic kernel. The module mutex minimizing patch is added, but not the stop_machine patch. (The merge failed due to my own patches. I need to have a look at it again.) Fastboot is enabled. bootgraph.pl was tweaked to, among other things, not stop until when a dummy module was inserted. This happened after udev had settled and just before chaining to the file system on the hard drive. 1: (top row, light blue). This installed modules using udev 124 and modprobe 3.3pre11 that are shipped with Ubuntu 8.10. 2: (second row, light green). This installed modules using the latest versions of udev (139) and modprobe (3.7pre6) from the git repos. 3: (third row, light yellow). This used a multithreaded insmod. It employs a very simple method to spawn child processes, so it looks different from the others and had to be compressed vertically to fit. (And four processes hang until all initcalls are done and the parent process dies, so it's kind of buggy too.) 4: (bottom row, pink). This is the megamodule, only added out of curiosity. It really is multithreaded, but it doesn't use do_one_initcall() so you can't see anything. --=-gtK0ijxj+2IqmfStKzyo Content-Disposition: attachment; filename="bootgraph.svg" Content-Type: image/svg+xml; name="bootgraph.svg" Content-Transfer-Encoding: 7bit image/svg+xml acpi_init acpi_scan_init acpi_pci_root_init acpi_pci_link_init genl_init atm_init hpet_late_init acpi_event_init pnpacpi_init init_acpi_pm_clocksource inet_init populate_rootfs init_kprobes slab_sysfs_init pci_init isapnp_init tty_init pty_init i8042_init mousedev_init acpi_thermal_init acpi_button_init acpi_video_init mmc_init alsa_card_azx_init init_nic ohci1394_init ohci_hcd_mod_init ehci_hcd_init k8temp_init sdhci_drv_init pcspkr_init pacpi_init evdev_init joydev_init nv_init init_sr uvc_init 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.89 0.99 1.09 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3 3.1 3.2 3.3 3.4 3.5 acpi_init acpi_scan_init acpi_ec_init acpi_pci_root_init acpi_pci_link_init net_dev_init genl_init atm_init hpet_late_init acpi_event_init pnpacpi_init init_acpi_pm_clocksource inet_init populate_rootfs init_kprobes slab_sysfs_init pci_init isapnp_init tty_init pty_init i8042_init mousedev_init acpi_button_init acpi_thermal_init acpi_ac_init acpi_video_init init_nic k8temp_init evdev_init nv_init pcspkr_init ohci_hcd_mod_init ehci_hcd_init alsa_card_azx_init sdhci_drv_init amd_init ohci1394_init ata_generic_init joydev_init uvc_init 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.89 0.99 1.09 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3 3.1 3.2 3.3 3.4 3.5 acpi_init acpi_scan_init acpi_pci_root_init acpi_pci_link_init genl_init hpet_late_init acpi_event_init pnpacpi_init init_acpi_pm_clocksource inet_init populate_rootfs init_kprobes slab_sysfs_init pci_init isapnp_init tty_init pty_init i8042_init mousedev_init fuse_init acpi_processor_init init_scsi init_nic journal_init acpi_button_init acpi_ac_init acpi_battery_init acpi_wmi_init evdev_init pcspkr_init k8temp_init joydev_init ppdev_init acpi_container_init inet6_init usb_init powernowk8_init shpcd_init parport_pc_init lp_init_module acpi_thermal_init ata_init nforce2_init acpi_video_init ehci_hcd_init ohci_hcd_mod_init ohci1394_init amd_init sdhci_drv_init nv_init ata_generic_init pacpi_init alsa_card_azx_init alsa_seq_oss_init 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.89 0.99 1.09 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3 3.1 3.2 3.3 3.4 3.5 acpi_init acpi_scan_init acpi_ec_init acpi_pci_root_init acpi_pci_link_init genl_init atm_init hpet_late_init acpi_event_init pnpacpi_init init_acpi_pm_clocksource inet_init populate_rootfs init_kprobes slab_sysfs_init pci_init isapnp_init tty_init pty_init i8042_init mousedev_init init_megamodule 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.89 0.99 1.09 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3 3.1 3.2 3.3 3.4 3.5 --=-gtK0ijxj+2IqmfStKzyo-- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/