[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

kexec_load failed: Device or resource busy



Hi,

I hope it is the right list for that question. Debian Etch running "Linux test1 2.6.18-5-686 #1 SMP Fri Jun 1 00:47:00 UTC 2007 i686 GNU/Linux". If this can be of any interest, it is running from the memory (the root filesystem is tmpfs). I use kexec for week to reboot the machine without any problem until yesterday when I got this error trying to load the kernel:

kexec -l /boot/vmlinuz-2.6.18-5-686 --append="boot=stage2 rootfstype=tmpfs rootflags=size=1g rootdelay=30 rw panic=60" --initrd=/boot/initrd.img-2.6.18-5-686
kexec_load failed: Device or resource busy
entry       = 0x96498 flags = 0
nr_segments = 4
segment[0].buf   = 0x806e6f0
segment[0].bufsz = 204e
segment[0].mem   = 0x92000
segment[0].memsz = 3000
segment[1].buf   = 0x8067528
segment[1].bufsz = 7100
segment[1].mem   = 0x96000
segment[1].memsz = 9000
segment[2].buf   = 0xb7cb9008
segment[2].bufsz = 131a7e
segment[2].mem   = 0x100000
segment[2].memsz = 132000
segment[3].buf   = 0xb7871008
segment[3].bufsz = 445ec0
segment[3].mem   = 0x1fbb9000
segment[3].memsz = 446000

I didn't try to reboot and try again, because I'm afraid I should not reproduce the error and until this is only a test machine, I do not want to get this error again when I go production.  I get the same error no matter which kernel I try to load and which flags I provide to it.
Here is what I get from "kexec -u".

kexec -u
kexec_load (0 segments) failed: Device or resource busy

Here is strace of the error, hope it can help.

execve("/sbin/kexec", ["kexec", "-l", "/boot/vmlinuz-2.6.18-5-686", "--append=boot=stage2 rootf"..., "--initrd=/boot/initrd.img-2.6.18"...], [/* 15 vars */]) = 0
uname({sys="Linux", node="test1", ...}) = 0
brk(0)                                  = 0x8067000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f23000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=10732, ...}) = 0
mmap2(NULL, 10732, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f20000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/tls/libc.so.6", O_RDONLY)    = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240O\1"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=1241392, ...}) = 0
mmap2(NULL, 1251484, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7dee000
mmap2(0xb7f16000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x127) = 0xb7f16000
mmap2(0xb7f1d000, 10396, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f1d000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7ded000
mprotect(0xb7f16000, 20480, PROT_READ)  = 0
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7ded8e0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
munmap(0xb7f20000, 10732)               = 0
open("/boot/vmlinuz-2.6.18-5-686", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=1260158, ...}) = 0
mmap2(NULL, 1261568, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7cb9000
read(3, "f\352\10\0\0\0\300\7\214\310\216\330\216\300\216\320\274"..., 1260158) = 1260158
close(3)                                = 0
brk(0)                                  = 0x8067000
brk(0x8088000)                          = 0x8088000
open("/proc/iomem", O_RDONLY)           = 3
fstat64(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f22000
read(3, "00000100-0009f3ff : System RAM\n0"..., 1024) = 1024
read(3, "1\n    fde60000-fde6ffff : tg3\n  "..., 1024) = 448
read(3, "", 1024)                       = 0
close(3)                                = 0
munmap(0xb7f22000, 4096)                = 0
open("/boot/initrd.img-2.6.18-5-686", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=4480704, ...}) = 0
mmap2(NULL, 4481024, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7873000
read(3, "\37\213\10\0\2352TG\2\3\304<kW\333H\262\371j\375\212\216"..., 4480704) = 4480704
close(3)                                = 0
open("/proc/iomem", O_RDONLY)           = 3
fstat64(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f22000
read(3, "00000100-0009f3ff : System RAM\n0"..., 1024) = 1024
read(3, "1\n    fde60000-fde6ffff : tg3\n  "..., 1024) = 448
read(3, "", 1024)                       = 0
close(3)                                = 0
munmap(0xb7f22000, 4096)                = 0
uname({sys="Linux", node="test1", ...}) = 0
sys_kexec_load(0x96498, 0x4, 0x8070918, 0, 0x40) = -1 EBUSY (Device or resource busy)
write(2, "kexec_load failed: Device or res"..., 43kexec_load failed: Device or resource busy
) = 43
write(2, "entry       = 0x96498 flags = 0\n", 32entry       = 0x96498 flags = 0
) = 32
write(2, "nr_segments = 4\n", 16nr_segments = 4
)       = 16
write(2, "segment[0].buf   = 0x806e6f0\n", 29segment[0].buf   = 0x806e6f0
) = 29
write(2, "segment[0].bufsz = 204e\n", 24segment[0].bufsz = 204e
) = 24
write(2, "segment[0].mem   = 0x92000\n", 27segment[0].mem   = 0x92000
) = 27
write(2, "segment[0].memsz = 3000\n", 24segment[0].memsz = 3000
) = 24
write(2, "segment[1].buf   = 0x8067528\n", 29segment[1].buf   = 0x8067528
) = 29
write(2, "segment[1].bufsz = 7100\n", 24segment[1].bufsz = 7100
) = 24
write(2, "segment[1].mem   = 0x96000\n", 27segment[1].mem   = 0x96000
) = 27
write(2, "segment[1].memsz = 9000\n", 24segment[1].memsz = 9000
) = 24
write(2, "segment[2].buf   = 0xb7cbb008\n", 30segment[2].buf   = 0xb7cbb008
) = 30
write(2, "segment[2].bufsz = 131a7e\n", 26segment[2].bufsz = 131a7e
) = 26
write(2, "segment[2].mem   = 0x100000\n", 28segment[2].mem   = 0x100000
) = 28
write(2, "segment[2].memsz = 132000\n", 26segment[2].memsz = 132000
) = 26
write(2, "segment[3].buf   = 0xb7873008\n", 30segment[3].buf   = 0xb7873008
) = 30
write(2, "segment[3].bufsz = 445ec0\n", 26segment[3].bufsz = 445ec0
) = 26
write(2, "segment[3].mem   = 0x1fbb9000\n", 30segment[3].mem   = 0x1fbb9000
) = 30
write(2, "segment[3].memsz = 446000\n", 26segment[3].memsz = 446000
) = 26
exit_group(-1)                          = ?
Process 3919 detached

Any help would be greatly appreciated.
Emil

Reply to: