mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
ice: simplify ice_vc_dis_qs_msg() a little
Remove special case logic for disabling all queues in ice_vc_dis_qs_msg(). There were no actual speedup from it, the only difference was in saved bitmap checks, but the HW operations take the majority of time anyway. ice_vsi_stop_all_rx_rings() used (in the removed code) loops over rings anyway. With a message added just before removed code, in the "remove VF" scenario there were no noticeable difference with the "speedup" and without, and it takes ~0.06s on my machine from this point to the whole iavf removed, so really no big deal anyway. Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com> Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com> Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
This commit is contained in:
parent
2270d2bf16
commit
ce0e3e4b98
|
|
@ -375,6 +375,8 @@ int ice_vf_vsi_dis_single_txq(struct ice_vf *vf, struct ice_vsi *vsi, u16 q_id)
|
|||
* @msg: pointer to the msg buffer
|
||||
*
|
||||
* called from the VF to disable all or specific queue(s)
|
||||
*
|
||||
* Return: exit code of sending the virtchnl response.
|
||||
*/
|
||||
int ice_vc_dis_qs_msg(struct ice_vf *vf, u8 *msg)
|
||||
{
|
||||
|
|
@ -424,20 +426,7 @@ int ice_vc_dis_qs_msg(struct ice_vf *vf, u8 *msg)
|
|||
}
|
||||
|
||||
q_map = vqs->rx_queues;
|
||||
/* speed up Rx queue disable by batching them if possible */
|
||||
if (q_map &&
|
||||
bitmap_equal(&q_map, vf->rxq_ena, ICE_MAX_RSS_QS_PER_VF)) {
|
||||
if (ice_vsi_stop_all_rx_rings(vsi)) {
|
||||
dev_err(ice_pf_to_dev(vsi->back), "Failed to stop all Rx rings on VSI %d\n",
|
||||
vsi->vsi_num);
|
||||
v_ret = VIRTCHNL_STATUS_ERR_PARAM;
|
||||
goto error_param;
|
||||
}
|
||||
|
||||
for_each_set_bit(vf_q_id, &q_map, ICE_MAX_RSS_QS_PER_VF)
|
||||
ice_vf_dis_rxq_interrupt(vsi, vf_q_id);
|
||||
bitmap_zero(vf->rxq_ena, ICE_MAX_RSS_QS_PER_VF);
|
||||
} else if (q_map) {
|
||||
if (q_map) {
|
||||
for_each_set_bit(vf_q_id, &q_map, ICE_MAX_RSS_QS_PER_VF) {
|
||||
if (!ice_vc_isvalid_q_id(vsi, vf_q_id)) {
|
||||
v_ret = VIRTCHNL_STATUS_ERR_PARAM;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user