All of lore.kernel.org
 help / color / mirror / Atom feed
From: Josh Triplett <josh@freedesktop.org>
To: Philipp Reisner <philipp.reisner@linbit.com>
Cc: Johannes Berg <johannes@sipsolutions.net>, linux-sparse@vger.kernel.org
Subject: Re: [PATCH 1/3] make sparse keep its promise about context tracking
Date: Mon, 21 Apr 2008 12:34:41 -0700	[thread overview]
Message-ID: <480CEC51.1000907@freedesktop.org> (raw)
In-Reply-To: <200804101805.31854.philipp.reisner@linbit.com>

[-- Attachment #1: Type: text/plain, Size: 1855 bytes --]

Philipp Reisner wrote:
> The sematics of what I implemented is:
> You simply use the __attribute__((context(ctx,in,out))) to
> annotate the context changes of functions.
> 
> to annotate a variable, struct/union member or a function that
> a certain locking primitive is required for accessing it, you
> do it by 
> 
> __attribute__((require_context(ctx,min,max,"type")))
> 
> ctx ... the expression that describes the locking primitive
> min ... the minimum of locks required of that locking primitive
> max ... the maximum allowed of locks of that locking primitive.
> type .. read, write, rdwr or call for the access type.
> 
> So you can express you need to hold this and that locking 
> primitive to write to something. But an other locking
> primitive might be sufficient for reading that something.
> 
> The annotation for a variable foo protected by a recursive lock
> bar would be:
> 
> int foo __attribute__((require_context(bar,1,99999,"rdwr")))

I would *love* to see this work applied on top of the patches I
applied from Johannes.  I really want the ability to mark a variable
or struct field as requiring a context to access.

I would probably call this new attribute something like
"data_context".  Also, I'd prefer an explicit way of saying "no
maximum context", rather than the hack of using a large number.

I hestiate to introduce a third semantic for a pair of numbers
describing a context.  The context attribute uses in and out contexts,
__context__ uses a delta and a required minimum, and this proposed
attribute uses a minimum and a maximum.

Similar to GCC's format attribute using the identifier printf rather
than the string "printf", I think I'd prefer the last argument as an
identifier.  Also, a minor nit: could you please use "readwrite"
rather than "rdwr"?

- Josh Triplett


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 252 bytes --]

  parent reply	other threads:[~2008-04-21 19:34 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-10 13:25 [PATCH 0/3] improve context handling Johannes Berg
2008-04-10 13:25 ` [PATCH 1/3] make sparse keep its promise about context tracking Johannes Berg
2008-04-10 15:24   ` Philipp Reisner
2008-04-10 15:30     ` Johannes Berg
2008-04-10 15:46       ` Philipp Reisner
2008-04-10 15:51         ` Johannes Berg
2008-04-10 16:05           ` Philipp Reisner
2008-04-10 16:12             ` Johannes Berg
2008-04-10 21:21               ` Philipp Reisner
2008-04-11 19:53                 ` Josh Triplett
2008-04-18 12:35                   ` Johannes Berg
2008-04-11 11:06             ` Johannes Berg
2008-04-21 19:34             ` Josh Triplett [this message]
2008-04-21 19:37               ` Johannes Berg
2008-04-10 15:54         ` Johannes Berg
2008-04-21 19:22       ` Josh Triplett
2008-04-21 18:04   ` Josh Triplett
2008-04-21 18:11     ` Johannes Berg
2008-04-21 18:26       ` Josh Triplett
2008-04-21 18:30         ` Johannes Berg
2008-04-21 18:51           ` Josh Triplett
2008-04-10 13:25 ` [PATCH 2/3] sparse test suite: add test mixing __context__ and __attribute__((context(...))) Johannes Berg
2008-04-10 13:25 ` [PATCH 3/3] sparse: simple conditional context tracking Johannes Berg
2008-04-11 11:07 ` [PATCH 4/3] inlined call bugfix & test Johannes Berg
2008-04-11 11:08 ` [PATCH 5/3] improve -Wcontext code and messages Johannes Berg
2008-04-21 18:37 ` [PATCH 0/3] improve context handling Josh Triplett

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=480CEC51.1000907@freedesktop.org \
    --to=josh@freedesktop.org \
    --cc=johannes@sipsolutions.net \
    --cc=linux-sparse@vger.kernel.org \
    --cc=philipp.reisner@linbit.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.