Re: [PATCH RESEND v8 0/3] Introduce RCU string API

Omar Sandoval
2015-01-10T21:05:59Z

On Sat, Jan 10, 2015 at 11:56:48AM -0800, Paul E. McKenney wrote:
> On Fri, Jan 09, 2015 at 12:35:57PM -0800, Omar Sandoval wrote:
> > Hi, everyone,
> >
> > Now that the merge window and the holidays are over, I've rebased this on
> > v3.19-rc3 for the next merge window.
>
> Wasn't btrfs going to take this one?
>
> If I am supposed to take it, please split out the RCU infrastructure
> portion so that I can push it separately.
>
> Thanx, Paul
>
> > This patch series introduces the RCU string API and cleans up the wreckage of
> > sparse warnings which follow from it (shown here from when the patch was
> > briefly in the btrfs integration tree):
> >
> > On Thu, Nov 27, 2014 at 06:45:20AM +0800, kbuild test robot wrote:
> > > tree: git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git integration
> > > head: c7a37618b60026121255c69e042d74ae5631470c
> > > commit: 37aad79d90a0cbf82a5eda62dfe3af4241f5aca3 [38/39] Move BTRFS RCU string to common library
> > > reproduce:
> > > # apt-get install sparse
> > > git checkout 37aad79d90a0cbf82a5eda62dfe3af4241f5aca3
> > > make ARCH=x86_64 allmodconfig
> > > make C=1 CF=-D__CHECK_ENDIAN__
> > >
> > >
> > > sparse warnings: (new ones prefixed by >>)
> > >
> > > >> fs/btrfs/check-integrity.c:848:25: sparse: incorrect type in argument 1 (different address spaces)
> > > fs/btrfs/check-integrity.c:848:25: expected struct rcu_string [noderef] <asn:4>*rcu_str
> > > fs/btrfs/check-integrity.c:848:25: got struct rcu_string *name
> > [snip]
> >
> > Version 8 combines the original patch with another patch series I posted to fix
> > these warnings, which fixes the botched __rcu annotations that caused some of
> > the warnings and refactors the existing uses of rcustring to get rid of the
> > rest. There's also a patch to fix an RCU misuse.
> >
> > Thanks!
> >
> > v8: Get the __rcu annotations right, clean up RCU string-related sparse noise
> > v7: Add arguments to kernel doc for printk wrappers, use ##__VA_ARGS
> > v6: Add header dependencies to rcustring.h
> > v5: Rebase against v3.18-rc3
> > v4: Don't return anything from the printk wrappers on the assumption that
> > printk will return void someday
> > v3: Add __rcu annotation to relevant functions, add Paul's ack and Josh's
> > review
> >
> > Omar Sandoval (3):
> > Move BTRFS RCU string to common library
> > btrfs: refactor btrfs_device->name updates
> > btrfs: fix suspicious RCU in BTRFS_IOC_DEV_INFO
> >
> > fs/btrfs/check-integrity.c | 6 +--
> > fs/btrfs/dev-replace.c | 19 ++++----
> > fs/btrfs/disk-io.c | 6 +--
> > fs/btrfs/extent_io.c | 4 +-
> > fs/btrfs/ioctl.c | 14 +++---
> > fs/btrfs/raid56.c | 2 +-
> > fs/btrfs/rcu-string.h | 56 ------------------------
> > fs/btrfs/scrub.c | 15 ++++---
> > fs/btrfs/super.c | 2 +-
> > fs/btrfs/volumes.c | 107 ++++++++++++++++++++++++++++++---------------
> > fs/btrfs/volumes.h | 2 +-
> > include/linux/rcustring.h | 97 ++++++++++++++++++++++++++++++++++++++++
> > 12 files changed, 204 insertions(+), 126 deletions(-)
> > delete mode 100644 fs/btrfs/rcu-string.h
> > create mode 100644 include/linux/rcustring.h
> >
> > --
> > 2.2.1
> >
>

Hi, Paul,

I believe Chris is still going to take this one, just wanted to keep you
and the RCU reviewers in the loop.

Thanks!
--
Omar