Re: [PATCH] Make XFS workqueues nonfreezable
On Thu, 1 Mar 2007 10:15:21 +0100 Pavel Machek <[EMAIL PROTECTED]> wrote: > > > - xfslogd_workqueue = create_freezeable_workqueue("xfslogd"); > > > + xfslogd_workqueue = create_workqueue("xfslogd"); > > > if (!xfslogd_workqueue) > > > goto out_free_buf_zone; > > > > > > - xfsdatad_workqueue = create_freezeable_workqueue("xfsdatad"); > > > + xfsdatad_workqueue = create_workqueue("xfsdatad"); > > > if (!xfsdatad_workqueue) > > > goto out_destroy_xfslogd_workqueue; > > > > > > > Won't this break suspend+XFS? > > > > If so, and given that nobody seems to be reporting this deadlock, perhaps > > we'd be better off leaving things as-is for the while? > > Worst case is not breaking suspend+XFS, worst case is XFS writing to > disk after freeze(), leading to subtle fs corruption. > > (But noone could reproduce corruption before, and I was told XFS will > not do those writes these days). hm, OK. To avoid making a decision I sent the patch to David ;) - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Make XFS workqueues nonfreezable
Hi! > > Since freezable workqueues are broken in 2.6.21-rc > > (cf. http://marc.theaimsgroup.com/?l=linux-kernel&m=116855740612755, > > http://marc.theaimsgroup.com/?l=linux-kernel&m=117261312523921&w=2) > > it's better to change the only user of them, which is XFS, to use "normal" > > nonfreezable workqueues. > > > > Signed-off-by: Rafael J. Wysocki <[EMAIL PROTECTED]> > > --- > > fs/xfs/linux-2.6/xfs_buf.c |4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > Index: linux-2.6.21-rc2/fs/xfs/linux-2.6/xfs_buf.c > > === > > --- linux-2.6.21-rc2.orig/fs/xfs/linux-2.6/xfs_buf.c > > +++ linux-2.6.21-rc2/fs/xfs/linux-2.6/xfs_buf.c > > @@ -1829,11 +1829,11 @@ xfs_buf_init(void) > > if (!xfs_buf_zone) > > goto out_free_trace_buf; > > > > - xfslogd_workqueue = create_freezeable_workqueue("xfslogd"); > > + xfslogd_workqueue = create_workqueue("xfslogd"); > > if (!xfslogd_workqueue) > > goto out_free_buf_zone; > > > > - xfsdatad_workqueue = create_freezeable_workqueue("xfsdatad"); > > + xfsdatad_workqueue = create_workqueue("xfsdatad"); > > if (!xfsdatad_workqueue) > > goto out_destroy_xfslogd_workqueue; > > > > Won't this break suspend+XFS? > > If so, and given that nobody seems to be reporting this deadlock, perhaps > we'd be better off leaving things as-is for the while? Worst case is not breaking suspend+XFS, worst case is XFS writing to disk after freeze(), leading to subtle fs corruption. (But noone could reproduce corruption before, and I was told XFS will not do those writes these days). Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Make XFS workqueues nonfreezable
On Thu, 1 Mar 2007 00:54:32 +0100 "Rafael J. Wysocki" <[EMAIL PROTECTED]> wrote: > Since freezable workqueues are broken in 2.6.21-rc > (cf. http://marc.theaimsgroup.com/?l=linux-kernel&m=116855740612755, > http://marc.theaimsgroup.com/?l=linux-kernel&m=117261312523921&w=2) > it's better to change the only user of them, which is XFS, to use "normal" > nonfreezable workqueues. > > Signed-off-by: Rafael J. Wysocki <[EMAIL PROTECTED]> > --- > fs/xfs/linux-2.6/xfs_buf.c |4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > Index: linux-2.6.21-rc2/fs/xfs/linux-2.6/xfs_buf.c > === > --- linux-2.6.21-rc2.orig/fs/xfs/linux-2.6/xfs_buf.c > +++ linux-2.6.21-rc2/fs/xfs/linux-2.6/xfs_buf.c > @@ -1829,11 +1829,11 @@ xfs_buf_init(void) > if (!xfs_buf_zone) > goto out_free_trace_buf; > > - xfslogd_workqueue = create_freezeable_workqueue("xfslogd"); > + xfslogd_workqueue = create_workqueue("xfslogd"); > if (!xfslogd_workqueue) > goto out_free_buf_zone; > > - xfsdatad_workqueue = create_freezeable_workqueue("xfsdatad"); > + xfsdatad_workqueue = create_workqueue("xfsdatad"); > if (!xfsdatad_workqueue) > goto out_destroy_xfslogd_workqueue; > Won't this break suspend+XFS? If so, and given that nobody seems to be reporting this deadlock, perhaps we'd be better off leaving things as-is for the while? - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH] Make XFS workqueues nonfreezable
Since freezable workqueues are broken in 2.6.21-rc (cf. http://marc.theaimsgroup.com/?l=linux-kernel&m=116855740612755, http://marc.theaimsgroup.com/?l=linux-kernel&m=117261312523921&w=2) it's better to change the only user of them, which is XFS, to use "normal" nonfreezable workqueues. Signed-off-by: Rafael J. Wysocki <[EMAIL PROTECTED]> --- fs/xfs/linux-2.6/xfs_buf.c |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) Index: linux-2.6.21-rc2/fs/xfs/linux-2.6/xfs_buf.c === --- linux-2.6.21-rc2.orig/fs/xfs/linux-2.6/xfs_buf.c +++ linux-2.6.21-rc2/fs/xfs/linux-2.6/xfs_buf.c @@ -1829,11 +1829,11 @@ xfs_buf_init(void) if (!xfs_buf_zone) goto out_free_trace_buf; - xfslogd_workqueue = create_freezeable_workqueue("xfslogd"); + xfslogd_workqueue = create_workqueue("xfslogd"); if (!xfslogd_workqueue) goto out_free_buf_zone; - xfsdatad_workqueue = create_freezeable_workqueue("xfsdatad"); + xfsdatad_workqueue = create_workqueue("xfsdatad"); if (!xfsdatad_workqueue) goto out_destroy_xfslogd_workqueue; - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/