-
Notifications
You must be signed in to change notification settings - Fork 349
test: ipc: Add FW testing IPC foundations. #1290
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Add a new IPC global class for FW testing alongside the first "test" IPC command for flooding the DSP with IPCs. Needs to have CONFIG_DEBUG enabled. Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
|
@lgirdwood ack. will implement the kernel side debugfs tonight. |
xiulipan
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add some inline comments to improve the debug feature.
xiulipan
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add some inline comments to improve the debug feature.
| uint32_t cmd = iCS(header); | ||
|
|
||
| switch (cmd) { | ||
| case SOF_IPC_TEST_IPC_FLOOD: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we can add some trace log with the IPC index id to help identify which IPC is missed. We can only tell how many IPC is missed, but which one is missed will help the debug
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@xiulipan that makes sense in the driver. the FW cant actually keep count because the IPC's may not coming in order.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ranj063
I would like to make test IPC counts the index id as its payload. To help us debug the order or sequence issues.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@xiulipan inline comments ? care to elaborate.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@lgirdwood i think he meant he added some comments in the commit
|
@lgirdwood @ranj063
They will both end up in some count mismatch/match in Kernel side but need to be treated and debug independently. My suggestion is to add some index as payload here. |
|
@xiulipan I agree that we should add some payload here too. Maybe that can be index. @lgirdwood do you want me to make the change for it? |
|
@xiulipan sequence numbers will likely come in IPC2.0 if needed, the HW locking prevents out of IPC order. |
|
@lgirdwood @ranj063 |
|
@xiulipan by examining the IPC state machine for both DSP and host side. See thesofproject/linux#846, I'm working on an equivalent for DSP side today. If you have time please take a look at thesofproject/linux#846 as it's mainly dev_err() statements than need to be added. |
|
@zrombel I assume this is a server error on the CI ? |
|
@lgirdwood yes, some QB issue. PR is waiting for rebuild. |
|
@ranj063 ready to merge this once kernel PR is ready. classified as MINOR 7 |
|
@lgirdwood But do we have it on kernel side? |
|
@lgirdwood Also, can we align API first and then extend it? |
Add a new IPC global class for FW testing alongside the first "test" IPC
command for flooding the DSP with IPCs.
Needs to have CONFIG_DEBUG enabled.
Signed-off-by: Liam Girdwood liam.r.girdwood@linux.intel.com
@ranj063 I would expect the kernel to export a debugFS file where the user could
to execute a test of a 1000 IPCs. Then
Would indicate number of tests until failure, where 1000 would be a pass.