indefinite wait buffer take-II

From: Arno J. Klaassen <arno_at_heho.snv.jussieu.fr>
Date: 04 Jun 2006 23:06:21 +0200
Hello,

I don't know if this is the right medium, the diff is against releng-6.
In my spare-time I try, still in vain, to find a reproducable configuration
for the 6.1 desired feature "swap_pager warnings when swapfiles are in use"
to produce a panic rather than deadlock (on amd64).

The first part of the attached diff has as goal to verify that,
till now, no (logged) "wait buffer timeout" ever is "indefinite",
the second part to disable a panic when rebooting after a test
which did not produce deadlock.

I test on a notebook with 1G RAM, 1G swap-slice and 3G pagingfile, using
the attached simple program to force insane swapping.

Without the second part of the diff, it panics as follows :

  Unread portion of the kernel message buffer:
  <118>May 29 00:46:12 demo 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...0 0 0 done
  All buffers synced.
  Swap device ad0s3b removed.
  swap_pager: I/O error - pagein failed; blkno 268319,size 4096, error 5
  panic: swap_pager_force_pagein: read from swap failed

  (I do not have the corresponding kernel any longer but the
   trace is something like :

   (kgdb) where
   #0  doadump () at pcpu.h:172
   #1  0x0000000000000004 in ?? ()
   #2  0xffffffff8029a093 in boot (howto=260)
       at /files/bsd/src6/sys/kern/kern_shutdown.c:409
   #3  0xffffffff8029a696 in panic (fmt=0xffffff00177d5be0 "_at_ใช\022")
       at /files/bsd/src6/sys/kern/kern_shutdown.c:565
   #4  0xffffffff803f1cac in swapoff_one (sp=0xffffff002f9d2880, 
       td=0xffffffff80628200) at /files/bsd/src6/sys/vm/swap_pager.c:1614
   #5  0xffffffff803f1fc4 in swapoff_all ()
       at /files/bsd/src6/sys/vm/swap_pager.c:2233
   #6  0xffffffff8029a2ba in boot (howto=0)
       at /files/bsd/src6/sys/kern/kern_shutdown.c:393
   #7  0xffffffff8029a427 in reboot (td=0x0, uap=0xffffffffa81ecbc0)
       at /files/bsd/src6/sys/kern/kern_shutdown.c:169
   #8  0xffffffff80427b41 in syscall (frame=
         {tf_rdi = 0, tf_rsi = 9, tf_rdx = -1, tf_rcx = 3, tf_r8 = -1099117536288, tf_r9 = 140737488350440, tf_rax = 55, tf_rbx = 2, tf_rbp = 232662, tf_r10 = -2140997928, tf_r11 = 518, tf_r12 = 0, tf_r13 = 0, tf_r14 = 0, tf_r15 = 0, tf_trapno = 12, tf_addr = 34367711392, tf_flags = 0, tf_err = 2, tf_rip = 34367517868, tf_cs = 43, tf_rflags = 514, tf_rsp = 140737488350440, tf_ss = 35})
       at /files/bsd/src6/sys/amd64/amd64/trap.c:792
   #9  0xffffffff80415648 in Xfast_syscall ()
       at /files/bsd/src6/sys/amd64/amd64/exception.S:270

   )

Maybe this gives a glue to someone; apart from the kernel message I have
no indication of a "real" I/O error (and VM_PAGER_FAIL and VM_PAGER_ERROR
seem valid return values for swap_pager_getpages() anyway).

Thanks very much.

Arno





-- 

  Arno J. Klaassen

  SCITO S.A.
  8 rue des Haies
  F-75020 Paris, France
  http://scito.com


Received on Sun Jun 04 2006 - 19:06:25 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:56 UTC