linux/drivers
Nigel Cunningham ec9a13cdbf ieee1394: node manager causes up to ~3.25s delay in freezing tasks
The firewire nodemanager function "nodemgr_host_thread" contains a loop
that calls try_to_freeze near the top of the loop, but then delays for
up to 3.25 seconds (plus time to do work) before getting back to the top
of the loop. When starting a cycle post-boot, this doesn't seem to bite,
but it is causing a noticeable delay at boot time, when freezing
processes prior to starting to read the image.

The following patch adds invocation of try_to_freeze to the subloops
that are used in the body of this function. With these additions, the
time to freeze when starting to resume at boot time is virtually zero.
I'm no expert on firewire, and so don't know that we shouldn't check
the return value and jump back to the top of the loop or such like after
being frozen, but I submit it for your consideration.

Signed-off-by: Nigel Cunningham <nigel@tuxonice.net>

The delay until nodemgr freezes was up to 0.25s (plus time for node
probes) in Linux 2.6.27 and older and up to 3.25s (plus ~) since Linux
2.6.28-rc1, hence much more noticeable.

try_to_freeze() without any jump is correct.  The surrounding code in
the respective loops will catch whether another bus reset happens during
the freeze and handle it.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2008-12-09 19:34:33 +01:00
..
accessibility
acpi Revert "ACPI: battery: Convert discharge energy rate to current properly" 2008-12-05 13:30:03 -08:00
amba
ata ata: Fix experimental tags 2008-12-09 00:44:29 -05:00
atm ATM: horizon, fix hrz_probe fail path 2008-11-29 20:42:28 -08:00
auxdisplay
base
block [PATCH] fix bogus argument of blkdev_put() in pktcdvd 2008-12-04 04:22:59 -05:00
bluetooth
cdrom
char Fix incorrect use of loose in tty/serial drivers 2008-12-05 13:40:52 -08:00
clocksource
connector
cpufreq
cpuidle
crypto fix talitos 2008-11-30 10:03:36 -08:00
dca
dio
dma
edac i82875p_edac: fix module remove 2008-12-01 19:55:25 -08:00
eisa
firewire firewire: fw-sbp2: another iPod mini quirk entry 2008-11-25 21:38:31 +01:00
firmware
gpio gpiolib: extend gpio label column width in debugfs file 2008-11-19 18:49:57 -08:00
gpu drm/i915: Disable the GM965 MSI errata workaround. 2008-12-09 15:37:24 +10:00
hid HID: Apple ALU wireless keyboards are bluetooth devices 2008-11-28 15:09:26 +01:00
hwmon hwmon: applesmc: make applesmc load automatically on startup 2008-12-01 19:55:24 -08:00
i2c i2c-parport: Fix misplaced parport_release call 2008-11-28 15:24:39 +01:00
ide ide: build-fix for CONFIG_BLK_DEV_IDEDMA_PMAC=n 2008-12-08 17:52:05 +01:00
idle
ieee1394 ieee1394: node manager causes up to ~3.25s delay in freezing tasks 2008-12-09 19:34:33 +01:00
infiniband Merge branches 'ehca' and 'mlx4' into for-linus 2008-12-01 10:11:50 -08:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2008-11-30 11:05:21 -08:00
isdn hysdn: fix writing outside the field on 64 bits 2008-12-03 21:01:28 -08:00
leds
lguest
macintosh rackmeter section fixes 2008-11-30 10:03:37 -08:00
mca
md block: fix setting of max_segment_size and seg_boundary mask 2008-12-03 12:55:55 +01:00
media em28xx: remove backward compat macro added on a previous fix 2008-12-01 18:04:14 -02:00
memstick
message drivers/message/i2o/iop.c: cleanup kerneldoc 2008-12-05 13:40:52 -08:00
mfd
misc sgi-gru: call fs_initcall() if statically linked 2008-12-02 15:51:35 -08:00
mmc
mtd Merge git://git.infradead.org/mtd-2.6 2008-12-09 08:28:36 -08:00
net zd1211rw: use unaligned safe memcmp() in-place of compare_ether_addr() 2008-12-05 09:18:35 -05:00
nubus
of
oprofile
parisc
parport parport_serial: fix array overflow 2008-12-01 19:55:24 -08:00
pci Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-12-02 15:55:05 -08:00
pcmcia
pnp
power
ps3
rapidio rapidio section noise 2008-11-30 10:03:37 -08:00
regulator
rtc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6 2008-12-02 15:55:43 -08:00
s390 [SCSI] zfcp: prevent double decrement on host_busy while being busy 2008-12-01 10:18:20 -06:00
sbus Revert "of_platform_driver noise on sparce" 2008-12-01 07:55:14 -08:00
scsi [PATCH 1/2] kill FMODE_NDELAY_NOW 2008-12-04 04:22:57 -05:00
serial Fix incorrect use of loose in tty/serial drivers 2008-12-05 13:40:52 -08:00
sh
sn
spi spi: fix spi_s3c24xx_gpio num_chipselect 2008-12-01 19:55:24 -08:00
ssb
staging
tc
telephony
thermal
uio
usb Fix incorrect use of loose in tty/serial drivers 2008-12-05 13:40:52 -08:00
uwb
video Merge master.kernel.org:/home/rmk/linux-2.6-arm 2008-12-09 08:29:31 -08:00
virtio
w1 W1_MASTER_DS1WM should depend on HAVE_CLK 2008-11-30 10:03:36 -08:00
watchdog iTCO_wdt: fix typo when setting TCO_EN bit 2008-12-03 16:20:19 -08:00
xen
zorro
Kconfig
Makefile