You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by GitBox <gi...@apache.org> on 2022/06/28 06:14:45 UTC
[GitHub] [incubator-nuttx] anchao opened a new pull request, #6533: wireless/bcm43xxx: enable tx flow control to improve performance
anchao opened a new pull request, #6533:
URL: https://github.com/apache/incubator-nuttx/pull/6533
## Summary
1. wireless/bcm43xxx: enable tx flow control to improve performance
RX/TX shared free queue on bcmf implementation, if TX occupies the
free queue completely, RX will trigger read abort because it cannot
successfully alloc buffer for the shared free queue. This commit will
limit the sending entries of tx and prevent rx triggering abort
2. Revert "wireless/bcm43xxx: remove unused tx_queue_count"
## Impact
N/A
## Testing
bcm43013 iperf test
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-nuttx] pkarashchenko commented on a diff in pull request #6533: wireless/bcm43xxx: enable tx flow control to improve performance
Posted by GitBox <gi...@apache.org>.
pkarashchenko commented on code in PR #6533:
URL: https://github.com/apache/incubator-nuttx/pull/6533#discussion_r908270303
##########
drivers/wireless/ieee80211/bcm43xxx/bcmf_sdio.c:
##########
@@ -1108,5 +1118,10 @@ void bcmf_sdio_free_frame(FAR struct bcmf_dev_s *priv,
bcmf_dqueue_push(&sbus->free_queue, &sframe->list_entry);
+ if (sframe->tx)
+ {
+ sbus->tx_queue_count -= 1;
Review Comment:
```suggestion
sbus->tx_queue_count--;
```
##########
drivers/wireless/ieee80211/bcm43xxx/bcmf_sdio.c:
##########
@@ -1065,10 +1065,20 @@ struct bcmf_sdio_frame *bcmf_sdio_allocate_frame(FAR struct bcmf_dev_s *priv,
DEBUGPANIC();
}
- if ((entry = bcmf_dqueue_pop_tail(&sbus->free_queue)) != NULL)
+ if (!tx ||
+ sbus->tx_queue_count <
+ CONFIG_IEEE80211_BROADCOM_FRAME_POOL_SIZE / 2)
{
- nxsem_post(&sbus->queue_mutex);
- break;
+ if ((entry = bcmf_dqueue_pop_tail(&sbus->free_queue)) != NULL)
+ {
+ if (tx)
+ {
+ sbus->tx_queue_count += 1;
Review Comment:
```suggestion
sbus->tx_queue_count++;
```
##########
drivers/wireless/ieee80211/bcm43xxx/bcmf_sdio.c:
##########
@@ -1065,10 +1065,20 @@ struct bcmf_sdio_frame *bcmf_sdio_allocate_frame(FAR struct bcmf_dev_s *priv,
DEBUGPANIC();
}
- if ((entry = bcmf_dqueue_pop_tail(&sbus->free_queue)) != NULL)
+ if (!tx ||
+ sbus->tx_queue_count <
Review Comment:
do we need set to zero `tx_queue_count` during init, or `struct bcmf_sdio_dev_s` use `zalloc` / static allocation?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-nuttx] anchao commented on a diff in pull request #6533: wireless/bcm43xxx: enable tx flow control to improve performance
Posted by GitBox <gi...@apache.org>.
anchao commented on code in PR #6533:
URL: https://github.com/apache/incubator-nuttx/pull/6533#discussion_r909168740
##########
drivers/wireless/ieee80211/bcm43xxx/bcmf_sdio.c:
##########
@@ -1065,10 +1065,20 @@ struct bcmf_sdio_frame *bcmf_sdio_allocate_frame(FAR struct bcmf_dev_s *priv,
DEBUGPANIC();
}
- if ((entry = bcmf_dqueue_pop_tail(&sbus->free_queue)) != NULL)
+ if (!tx ||
+ sbus->tx_queue_count <
+ CONFIG_IEEE80211_BROADCOM_FRAME_POOL_SIZE / 2)
{
- nxsem_post(&sbus->queue_mutex);
- break;
+ if ((entry = bcmf_dqueue_pop_tail(&sbus->free_queue)) != NULL)
+ {
+ if (tx)
+ {
+ sbus->tx_queue_count += 1;
Review Comment:
Done
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-nuttx] pkarashchenko merged pull request #6533: wireless/bcm43xxx: enable tx flow control to improve performance
Posted by GitBox <gi...@apache.org>.
pkarashchenko merged PR #6533:
URL: https://github.com/apache/incubator-nuttx/pull/6533
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-nuttx] anchao commented on a diff in pull request #6533: wireless/bcm43xxx: enable tx flow control to improve performance
Posted by GitBox <gi...@apache.org>.
anchao commented on code in PR #6533:
URL: https://github.com/apache/incubator-nuttx/pull/6533#discussion_r909168643
##########
drivers/wireless/ieee80211/bcm43xxx/bcmf_sdio.c:
##########
@@ -1065,10 +1065,20 @@ struct bcmf_sdio_frame *bcmf_sdio_allocate_frame(FAR struct bcmf_dev_s *priv,
DEBUGPANIC();
}
- if ((entry = bcmf_dqueue_pop_tail(&sbus->free_queue)) != NULL)
+ if (!tx ||
+ sbus->tx_queue_count <
Review Comment:
tx_queue_count has been initialized to 0
https://github.com/apache/incubator-nuttx/blob/master/drivers/wireless/ieee80211/bcm43xxx/bcmf_sdio.c#L816
##########
drivers/wireless/ieee80211/bcm43xxx/bcmf_sdio.c:
##########
@@ -1108,5 +1118,10 @@ void bcmf_sdio_free_frame(FAR struct bcmf_dev_s *priv,
bcmf_dqueue_push(&sbus->free_queue, &sframe->list_entry);
+ if (sframe->tx)
+ {
+ sbus->tx_queue_count -= 1;
Review Comment:
Done
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org