xfs
[Top] [All Lists]

TAKE 950027 - xfs_icsb_lock_all_counters fails with CONFIG_PREEMPT and >

To: linux-xfs@xxxxxxxxxxx, sgi.bugs.xfs@xxxxxxxxxxxx
Subject: TAKE 950027 - xfs_icsb_lock_all_counters fails with CONFIG_PREEMPT and >=256p
From: dgc@xxxxxxx (David Chinner)
Date: Wed, 1 Mar 2006 23:53:20 +1100 (EST)
Sender: linux-xfs-bounce@xxxxxxxxxxx
using a spinlock per cpu for superblock counter exclusion results in
a preempt counter overflow at 256p and above. Change the exclusion mechanism
to use atomic bit operations and busy wait loops to emulate the spin
lock exclusion mechanism but without the preempt count issues.

Date:  Wed Mar  1 23:52:17 AEDT 2006
Workarea:  chook.melbourne.sgi.com:/build/dgc/isms/2.6.x-xfs
Inspected by:  nathans

The following file(s) were checked into:
  longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb


Modid:  xfs-linux-melb:xfs-kern:25338a
fs/xfs/xfs_mount.h - 1.216 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_mount.h.diff?r1=text&tr1=1.216&r2=text&tr2=1.215&f=h
        - Use a flag bit for per-cpu counter exclusion rather than a spin lock
          to prevent preempt count overflows.

fs/xfs/xfs_mount.c - 1.372 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_mount.c.diff?r1=text&tr1=1.372&r2=text&tr2=1.371&f=h
        - Use a flag bit for per-cpu counter exclusion rather than a spin lock
          to prevent preempt count overflows.

fs/xfs/linux-2.6/xfs_linux.h - 1.142 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_linux.h.diff?r1=text&tr1=1.142&r2=text&tr2=1.141&f=h
        - Per-cpu superblock counter locks need to busy wait.



<Prev in Thread] Current Thread [Next in Thread>