kern/140461: Fail to read from swap. The swap_pager.c contains incomplete routine as stated in its comments

Оксана varnie29a at mail.ru
Wed Nov 11 13:10:47 UTC 2009


Good day and thanks for quick response.

well, i've figured out a bit more about my issue. it occurs *only* when i heavily uses RAM, for instance, performing compilation of some C++ program with g++ which eats all RAM and uses swap then. meanwhile later when i try to correctly perform shutdown i get the described issue and the generated coredump.

i am sorry but i don't know how to utilize textdump, but i think kgdb log suits well too. here is a kgdb log of fresh coredump which i've got a few minutes ago, hope it helps. please stay in touch.

-------------------------------------------
varnie# gdb ./kernel.debug /var/crash/vmcore.3
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-marcel-freebsd"...
"/var/crash/vmcore.3" is not a core dump: File format not recognized
(gdb) q
varnie# kgdb kernel.debug /var/crash/vmcore.3
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-marcel-freebsd"...

Unread portion of the kernel message buffer:
<118>.
<118>.
<118>Nov 11 16:58:43 varnie syslogd: exiting on signal 15
Waiting (max 60 seconds) for system process `vnlru' to stop...done
Waiting (max 60 seconds) for system process `bufdaemon' to stop...done
Waiting (max 60 seconds) for system process `syncer' to stop...
Syncing disks, vnodes remaining...6 3 2 1 0 0 0 done
All buffers synced.
swap_pager: I/O error - pagein failed; blkno 520058,size 4096, error 5
panic: swap_pager_force_pagein: read from swap failed
cpuid = 0
Uptime: 37m52s
Physical memory: 999 MB
Dumping 78 MB: 63 47 31 15

Reading symbols from /boot/kernel/snd_emu10k1.ko...Reading symbols from /boot/kernel/snd_emu10k1.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/snd_emu10k1.ko
Reading symbols from /boot/kernel/sound.ko...Reading symbols from /boot/kernel/sound.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/sound.ko
Reading symbols from /boot/kernel/coretemp.ko...Reading symbols from /boot/kernel/coretemp.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/coretemp.ko
Reading symbols from /boot/modules/nvidia.ko...done.
Loaded symbols for /boot/modules/nvidia.ko
Reading symbols from /boot/kernel/linux.ko...Reading symbols from /boot/kernel/linux.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/linux.ko
Reading symbols from /boot/kernel/acpi.ko...Reading symbols from /boot/kernel/acpi.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/acpi.ko
#0  doadump () at pcpu.h:196
196 __asm __volatile("movl %%fs:0,%0" : "=r" (td));
(kgdb) backtrace      
#0  doadump () at pcpu.h:196
#1  0xc07e25f7 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:418
#2  0xc07e28c9 in panic (fmt=Variable "fmt" is not available.
) at /usr/src/sys/kern/kern_shutdown.c:574
#3  0xc0a11719 in swapoff_one (sp=0xc5209a00, td=0xc0cae2a0)
    at /usr/src/sys/vm/swap_pager.c:1571
#4  0xc0a11ba5 in swapoff_all () at /usr/src/sys/vm/swap_pager.c:2192
#5  0xc07e2389 in boot (howto=16392) at /usr/src/sys/kern/kern_shutdown.c:402
#6  0xc07e27a7 in reboot (td=0xc4c99d20, uap=0xc4a9fcfc)
    at /usr/src/sys/kern/kern_shutdown.c:172
#7  0xc0ae4505 in syscall (frame=0xc4a9fd38)
    at /usr/src/sys/i386/i386/trap.c:1090
#8  0xc0ac92d0 in Xint0x80_syscall () at /usr/src/sys/i386/i386/exception.s:255
#9  0x00000033 in ?? ()
Previous frame inner to this frame (corrupt stack?)
(kgdb) list *0xc0a11719
0xc0a11719 is in swapoff_one (/usr/src/sys/vm/swap_pager.c:1571).
1566 vm_pager_page_unswapped(m);
1567 return;
1568 }
1569
1570 if (swap_pager_getpages(object, &m, 1, 0) != VM_PAGER_OK)
1571 panic("swap_pager_force_pagein: read from swap failed");/*XXX*/
1572 vm_object_pip_subtract(object, 1);
1573 vm_page_lock_queues();
1574 vm_page_dirty(m);
1575 vm_page_dontneed(m);
(kgdb)
-------------------------------------------

All the best,
 Sergey.


More information about the freebsd-bugs mailing list