Linux-Bluetooth Archive on lore.kernel.org
 help / color / Atom feed
* [RFC BlueZ] mesh: Alternative delivery method of mesh packets
@ 2020-05-20 16:18 Michał Lowas-Rzechonek
  0 siblings, 0 replies; only message in thread
From: Michał Lowas-Rzechonek @ 2020-05-20 16:18 UTC (permalink / raw)
  To: Brian Gix, Inga Stotland; +Cc: linux-bluetooth

Hi Inga, Brian,

When playing with bluetooth-meshd on an embedded platform (i.MX6 UL),
I've noticed an unusually high CPU load, both on user and system levels.

Granted, our application is implemented in Python, so it's not the most
performant language for ARM (to be gentle), but I still think it should
be able to handle the message load... For the record, the traffic we're
subscribing to is about 100 messages per second, published by 200+
nodes.

I don't have hard data to back this up, but I've profiled the
application and it seems that most of the CPU time is spent on D-Bus
marshalling. I also suspect that most of the 'system' time is spent
passing message buffers between bluetooth-meshd, dbus-daemon and the
application.

To make things worse, the platform we're using imposes tight security
constraints, to the point where it inspects each and every D-Bus call
using AppArmor.

All of that makes  me wonder if we shouldn't optimise message transport,
by e.g. passing a datagram socket descriptor that applications can
recvmsg() from, avoiding method calls over D-Bus, like
org.bluez.GattCharacteristic1.AcquireNotify.

Thoughts?
-- 
Michał Lowas-Rzechonek <michal.lowas-rzechonek@silvair.com>
Silvair http://silvair.com
Jasnogórska 44, 31-358 Krakow, POLAND

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, back to index

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-20 16:18 [RFC BlueZ] mesh: Alternative delivery method of mesh packets Michał Lowas-Rzechonek

Linux-Bluetooth Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-bluetooth/0 linux-bluetooth/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-bluetooth linux-bluetooth/ https://lore.kernel.org/linux-bluetooth \
		linux-bluetooth@vger.kernel.org
	public-inbox-index linux-bluetooth

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-bluetooth


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git