Re: Re: d_len/d_buf arbitration for s32k1xx_flexcan

2023-01-09 Thread Carlos Sanchez
The PR which solved the interaction between main thread and error generation: https://github.com/apache/nuttx/pull/8060 This affects the stm32 CAN driver, actually. I mentioned s32x_error() because we have ported the error generation code to the s32k1xx CAN driver, because we needed that. The driv

Re: Re: d_len/d_buf arbitration for s32k1xx_flexcan

2023-01-08 Thread Carlos Sanchez
ee if you can enough > throughput. > > Yours sincerely, > > Peter van der Perk > > -Original Message- > From: raiden00pl > Sent: Wednesday, January 4, 2023 10:01 AM > To: dev@nuttx.apache.org > Subject: Re: d_len/d_buf arbitration for s32k1xx_flexcan >

Re: Re: d_len/d_buf arbitration for s32k1xx_flexcan

2023-01-04 Thread Carlos Sanchez
Hi Peter, > It seems that calling can_input directly from IRQ got broken since the IOB > rewrite. > Before can_input only used dev->d_appdata, but now can_input overwrites > the dev->d_buf pointer as well. > > https://github.com/apache/nuttx/blob/779a610ca3ba495640b49d6c36bce89784955e0d/net/can/c

RE: Re: d_len/d_buf arbitration for s32k1xx_flexcan

2023-01-04 Thread Peter van der Perk
ersion of NuttX, or try to schedule the workqueue for can_input and see if you can enough throughput. Yours sincerely, Peter van der Perk -Original Message- From: raiden00pl Sent: Wednesday, January 4, 2023 10:01 AM To: dev@nuttx.apache.org Subject: Re: d_len/d_buf arbitration for s32k1x

Re: d_len/d_buf arbitration for s32k1xx_flexcan

2023-01-04 Thread raiden00pl
Related issue: https://github.com/apache/nuttx/issues/5142. Not using a work queue to handle CAN RX is basically wrong. Unfortunately all NXP SocketCAN drivers are affected. wt., 3 sty 2023 o 19:38 Xiang Xiao napisaƂ(a): > Sorry, "you must do..." may confuse you. What I mean is the CAN driver.

Re: d_len/d_buf arbitration for s32k1xx_flexcan

2023-01-03 Thread Xiang Xiao
Sorry, "you must do..." may confuse you. What I mean is the CAN driver. On Wed, Jan 4, 2023 at 2:30 AM Carlos Sanchez wrote: > Hi Xiang, > > Please note what I describe is not caused by my code using multiple > threads, but is happening on Nuttx upstream. My code is single threaded, > but s32k

Re: d_len/d_buf arbitration for s32k1xx_flexcan

2023-01-03 Thread Carlos Sanchez
Hi Xiang, Please note what I describe is not caused by my code using multiple threads, but is happening on Nuttx upstream. My code is single threaded, but s32k1xx_flexcan driver (and several other Socket CAN drivers as they all seem to be derived from the same code base) does some things on the th

Re: d_len/d_buf arbitration for s32k1xx_flexcan

2023-01-03 Thread Xiang Xiao
Since tx/rx share the same d_len/d_buf, you must do send/recv in one and only thread(either by system work thread or driver dedicated thread) to avoid the race condition you describe below. On Wed, Jan 4, 2023 at 1:45 AM Carlos Sanchez wrote: > Hi all, > > I am observing an extrange behavior: un

d_len/d_buf arbitration for s32k1xx_flexcan

2023-01-03 Thread Carlos Sanchez
Hi all, I am observing an extrange behavior: under heavy-error CAN TX scenario (no acks so TX fails always), usually after the second call to write() my writes fail. This is expected as s32k1xx_flexcan has two TX mailboxes and from my understanding of the code there is no other buffering (on this