From: Christian Bendele <Christian.Bendele@gmx.net>
To: linux-can@vger.kernel.org
Subject: Re: pch_can probable bug
Date: Mon, 17 Dec 2012 13:21:38 +0000 (UTC) [thread overview]
Message-ID: <loom.20121217T124707-860@post.gmane.org> (raw)
In-Reply-To: 50C7AE44.4040603@grandegger.com
Hi,
Wolfgang Grandegger <wg <at> grandegger.com> writes:
> Yes, note that the PCH does use a C_CAN core (even the manual is identical).
Indeed.
> Please do not invest time fixing the pch_can driver. We want to get rid
> of it asap.
Okay, I have turned my efforts towards the c-can driver now. I've had some
issues with some of the design decisions of the pch driver anyway. Some of those
issues seem to be absent from the c-can driver after a first glance.
> > That means that the message(s) stored in this message object are never read
> > out, and the INTPND (interrupt pending, is set together with NEWDAT when a
> > message is stored into the object) bit in that message object's control
> > register is never cleared.
>
> Looking to c_can.c, I see this problem as well. The above check should
> be done after reading out the message.
That's what I thought as well, but after a closer look at c_can_do_rx_poll()
method of the c_can driver I disagree. I think the way this driver works the
check for the EOB bit should not be necessary at all. Neither before nor after
reading out the message. The loop will already be exited after that message
object is read out due to "msg_obj <= C_CAN_MSG_OBJ_RX_LAST" in the loop header.
> Could you please use my "RFC V3" c_can_pci driver patches I sent out an
> hour ago. Anyway, avoiding out-of-order reception with a message FIFO is
> tricky and we need to fix that part as well. Unfortunately, I do not
> have a system for development and testing.
I tried your RFC V3 drivers now. As you sent them they work about as well as the
pch driver. The generally seem to have similar bugs as the latter, too.
I was quite surprised, however, that the c_can driver actually caused (very
slightly) higher CPU load for a given CANBUS load than the pch driver.
I had looked at the code before testing it, and some issues I had with design
decisions of the pch driver (among other things it failed to make proper use of
the message handling registers the c-can controller provides) seemed to be much
better with the c_can driver. I had therefore expected it to cause _lower_ cpu
load than the pch driver and was somewhat disappointed. I'll have to give this a
closer look after the holidays, maybe I can find the reasons why this happens.
I then removed the two lines that check for the EOB bit. That seems to fix all
hangs that I observed on the RX end. It seems to be quite stable now, even under
high load. I'm not really sure if I consider the out-of-order reception problems
important right now.
The TX side still seems to have hickups (hangs, as observed by others as well).
I'll try to look into that before the holidays, but I make no promises that I'll
find the time.
Christian
next prev parent reply other threads:[~2012-12-17 13:21 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-11 15:43 pch_can probable bug Christian Bendele
2012-12-11 16:08 ` Christian Bendele
2012-12-11 16:22 ` Wolfgang Grandegger
2012-12-11 22:05 ` Wolfgang Grandegger
2012-12-17 13:21 ` Christian Bendele [this message]
2012-12-17 14:50 ` Wolfgang Grandegger
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=loom.20121217T124707-860@post.gmane.org \
--to=christian.bendele@gmx.net \
--cc=linux-can@vger.kernel.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).