linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Gustavo Padovan <padovan@profusion.mobi>
To: Luiz Augusto von Dentz <luiz.dentz@gmail.com>
Cc: linux-bluetooth@vger.kernel.org
Subject: Re: [RFC 3/5 v2] Bluetooth: make use sk_priority to priritize RFCOMM packets
Date: Mon, 19 Sep 2011 18:45:05 -0300	[thread overview]
Message-ID: <20110919214505.GM2643@joana> (raw)
In-Reply-To: <1315846853-27442-3-git-send-email-luiz.dentz@gmail.com>

Hi Luiz,

* Luiz Augusto von Dentz <luiz.dentz@gmail.com> [2011-09-12 20:00:51 +0300]:

> From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
> 
> Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
> ---
>  net/bluetooth/rfcomm/core.c |   51 +++++++++++++++++++++++++++++-------------
>  net/bluetooth/rfcomm/sock.c |    2 +
>  2 files changed, 37 insertions(+), 16 deletions(-)
> 
> diff --git a/net/bluetooth/rfcomm/core.c b/net/bluetooth/rfcomm/core.c
> index 85580f2..bfc6bce 100644
> --- a/net/bluetooth/rfcomm/core.c
> +++ b/net/bluetooth/rfcomm/core.c
> @@ -65,7 +65,8 @@ static DEFINE_MUTEX(rfcomm_mutex);
>  
>  static LIST_HEAD(session_list);
>  
> -static int rfcomm_send_frame(struct rfcomm_session *s, u8 *data, int len);
> +static int rfcomm_send_frame(struct rfcomm_session *s, u8 *data, int len,
> +							u32 priority);
>  static int rfcomm_send_sabm(struct rfcomm_session *s, u8 dlci);
>  static int rfcomm_send_disc(struct rfcomm_session *s, u8 dlci);
>  static int rfcomm_queue_disc(struct rfcomm_dlc *d);
> @@ -747,19 +748,34 @@ void rfcomm_session_getaddr(struct rfcomm_session *s, bdaddr_t *src, bdaddr_t *d
>  }
>  
>  /* ---- RFCOMM frame sending ---- */
> -static int rfcomm_send_frame(struct rfcomm_session *s, u8 *data, int len)
> +static int rfcomm_send_frame(struct rfcomm_session *s, u8 *data, int len,
> +							u32 priority)
>  {
>  	struct socket *sock = s->sock;
> +	struct sock *sk = sock->sk;
>  	struct kvec iv = { data, len };
>  	struct msghdr msg;
>  
> -	BT_DBG("session %p len %d", s, len);
> +	BT_DBG("session %p len %d priority %u", s, len, priority);
> +
> +	if (sk->sk_priority != priority) {
> +		lock_sock(sk);
> +		sk->sk_priority = priority;
> +		release_sock(sk);
> +	}
>  
>  	memset(&msg, 0, sizeof(msg));
>  
>  	return kernel_sendmsg(sock, &msg, &iv, 1, len);
>  }
>  
> +static int rfcomm_send_cmd(struct rfcomm_session *s, struct rfcomm_cmd *cmd)
> +{
> +	BT_DBG("%p cmd %u", s, cmd->ctrl);
> +
> +	return rfcomm_send_frame(s, (void *) cmd, sizeof(*cmd), HCI_PRIO_MAX);


What's the idea here? Prioritize commands over data? But does this really
happen? Because we have only one queue to receive the data in L2CAP. There
is no separation between data and cmd there.

Also, did you check if we can send RFCOMM commands and data out of order?

I really would like to rewrite l2cap-rfcomm iteraction before adding new
features here.


	Gustavo

  reply	other threads:[~2011-09-19 21:45 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-12 17:00 [RFC 1/5 v3] Bluetooth: set skbuffer priority based on L2CAP socket priority Luiz Augusto von Dentz
2011-09-12 17:00 ` [RFC 2/5 v3] Bluetooth: mark l2cap_create_iframe_pdu as static Luiz Augusto von Dentz
2011-09-19 21:17   ` Gustavo Padovan
2011-09-12 17:00 ` [RFC 3/5 v2] Bluetooth: make use sk_priority to priritize RFCOMM packets Luiz Augusto von Dentz
2011-09-19 21:45   ` Gustavo Padovan [this message]
2011-09-20  9:10     ` Luiz Augusto von Dentz
2011-09-20 13:04     ` Marcel Holtmann
2011-09-20 13:46       ` tim.howes
2011-09-20 14:34       ` Luiz Augusto von Dentz
2011-09-20 15:11         ` Marcel Holtmann
2011-09-20 16:06           ` Luiz Augusto von Dentz
2011-09-20 16:59             ` Gustavo Padovan
2011-09-21 11:20               ` Luiz Augusto von Dentz
2011-09-12 17:00 ` [RFC 4/5 v3] Bluetooth: prioritizing data over HCI Luiz Augusto von Dentz
2011-09-15 23:34   ` Mat Martineau
2011-09-16  7:35     ` Luiz Augusto von Dentz
2011-09-12 17:00 ` [RFC 5/5 v3] Bluetooth: recalculate priorities when channels are starving Luiz Augusto von Dentz
2011-09-19 21:36 ` [RFC 1/5 v3] Bluetooth: set skbuffer priority based on L2CAP socket priority Gustavo Padovan
2011-09-20  8:15   ` Luiz Augusto von Dentz
  -- strict thread matches above, loose matches on Subject: below --
2011-08-17 13:22 [RFC 0/5 v2] prioritizing data over HCI Luiz Augusto von Dentz
2011-08-17 13:23 ` [RFC 3/5 v2] Bluetooth: make use sk_priority to priritize RFCOMM packets Luiz Augusto von Dentz

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=20110919214505.GM2643@joana \
    --to=padovan@profusion.mobi \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=luiz.dentz@gmail.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 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).