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

Paul E. McKenney
2015-01-10T19:57:15Z

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
>