All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrei Emeltchenko <Andrei.Emeltchenko.news@gmail.com>
To: Jerzy Kasenberg <jerzy.kasenberg@tieto.com>
Cc: linux-bluetooth@vger.kernel.org
Subject: Re: [PATCHv2 0/9] Improve logging for Android
Date: Tue, 29 Oct 2013 14:18:17 +0200	[thread overview]
Message-ID: <20131029121811.GE27517@aemeltch-MOBL1> (raw)
In-Reply-To: <CAHCYCoz4tSeimwrwVNENWsGf-ZDq9Huq9jB9dOgwccrPiF8Fow@mail.gmail.com>

Hi Jerzy,

On Tue, Oct 29, 2013 at 12:43:32PM +0100, Jerzy Kasenberg wrote:
> Hi Andrei,
> 
> On 29 October 2013 11:21, Andrei Emeltchenko
> <Andrei.Emeltchenko.news@gmail.com> wrote:
> > From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
> >
> > Changes:
> >         *v2: Added thread-safe helpers for printing properties, bdaddr, etc
> >         after comments that simple printing is not thread-safe. The idea is to
> >         use TLS (thread local storage) like bionic is doing for strerror for
> 
> Implementation of strerror in bionic and what is proposed here is
> thread safe but not
> useful if one wants to use one print to for two addresses or two
> properties (one buffer
> in one thread for two strings).

Then just print 2 times.

> In my opinion there should be safe functions that explicitly get
> string buffer as
> argument. For address and uuid they already exist, property printing
> was used in haltest
> only in one place and moving buffer form btproperty2str to function
> that calls it
> makes sense to me.

Then every function calling need to define a buffer and for property the
buffer is not small.

For example current code

...
static int set_adapter_property(const bt_property_t *property)
{
	char buf[sizeof(struct hal_cmd_set_adapter_prop) + property->len];
	struct hal_cmd_set_adapter_prop *cmd = (void *) buf;

	DBG("prop: %s", btproperty2str(property));
...

would need to define 4K buffer !!!, the same for many other functions.

> 
> If there is need for shortcut as for code lines that could be removed
> in compilation,
> wrapper function with pthread stuff can still be used (provided that
> there is no same
> type conversion call used in one print)
> 
> BTW strerror() works fine when called with value in range 0..131.
> But when you call it with higher number there will be a problem
> printf("%s\n%s\n\%s\n%s\n", strerror(1), strerror(2), strerror(132),
> strerror(133));
> prints:
> Operation not permitted
> No such file or directory
> Unknown error 133
> Unknown error 133

Yes, just print 2 times :)

Best regards 
Andrei Emeltchenko 


      reply	other threads:[~2013-10-29 12:18 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-28 10:44 [PATCHv1 0/4] Improve logging for Android Andrei Emeltchenko
2013-10-28 10:44 ` [PATCHv1 1/4] android/haltest: Export print property Andrei Emeltchenko
2013-10-28 10:44 ` [PATCHv1 2/4] android/haltest: Use pointer as parameter for debug Andrei Emeltchenko
2013-10-28 10:44 ` [PATCHv1 3/4] android/hal: Print full property in debug Andrei Emeltchenko
2013-10-28 10:44 ` [PATCHv1 4/4] android/hal: Add extra logs Andrei Emeltchenko
2013-10-29 10:21 ` [PATCHv2 0/9] Improve logging for Android Andrei Emeltchenko
2013-10-29 10:21   ` [PATCHv2 1/9] android/haltest: Export print property Andrei Emeltchenko
2013-10-29 10:21   ` [PATCHv2 2/9] android/haltest: Fix compile error making function static Andrei Emeltchenko
2013-10-29 10:31     ` Andrei Emeltchenko
2013-10-29 10:21   ` [PATCHv2 3/9] android/haltest: Use pointer as parameter for debug Andrei Emeltchenko
2013-10-29 10:21   ` [PATCHv2 4/9] android/hal: Print full property in debug Andrei Emeltchenko
2013-10-29 10:21   ` [PATCHv2 5/9] android/hal: Add extra logs Andrei Emeltchenko
2013-10-29 10:21   ` [PATCHv2 6/9] android/hal: Print adapter state Andrei Emeltchenko
2013-10-29 10:21   ` [PATCHv2 7/9] android/hal: Print adapter property in callback Andrei Emeltchenko
2013-10-29 10:21   ` [PATCHv2 8/9] android: Add thread-safe helpers Andrei Emeltchenko
2013-10-29 10:21   ` [PATCHv2 9/9] android: Use " Andrei Emeltchenko
2013-10-29 11:43   ` [PATCHv2 0/9] Improve logging for Android Jerzy Kasenberg
2013-10-29 12:18     ` Andrei Emeltchenko [this message]

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=20131029121811.GE27517@aemeltch-MOBL1 \
    --to=andrei.emeltchenko.news@gmail.com \
    --cc=jerzy.kasenberg@tieto.com \
    --cc=linux-bluetooth@vger.kernel.org \
    /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.