linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Marcel Holtmann <marcel@holtmann.org>
To: Andre Guedes <andre.guedes@openbossa.org>
Cc: Anderson Lizardo <anderson.lizardo@openbossa.org>,
	linux-bluetooth@vger.kernel.org
Subject: Re: [PATCH v2 11/16] Bluetooth: Add 'eir_len' param to mgmt_device_found()
Date: Mon, 05 Sep 2011 11:03:34 +0200	[thread overview]
Message-ID: <1315213416.1979.16.camel@aeonflux> (raw)
In-Reply-To: <A943531F-02F0-4809-A45F-03FE4923B6EF@openbossa.org>

Hi Andre,

> >>> The advertising report event has the 'Length' field to inform the
> >>> 'Data' field length, so I believe it has a variable length.
> >>> According to its description, the 'Length' field may vary from 0x00
> >>> to 0x1F (31) bytes.
> >>
> >> You are right. Although the section 11 gives the impression the size
> >> is always 31, this is not what happens on actual hardware, which
> >> usually sends only the significant bytes (and the length is know from
> >> the "Length" field.
> >>
> >>> The only drawback I see so far is copying extra ~200 bytes each time
> >>> we get a advertising report data.
> >>
> >> I agree. If this event is being sent on each adv. data report event,
> >> it will be more than 6 times the amount of data (with non-significant
> >> bytes containing only zeroes) sent to userspace.
> >
> > if we wanna save bytes copied and send to userspace, then we might  
> > even
> > fix this for BR/EDR. Since while it is fixed there only a fraction is
> > used there most of the times.
> 
> IMO changing the struct device_found is another issue (this would
> require userspace changes too).

personally I break this one now, instead of later.

> The point in adding the eir_len parameter is to avoid:
>      * preparing (memset and copy EIR from adv report) a 240-bytes
>        temporary buffer to pass to mgmt_device_found()
>      * to memcpy() ~200 useless bytes to ev.eir in mgmt_device_found()
> 
> For each advertising data we gather from the LE scan (which can be
> a lot) we would need to do that.

And the same applies to BR/EDR actually. It is just that we never really
encounter lot of inquiry results (except UPF), but it is the same
problem that we end up copying data around for no good reason.

If we wanna optimize this, then we better do it for both. So we have the
same handling towards userspace.

Regards

Marcel



  reply	other threads:[~2011-09-05  9:03 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-25 19:49 [PATCH v2 00/16] Full support discovery procedure Andre Guedes
2011-07-25 19:49 ` [PATCH v2 01/16] Bluetooth: Periodic Inquiry and mgmt discovering event Andre Guedes
2011-07-25 19:49 ` [PATCH v2 02/16] Bluetooth: Add failed/complete functions to discovery commands Andre Guedes
2011-07-25 19:49 ` [PATCH v2 03/16] Bluetooth: Remove pending " Andre Guedes
2011-07-25 19:49 ` [PATCH v2 04/16] Bluetooth: Check pending command in start_discovery() Andre Guedes
2011-07-25 19:49 ` [PATCH v2 05/16] Bluetooth: Check pending commands in stop_discovery() Andre Guedes
2011-07-25 19:49 ` [PATCH v2 06/16] Bluetooth: Create do_inquiry() Andre Guedes
2011-07-25 19:49 ` [PATCH v2 07/16] Bluetooth: Create cancel_inquiry() Andre Guedes
2011-07-25 19:49 ` [PATCH v2 08/16] Bluetooth: Fix stop_discovery() Andre Guedes
2011-07-25 19:49 ` [PATCH v2 09/16] Bluetooth: Prepare for full support discovery procedures Andre Guedes
2011-08-10 13:48   ` Marcel Holtmann
2011-08-10 19:51     ` Andre Guedes
2011-08-11  0:24       ` Marcel Holtmann
2011-09-09 20:43         ` Andre Guedes
2011-07-25 19:49 ` [PATCH v2 10/16] Bluetooth: Check 'dev_class' in mgmt_device_found() Andre Guedes
2011-07-25 19:50 ` [PATCH v2 11/16] Bluetooth: Add 'eir_len' param to mgmt_device_found() Andre Guedes
2011-08-10 13:50   ` Marcel Holtmann
2011-08-10 14:42     ` Anderson Lizardo
2011-08-10 15:17       ` Marcel Holtmann
2011-08-10 19:51         ` Andre Guedes
2011-08-10 20:58           ` Anderson Lizardo
2011-08-11  0:26             ` Marcel Holtmann
2011-08-11 17:12               ` Andre Guedes
2011-09-05  9:03                 ` Marcel Holtmann [this message]
2011-09-06 20:06                   ` Andre Guedes
2011-07-25 19:50 ` [PATCH v2 12/16] Bluetooth: Report LE devices Andre Guedes
2011-07-25 19:50 ` [PATCH v2 13/16] Bluetooth: Add 'le_scan_timer' to struct hci_dev Andre Guedes
2011-07-25 19:50 ` [PATCH v2 14/16] Bluetooth: Add LE Scan helper functions Andre Guedes
2011-07-25 19:50 ` [PATCH v2 15/16] Bluetooth: Support LE-Only discovery procedure Andre Guedes
2011-08-10 13:52   ` Marcel Holtmann
2011-08-11 20:08     ` Andre Guedes
2011-09-05  9:00       ` Marcel Holtmann
2011-07-25 19:50 ` [PATCH v2 16/16] Bluetooth: Support BR/EDR/LE " Andre Guedes

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=1315213416.1979.16.camel@aeonflux \
    --to=marcel@holtmann.org \
    --cc=anderson.lizardo@openbossa.org \
    --cc=andre.guedes@openbossa.org \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).