build/tools/amebasmart: Refine wifi wake-up logic to fix rare crash issue#7112
build/tools/amebasmart: Refine wifi wake-up logic to fix rare crash issue#7112hk-gwak merged 1 commit intoSamsung:masterfrom
Conversation
c0ad142 to
01a1482
Compare
|
@jwei5 You just changed the day in the release note. Does it mean you made a change for the same issue again? |
|
@hk-gwak Please check this PR. |
|
@jwei5 Please leave the issue and how to fix in detail. Current description does not help us in history. |
sunghan-chang
left a comment
There was a problem hiding this comment.
Not allowed to merge. No meaningful description.
|
Hi @sunghan-chang , as this PR currently includes some debug information used for verification, the detailed changes have not been included in the release note yet. |
@jwei5 Could you let me know status of this? |
|
Hi @sunghan-chang, |
|
Hi @jwei5 , Reviewing the ER, I have some questions.
|
|
Hi @hk-gwak , please refer to the replies below:
This buffer is used for storing some details of the received packet, such as the packet length, data rate of the received packet etc.
Yes, this refers to the MAC address.
The general condition for wakeup is to check the destination address, but WiFiFW will also still distinguish packet type to filter it further. There are a few checks for the wake up flow:
In our tests, the buffer corruption is caused by a very specific timing mismatch during the WiFi wake-up process, which explains its low occurrence rate. |
|
Rebased PR to resolve merge conflict for KM4 |
|
Hi @jwei5 , thank you for your response. I want to ask more questions.
If Null Data will not wake the system, which layer is sending the ACK response for the null data packet? And is this behavior changed before/after this PR?
Sounds like 1. dest addr 2. packet type. Then how about broadcast packet like ARP? There is no dest addr, then it will be filtered as no-wakeup at 1. |
|
Hi @hk-gwak,
Regardless whether the system is awake or sleeping, the hardware layer handles the sending of ACK response for unicast packets. This behavior remains unchanged after this PR.
In the context of 'wake-up,' it refers to the waking up of the driver/application layer. Packets that are marked as no-wakeup (eg. Broadcast), will still be processed by WiFiFW but do not wake the driver/application. |
hardware layer -> Is this WiFiFW also? |
No, the hardware layer refers to the physical components of the system, such as the receiver. When a packet is received, the hardware layer will reply with an ACK packet as it can handle this operation efficiently. |
Hello @jwei5 . Please include |
…ssue - Refine wififw wake-up logic to use packet's destination address for evaluating wake-up condition - Previous logic checks a shared buffer, but there is a rare case of timing mismatch that can cause buffer corruption, affecting the wake-up process and causing KM4 crash
|
Hi @sunghan-chang , I have just updated the commit with more details. Could you help to check if it is ok? |
Uh oh!
There was an error while loading. Please reload this page.