Message ID | 20211201054836.3488211-1-sukadev@linux.ibm.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 0584f4949609c0391ca98edf180c8ab7386c483a |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net,1/2] ibmvnic: drop bad optimization in reuse_rx_pools() | expand |
On 2021-11-30 21:48, Sukadev Bhattiprolu wrote: > When trying to decide whether or not reuse existing rx/tx pools > we tried to allow a range of values for the pool parameters rather > than exact matches. This was intended to reuse the resources for > instance when switching between two VIO servers with different > default parameters. > > But this optimization is incomplete and breaks when we try to > change the number of queues for instance. The optimization needs > to be updated, so drop it for now and simplify the code. > > Fixes: 489de956e7a2 ("ibmvnic: Reuse rx pools when possible") > Reported-by: Dany Madden <drt@linux.ibm.com> > Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.ibm.com> Reviewed-by: Dany Madden <drt@linux.ibm.com> > --- > drivers/net/ethernet/ibm/ibmvnic.c | 14 +++----------- > 1 file changed, 3 insertions(+), 11 deletions(-) > > diff --git a/drivers/net/ethernet/ibm/ibmvnic.c > b/drivers/net/ethernet/ibm/ibmvnic.c > index 3cca51735421..6df92a872f0f 100644 > --- a/drivers/net/ethernet/ibm/ibmvnic.c > +++ b/drivers/net/ethernet/ibm/ibmvnic.c > @@ -628,17 +628,9 @@ static bool reuse_rx_pools(struct ibmvnic_adapter > *adapter) > old_buff_size = adapter->prev_rx_buf_sz; > new_buff_size = adapter->cur_rx_buf_sz; > > - /* Require buff size to be exactly same for now */ > - if (old_buff_size != new_buff_size) > - return false; > - > - if (old_num_pools == new_num_pools && old_pool_size == new_pool_size) > - return true; > - > - if (old_num_pools < adapter->min_rx_queues || > - old_num_pools > adapter->max_rx_queues || > - old_pool_size < adapter->min_rx_add_entries_per_subcrq || > - old_pool_size > adapter->max_rx_add_entries_per_subcrq) > + if (old_buff_size != new_buff_size || > + old_num_pools != new_num_pools || > + old_pool_size != new_pool_size) > return false; > > return true;
On 11/30/21 21:48, Sukadev Bhattiprolu wrote: > When trying to decide whether or not reuse existing rx/tx pools > we tried to allow a range of values for the pool parameters rather > than exact matches. This was intended to reuse the resources for > instance when switching between two VIO servers with different > default parameters. > > But this optimization is incomplete and breaks when we try to > change the number of queues for instance. The optimization needs > to be updated, so drop it for now and simplify the code. > > Fixes: 489de956e7a2 ("ibmvnic: Reuse rx pools when possible") > Reported-by: Dany Madden <drt@linux.ibm.com> > Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.ibm.com> Reviewed-by: Rick Lindsley <ricklind@linux.ibm.com> > --- > drivers/net/ethernet/ibm/ibmvnic.c | 14 +++----------- > 1 file changed, 3 insertions(+), 11 deletions(-) > > diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c > index 3cca51735421..6df92a872f0f 100644 > --- a/drivers/net/ethernet/ibm/ibmvnic.c > +++ b/drivers/net/ethernet/ibm/ibmvnic.c > @@ -628,17 +628,9 @@ static bool reuse_rx_pools(struct ibmvnic_adapter *adapter) > old_buff_size = adapter->prev_rx_buf_sz; > new_buff_size = adapter->cur_rx_buf_sz; > > - /* Require buff size to be exactly same for now */ > - if (old_buff_size != new_buff_size) > - return false; > - > - if (old_num_pools == new_num_pools && old_pool_size == new_pool_size) > - return true; > - > - if (old_num_pools < adapter->min_rx_queues || > - old_num_pools > adapter->max_rx_queues || > - old_pool_size < adapter->min_rx_add_entries_per_subcrq || > - old_pool_size > adapter->max_rx_add_entries_per_subcrq) > + if (old_buff_size != new_buff_size || > + old_num_pools != new_num_pools || > + old_pool_size != new_pool_size) > return false; > > return true; >
Hello: This series was applied to netdev/net.git (master) by David S. Miller <davem@davemloft.net>: On Tue, 30 Nov 2021 21:48:35 -0800 you wrote: > When trying to decide whether or not reuse existing rx/tx pools > we tried to allow a range of values for the pool parameters rather > than exact matches. This was intended to reuse the resources for > instance when switching between two VIO servers with different > default parameters. > > But this optimization is incomplete and breaks when we try to > change the number of queues for instance. The optimization needs > to be updated, so drop it for now and simplify the code. > > [...] Here is the summary with links: - [net,1/2] ibmvnic: drop bad optimization in reuse_rx_pools() https://git.kernel.org/netdev/net/c/0584f4949609 - [net,2/2] ibmvnic: drop bad optimization in reuse_tx_pools() https://git.kernel.org/netdev/net/c/5b08560181b5 You are awesome, thank you!
diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c index 3cca51735421..6df92a872f0f 100644 --- a/drivers/net/ethernet/ibm/ibmvnic.c +++ b/drivers/net/ethernet/ibm/ibmvnic.c @@ -628,17 +628,9 @@ static bool reuse_rx_pools(struct ibmvnic_adapter *adapter) old_buff_size = adapter->prev_rx_buf_sz; new_buff_size = adapter->cur_rx_buf_sz; - /* Require buff size to be exactly same for now */ - if (old_buff_size != new_buff_size) - return false; - - if (old_num_pools == new_num_pools && old_pool_size == new_pool_size) - return true; - - if (old_num_pools < adapter->min_rx_queues || - old_num_pools > adapter->max_rx_queues || - old_pool_size < adapter->min_rx_add_entries_per_subcrq || - old_pool_size > adapter->max_rx_add_entries_per_subcrq) + if (old_buff_size != new_buff_size || + old_num_pools != new_num_pools || + old_pool_size != new_pool_size) return false; return true;
When trying to decide whether or not reuse existing rx/tx pools we tried to allow a range of values for the pool parameters rather than exact matches. This was intended to reuse the resources for instance when switching between two VIO servers with different default parameters. But this optimization is incomplete and breaks when we try to change the number of queues for instance. The optimization needs to be updated, so drop it for now and simplify the code. Fixes: 489de956e7a2 ("ibmvnic: Reuse rx pools when possible") Reported-by: Dany Madden <drt@linux.ibm.com> Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.ibm.com> --- drivers/net/ethernet/ibm/ibmvnic.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-)