Oliver Hartkopp wrote:
> Subhasish Ghosh wrote:
> 
>> The CAN controller that I am using allows configuring per-mailbox IDs.
>> CAN being a broadcast network, this feature reduces the interrupts to
>> the processor.
>>
>> From Documentation/can.txt, what I understand is that the socketcan
>> interface does not provide any mechanism to configure the h/w for this
>> purpose (chapter 6.3).
>>
>> Instead, the h/w is configured to receive all identifiers and the
>> filtering is done on the stack (like ti_hecc.c) and to avoid hogging the
>> processor some interrupt mitigation techniques like NAPI is implemented.
>>
>> Isn't this a work around?
> 
> 
> No it's not.
> 
> Remember that you're working in a multi-user system now, and therefore it's
> not defined what all of your user-apps need from the specific CAN bus.
> 
> For that reason the implementation of efficient filters is done in the
> soft-IRQ that's called right after the (hard-) interrupt routine of the CAN
> driver.
> 
> Having a generic CAN driver interface is one of the major motivations for
> SocketCAN. You really don't want to have hardware-specific ("N mailboxes")
> configuration interfaces which leads into a maintenance hell.

Yes, I also do not see a generic way yet to support per mailbox (or
message object) filtering.

>> My question is, did I miss something, is there any way to configure the
>> h/w for this purpose. Is it a good idea if I cook up a sysfs interface
>> for my driver for this.
> 
> 
> The problem is, that a filtering on driver level affects *every* user in the
> system.

Yes, messages rejected by hardware filters are lost.

> So far no one discovered a problem with the irq-load of CAN drivers in his
> system. We've been running a 133MHz PowerPC with four SJA1000 controllers for
> years ...

Interrupt load might be an issue, especially on load end systems.

> If you really(!) get into problems, we should discuss a netlink configuration
> option for driver-level CAN-ID filtering (also abstracted from "mailboxes").

Yes.

> But please check if it's really needed and if you probably have a different
> view on the general approach of SocketCAN now.

Some kind of generic hardware filter support might be useful for some
corner cases, I think. Does anyone else find it useful?

Wolfgang.
_______________________________________________
Socketcan-users mailing list
Socketcan-users@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/socketcan-users

Reply via email to