xfs
[Top] [All Lists]

Re: [PATCH 2/5] xfs: use per-filesystem I/O completion workqueues

To: Ben Myers <bpm@xxxxxxx>, Tejun Heo <tj@xxxxxxxxxx>
Subject: Re: [PATCH 2/5] xfs: use per-filesystem I/O completion workqueues
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Mon, 14 Nov 2011 05:34:10 -0500
Cc: xfs@xxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx
In-reply-to: <20111110174242.GZ20464@xxxxxxx>
References: <20111108085614.478431403@xxxxxxxxxxxxxxxxxxxxxx> <20111108085846.291838677@xxxxxxxxxxxxxxxxxxxxxx> <20111108231118.GP5534@dastard> <20111109075847.GA20604@xxxxxxxxxxxxx> <20111110174242.GZ20464@xxxxxxx>
User-agent: Mutt/1.5.21 (2010-09-15)
On Thu, Nov 10, 2011 at 11:42:42AM -0600, Ben Myers wrote:
> > +STATIC int
> > +xfs_init_mount_workqueues(
> > +   struct xfs_mount        *mp)
> > +{
> > +#define XFS_WQ_NAME_LEN            512
> > +   char                    name[XFS_WQ_NAME_LEN];
> > +
> > +   snprintf(name, XFS_WQ_NAME_LEN, "xfs-data/%s", mp->m_fsname);
> > +   mp->m_data_workqueue = alloc_workqueue(name, WQ_MEM_RECLAIM, 1);
> > +   if (!mp->m_data_workqueue)
> > +           goto out;
> 
> Looks to me like alloc_workqueue holds on to that name pointer in
> wq->name... won't overwriting the name below be a problem?

It applies deep magic to make sure a pattern like mine is fine for
the lockdep lock name, but just uses it directly for the workqueue name.

Oddly enough the names seem to display correctly on my test systems
anyway.

Tejun, any chance to change alloc_workqueue to use the string pasting
trick also for the normal workqueue name, or even better add a varargs
version of alloc_workqueue?

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