You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In file_system_write_file_blocks(), OS domain misses an interrupt for STORAGE_DATA queue after storage domain being reset.
As a workaround, I disabled wait_until_empty() in file_system_write_file_blocks().
The text was updated successfully, but these errors were encountered:
This is a very tricky issue. The interrupt was working prior to (approximately) hardware updates in October. Then a few other interrupt delivery failed just like this.
I checked the interrupt init code and handler. I suspect the ROM interrupt jumping mechanism we implemented; however, other interrupts (most of them, including other mailboxes) are successfully delivered through our ROM jump.
There is a problem in yield_network_access;
wait_until_empty(Q_NETWORK_CMD_IN, MAILBOX_QUEUE_SIZE);
never returns , left=65 and queue_size=4;
For now I disabled them in yield_network_access
There is a problem in yield_network_access;
wait_until_empty(Q_NETWORK_CMD_IN, MAILBOX_QUEUE_SIZE);
never returns , left=65 and queue_size=4;
For now I disabled them in yield_network_access
I'm not quite sure if this issue in mailbox_network.c is the same. In other cases, the quota left never change (interrupt handler should increment/decrement the quota left).
In the case of network, it seems mailbox_network.c Line 111, everytime Mbox_network_data_in sees a message, it sem_post both interrupts[Q_NETWORK_DATA_IN] and interrupts[Q_NETWORK_CMD_IN], which causes left to be large.
} else if (mask & OCTOPOS_XMB_IX_RTA) {
_SEC_HW_DEBUG("interrupt type: OCTOPOS_XMB_IX_RTA");
if (callback_ref == &Mbox_network_cmd_in) {
sem_post(&interrupts[Q_NETWORK_CMD_IN]);
} else if (callback_ref == &Mbox_network_data_in) {
sem_post(&interrupts[Q_NETWORK_DATA_IN]);
//Based on the behaviour of
//handle_mailbox_interrupts in mailbox_network.c of umode
sem_post(&interrupts[Q_NETWORK_CMD_IN]);
}
In file_system_write_file_blocks(), OS domain misses an interrupt for STORAGE_DATA queue after storage domain being reset.
As a workaround, I disabled wait_until_empty() in file_system_write_file_blocks().
The text was updated successfully, but these errors were encountered: