linux-can.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/7] can: berr_limit support
@ 2013-10-07 14:40 Marc Kleine-Budde
  2013-10-07 14:40 ` [PATCH 1/7] can: dev: fix nlmsg size calculation in can_get_size() Marc Kleine-Budde
                   ` (7 more replies)
  0 siblings, 8 replies; 15+ messages in thread
From: Marc Kleine-Budde @ 2013-10-07 14:40 UTC (permalink / raw)
  To: linux-can; +Cc: kernel

Hello,

this series does first some cleanups in can/dev.c, the implementation of three
functions is sorted by IFLA_CAN_*, that we can see at the first look, that all
needed IFLA_CAN_* are handled and that new code can be added at the end. 

Then the bus error limiting (short: berr_limit) infrastructure + netlink
configuration interface is added. Last patch is an example implementation on
the flexcan hardware.

The CAN bus, like the old 10BASE2 Ethernet, needs bus termination. An open CAN
bus doesn't work and will produce lots of CAN bus errors.

If the user wants to detect an open CAN bus, the CAN bus error interrupts have
to be enabled. This is represented by the control mode
CAN_CTRLMODE_BERR_REPORTING.

On an unterminated CAN bus at 500 kbit/s, this can lead to more then 8000
interrupts/s on some SoCs with integrated CAN cores. These interrupts and the
associated processing in software lead to a significant load and may reader the
system unresponsive and even unusable at CAN bus speeds of 1000 kbit/s.

This patch adds the infrastructure to limit these interrupts. The driver has to
implement the do_berr_restart() callback, which re-enables the bus error
interrupts. The idea is to delay the re-enabling of the interrupts after they
have been served. The delay is configured by berr_limit_delay. A value of 0
means interrupts are restarted immediately, any other other value will start a
timer and call do_berr_restart() when the timer fires.

regards,
Marc


^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2013-10-08  7:05 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-07 14:40 [PATCH 1/7] can: berr_limit support Marc Kleine-Budde
2013-10-07 14:40 ` [PATCH 1/7] can: dev: fix nlmsg size calculation in can_get_size() Marc Kleine-Budde
2013-10-07 14:40 ` [PATCH 2/7] can: dev: sort can_get_size() by IFLA_CAN_* Marc Kleine-Budde
2013-10-07 14:40 ` [PATCH 3/7] can: dev: sort can_fill_info() " Marc Kleine-Budde
2013-10-07 14:40 ` [PATCH 4/7] can: dev: sort can_changelink() " Marc Kleine-Budde
2013-10-07 14:40 ` [PATCH 5/7] can: dev: add berr_limit infrastrucutre Marc Kleine-Budde
2013-10-07 15:39   ` Alexander Stein
2013-10-07 15:56     ` Marc Kleine-Budde
2013-10-07 16:00       ` Marc Kleine-Budde
2013-10-08  6:03         ` Alexander Stein
2013-10-08  7:05           ` Marc Kleine-Budde
2013-10-07 14:40 ` [PATCH 6/7] can: dev: berr_limit netlink support for configuration Marc Kleine-Budde
2013-10-07 14:40 ` [PATCH 7/7] can: flexcan: add berr_limit support Marc Kleine-Budde
2013-10-07 19:38 ` [PATCH 1/7] can: " Wolfgang Grandegger
2013-10-07 19:42   ` Marc Kleine-Budde

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).