[OpenAFS] Question about GCPAGs

Mike Polek mike@pictage.com
Fri, 29 Feb 2008 11:05:26 -0800


Hi, All,

I haven't heard anything on this previous post.... and it may be
becoming more of an issue. Is the following kernel BUG report
related to the PAGs not being garbage collected? Is it something
I should be seriously worried about? And is it something that
has already been fixed post 1.4.4? I've seen it in my testing
under heavy loads, and it just showed up on a production machine
today under not-so-heavy load. Below snippet is from the production
server.

Thanks!
Mike


openafs: afs global lock not held at 
/usr/src/redhat/BUILD/openafs-1.4.3/src/libafs/MODLOAD-2.6.20-1.2962.fc6-SP/afs_lock.c:133
------------[ cut here ]------------
kernel BUG at 
/usr/src/redhat/BUILD/openafs-1.4.3/src/libafs/MODLOAD-2.6.20-1.2962.fc6-SP/afs_lock.c:133!
invalid opcode: 0000 [#1]
SMP
last sysfs file: /block/ram0/range
Modules linked in: ipv6 sunrpc ipip tunnel4 dm_mirror dm_multipath dm_mod 
video sbs i2c_ec dock button battery asus_acpi backlight ac parport_pc lp 
parport scb2_flash mtdcore chipreg map_funcs ide_cd floppy i2c_piix4 cdrom 
serio_raw i2c_core pcspkr ehci_hcd ohci_hcd uhci_hcd openafs(P)(U) e100 mii 
e1000
CPU:    1
EIP:    0060:[<cf902413>]    Tainted: P      VLI
EFLAGS: 00010286   (2.6.20-1.2962.fc6 #1)
EIP is at Afs_Lock_Obtain+0x40/0x181 [openafs]
eax: 00000083   ebx: cf966920   ecx: c0701090   edx: 00000086
esi: ffffffff   edi: 00000002   ebp: c070c70c   esp: c24c3f20
ds: 007b   es: 007b   ss: 0068
Process events/1 (pid: 9, ti=c24c3000 task=c24be050 task.ti=c24c3000)
Stack: cf946a39 cf9469e2 00000085 c0434842 00000000 00000286 00000286 c620f2a0
        ffffffff 41b70613 cf909d40 c620f2a0 c620f2a8 00000296 cf935487 c04bee0c
        c070c710 c24b9dc0 c043471e 00000000 00000282 c24a8f08 c0620a17 c04bed56
Call Trace:
  [<c0434842>] __queue_work+0x51/0x5e
  [<cf909d40>] afs_FindUser+0x31/0x99 [openafs]
  [<cf935487>] afs_pag_destroy+0x10/0x2d [openafs]
  [<c04bee0c>] key_cleanup+0xb6/0xcf
  [<c043471e>] run_workqueue+0x85/0x125
  [<c0620a17>] _spin_lock_irqsave+0x9/0xd
  [<c04bed56>] key_cleanup+0x0/0xcf
  [<c0435090>] worker_thread+0xf9/0x124
  [<c042264f>] default_wake_function+0x0/0xc
  [<c0434f97>] worker_thread+0x0/0x124
  [<c04376a3>] kthread+0xb0/0xd9
  [<c04375f3>] kthread+0x0/0xd9
  [<c0404b33>] kernel_thread_helper+0x7/0x10
  =======================
Code: 65 8b 15 08 00 00 00 3b 82 a8 00 00 00 74 20 c7 44 24 08 85 00 00 00 
c7 44 24 04 e2 69 94 cf c7 04 24 39 6a 94 cf e8 72 56 b2 f0 <0f> 0b eb fe 8d 
44 24 14 e8 32 bc b2 f0 83 ff 02 74 38 7f 0b 83
EIP: [<cf902413>] Afs_Lock_Obtain+0x40/0x181 [openafs] SS:ESP 0068:c24c3f20


Mike Polek wrote:
> Hi, All,
>   I'm attempting to make sure that my PAGs get garbage collected,
> so I don't have issues with running out on my ftp server.
> It seems that after I set /proc/sys/afs/GCPAGs to 1, it's
> being reset to 8 after a period of time. I'm guessing it's
> this piece of code in afs_user.c:afs_GCPAGs() :
> 
> 
> 
>     /* If there is an internal problem and afs_GCPAGs_perproc_func()
>      * does not get called, disable gcpags so that we do not
>      * accidentally expire all the tokens in the system.
>      */
>     if (afs_gcpags == AFS_GCPAGS_OK && !afs_GCPAGs_perproc_count) {
>         afs_gcpags = AFS_GCPAGS_EPROCWALK;
>     }
> 
> 
> 
> 
> It's not clear to me under what conditions this gets triggered..
> i.e. why is afs_GCPAGs_perproc_func() not getting called?
> What might the "internal problem" be that the writer had in mind?
> 
> Is there a known solution to the issue? I found a prior email on
> the subject in the archives from last year, but there didn't
> seem to be any response.
> 
> Thanks in advance,
> 
> Mike
> _______________________________________________
> OpenAFS-info mailing list
> OpenAFS-info@openafs.org
> https://lists.openafs.org/mailman/listinfo/openafs-info
>