Re: [Patch V3 5/9] i40e: Use numa_mem_id() to better support memoryless node

From: David Rientjes
Date: Mon Aug 17 2015 - 20:35:49 EST


On Mon, 17 Aug 2015, Jiang Liu wrote:

> Function i40e_clean_rx_irq() tries to reuse memory pages allocated

s/i40e_clean_rx_irq/i40e_clean_rx_irq_ps/

> from the nearest node. To better support memoryless node, use
> numa_mem_id() instead of numa_node_id() to get the nearest node with
> memory.
>

Out of curiosity, what prevents the cpu to be preempted and current_node
to no longer match numa_mem_id()?

> This change should only affect performance.
>
> Signed-off-by: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
> ---
> drivers/net/ethernet/intel/i40e/i40e_txrx.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.c b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
> index 9a4f2bc70cd2..a8f618cb8eb0 100644
> --- a/drivers/net/ethernet/intel/i40e/i40e_txrx.c
> +++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
> @@ -1516,7 +1516,7 @@ static int i40e_clean_rx_irq_ps(struct i40e_ring *rx_ring, int budget)
> unsigned int total_rx_bytes = 0, total_rx_packets = 0;
> u16 rx_packet_len, rx_header_len, rx_sph, rx_hbo;
> u16 cleaned_count = I40E_DESC_UNUSED(rx_ring);
> - const int current_node = numa_node_id();
> + const int current_node = numa_mem_id();
> struct i40e_vsi *vsi = rx_ring->vsi;
> u16 i = rx_ring->next_to_clean;
> union i40e_rx_desc *rx_desc;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/