From: Gustavo Padovan <gustavo@padovan.org>
To: Marcel Holtmann <marcel@holtmann.org>
Cc: linux-bluetooth@vger.kernel.org
Subject: Re: [PATCH -v3] Bluetooth: Add MSG_MORE support to L2CAP sockets
Date: Fri, 25 May 2012 19:25:09 -0300 [thread overview]
Message-ID: <20120525222509.GF31623@joana> (raw)
In-Reply-To: <1337385587.2058.31.camel@aeonflux>
* Marcel Holtmann <marcel@holtmann.org> [2012-05-18 16:59:47 -0700]:
> Hi Gustavo,
>
> > MSG_MORE enables us to save buffer space in userspace, the packet is
> > built directly in the kernel and sent only when a msg with the MSG_MORE
> > flag not set arrives. If a send() tries to add more chan->omtu bytes
> > -EMSGSIZE is returned.
> >
> > Only MSG_MORE for Basic Mode is supported right now. chan->skb_more keeps
> > a pointer to the L2CAP packet that is being build through many calls to
> > send().
>
> so this is really not acceptable. We need to start supporting all modes
> with MSG_MORE at the same time. Otherwise we can not merge this.
The ERTM/Streaming sending code is bit different from the Basic mode sending
so implementing a MSG_MORE code that fits in both cases is not that trivial.
I have a different proposal for this that would make the code a lot simpler,
however we will need more memory.
We could add a extra buffer to keep the data coming from userspace until a
send with the MSG_MORE is not sent arrives, at that point we pass a to sending
side that will treat the buffer according to the L2CAP mode. This is simpler
but as said has extra buffer copy. On the other side, when one is using
MSG_MORE it saves a data copy in userspace, as we don't need to build the
packet there anymore.
comments?
next prev parent reply other threads:[~2012-05-25 22:25 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-18 23:46 [PATCH -v3] Bluetooth: Add MSG_MORE support to L2CAP sockets Gustavo Padovan
2012-05-18 23:59 ` Marcel Holtmann
2012-05-25 22:25 ` Gustavo Padovan [this message]
2012-05-25 23:48 ` Mat Martineau
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=20120525222509.GF31623@joana \
--to=gustavo@padovan.org \
--cc=linux-bluetooth@vger.kernel.org \
--cc=marcel@holtmann.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).