2021-11-21 18:01:12

by Christophe JAILLET

[permalink] [raw]
Subject: [PATCH] net-sysfs: Slightly optimize 'xps_queue_show()'

The 'mask' bitmap is local to this function. So the non-atomic
'__set_bit()' can be used to save a few cycles.

Signed-off-by: Christophe JAILLET <[email protected]>
---
net/core/net-sysfs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c
index 9c01c642cf9e..3be3f4a6add3 100644
--- a/net/core/net-sysfs.c
+++ b/net/core/net-sysfs.c
@@ -1452,7 +1452,7 @@ static ssize_t xps_queue_show(struct net_device *dev, unsigned int index,

for (i = map->len; i--;) {
if (map->queues[i] == index) {
- set_bit(j, mask);
+ __set_bit(j, mask);
break;
}
}
--
2.30.2



2021-11-22 15:00:19

by patchwork-bot+netdevbpf

[permalink] [raw]
Subject: Re: [PATCH] net-sysfs: Slightly optimize 'xps_queue_show()'

Hello:

This patch was applied to netdev/net-next.git (master)
by David S. Miller <[email protected]>:

On Sun, 21 Nov 2021 19:01:03 +0100 you wrote:
> The 'mask' bitmap is local to this function. So the non-atomic
> '__set_bit()' can be used to save a few cycles.
>
> Signed-off-by: Christophe JAILLET <[email protected]>
> ---
> net/core/net-sysfs.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)

Here is the summary with links:
- net-sysfs: Slightly optimize 'xps_queue_show()'
https://git.kernel.org/netdev/net-next/c/08a7abf4aff1

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



2021-11-22 15:23:21

by Xin Long

[permalink] [raw]
Subject: Re: [PATCH] net-sysfs: Slightly optimize 'xps_queue_show()'

On Sun, Nov 21, 2021 at 2:38 PM Christophe JAILLET
<[email protected]> wrote:
>
> The 'mask' bitmap is local to this function. So the non-atomic
> '__set_bit()' can be used to save a few cycles.
>
> Signed-off-by: Christophe JAILLET <[email protected]>
> ---
> net/core/net-sysfs.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c
> index 9c01c642cf9e..3be3f4a6add3 100644
> --- a/net/core/net-sysfs.c
> +++ b/net/core/net-sysfs.c
> @@ -1452,7 +1452,7 @@ static ssize_t xps_queue_show(struct net_device *dev, unsigned int index,
>
> for (i = map->len; i--;) {
> if (map->queues[i] == index) {
> - set_bit(j, mask);
> + __set_bit(j, mask);
> break;
> }
> }
> --
> 2.30.2
>
The similar optimization can seem to be done in br_vlan.c and br_if.c as well.

2021-11-22 19:11:00

by Christophe JAILLET

[permalink] [raw]
Subject: Re: [PATCH] net-sysfs: Slightly optimize 'xps_queue_show()'

Le 22/11/2021 à 16:23, Xin Long a écrit :
> On Sun, Nov 21, 2021 at 2:38 PM Christophe JAILLET
> <[email protected]> wrote:
>>
>> The 'mask' bitmap is local to this function. So the non-atomic
>> '__set_bit()' can be used to save a few cycles.
>>
>> Signed-off-by: Christophe JAILLET <[email protected]>
>> ---
>> net/core/net-sysfs.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c
>> index 9c01c642cf9e..3be3f4a6add3 100644
>> --- a/net/core/net-sysfs.c
>> +++ b/net/core/net-sysfs.c
>> @@ -1452,7 +1452,7 @@ static ssize_t xps_queue_show(struct net_device *dev, unsigned int index,
>>
>> for (i = map->len; i--;) {
>> if (map->queues[i] == index) {
>> - set_bit(j, mask);
>> + __set_bit(j, mask);
>> break;
>> }
>> }
>> --
>> 2.30.2
>>
> The similar optimization can seem to be done in br_vlan.c and br_if.c as well.
>

Hi,

br_if.c should be fixed in cc0be1ad686f.

br_vlan.c was not spotted by my heuristic (a set of grep, while looking
at something else). So, thanks for your feedback.

Feel free to propose a patch for it, it was not part of my todo list :)

If you prefer, I can also send a patch. Let me know.

CJ