Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1242988 > unrolled thread

slab.h debugging tags....

Started byValdis Kletnieks <Valdis.Kletnieks@vt.edu>
First post2015-10-09 03:50 +0200
Last post2015-10-10 20:40 +0200
Articles 3 — 3 participants

Back to article view | Back to linux.kernel


Contents

  slab.h debugging tags.... Valdis Kletnieks <Valdis.Kletnieks@vt.edu> - 2015-10-09 03:50 +0200
    Re: slab.h debugging tags.... Rasmus Villemoes <linux@rasmusvillemoes.dk> - 2015-10-09 21:50 +0200
      Re: slab.h debugging tags.... Valdis.Kletnieks@vt.edu - 2015-10-10 20:40 +0200

#1242988 — slab.h debugging tags....

FromValdis Kletnieks <Valdis.Kletnieks@vt.edu>
Date2015-10-09 03:50 +0200
Subjectslab.h debugging tags....
Message-ID<qhuYO-4mT-5@gated-at.bofh.it>

[Multipart message — attachments visible in raw view] — view raw

Author: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Date:   Wed Oct 7 15:09:20 2015 +1100

    slab.h: sprinkle __assume_aligned attributes

causes *tons* of whinges if you do 'make C=2' with sparse 0.5.0:

  CHECK   drivers/media/usb/pwc/pwc-if.c
include/linux/slab.h:307:43: error: attribute '__assume_aligned__': unknown attribute
include/linux/slab.h:308:58: error: attribute '__assume_aligned__': unknown attribute
include/linux/slab.h:337:73: error: attribute '__assume_aligned__': unknown attribute
include/linux/slab.h:375:74: error: attribute '__assume_aligned__': unknown attribute
include/linux/slab.h:378:80: error: attribute '__assume_aligned__': unknown attribute

[/usr/src/linux-next] grep CHECK build.default | wc
   1779    3558   59132
[/usr/src/linux-next] grep slab.h build.default | wc
   7225   43350  621350

Canned it after about 1/3 of the build.

Where's a sparse that can handle this?

[toc] | [next] | [standalone]


#1243626

FromRasmus Villemoes <linux@rasmusvillemoes.dk>
Date2015-10-09 21:50 +0200
Message-ID<qhLPY-3oh-7@gated-at.bofh.it>
In reply to#1242988
On Fri, Oct 09 2015, Valdis Kletnieks <Valdis.Kletnieks@vt.edu> wrote:

> Author: Rasmus Villemoes <linux@rasmusvillemoes.dk>
> Date:   Wed Oct 7 15:09:20 2015 +1100
>
>     slab.h: sprinkle __assume_aligned attributes
>
> causes *tons* of whinges if you do 'make C=2' with sparse 0.5.0:
>
>   CHECK   drivers/media/usb/pwc/pwc-if.c
> include/linux/slab.h:307:43: error: attribute '__assume_aligned__': unknown attribute
> include/linux/slab.h:308:58: error: attribute '__assume_aligned__': unknown attribute
> include/linux/slab.h:337:73: error: attribute '__assume_aligned__': unknown attribute
> include/linux/slab.h:375:74: error: attribute '__assume_aligned__': unknown attribute
> include/linux/slab.h:378:80: error: attribute '__assume_aligned__': unknown attribute
>
> [/usr/src/linux-next] grep CHECK build.default | wc
>    1779    3558   59132
> [/usr/src/linux-next] grep slab.h build.default | wc
>    7225   43350  621350
>
> Canned it after about 1/3 of the build.
>
> Where's a sparse that can handle this?

I don't think there is any (sparse 0.5 seems to be the latest). Hm,
if I'm reading the sparse source correctly, it is pretending to be
whatever gcc version it itself is built with. That's... um... let's just
say odd.

Does this fix it for you?

Subject: [PATCH] slab.h: hide assume_aligned attribute from sparse

sparse apparently pretends to be gcc >= 4.9, yet isn't prepared to
handle all the function attributes supported by those gccs and
complains loudly. So hide the definition of __assume_aligned from it
(so that the generic one in compiler.h gets used).

Reported-by: Valdis Kletnieks <Valdis.Kletnieks@vt.edu>
Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
---
 include/linux/compiler-gcc.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h
index 18606a460baf..dc13ceeef8c8 100644
--- a/include/linux/compiler-gcc.h
+++ b/include/linux/compiler-gcc.h
@@ -211,7 +211,7 @@
 #endif
 
 
-#if GCC_VERSION >= 40900
+#if GCC_VERSION >= 40900 && !defined(__CHECKER__)
 /*
  * __assume_aligned(n, k): Tell the optimizer that the returned
  * pointer can be assumed to be k modulo n. The second argument is
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1243967

FromValdis.Kletnieks@vt.edu
Date2015-10-10 20:40 +0200
Message-ID<qi7dM-Ii-33@gated-at.bofh.it>
In reply to#1243626

[Multipart message — attachments visible in raw view] — view raw

On Fri, 09 Oct 2015 21:40:33 +0200, Rasmus Villemoes said:

> Does this fix it for you?
>
> Subject: [PATCH] slab.h: hide assume_aligned attribute from sparse
>
> sparse apparently pretends to be gcc >= 4.9, yet isn't prepared to

Much better - it threw messages on a few files, it took me a moment to figure
out what happened.

  CHECK   init/do_mounts_initrd.c
init/do_mounts_initrd.c:8:2: warning: "Sparse checking disabled for this file"
include/linux/slab.h:307:43: error: attribute '__assume_aligned__': unknown attribute
include/linux/slab.h:308:58: error: attribute '__assume_aligned__': unknown attribute
include/linux/slab.h:337:73: error: attribute '__assume_aligned__': unknown attribute
include/linux/slab.h:375:74: error: attribute '__assume_aligned__': unknown attribute
include/linux/slab.h:378:80: error: attribute '__assume_aligned__': unknown attribute

but there's only like a few that disable sparse. Everything else behaves now.

Feel free to stick this on it:

Tested-By: Valdis Kletnieks <valdis.kletnieks@vt.edu>

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web